Codebase list glm / 8357fe8
Imported Upstream version 0.9.2.6 Ghislain Antony Vaillant 7 years ago
538 changed file(s) with 44571 addition(s) and 42572 deletion(s). Raw diff Collapse all Expand all
44 enable_testing()
55
66 add_definitions(-D_CRT_SECURE_NO_WARNINGS)
7 #add_definitions(-pedantic)
8 #add_definitions(-S)
9 #add_definitions(-s)
10 #add_definitions(-msse2)
11 #add_definitions(-m32)
12 #add_definitions(-mfpmath=387)
13 #add_definitions(-ffast-math)
14 #add_definitions(-O3)
7
8 if(CMAKE_COMPILER_IS_GNUCXX)
9 #add_definitions(/Za)
10 #add_definitions(-pedantic)
11 #add_definitions(-S)
12 #add_definitions(-s)
13 add_definitions(-msse2)
14 #add_definitions(-m32)
15 #add_definitions(-mfpmath=387)
16 #add_definitions(-ffast-math)
17 #add_definitions(-O3)
18 endif()
1519
1620 include_directories(".")
1721
1010 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
1111 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
1212 })();
13 </script></head><body><table><tr><td class="menu"><div class="menu1"><br /><div><a href="./goodies/logo1920x1200.png"><img class="menu-img" src="./common/logo.png" alt="GLM Logo" /></a></div><br /><div><a class="menu" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.0/glm-0.9.2.0.zip/download">
14 Download GLM 0.9.2.0</a></div></div><br /><div class="menu2"><a href="./index.html">Front page</a></div><div class="menu2"><a href="./download.html">Downloads</a></div><div class="menu2"><a href="http://www.opengl.org/sdk/libs/GLM/">OpenGL SDK page</a></div><br /><div class="menu2"><a href="./glm-0.9.2.pdf">GLM Manual</a></div><div class="menu2"><a href="./api-0.9.2/index.html">GLM API</a></div><div class="menu2"><a href="./code.html">Code samples</a></div><div class="menu2"><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.10.6.clean.pdf">GLSL Specification</a></div><div class="menu2"><a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&amp;Board=10&amp;page=1">OpenGL.org Toolkits forum</a></div><br /><div class="menu2"><a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Report a bug</a></div><div class="menu2"><a href="https://sourceforge.net/projects/ogl-math/">SourceForge page</a></div><div class="menu2"><a href="http://www.g-truc.net/project-0016.html#menu">G-Truc Creation page</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=summary">Browse Git repository</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=snapshot;h=HEAD;sf=tgz">Source snapshot</a></div><br /><br /><div class="menu2"><a href="http://www.g-truc.net"><img class="menu-img" src="./common/g-truc.png" alt="G-Truc" /></a></div><br /></td><td class="page"><div class="title1"><img src="./common/title.png" alt="OpenGL Mathematics" /></div><div class="title3">GLSL + Optional features = OpenGL Mathematics (GLM).<br />A C++ mathematics library for 3D graphics.<br /></div><br /><br /><div><div class="title-date"> </div><div class="title4"> </div><div><p>
13 </script></head><body><table><tr><td class="menu"><div class="menu1"><br /><div><a href="./goodies/logo1920x1200.png"><img class="menu-img" src="./common/logo.png" alt="GLM Logo" /></a></div><br /><div><a class="menu" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.6/glm-0.9.2.6.zip/download">
14 Download GLM 0.9.2.6</a></div></div><br /><div class="menu2"><a href="./index.html">Front page</a></div><div class="menu2"><a href="./download.html">Downloads</a></div><div class="menu2"><a href="http://www.opengl.org/sdk/libs/GLM/">OpenGL SDK page</a></div><br /><div class="menu2"><a href="./glm-0.9.2.pdf">GLM Manual</a></div><div class="menu2"><a href="./api-0.9.2/index.html">GLM API</a></div><div class="menu2"><a href="./code.html">Code samples</a></div><div class="menu2"><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.10.6.clean.pdf">GLSL Specification</a></div><div class="menu2"><a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&amp;Board=10&amp;page=1">OpenGL.org Toolkits forum</a></div><br /><div class="menu2"><a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Report a bug</a></div><div class="menu2"><a href="https://sourceforge.net/projects/ogl-math/">SourceForge page</a></div><div class="menu2"><a href="http://www.g-truc.net/project-0016.html#menu">G-Truc Creation page</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=summary">Browse Git repository</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=snapshot;h=HEAD;sf=tgz">Source snapshot</a></div><br /><br /><div class="menu2"><a href="http://www.g-truc.net"><img class="menu-img" src="./common/g-truc.png" alt="G-Truc" /></a></div><br /></td><td class="page"><div class="title1"><img src="./common/title.png" alt="OpenGL Mathematics" /></div><div class="title3">GLSL + Optional features = OpenGL Mathematics (GLM)<br />A C++ mathematics library for graphics programming<br /></div><br /><br /><div><div class="title-date"> </div><div class="title4"> </div><div><p>
1515 OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software
1616 based on the <a href="http://www.opengl.org/documentation/glsl/">OpenGL Shading Language (GLSL)</a> specification.
1717 </p><p>
3131 </p><p>
3232 Thanks for contributing to the project by <a href="https://sourceforge.net/apps/trac/ogl-math/newticket">submitting tickets</a> for bug reports and feature requests. (SF.net account required).
3333 Any feedback is welcome at glm@g-truc.net.
34 </p><div xmlns="http://www.w3.org/1999/xhtml"><span class="list">GLM is written as a platform independent library with no dependence and officially supports the following compilers:</span><ul><li><a xmlns="" href="http://http://gcc.gnu.org/">GCC</a> 3.4 and higher</li><li><a xmlns="" href="http://llvm.org/">LLVM</a> 2.3 through GCC 4.2 front-end and higher</li><li><a xmlns="" href="http://msdn.microsoft.com/en-us/visualc/default">Visual C++</a> 2005 and higher</li><li>Any C++ compiler following C++98 norm</li></ul></div></div><div class="news-separator">_________________</div><br /></div><div class="email"><img src="./common/email.png" alt="email not available as text" /></div><div class="news-separator">_________________</div><br /><div class="title3">Copyright © 2005 - 2011<a href="http://www.g-truc.net">G-Truc Creation</a></div></td></tr></table></body></html>
34 </p><div xmlns="http://www.w3.org/1999/xhtml"><span class="list">GLM is written as a platform independent library with no dependence and officially supports the following compilers:</span><ul><li><a xmlns="" href="http://clang.llvm.org">Clang</a> 2.0 and higher</li><li><a xmlns="" href="http://developer.nvidia.com/category/zone/cuda-zone">CUDA</a> 3.0 and higher
35 </li><li><a xmlns="" href="http://gcc.gnu.org/">GCC</a> 3.4 and higher</li><li><a xmlns="" href="http://llvm.org/">LLVM</a> 2.3 through GCC 4.2 front-end and higher</li><li><a xmlns="" href="http://msdn.microsoft.com/en-us/visualc/default">Visual C++</a> 2005 and higher</li><li>Any C++ compiler following C++98 norm</li></ul></div></div><div class="news-separator">_________________</div><br /></div><div class="email"><img src="./common/email.png" alt="email not available as text" /></div><div class="news-separator">_________________</div><br /><div class="title3">Copyright © 2005 - 2011<a href="http://www.g-truc.net">G-Truc Creation</a></div></td></tr></table></body></html>
1010 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
1111 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
1212 })();
13 </script></head><body><table><tr><td class="menu"><div class="menu1"><br /><div><a href="./goodies/logo1920x1200.png"><img class="menu-img" src="./common/logo.png" alt="GLM Logo" /></a></div><br /><div><a class="menu" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.0/glm-0.9.2.0.zip/download">
14 Download GLM 0.9.2.0</a></div></div><br /><div class="menu2"><a href="./index.html">Front page</a></div><div class="menu2"><a href="./download.html">Downloads</a></div><div class="menu2"><a href="http://www.opengl.org/sdk/libs/GLM/">OpenGL SDK page</a></div><br /><div class="menu2"><a href="./glm-0.9.2.pdf">GLM Manual</a></div><div class="menu2"><a href="./api-0.9.2/index.html">GLM API</a></div><div class="menu2"><a href="./code.html">Code samples</a></div><div class="menu2"><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.10.6.clean.pdf">GLSL Specification</a></div><div class="menu2"><a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&amp;Board=10&amp;page=1">OpenGL.org Toolkits forum</a></div><br /><div class="menu2"><a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Report a bug</a></div><div class="menu2"><a href="https://sourceforge.net/projects/ogl-math/">SourceForge page</a></div><div class="menu2"><a href="http://www.g-truc.net/project-0016.html#menu">G-Truc Creation page</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=summary">Browse Git repository</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=snapshot;h=HEAD;sf=tgz">Source snapshot</a></div><br /><br /><div class="menu2"><a href="http://www.g-truc.net"><img class="menu-img" src="./common/g-truc.png" alt="G-Truc" /></a></div><br /></td><td class="page"><div class="title1"><img src="./common/title.png" alt="OpenGL Mathematics" /></div><div class="title3">GLSL + Optional features = OpenGL Mathematics (GLM).<br />A C++ mathematics library for 3D graphics.<br /></div><br /><br /><span xmlns="http://www.w3.org/1999/xhtml" class="code-title">Compute a triangle normal:</span><ul xmlns="http://www.w3.org/1999/xhtml" class="code-list"><li class="code-line"><span class="code-line-content"><span class="keyword">#include </span><span class="string">&lt;glm/glm.hpp&gt;</span></span></li><li class="code-line"><span class="code-line-content" /></li><li class="code-line"><span class="code-line-content"><span class="keyword">void </span> computeNormal(triangle &amp; Triangle)
13 </script></head><body><table><tr><td class="menu"><div class="menu1"><br /><div><a href="./goodies/logo1920x1200.png"><img class="menu-img" src="./common/logo.png" alt="GLM Logo" /></a></div><br /><div><a class="menu" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.6/glm-0.9.2.6.zip/download">
14 Download GLM 0.9.2.6</a></div></div><br /><div class="menu2"><a href="./index.html">Front page</a></div><div class="menu2"><a href="./download.html">Downloads</a></div><div class="menu2"><a href="http://www.opengl.org/sdk/libs/GLM/">OpenGL SDK page</a></div><br /><div class="menu2"><a href="./glm-0.9.2.pdf">GLM Manual</a></div><div class="menu2"><a href="./api-0.9.2/index.html">GLM API</a></div><div class="menu2"><a href="./code.html">Code samples</a></div><div class="menu2"><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.10.6.clean.pdf">GLSL Specification</a></div><div class="menu2"><a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&amp;Board=10&amp;page=1">OpenGL.org Toolkits forum</a></div><br /><div class="menu2"><a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Report a bug</a></div><div class="menu2"><a href="https://sourceforge.net/projects/ogl-math/">SourceForge page</a></div><div class="menu2"><a href="http://www.g-truc.net/project-0016.html#menu">G-Truc Creation page</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=summary">Browse Git repository</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=snapshot;h=HEAD;sf=tgz">Source snapshot</a></div><br /><br /><div class="menu2"><a href="http://www.g-truc.net"><img class="menu-img" src="./common/g-truc.png" alt="G-Truc" /></a></div><br /></td><td class="page"><div class="title1"><img src="./common/title.png" alt="OpenGL Mathematics" /></div><div class="title3">GLSL + Optional features = OpenGL Mathematics (GLM)<br />A C++ mathematics library for graphics programming<br /></div><br /><br /><span xmlns="http://www.w3.org/1999/xhtml" class="code-title">Compute a triangle normal:</span><ul xmlns="http://www.w3.org/1999/xhtml" class="code-list"><li class="code-line"><span class="code-line-content"><span class="keyword">#include </span><span class="string">&lt;glm/glm.hpp&gt;</span></span></li><li class="code-line"><span class="code-line-content" /></li><li class="code-line"><span class="code-line-content"><span class="keyword">void </span> computeNormal(triangle &amp; Triangle)
1515 </span></li><li class="code-line"><span class="code-line-content">
1616 {
1717 </span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
1010 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
1111 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
1212 })();
13 </script></head><body><table><tr><td class="menu"><div class="menu1"><br /><div><a href="./goodies/logo1920x1200.png"><img class="menu-img" src="./common/logo.png" alt="GLM Logo" /></a></div><br /><div><a class="menu" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.0/glm-0.9.2.0.zip/download">
14 Download GLM 0.9.2.0</a></div></div><br /><div class="menu2"><a href="./index.html">Front page</a></div><div class="menu2"><a href="./download.html">Downloads</a></div><div class="menu2"><a href="http://www.opengl.org/sdk/libs/GLM/">OpenGL SDK page</a></div><br /><div class="menu2"><a href="./glm-0.9.2.pdf">GLM Manual</a></div><div class="menu2"><a href="./api-0.9.2/index.html">GLM API</a></div><div class="menu2"><a href="./code.html">Code samples</a></div><div class="menu2"><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.10.6.clean.pdf">GLSL Specification</a></div><div class="menu2"><a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&amp;Board=10&amp;page=1">OpenGL.org Toolkits forum</a></div><br /><div class="menu2"><a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Report a bug</a></div><div class="menu2"><a href="https://sourceforge.net/projects/ogl-math/">SourceForge page</a></div><div class="menu2"><a href="http://www.g-truc.net/project-0016.html#menu">G-Truc Creation page</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=summary">Browse Git repository</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=snapshot;h=HEAD;sf=tgz">Source snapshot</a></div><br /><br /><div class="menu2"><a href="http://www.g-truc.net"><img class="menu-img" src="./common/g-truc.png" alt="G-Truc" /></a></div><br /></td><td class="page"><div class="title1"><img src="./common/title.png" alt="OpenGL Mathematics" /></div><div class="title3">GLSL + Optional features = OpenGL Mathematics (GLM).<br />A C++ mathematics library for 3D graphics.<br /></div><br /><br /><div><div class="title4">Current release</div></div><div class="issue-content">08/05/2010:
15 <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.0/glm-0.9.2.0.zip/download">GLM 0.9.2.0</a>
13 </script></head><body><table><tr><td class="menu"><div class="menu1"><br /><div><a href="./goodies/logo1920x1200.png"><img class="menu-img" src="./common/logo.png" alt="GLM Logo" /></a></div><br /><div><a class="menu" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.6/glm-0.9.2.6.zip/download">
14 Download GLM 0.9.2.6</a></div></div><br /><div class="menu2"><a href="./index.html">Front page</a></div><div class="menu2"><a href="./download.html">Downloads</a></div><div class="menu2"><a href="http://www.opengl.org/sdk/libs/GLM/">OpenGL SDK page</a></div><br /><div class="menu2"><a href="./glm-0.9.2.pdf">GLM Manual</a></div><div class="menu2"><a href="./api-0.9.2/index.html">GLM API</a></div><div class="menu2"><a href="./code.html">Code samples</a></div><div class="menu2"><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.10.6.clean.pdf">GLSL Specification</a></div><div class="menu2"><a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&amp;Board=10&amp;page=1">OpenGL.org Toolkits forum</a></div><br /><div class="menu2"><a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Report a bug</a></div><div class="menu2"><a href="https://sourceforge.net/projects/ogl-math/">SourceForge page</a></div><div class="menu2"><a href="http://www.g-truc.net/project-0016.html#menu">G-Truc Creation page</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=summary">Browse Git repository</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=snapshot;h=HEAD;sf=tgz">Source snapshot</a></div><br /><br /><div class="menu2"><a href="http://www.g-truc.net"><img class="menu-img" src="./common/g-truc.png" alt="G-Truc" /></a></div><br /></td><td class="page"><div class="title1"><img src="./common/title.png" alt="OpenGL Mathematics" /></div><div class="title3">GLSL + Optional features = OpenGL Mathematics (GLM)<br />A C++ mathematics library for graphics programming<br /></div><br /><br /><div><div class="title4">Current release</div></div><div class="issue-content">01/10/2011:
15 <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.6/glm-0.9.2.6.zip/download">GLM 0.9.2.6</a>
1616 (3.4 MB)
17 </div><div class="news-separator">_________________</div><br /><div><div class="title4">GLM - zip files</div><div class="issue-content">08/05/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.0/glm-0.9.2.0.zip/download">GLM 0.9.2.0</a> (3.4 MB)
18 </div><div class="issue-content">07/05/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.3/glm-0.9.1.3.zip/download">GLM 0.9.1.3</a> (3.4 MB)
19 </div><div class="issue-content">12/04/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.2/glm-0.9.1.2.zip/download">GLM 0.9.1.2</a> (3.4 MB)
20 </div><div class="issue-content">17/03/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.1/glm-0.9.1.1.zip/download">GLM 0.9.1.1</a> (3.4 MB)
21 </div><div class="issue-content">03/03/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.0/glm-0.9.1.0.zip/download">GLM 0.9.1.0</a> (3.4 MB)
22 </div><div class="issue-content">13/02/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.B/glm-0.9.1.B.zip/download">GLM 0.9.1.B</a> (3.4 MB)
23 </div><div class="issue-content">13/02/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.8/glm-0.9.0.8.zip/download">GLM 0.9.0.8</a> (3.3 MB)
24 </div><div class="issue-content">31/01/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.A/glm-0.9.1.A.zip/download">GLM 0.9.1.A</a> (3.0 MB)
25 </div><div class="issue-content">30/01/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.7/glm-0.9.0.7.zip/download">GLM 0.9.0.7</a> (1.4 MB)
17 </div><div class="news-separator">_________________</div><br /><div><div class="title4">GLM - zip files</div><div class="issue-content">01/10/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.6/glm-0.9.2.6.zip/download">GLM 0.9.2.6</a> (3.4 MB)
18 </div><div class="issue-content">20/09/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.5/glm-0.9.2.5.zip/download">GLM 0.9.2.5</a> (3.4 MB)
19 </div><div class="issue-content">03/09/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.4/glm-0.9.2.4.zip/download">GLM 0.9.2.4</a> (3.4 MB)
20 </div><div class="issue-content">08/06/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.3/glm-0.9.2.3.zip/download">GLM 0.9.2.3</a> (3.4 MB)
21 </div><div class="issue-content">02/06/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.2/glm-0.9.2.2.zip/download">GLM 0.9.2.2</a> (3.4 MB)
22 </div><div class="issue-content">24/05/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.1/glm-0.9.2.1.zip/download">GLM 0.9.2.1</a> (3.4 MB)
23 </div><div class="issue-content">08/05/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.0/glm-0.9.2.0.zip/download">GLM 0.9.2.0</a> (3.4 MB)
24 </div><div class="issue-content">07/05/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.3/glm-0.9.1.3.zip/download">GLM 0.9.1.3</a> (3.4 MB)
25 </div><div class="issue-content">12/04/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.2/glm-0.9.1.2.zip/download">GLM 0.9.1.2</a> (3.4 MB)
26 </div><div class="issue-content">17/03/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.1/glm-0.9.1.1.zip/download">GLM 0.9.1.1</a> (3.4 MB)
27 </div><div class="issue-content">03/03/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.0/glm-0.9.1.0.zip/download">GLM 0.9.1.0</a> (3.4 MB)
28 </div><div class="issue-content">13/02/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.B/glm-0.9.1.B.zip/download">GLM 0.9.1.B</a> (3.4 MB)
29 </div><div class="issue-content">13/02/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.8/glm-0.9.0.8.zip/download">GLM 0.9.0.8</a> (3.3 MB)
30 </div><div class="issue-content">31/01/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.A/glm-0.9.1.A.zip/download">GLM 0.9.1.A</a> (3.0 MB)
31 </div><div class="issue-content">30/01/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.7/glm-0.9.0.7.zip/download">GLM 0.9.0.7</a> (1.4 MB)
2632 </div><div class="issue-content">21/12/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.6/glm-0.9.0.6.zip/download">GLM 0.9.0.6</a> (2.2 MB)
2733 </div><div class="issue-content">01/11/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.5/glm-0.9.0.5.zip/download">GLM 0.9.0.5</a> (2.2 MB)
2834 </div><div class="issue-content">04/10/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.4/glm-0.9.0.4.zip/download">GLM 0.9.0.4</a> (1.5 MB)
7278 </div><div class="issue-content">02/19/2006: <a href="http://prdownloads.sourceforge.net/glf/glm-0.3.zip?download">GLM 0.3.0.0</a> (945 KB)
7379 </div><div class="issue-content">05/05/2005: <a href="http://prdownloads.sourceforge.net/glf/glm-0.2.zip?download">GLM 0.2.0.0</a> (194 KB)
7480 </div><div class="issue-content">02/21/2005: <a href="http://prdownloads.sourceforge.net/glf/glm-0.1-ur.zip?download">GLM 0.1.0.0</a> (29.2 KB)
75 </div></div><div class="news-separator">_________________</div><br /><div><div class="title4">GLM - 7z files</div><div class="issue-content">08/05/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.0/glm-0.9.2.0.7z/download">GLM 0.9.2.0</a> (2.1 MB)
81 </div></div><div class="news-separator">_________________</div><br /><div><div class="title4">GLM - 7z files</div><div class="issue-content">01/10/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.6/glm-0.9.2.6.7z/download">GLM 0.9.2.6</a> (2.1 MB)
82 </div><div class="issue-content">20/09/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.5/glm-0.9.2.5.7z/download">GLM 0.9.2.5</a> (2.1 MB)
83 </div><div class="issue-content">03/09/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.4/glm-0.9.2.4.7z/download">GLM 0.9.2.4</a> (2.1 MB)
84 </div><div class="issue-content">08/06/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.3/glm-0.9.2.3.7z/download">GLM 0.9.2.3</a> (2.1 MB)
85 </div><div class="issue-content">02/06/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.2/glm-0.9.2.2.7z/download">GLM 0.9.2.2</a> (2.1 MB)
86 </div><div class="issue-content">24/05/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.1/glm-0.9.2.1.7z/download">GLM 0.9.2.1</a> (2.1 MB)
87 </div><div class="issue-content">08/05/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.0/glm-0.9.2.0.7z/download">GLM 0.9.2.0</a> (2.1 MB)
7688 </div><div class="issue-content">07/05/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.3/glm-0.9.1.3.7z/download">GLM 0.9.1.3</a> (2.1 MB)
7789 </div><div class="issue-content">12/04/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.2/glm-0.9.1.2.7z/download">GLM 0.9.1.2</a> (2.1 MB)
7890 </div><div class="issue-content">17/03/2011: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.1/glm-0.9.1.1.7z/download">GLM 0.9.1.1</a> (2.1 MB)
Binary diff not shown
1010 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
1111 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
1212 })();
13 </script></head><body><table><tr><td class="menu"><div class="menu1"><br /><div><a href="./goodies/logo1920x1200.png"><img class="menu-img" src="./common/logo.png" alt="GLM Logo" /></a></div><br /><div><a class="menu" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.0/glm-0.9.2.0.zip/download">
14 Download GLM 0.9.2.0</a></div></div><br /><div class="menu2"><a href="./index.html">Front page</a></div><div class="menu2"><a href="./download.html">Downloads</a></div><div class="menu2"><a href="http://www.opengl.org/sdk/libs/GLM/">OpenGL SDK page</a></div><br /><div class="menu2"><a href="./glm-0.9.2.pdf">GLM Manual</a></div><div class="menu2"><a href="./api-0.9.2/index.html">GLM API</a></div><div class="menu2"><a href="./code.html">Code samples</a></div><div class="menu2"><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.10.6.clean.pdf">GLSL Specification</a></div><div class="menu2"><a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&amp;Board=10&amp;page=1">OpenGL.org Toolkits forum</a></div><br /><div class="menu2"><a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Report a bug</a></div><div class="menu2"><a href="https://sourceforge.net/projects/ogl-math/">SourceForge page</a></div><div class="menu2"><a href="http://www.g-truc.net/project-0016.html#menu">G-Truc Creation page</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=summary">Browse Git repository</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=snapshot;h=HEAD;sf=tgz">Source snapshot</a></div><br /><br /><div class="menu2"><a href="http://www.g-truc.net"><img class="menu-img" src="./common/g-truc.png" alt="G-Truc" /></a></div><br /></td><td class="page"><div class="title1"><img src="./common/title.png" alt="OpenGL Mathematics" /></div><div class="title3">GLSL + Optional features = OpenGL Mathematics (GLM).<br />A C++ mathematics library for 3D graphics.<br /></div><br /><br /><div><div class="title-date">16/10/2008</div><div class="title4">GLM Logo</div><div><table style="width:100%;"><tr style="width:100%;"><td><p />Download: <a href="./goodies/logo2560x1600.png">2560x1600</a><br />Download: <a href="./goodies/logo1920x1200.png">1920x1200</a><br />Download: <a href="./goodies/logo1600x1000.png">1600x1000</a><br />Download: <a href="./goodies/logo1280x0800.png">1280x0800</a><br />Download: <a href="./goodies/logo1024x0640.png">1024x0640</a><br /></td><td style="text-align:right;"><a ref="goodies/logo.png"><img src="image/logo-mini.png" alt=" " /></a></td></tr></table></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">16/10/2008</div><div class="title4">GLM Font</div><div><table style="width:100%;"><tr style="width:100%;"><td><p />Download: <a href="./goodies/tenby-five.otf">Font (.otf)</a><br /></td><td style="text-align:right;"><a ref="goodies/font.png"><img src="image/font-mini.png" alt=" " /></a></td></tr></table></div><div class="news-separator">_________________</div><br /></div><div class="email"><img src="./common/email.png" alt="email not available as text" /></div><div class="news-separator">_________________</div><br /><div class="title3">Copyright © 2005 - 2011<a href="http://www.g-truc.net">G-Truc Creation</a></div></td></tr></table></body></html>
13 </script></head><body><table><tr><td class="menu"><div class="menu1"><br /><div><a href="./goodies/logo1920x1200.png"><img class="menu-img" src="./common/logo.png" alt="GLM Logo" /></a></div><br /><div><a class="menu" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.6/glm-0.9.2.6.zip/download">
14 Download GLM 0.9.2.6</a></div></div><br /><div class="menu2"><a href="./index.html">Front page</a></div><div class="menu2"><a href="./download.html">Downloads</a></div><div class="menu2"><a href="http://www.opengl.org/sdk/libs/GLM/">OpenGL SDK page</a></div><br /><div class="menu2"><a href="./glm-0.9.2.pdf">GLM Manual</a></div><div class="menu2"><a href="./api-0.9.2/index.html">GLM API</a></div><div class="menu2"><a href="./code.html">Code samples</a></div><div class="menu2"><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.10.6.clean.pdf">GLSL Specification</a></div><div class="menu2"><a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&amp;Board=10&amp;page=1">OpenGL.org Toolkits forum</a></div><br /><div class="menu2"><a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Report a bug</a></div><div class="menu2"><a href="https://sourceforge.net/projects/ogl-math/">SourceForge page</a></div><div class="menu2"><a href="http://www.g-truc.net/project-0016.html#menu">G-Truc Creation page</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=summary">Browse Git repository</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=snapshot;h=HEAD;sf=tgz">Source snapshot</a></div><br /><br /><div class="menu2"><a href="http://www.g-truc.net"><img class="menu-img" src="./common/g-truc.png" alt="G-Truc" /></a></div><br /></td><td class="page"><div class="title1"><img src="./common/title.png" alt="OpenGL Mathematics" /></div><div class="title3">GLSL + Optional features = OpenGL Mathematics (GLM)<br />A C++ mathematics library for graphics programming<br /></div><br /><br /><div><div class="title-date">16/10/2008</div><div class="title4">GLM Logo</div><div><table style="width:100%;"><tr style="width:100%;"><td><p />Download: <a href="./goodies/logo2560x1600.png">2560x1600</a><br />Download: <a href="./goodies/logo1920x1200.png">1920x1200</a><br />Download: <a href="./goodies/logo1600x1000.png">1600x1000</a><br />Download: <a href="./goodies/logo1280x0800.png">1280x0800</a><br />Download: <a href="./goodies/logo1024x0640.png">1024x0640</a><br /></td><td style="text-align:right;"><a ref="goodies/logo.png"><img src="image/logo-mini.png" alt=" " /></a></td></tr></table></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">16/10/2008</div><div class="title4">GLM Font</div><div><table style="width:100%;"><tr style="width:100%;"><td><p />Download: <a href="./goodies/tenby-five.otf">Font (.otf)</a><br /></td><td style="text-align:right;"><a ref="goodies/font.png"><img src="image/font-mini.png" alt=" " /></a></td></tr></table></div><div class="news-separator">_________________</div><br /></div><div class="email"><img src="./common/email.png" alt="email not available as text" /></div><div class="news-separator">_________________</div><br /><div class="title3">Copyright © 2005 - 2011<a href="http://www.g-truc.net">G-Truc Creation</a></div></td></tr></table></body></html>
451451 **/
452452
453453 /*!
454 \defgroup gtx_vector_access GLM_GTX_vector_angle: Vector access
454 \defgroup gtx_vector_access GLM_GTX_vector_access: Vector access
455455 \ingroup gtx
456456
457457 \brief Function to set values to vectors
4848
4949 <span class="keywordtype">int</span> foo()
5050 {
51 <a class="code" href="a00022.html" title="Basic 4D vector type.">glm::vec4</a> Position = <a class="code" href="a00235.html#ga8fad5ffc01ba6dea689f2a38bf30bda4" title="4 components vector of floating-point numbers.">glm::vec4</a>(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a>(0.0), 1.0);
52 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> Model = <a class="code" href="a00235.html#gade0eb47c01f79384a6f38017ede17446" title="4 columns of 4 components matrix of floating-point numbers.">glm::mat4</a>(1.0);
53 Model[4] = <a class="code" href="a00235.html#ga8fad5ffc01ba6dea689f2a38bf30bda4" title="4 components vector of floating-point numbers.">glm::vec4</a>(1.0, 1.0, 0.0, 1.0);
51 <a class="code" href="a00022.html" title="Basic 4D vector type.">glm::vec4</a> Position = <a class="code" href="a00234.html#ga8fad5ffc01ba6dea689f2a38bf30bda4" title="4 components vector of floating-point numbers.">glm::vec4</a>(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a>(0.0), 1.0);
52 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> Model = <a class="code" href="a00234.html#gade0eb47c01f79384a6f38017ede17446" title="4 columns of 4 components matrix of floating-point numbers.">glm::mat4</a>(1.0);
53 Model[4] = <a class="code" href="a00234.html#ga8fad5ffc01ba6dea689f2a38bf30bda4" title="4 components vector of floating-point numbers.">glm::vec4</a>(1.0, 1.0, 0.0, 1.0);
5454 <a class="code" href="a00022.html" title="Basic 4D vector type.">glm::vec4</a> Transformed = Model * Position;
5555 <span class="keywordflow">return</span> 0;
5656 }
5757 </pre></div><h2><a class="anchor" id="started_structure"></a>
5858 Library Structure</h2>
59 <p>GLM is arranged in 2 distinct segments. These are the GLM features based on the GLSL specification and a set of extensions. Some extensions are stable and backward compatible (<a class="el" href="a00239.html">GTC Extensions (Stable)</a> GTC <a class="el" href="a00303.html">VIRTREV Extensions</a> VIRTREV) but some are experimental (<a class="el" href="a00248.html">GTX Extensions (Experimental)</a> GTX) which means that they are not guarantee to be backward compatible from version to version.</p>
60 <p>The <a class="el" href="a00234.html">GLM</a> represents only what GLSL's core provides in terms of types and functions (to the best of GLM's ability to replicate them). All that is needed to use the core is to include <code>&lt;<a class="el" href="a00052_source.html">glm/glm.hpp</a>&gt;</code>.</p>
61 <p><a class="el" href="a00239.html">GTC extensions</a> are functions and types that add onto the core. These are considered reasonably stable, with their APIs not changing much between versions. Each core extension is included with a separated header file include. All of the core extensions are in the "glm/gtc" directory.</p>
62 <p><a class="el" href="a00248.html">GTX extensions</a> are functions and types that add onto the core. Unlike GTC extensions, their APIs are not considered particularly stable, which is why they are marked "experimental". Like GTC extensions, each experimental extension is included with a separate header file.</p>
59 <p>GLM is arranged in 2 distinct segments. These are the GLM features based on the GLSL specification and a set of extensions. Some extensions are stable and backward compatible (<a class="el" href="a00238.html">GTC Extensions (Stable)</a> GTC <a class="el" href="a00302.html">VIRTREV Extensions</a> VIRTREV) but some are experimental (<a class="el" href="a00247.html">GTX Extensions (Experimental)</a> GTX) which means that they are not guarantee to be backward compatible from version to version.</p>
60 <p>The <a class="el" href="a00233.html">GLM</a> represents only what GLSL's core provides in terms of types and functions (to the best of GLM's ability to replicate them). All that is needed to use the core is to include <code>&lt;<a class="el" href="a00052_source.html">glm/glm.hpp</a>&gt;</code>.</p>
61 <p><a class="el" href="a00238.html">GTC extensions</a> are functions and types that add onto the core. These are considered reasonably stable, with their APIs not changing much between versions. Each core extension is included with a separated header file include. All of the core extensions are in the "glm/gtc" directory.</p>
62 <p><a class="el" href="a00247.html">GTX extensions</a> are functions and types that add onto the core. Unlike GTC extensions, their APIs are not considered particularly stable, which is why they are marked "experimental". Like GTC extensions, each experimental extension is included with a separate header file.</p>
6363 <p>All the extensions can be included at once by default by including <code>&lt;<a class="el" href="a00037_source.html">glm/ext.hpp</a>&gt;</code> but this is not recommanded as it will reduce compilation speed for many unused features.</p>
6464 <p>All of GLM is defined as direct children of the glm namespace, including extensions.</p>
6565 <p>To use a particular extension, simply include the extension header file. All extension features are added to the glm namespace automatically.</p>
6868
6969 <span class="keywordtype">int</span> foo()
7070 {
71 <a class="code" href="a00022.html" title="Basic 4D vector type.">glm::vec4</a> Position = <a class="code" href="a00235.html#ga8fad5ffc01ba6dea689f2a38bf30bda4" title="4 components vector of floating-point numbers.">glm::vec4</a>(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a>(0.0f), 1.0f);
72 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> Model = <a class="code" href="a00244.html#ga4683c446c8432476750ade56f2537397" title="Builds a translation 4 * 4 matrix created from a vector of 3 components.">glm::translate</a>(
71 <a class="code" href="a00022.html" title="Basic 4D vector type.">glm::vec4</a> Position = <a class="code" href="a00234.html#ga8fad5ffc01ba6dea689f2a38bf30bda4" title="4 components vector of floating-point numbers.">glm::vec4</a>(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a>(0.0f), 1.0f);
72 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> Model = <a class="code" href="a00243.html#ga4683c446c8432476750ade56f2537397" title="Builds a translation 4 * 4 matrix created from a vector of 3 components.">glm::translate</a>(
7373 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a>(1.0f), <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a>(1.0f));
7474 <a class="code" href="a00022.html" title="Basic 4D vector type.">glm::vec4</a> Transformed = Model * Position;
7575 <span class="keywordflow">return</span> 0;
8282 <h2><a class="anchor" id="started_interop"></a>
8383 OpenGL Interoperability</h2>
8484 <p>It is often useful to get a vector type as an array of its base type. For example, the OpenGL function <code>glUniform3fv()</code> takes an array instead of 3 individual values. If the vector and matrix types were simple arrays, then one could pass them to the function like so: <code>glUniform3fv(loc, 1, glm::vec3(0))</code>. However, this is not the case; the vector and matrix types are C++ classes, not arrays.</p>
85 <p>Instead, GLM provides a mechanism to get the content of a vector or matrix as an array pointer. The <a class="el" href="a00247.html">GLM_GTC_type_ptr: Memory layout access.</a> extension provides this ability.</p>
85 <p>Instead, GLM provides a mechanism to get the content of a vector or matrix as an array pointer. The <a class="el" href="a00246.html">GLM_GTC_type_ptr: Memory layout access.</a> extension provides this ability.</p>
8686 <div class="fragment"><pre class="fragment"><span class="preprocessor">#include &lt;glm/glm.hpp&gt;</span>
8787 <span class="preprocessor">#include &lt;glm/gtc/type_ptr.hpp&gt;</span>
8888
9191 <a class="code" href="a00022.html" title="Basic 4D vector type.">glm::vec4</a> v(0.0f);
9292 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> m(1.0f);
9393 ...
94 glUniform3fv(uniVec, 1, <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">glm::value_ptr</a>(v));
95 glUniformMatrix4fv(uniMat, 1, GL_FALSE, <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">glm::value_ptr</a>(m));
94 glUniform3fv(uniVec, 1, <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">glm::value_ptr</a>(v));
95 glUniformMatrix4fv(uniMat, 1, GL_FALSE, <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">glm::value_ptr</a>(m));
9696 }
9797 </pre></div><p>Notice that all matrix types are <em>column-major</em> rather than row-major. Hence the need to pass GL_FALSE to glUniformMatrix4fv.</p>
9898 <p>Alternatively, the first element of the type can be dereferenced.</p>
103103 <a class="code" href="a00022.html" title="Basic 4D vector type.">glm::vec4</a> v(0.0f);
104104 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> m(1.0f);
105105 ...
106 glUniform3fv(uniVec, 1, <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">glm::value_ptr</a>(&amp;v[0]));
106 glUniform3fv(uniVec, 1, <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">glm::value_ptr</a>(&amp;v[0]));
107107 glUniformMatrix4fv(uniMat, 1, GL_FALSE, &amp;m[0][0]);
108108 }
109109 </pre></div><p>This method requires dereferencing the very first basic type of the object, not merely the first element. The [] operator on the matrix type returns a column vector; one must then access the first element of that column vector to get a pointer to the basic type.</p>
110 <dl class="note"><dt><b>Note:</b></dt><dd>This operation could have been built into the base vector and matrix types and performed with a cast operator. However, this has some downsides. Implicit casts can cause unexpected and unwanted behavior. </dd></dl>
111 </div></div>
110 <dl class="note"><dt><b>Note:</b></dt><dd>This operation could have been built into the base vector and matrix types and performed with a cast operator. However, this has some downsides. Implicit casts can cause unexpected and unwanted behavior.</dd></dl>
111 <h2><a class="anchor" id="started_cuda"></a>
112 GLM for CUDA</h2>
113 <p>GLM 0.9.2 introduces CUDA compiler support allowing programmer to use GLM inside a CUDA Kernel. To make GLM compatible with CUDA, GLM_FORCE_CUDA requires to be define before any inclusion of <code>&lt;<a class="el" href="a00052_source.html">glm/glm.hpp</a>&gt;</code>.</p>
114 <div class="fragment"><pre class="fragment"><span class="preprocessor">#define GLM_FORCE_CUDA</span>
115 <span class="preprocessor">#include &lt;glm/glm.hpp&gt;</span>
116 </pre></div> </div></div>
112117 <hr class="footer"/><address class="footer"><small>Generated by&#160;
113118 <a href="http://www.doxygen.org/index.html">
114119 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
4040 <div class="textblock"><h2><a class="anchor" id="advanced_swizzle"></a>
4141 Swizzle Operators</h2>
4242 <p>A common feature of shader languages like GLSL is components swizzling. This involves being able to select which components of a vector are used and in what order. For example, "variable.x", "variable.xxy", "variable.zxyy" are examples of swizzling.</p>
43 <div class="fragment"><pre class="fragment"><a class="code" href="a00235.html#ga8fad5ffc01ba6dea689f2a38bf30bda4" title="4 components vector of floating-point numbers.">vec4</a> A;
43 <div class="fragment"><pre class="fragment"><a class="code" href="a00234.html#ga8fad5ffc01ba6dea689f2a38bf30bda4" title="4 components vector of floating-point numbers.">vec4</a> A;
4444 vec2 B;
4545 ...
4646 B.yx = A.wy;
101101 <span class="preprocessor">#include &lt;glm/glm.hpp&gt;</span>
102102 </pre></div><h2><a class="anchor" id="advanced_simd"></a>
103103 SIMD support</h2>
104 <p>GLM provides some SIMD optimizations based on compiler intrinsics. These optimizations will be automatically utilized based on the build environment. These optimizations are mainly available through the extensions <a class="el" href="a00292.html">GLM_GTX_simd_vec4: SIMD vec4 type and functions</a> and <a class="el" href="a00291.html">GLM_GTX_simd_mat4: SIMD mat4 type and functions</a>.</p>
104 <p>GLM provides some SIMD optimizations based on compiler intrinsics. These optimizations will be automatically utilized based on the build environment. These optimizations are mainly available through the extensions <a class="el" href="a00291.html">GLM_GTX_simd_vec4: SIMD vec4 type and functions</a> and <a class="el" href="a00290.html">GLM_GTX_simd_mat4: SIMD mat4 type and functions</a>.</p>
105105 <p>A programmer can restrict or force instruction sets used for these optimizations using GLM_FORCE_SSE2 or GLM_FORCE_AVX.</p>
106106 <p>A programmer can discard the use of intrinsics by defining GLM_FORCE_PURE before any inclusion of &lt;<a class="el" href="a00052_source.html">glm/glm.hpp</a>&gt;. If GLM_FORCE_PURE is defined, then including a SIMD extension will generate a build error.</p>
107107 <div class="fragment"><pre class="fragment"><span class="preprocessor">#define GLM_FORCE_PURE</span>
3737 <h1>Deprecated function replacements </h1> </div>
3838 </div>
3939 <div class="contents">
40 <div class="textblock"><p>The OpenGL 3.0 specification deprecated some features, and most of these have been removed from the OpenGL 3.1 specfication and beyond. GLM provides some replacement functions. Many of these functions come from the <a class="el" href="a00244.html">GLM_GTC_matrix_transform: Matrix transform functions.</a> extension.</p>
40 <div class="textblock"><p>The OpenGL 3.0 specification deprecated some features, and most of these have been removed from the OpenGL 3.1 specfication and beyond. GLM provides some replacement functions. Many of these functions come from the <a class="el" href="a00243.html">GLM_GTC_matrix_transform: Matrix transform functions.</a> extension.</p>
4141 <h2><a class="anchor" id="deprecated_opengl"></a>
4242 OpenGL function replacements</h2>
4343 <dl>
4444 <dt>glRotate[fd] </dt>
45 <dd><a class="el" href="a00244.html#ga48168ff70412019857ceb28b3b2b1f5e">glm::rotate </a> </dd>
45 <dd><a class="el" href="a00243.html#ga48168ff70412019857ceb28b3b2b1f5e">glm::rotate </a> </dd>
4646 <dt>glScale[fd] </dt>
47 <dd><a class="el" href="a00244.html#ga6da77ee2c33d0d33de557a37ff35b197">glm::scale </a> </dd>
47 <dd><a class="el" href="a00243.html#ga6da77ee2c33d0d33de557a37ff35b197">glm::scale </a> </dd>
4848 <dt>glTranslate[fd] </dt>
49 <dd><a class="el" href="a00244.html#ga4683c446c8432476750ade56f2537397">glm::translate </a> </dd>
49 <dd><a class="el" href="a00243.html#ga4683c446c8432476750ade56f2537397">glm::translate </a> </dd>
5050 <dt>glLoadIdentity </dt>
5151 <dd>The default constructor of all matrix types creates an identity matrix. </dd>
5252 <dt>glMultMatrix[fd] </dt>
5353 <dd>Per the GLSL specification, the multiplication operator is overloaded for all matrix types. Multiplying two matrices together will perform matrix multiplication. </dd>
5454 <dt>glLoadTransposeMatrix[fd] </dt>
55 <dd><a class="el" href="a00238.html#ga8b1a22512f73b0176ad062d3d480e906">glm::transpose </a> </dd>
55 <dd><a class="el" href="a00237.html#ga8b1a22512f73b0176ad062d3d480e906">glm::transpose </a> </dd>
5656 <dt>glMultTransposeMatrix </dt>
5757 <dd>Combine the last two. </dd>
5858 <dt>glFrustum </dt>
59 <dd><a class="el" href="a00244.html#ga517623bf6344a9e276b877366143116a">glm::frustum </a> </dd>
59 <dd><a class="el" href="a00243.html#ga517623bf6344a9e276b877366143116a">glm::frustum </a> </dd>
6060 <dt>glOrtho </dt>
61 <dd><a class="el" href="a00244.html#gad25e5b029ebefac5b657861378c17aa8">glm::ortho </a> </dd>
61 <dd><a class="el" href="a00243.html#gad25e5b029ebefac5b657861378c17aa8">glm::ortho </a> </dd>
6262 <dt>gluLookAt </dt>
63 <dd><a class="el" href="a00244.html#ga2d6b6c381f047ea4d9ca4145fed9edd5">glm::lookAt </a> </dd>
63 <dd><a class="el" href="a00243.html#ga2d6b6c381f047ea4d9ca4145fed9edd5">glm::lookAt </a> </dd>
6464 </dl>
6565 <h2><a class="anchor" id="deprecated_glu"></a>
6666 GLU function replacements</h2>
6767 <dl>
6868 <dt>gluOrtho2D </dt>
69 <dd><a class="el" href="a00244.html#gad25e5b029ebefac5b657861378c17aa8">glm::ortho </a> </dd>
69 <dd><a class="el" href="a00243.html#gad25e5b029ebefac5b657861378c17aa8">glm::ortho </a> </dd>
7070 <dt>gluPerspective </dt>
71 <dd><a class="el" href="a00244.html#ga1bb3652e43f824d8c1dd5b9e60c80437">glm::perspective </a> </dd>
71 <dd><a class="el" href="a00243.html#ga1bb3652e43f824d8c1dd5b9e60c80437">glm::perspective </a> </dd>
7272 <dt>gluProject </dt>
73 <dd><a class="el" href="a00244.html#ga30e98d64189bae49582de8373de9f09f">glm::project </a> </dd>
73 <dd><a class="el" href="a00243.html#ga30e98d64189bae49582de8373de9f09f">glm::project </a> </dd>
7474 <dt>gluUnProject </dt>
75 <dd><a class="el" href="a00244.html#gac38d611231b15799a0c06c54ff1ede43">glm::unProject </a> </dd>
75 <dd><a class="el" href="a00243.html#gac38d611231b15799a0c06c54ff1ede43">glm::unProject </a> </dd>
7676 </dl>
7777 </div></div>
7878 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4141 <ul>
4242 <li>
4343 <p class="startli">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.</p>
44 <p>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 <a class="el" href="a00236.html">their own section</a>.</p>
44 <p>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 <a class="el" href="a00235.html">their own section</a>.</p>
4545 <p class="endli">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. </p>
4646 </li>
4747 </ul>
4848 <p>No, this is not what GLM intends to do!</p>
4949 <h2><a class="anchor" id="faq4"></a>
5050 Should I use GTX extensions?</h2>
51 <p><a class="el" href="a00248.html">GTX Extensions (Experimental)</a> are experimental. In GLM this means that these extensions might change from version to version without restriction. In practice, it doesn't really change except time to time. GTC extensions are stabled, tested and perfectly reliable in time. Many GTX extensions extend GTC extensions and provide a way to explore features and implementations before becoming stable by a promotion as GTC extensions. This is similar to how OpenGL extensions can be EXT or ARB extensions before becoming core functionality.</p>
51 <p><a class="el" href="a00247.html">GTX Extensions (Experimental)</a> are experimental. In GLM this means that these extensions might change from version to version without restriction. In practice, it doesn't really change except time to time. GTC extensions are stabled, tested and perfectly reliable in time. Many GTX extensions extend GTC extensions and provide a way to explore features and implementations before becoming stable by a promotion as GTC extensions. This is similar to how OpenGL extensions can be EXT or ARB extensions before becoming core functionality.</p>
5252 <p>In short, if you use a GTX extension, the API is much more likely to change from version to version than if you don't. But you should not feel too uncomfortable about using them.</p>
5353 <h2><a class="anchor" id="faq5"></a>
5454 Where can I ask my questions?</h2>
4747 <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a> <span class="keyword">const</span> &amp; b,
4848 <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a> <span class="keyword">const</span> &amp; c)
4949 {
50 <span class="keywordflow">return</span> <a class="code" href="a00238.html#ga07ff16965f11fa17122ac874ed492276" title="Returns a vector in the same direction as x but with length of 1.">glm::normalize</a>(<a class="code" href="a00238.html#ga63272179a066d755953bcfbe38666257" title="Returns the cross product of x and y.">glm::cross</a>(c - a, b - a));
50 <span class="keywordflow">return</span> <a class="code" href="a00237.html#ga07ff16965f11fa17122ac874ed492276" title="Returns a vector in the same direction as x but with length of 1.">glm::normalize</a>(<a class="code" href="a00237.html#ga63272179a066d755953bcfbe38666257" title="Returns the cross product of x and y.">glm::cross</a>(c - a, b - a));
5151 }
5252 </pre></div><p>A potentially faster, but less accurate alternative:</p>
5353 <div class="fragment"><pre class="fragment"><span class="preprocessor">#include &lt;glm/glm.hpp&gt;</span> <span class="comment">// vec3 cross</span>
5858 <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a> <span class="keyword">const</span> &amp; b,
5959 <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a> <span class="keyword">const</span> &amp; c)
6060 {
61 <span class="keywordflow">return</span> <a class="code" href="a00262.html#ga7e785d24d7bbac63f273baf9af1160da" title="Faster than the common normalize function but less accurate.">glm::fastNormalize</a>(<a class="code" href="a00238.html#ga63272179a066d755953bcfbe38666257" title="Returns the cross product of x and y.">glm::cross</a>(c - a, b - a));
61 <span class="keywordflow">return</span> <a class="code" href="a00261.html#ga7e785d24d7bbac63f273baf9af1160da" title="Faster than the common normalize function but less accurate.">glm::fastNormalize</a>(<a class="code" href="a00237.html#ga63272179a066d755953bcfbe38666257" title="Returns the cross product of x and y.">glm::cross</a>(c - a, b - a));
6262 }
6363 </pre></div><h2><a class="anchor" id="sample2"></a>
6464 Matrix Transform</h2>
7272 <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a> <span class="keyword">const</span> &amp; Rotate)
7373 {
7474 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> Projection =
75 <a class="code" href="a00244.html#ga1bb3652e43f824d8c1dd5b9e60c80437" title="Creates a matrix for a symetric perspective-view frustum.">glm::perspective</a>(45.0f, 4.0f / 3.0f, 0.1f, 100.f);
76 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> ViewTranslate = <a class="code" href="a00244.html#ga4683c446c8432476750ade56f2537397" title="Builds a translation 4 * 4 matrix created from a vector of 3 components.">glm::translate</a>(
75 <a class="code" href="a00243.html#ga1bb3652e43f824d8c1dd5b9e60c80437" title="Creates a matrix for a symetric perspective-view frustum.">glm::perspective</a>(45.0f, 4.0f / 3.0f, 0.1f, 100.f);
76 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> ViewTranslate = <a class="code" href="a00243.html#ga4683c446c8432476750ade56f2537397" title="Builds a translation 4 * 4 matrix created from a vector of 3 components.">glm::translate</a>(
7777 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a>(1.0f),
7878 Translate);
79 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> ViewRotateX = <a class="code" href="a00244.html#ga48168ff70412019857ceb28b3b2b1f5e" title="Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees...">glm::rotate</a>(
79 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> ViewRotateX = <a class="code" href="a00243.html#ga48168ff70412019857ceb28b3b2b1f5e" title="Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees...">glm::rotate</a>(
8080 ViewTranslate,
8181 Rotate.y, <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a>(-1.0f, 0.0f, 0.0f));
82 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> View = <a class="code" href="a00244.html#ga48168ff70412019857ceb28b3b2b1f5e" title="Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees...">glm::rotate</a>(
82 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> View = <a class="code" href="a00243.html#ga48168ff70412019857ceb28b3b2b1f5e" title="Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees...">glm::rotate</a>(
8383 ViewRotateX,
8484 Rotate.x, <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a>(0.0f, 1.0f, 0.0f));
85 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> Model = <a class="code" href="a00244.html#ga6da77ee2c33d0d33de557a37ff35b197" title="Builds a scale 4 * 4 matrix created from 3 scalars.">glm::scale</a>(
85 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> Model = <a class="code" href="a00243.html#ga6da77ee2c33d0d33de557a37ff35b197" title="Builds a scale 4 * 4 matrix created from 3 scalars.">glm::scale</a>(
8686 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a>(1.0f),
8787 <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a>(0.5f));
8888 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> MVP = Projection * View * Model;
8989 glUniformMatrix4fv(
90 Location, 1, GL_FALSE, <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">glm::value_ptr</a>(MVP));
90 Location, 1, GL_FALSE, <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">glm::value_ptr</a>(MVP));
9191 }
9292 </pre></div><h2><a class="anchor" id="sample3"></a>
9393 Vector Types</h2>
106106 };
107107
108108 <span class="comment">// Half-float quad geometry</span>
109 std::size_t <span class="keyword">const</span> PositionSizeF16 = VertexCount * <span class="keyword">sizeof</span>(<a class="code" href="a00240.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a" title="Vector of 2 half-precision floating-point numbers.">glm::hvec2</a>);
109 std::size_t <span class="keyword">const</span> PositionSizeF16 = VertexCount * <span class="keyword">sizeof</span>(<a class="code" href="a00239.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a" title="Vector of 2 half-precision floating-point numbers.">glm::hvec2</a>);
110110 <a class="code" href="a00020.html" title="The basic 2D vector type.">glm::hvec2</a> <span class="keyword">const</span> PositionDataF16[VertexCount] =
111111 {
112 <a class="code" href="a00240.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a" title="Vector of 2 half-precision floating-point numbers.">glm::hvec2</a>(-1.0f, -1.0f),
113 <a class="code" href="a00240.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a" title="Vector of 2 half-precision floating-point numbers.">glm::hvec2</a>( 1.0f, -1.0f),
114 <a class="code" href="a00240.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a" title="Vector of 2 half-precision floating-point numbers.">glm::hvec2</a>( 1.0f, 1.0f),
115 <a class="code" href="a00240.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a" title="Vector of 2 half-precision floating-point numbers.">glm::hvec2</a>(-1.0f, 1.0f)
112 <a class="code" href="a00239.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a" title="Vector of 2 half-precision floating-point numbers.">glm::hvec2</a>(-1.0f, -1.0f),
113 <a class="code" href="a00239.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a" title="Vector of 2 half-precision floating-point numbers.">glm::hvec2</a>( 1.0f, -1.0f),
114 <a class="code" href="a00239.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a" title="Vector of 2 half-precision floating-point numbers.">glm::hvec2</a>( 1.0f, 1.0f),
115 <a class="code" href="a00239.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a" title="Vector of 2 half-precision floating-point numbers.">glm::hvec2</a>(-1.0f, 1.0f)
116116 };
117117
118118 <span class="comment">// 8 bits signed integer quad geometry</span>
119 std::size_t <span class="keyword">const</span> PositionSizeI8 = VertexCount * <span class="keyword">sizeof</span>(<a class="code" href="a00246.html#ga9ab3f26fa232d5a4d2397d7904eb9069" title="8bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i8vec2</a>);
119 std::size_t <span class="keyword">const</span> PositionSizeI8 = VertexCount * <span class="keyword">sizeof</span>(<a class="code" href="a00245.html#ga9ab3f26fa232d5a4d2397d7904eb9069" title="8bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i8vec2</a>);
120120 <a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i8vec2</a> <span class="keyword">const</span> PositionDataI8[VertexCount] =
121121 {
122 <a class="code" href="a00246.html#ga9ab3f26fa232d5a4d2397d7904eb9069" title="8bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i8vec2</a>(-1,-1),
123 <a class="code" href="a00246.html#ga9ab3f26fa232d5a4d2397d7904eb9069" title="8bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i8vec2</a>( 1,-1),
124 <a class="code" href="a00246.html#ga9ab3f26fa232d5a4d2397d7904eb9069" title="8bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i8vec2</a>( 1, 1),
125 <a class="code" href="a00246.html#ga9ab3f26fa232d5a4d2397d7904eb9069" title="8bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i8vec2</a>(-1, 1)
122 <a class="code" href="a00245.html#ga9ab3f26fa232d5a4d2397d7904eb9069" title="8bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i8vec2</a>(-1,-1),
123 <a class="code" href="a00245.html#ga9ab3f26fa232d5a4d2397d7904eb9069" title="8bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i8vec2</a>( 1,-1),
124 <a class="code" href="a00245.html#ga9ab3f26fa232d5a4d2397d7904eb9069" title="8bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i8vec2</a>( 1, 1),
125 <a class="code" href="a00245.html#ga9ab3f26fa232d5a4d2397d7904eb9069" title="8bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i8vec2</a>(-1, 1)
126126 };
127127
128128 <span class="comment">// 32 bits signed integer quad geometry</span>
129 std::size_t <span class="keyword">const</span> PositionSizeI32 = VertexCount * <span class="keyword">sizeof</span>(<a class="code" href="a00246.html#ga587a33330386e50f7ff9a870f1b62ab1" title="32bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i32vec2</a>);
129 std::size_t <span class="keyword">const</span> PositionSizeI32 = VertexCount * <span class="keyword">sizeof</span>(<a class="code" href="a00245.html#ga587a33330386e50f7ff9a870f1b62ab1" title="32bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i32vec2</a>);
130130 <a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i32vec2</a> <span class="keyword">const</span> PositionDataI32[VertexCount] =
131131 {
132 <a class="code" href="a00246.html#ga587a33330386e50f7ff9a870f1b62ab1" title="32bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i32vec2</a> (-1,-1),
133 <a class="code" href="a00246.html#ga587a33330386e50f7ff9a870f1b62ab1" title="32bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i32vec2</a> ( 1,-1),
134 <a class="code" href="a00246.html#ga587a33330386e50f7ff9a870f1b62ab1" title="32bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i32vec2</a> ( 1, 1),
135 <a class="code" href="a00246.html#ga587a33330386e50f7ff9a870f1b62ab1" title="32bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i32vec2</a> (-1, 1)
132 <a class="code" href="a00245.html#ga587a33330386e50f7ff9a870f1b62ab1" title="32bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i32vec2</a> (-1,-1),
133 <a class="code" href="a00245.html#ga587a33330386e50f7ff9a870f1b62ab1" title="32bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i32vec2</a> ( 1,-1),
134 <a class="code" href="a00245.html#ga587a33330386e50f7ff9a870f1b62ab1" title="32bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i32vec2</a> ( 1, 1),
135 <a class="code" href="a00245.html#ga587a33330386e50f7ff9a870f1b62ab1" title="32bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">glm::i32vec2</a> (-1, 1)
136136 };
137137 </pre></div><h2><a class="anchor" id="sample4"></a>
138138 Lighting</h2>
147147 light <span class="keyword">const</span> &amp; Light,
148148 <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a> <span class="keyword">const</span> &amp; View)
149149 {
150 <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a> Color = <a class="code" href="a00235.html#gac422c7058a7c9963b55ad70764c62752" title="3 components vector of floating-point numbers.">glm::vec3</a>(0.0f);
151 <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a> LightVertor = <a class="code" href="a00238.html#ga07ff16965f11fa17122ac874ed492276" title="Returns a vector in the same direction as x but with length of 1.">glm::normalize</a>(
150 <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a> Color = <a class="code" href="a00234.html#gac422c7058a7c9963b55ad70764c62752" title="3 components vector of floating-point numbers.">glm::vec3</a>(0.0f);
151 <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a> LightVertor = <a class="code" href="a00237.html#ga07ff16965f11fa17122ac874ed492276" title="Returns a vector in the same direction as x but with length of 1.">glm::normalize</a>(
152152 Light.position() - Intersection.globalPosition() +
153 <a class="code" href="a00287.html#ga63249d58e1327a83638f1cf8b421a0de" title="Generate a random normalized 3 component vector. It&amp;#39;s a spherical uniform distribution. (From GLM_GTX_random extension)">glm::vecRand3</a>(0.0f, Light.inaccuracy());
153 <a class="code" href="a00286.html#ga63249d58e1327a83638f1cf8b421a0de" title="Generate a random normalized 3 component vector. It&amp;#39;s a spherical uniform distribution. (From GLM_GTX_random extension)">glm::vecRand3</a>(0.0f, Light.inaccuracy());
154154
155155 <span class="keywordflow">if</span>(!shadow(
156156 Intersection.globalPosition(),
157157 Light.position(),
158158 LightVertor))
159159 {
160 <span class="keywordtype">float</span> Diffuse = <a class="code" href="a00238.html#ga38e1f1538ac0fedc9d6ac14910105421" title="Returns the dot product of x and y, i.e., result = x * y.">glm::dot</a>(Intersection.normal(), LightVector);
160 <span class="keywordtype">float</span> Diffuse = <a class="code" href="a00237.html#ga38e1f1538ac0fedc9d6ac14910105421" title="Returns the dot product of x and y, i.e., result = x * y.">glm::dot</a>(Intersection.normal(), LightVector);
161161 <span class="keywordflow">if</span>(Diffuse &lt;= 0.0f)
162162 <span class="keywordflow">return</span> Color;
163163 <span class="keywordflow">if</span>(Material.isDiffuse())
165165
166166 <span class="keywordflow">if</span>(Material.isSpecular())
167167 {
168 <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a> Reflect = <a class="code" href="a00238.html#ga2863d2331eb3752a5a17244c604c1d07" title="For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...">glm::reflect</a>(
168 <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a> Reflect = <a class="code" href="a00237.html#ga2863d2331eb3752a5a17244c604c1d07" title="For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...">glm::reflect</a>(
169169 -LightVector,
170170 Intersection.normal());
171 <span class="keywordtype">float</span> Dot = <a class="code" href="a00238.html#ga38e1f1538ac0fedc9d6ac14910105421" title="Returns the dot product of x and y, i.e., result = x * y.">glm::dot</a>(Reflect, View);
171 <span class="keywordtype">float</span> Dot = <a class="code" href="a00237.html#ga38e1f1538ac0fedc9d6ac14910105421" title="Returns the dot product of x and y, i.e., result = x * y.">glm::dot</a>(Reflect, View);
172172 <span class="keywordtype">float</span> Base = Dot &gt; 0.0f ? Dot : 0.0f;
173 <span class="keywordtype">float</span> Specular = <a class="code" href="a00238.html#ga8eb76dfbf0fed3397c0327915279f06f" title="Returns x raised to the y power.">glm::pow</a>(Base, Material.exponent());
173 <span class="keywordtype">float</span> Specular = <a class="code" href="a00237.html#ga8eb76dfbf0fed3397c0327915279f06f" title="Returns x raised to the y power.">glm::pow</a>(Base, Material.exponent());
174174 Color += Material.specular() * Specular;
175175 }
176176 <span class="keywordflow">return</span> Color;
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00009.html">thalf</a> </li>
4040 </ul>
4242 </div>
4343 <div class="header">
4444 <div class="headertitle">
45 <h1>thalf Class Reference<div class="ingroups"><a class="el" href="a00240.html">GLM_GTC_half_float: Half-precision floating-point based types and functions.</a></div></h1> </div>
45 <h1>thalf Class Reference<div class="ingroups"><a class="el" href="a00239.html">GLM_GTC_half_float: Half-precision floating-point based types and functions.</a></div></h1> </div>
4646 </div>
4747 <div class="contents">
4848 <!-- doxytag: class="glm::detail::thalf" -->
5555 <hr/><a name="_details"></a><h2>Detailed Description</h2>
5656 <div class="textblock"><p>16-bit floating point type. </p>
5757
58 <p>Definition at line <a class="el" href="a00113_source.html#l00032">32</a> of file <a class="el" href="a00113_source.html">type_half.hpp</a>.</p>
58 <p>Definition at line <a class="el" href="a00113_source.html#l00025">25</a> of file <a class="el" href="a00113_source.html">type_half.hpp</a>.</p>
5959 </div></div>
6060 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6161 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00010.html">tmat2x2</a> </li>
4040 </ul>
4242 </div>
4343 <div class="header">
4444 <div class="headertitle">
45 <h1>tmat2x2&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00237.html">Template types</a></div></h1> </div>
45 <h1>tmat2x2&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00236.html">Template types</a></div></h1> </div>
4646 </div>
4747 <div class="contents">
4848 <!-- doxytag: class="glm::detail::tmat2x2" -->
5858
5959 <p>Template for 2 * 2 matrix of floating-point numbers. </p>
6060
61 <p>Definition at line <a class="el" href="a00116_source.html#l00041">41</a> of file <a class="el" href="a00116_source.html">type_mat2x2.hpp</a>.</p>
61 <p>Definition at line <a class="el" href="a00116_source.html#l00035">35</a> of file <a class="el" href="a00116_source.html">type_mat2x2.hpp</a>.</p>
6262 </div></div>
6363 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6464 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00011.html">tmat2x3</a> </li>
4040 </ul>
4242 </div>
4343 <div class="header">
4444 <div class="headertitle">
45 <h1>tmat2x3&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00237.html">Template types</a></div></h1> </div>
45 <h1>tmat2x3&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00236.html">Template types</a></div></h1> </div>
4646 </div>
4747 <div class="contents">
4848 <!-- doxytag: class="glm::detail::tmat2x3" -->
5858
5959 <p>Template for 2 columns and 3 rows matrix of floating-point numbers. </p>
6060
61 <p>Definition at line <a class="el" href="a00117_source.html#l00041">41</a> of file <a class="el" href="a00117_source.html">type_mat2x3.hpp</a>.</p>
61 <p>Definition at line <a class="el" href="a00117_source.html#l00035">35</a> of file <a class="el" href="a00117_source.html">type_mat2x3.hpp</a>.</p>
6262 </div></div>
6363 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6464 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00012.html">tmat2x4</a> </li>
4040 </ul>
4242 </div>
4343 <div class="header">
4444 <div class="headertitle">
45 <h1>tmat2x4&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00237.html">Template types</a></div></h1> </div>
45 <h1>tmat2x4&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00236.html">Template types</a></div></h1> </div>
4646 </div>
4747 <div class="contents">
4848 <!-- doxytag: class="glm::detail::tmat2x4" -->
5858
5959 <p>Template for 2 columns and 4 rows matrix of floating-point numbers. </p>
6060
61 <p>Definition at line <a class="el" href="a00118_source.html#l00041">41</a> of file <a class="el" href="a00118_source.html">type_mat2x4.hpp</a>.</p>
61 <p>Definition at line <a class="el" href="a00118_source.html#l00035">35</a> of file <a class="el" href="a00118_source.html">type_mat2x4.hpp</a>.</p>
6262 </div></div>
6363 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6464 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00013.html">tmat3x2</a> </li>
4040 </ul>
4242 </div>
4343 <div class="header">
4444 <div class="headertitle">
45 <h1>tmat3x2&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00237.html">Template types</a></div></h1> </div>
45 <h1>tmat3x2&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00236.html">Template types</a></div></h1> </div>
4646 </div>
4747 <div class="contents">
4848 <!-- doxytag: class="glm::detail::tmat3x2" -->
5858
5959 <p>Template for 3 columns and 2 rows matrix of floating-point numbers. </p>
6060
61 <p>Definition at line <a class="el" href="a00119_source.html#l00041">41</a> of file <a class="el" href="a00119_source.html">type_mat3x2.hpp</a>.</p>
61 <p>Definition at line <a class="el" href="a00119_source.html#l00035">35</a> of file <a class="el" href="a00119_source.html">type_mat3x2.hpp</a>.</p>
6262 </div></div>
6363 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6464 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00014.html">tmat3x3</a> </li>
4040 </ul>
4242 </div>
4343 <div class="header">
4444 <div class="headertitle">
45 <h1>tmat3x3&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00237.html">Template types</a></div></h1> </div>
45 <h1>tmat3x3&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00236.html">Template types</a></div></h1> </div>
4646 </div>
4747 <div class="contents">
4848 <!-- doxytag: class="glm::detail::tmat3x3" -->
5858
5959 <p>Template for 3 * 3 matrix of floating-point numbers. </p>
6060
61 <p>Definition at line <a class="el" href="a00120_source.html#l00041">41</a> of file <a class="el" href="a00120_source.html">type_mat3x3.hpp</a>.</p>
61 <p>Definition at line <a class="el" href="a00120_source.html#l00035">35</a> of file <a class="el" href="a00120_source.html">type_mat3x3.hpp</a>.</p>
6262 </div></div>
6363 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6464 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00015.html">tmat3x4</a> </li>
4040 </ul>
4242 </div>
4343 <div class="header">
4444 <div class="headertitle">
45 <h1>tmat3x4&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00237.html">Template types</a></div></h1> </div>
45 <h1>tmat3x4&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00236.html">Template types</a></div></h1> </div>
4646 </div>
4747 <div class="contents">
4848 <!-- doxytag: class="glm::detail::tmat3x4" -->
5858
5959 <p>Template for 3 columns and 4 rows matrix of floating-point numbers. </p>
6060
61 <p>Definition at line <a class="el" href="a00121_source.html#l00041">41</a> of file <a class="el" href="a00121_source.html">type_mat3x4.hpp</a>.</p>
61 <p>Definition at line <a class="el" href="a00121_source.html#l00035">35</a> of file <a class="el" href="a00121_source.html">type_mat3x4.hpp</a>.</p>
6262 </div></div>
6363 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6464 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00016.html">tmat4x2</a> </li>
4040 </ul>
4242 </div>
4343 <div class="header">
4444 <div class="headertitle">
45 <h1>tmat4x2&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00237.html">Template types</a></div></h1> </div>
45 <h1>tmat4x2&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00236.html">Template types</a></div></h1> </div>
4646 </div>
4747 <div class="contents">
4848 <!-- doxytag: class="glm::detail::tmat4x2" -->
5858
5959 <p>Template for 4 columns and 2 rows matrix of floating-point numbers. </p>
6060
61 <p>Definition at line <a class="el" href="a00122_source.html#l00041">41</a> of file <a class="el" href="a00122_source.html">type_mat4x2.hpp</a>.</p>
61 <p>Definition at line <a class="el" href="a00122_source.html#l00035">35</a> of file <a class="el" href="a00122_source.html">type_mat4x2.hpp</a>.</p>
6262 </div></div>
6363 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6464 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00017.html">tmat4x3</a> </li>
4040 </ul>
4242 </div>
4343 <div class="header">
4444 <div class="headertitle">
45 <h1>tmat4x3&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00237.html">Template types</a></div></h1> </div>
45 <h1>tmat4x3&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00236.html">Template types</a></div></h1> </div>
4646 </div>
4747 <div class="contents">
4848 <!-- doxytag: class="glm::detail::tmat4x3" -->
5858
5959 <p>Template for 4 columns and 3 rows matrix of floating-point numbers. </p>
6060
61 <p>Definition at line <a class="el" href="a00123_source.html#l00041">41</a> of file <a class="el" href="a00123_source.html">type_mat4x3.hpp</a>.</p>
61 <p>Definition at line <a class="el" href="a00123_source.html#l00035">35</a> of file <a class="el" href="a00123_source.html">type_mat4x3.hpp</a>.</p>
6262 </div></div>
6363 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6464 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00018.html">tmat4x4</a> </li>
4040 </ul>
4242 </div>
4343 <div class="header">
4444 <div class="headertitle">
45 <h1>tmat4x4&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00237.html">Template types</a></div></h1> </div>
45 <h1>tmat4x4&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00236.html">Template types</a></div></h1> </div>
4646 </div>
4747 <div class="contents">
4848 <!-- doxytag: class="glm::detail::tmat4x4" -->
5858
5959 <p>Template for 4 * 4 matrix of floating-point numbers. </p>
6060
61 <p>Definition at line <a class="el" href="a00124_source.html#l00041">41</a> of file <a class="el" href="a00124_source.html">type_mat4x4.hpp</a>.</p>
61 <p>Definition at line <a class="el" href="a00124_source.html#l00035">35</a> of file <a class="el" href="a00124_source.html">type_mat4x4.hpp</a>.</p>
6262 </div></div>
6363 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6464 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00019.html">tquat</a> </li>
4040 </ul>
4444 <div class="summary">
4545 <a href="#pub-methods">Public Member Functions</a> </div>
4646 <div class="headertitle">
47 <h1>tquat&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00245.html">GLM_GTC_quaternion: Quaternion types and functions</a></div></h1> </div>
47 <h1>tquat&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00244.html">GLM_GTC_quaternion: Quaternion types and functions</a></div></h1> </div>
4848 </div>
4949 <div class="contents">
5050 <!-- doxytag: class="glm::detail::tquat" -->
6565 <p>Template for quaternion. </p>
6666 <p>From GLM_GTC_quaternion extension. </p>
6767
68 <p>Definition at line <a class="el" href="a00094_source.html#l00041">41</a> of file <a class="el" href="a00094_source.html">gtc/quaternion.hpp</a>.</p>
68 <p>Definition at line <a class="el" href="a00094_source.html#l00036">36</a> of file <a class="el" href="a00094_source.html">gtc/quaternion.hpp</a>.</p>
6969 </div></div>
7070 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7171 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00020.html">tvec2</a> </li>
4040 </ul>
4444 <div class="summary">
4545 <a href="#pub-methods">Public Member Functions</a> </div>
4646 <div class="headertitle">
47 <h1>tvec2&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00237.html">Template types</a></div></h1> </div>
47 <h1>tvec2&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00236.html">Template types</a></div></h1> </div>
4848 </div>
4949 <div class="contents">
5050 <!-- doxytag: class="glm::detail::tvec2" -->
7777
7878 <p>The basic 2D vector type. </p>
7979
80 <p>Definition at line <a class="el" href="a00130_source.html#l00038">38</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
80 <p>Definition at line <a class="el" href="a00130_source.html#l00031">31</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
8181 </div></div>
8282 <hr class="footer"/><address class="footer"><small>Generated by&#160;
8383 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00021.html">tvec3</a> </li>
4040 </ul>
4444 <div class="summary">
4545 <a href="#pub-methods">Public Member Functions</a> </div>
4646 <div class="headertitle">
47 <h1>tvec3&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00237.html">Template types</a></div></h1> </div>
47 <h1>tvec3&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00236.html">Template types</a></div></h1> </div>
4848 </div>
4949 <div class="contents">
5050 <!-- doxytag: class="glm::detail::tvec3" -->
8080
8181 <p>Basic 3D vector type. </p>
8282
83 <p>Definition at line <a class="el" href="a00131_source.html#l00037">37</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
83 <p>Definition at line <a class="el" href="a00131_source.html#l00031">31</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
8484 </div></div>
8585 <hr class="footer"/><address class="footer"><small>Generated by&#160;
8686 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00022.html">tvec4</a> </li>
4040 </ul>
4444 <div class="summary">
4545 <a href="#pub-methods">Public Member Functions</a> </div>
4646 <div class="headertitle">
47 <h1>tvec4&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00237.html">Template types</a></div></h1> </div>
47 <h1>tvec4&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00236.html">Template types</a></div></h1> </div>
4848 </div>
4949 <div class="contents">
5050 <!-- doxytag: class="glm::detail::tvec4" -->
8989
9090 <p>Basic 4D vector type. </p>
9191
92 <p>Definition at line <a class="el" href="a00132_source.html#l00037">37</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
92 <p>Definition at line <a class="el" href="a00132_source.html#l00031">31</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
9393 </div></div>
9494 <hr class="footer"/><address class="footer"><small>Generated by&#160;
9595 <a href="http://www.doxygen.org/index.html">
4949 <a name="l00013"></a>00013 <span class="preprocessor">#include &quot;setup.hpp&quot;</span>
5050 <a name="l00014"></a>00014 <span class="preprocessor">#include &lt;cassert&gt;</span>
5151 <a name="l00015"></a>00015
52 <a name="l00016"></a><a class="code" href="a00143.html">00016</a> <span class="keyword">namespace </span>glm{
52 <a name="l00016"></a><a class="code" href="a00145.html">00016</a> <span class="keyword">namespace </span>glm{
5353 <a name="l00017"></a>00017 <span class="keyword">namespace </span>detail
5454 <a name="l00018"></a>00018 {
5555 <a name="l00019"></a>00019 <span class="keyword">class </span>thalf;
5656 <a name="l00020"></a>00020
57 <a name="l00021"></a>00021 <span class="preprocessor">#if(__STDC_VERSION__ &gt;= 199901L) // C99 detected, 64 bit types available</span>
57 <a name="l00021"></a>00021 <span class="preprocessor">#if(defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 199901L)) // C99 detected, 64 bit types available</span>
5858 <a name="l00022"></a>00022 <span class="preprocessor"></span> <span class="keyword">typedef</span> int64_t sint64;
59 <a name="l00023"></a>00023 <span class="keyword">typedef</span> uint64_t <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">uint64</a>;
59 <a name="l00023"></a>00023 <span class="keyword">typedef</span> uint64_t <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">uint64</a>;
6060 <a name="l00024"></a>00024 <span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_VC)</span>
6161 <a name="l00025"></a>00025 <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> __int64 sint64;
62 <a name="l00026"></a>00026 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> __int64 <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">uint64</a>;
63 <a name="l00027"></a>00027 <span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_GCC)</span>
62 <a name="l00026"></a>00026 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> __int64 <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">uint64</a>;
63 <a name="l00027"></a>00027 <span class="preprocessor">#elif(GLM_COMPILER &amp; (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC | GLM_COMPILER_CLANG))</span>
6464 <a name="l00028"></a>00028 <span class="preprocessor"></span> __extension__ <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> sint64;
65 <a name="l00029"></a>00029 __extension__ <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">uint64</a>;
65 <a name="l00029"></a>00029 __extension__ <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">uint64</a>;
6666 <a name="l00030"></a>00030 <span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_BC)</span>
6767 <a name="l00031"></a>00031 <span class="preprocessor"></span> <span class="keyword">typedef</span> Int64 sint64;
68 <a name="l00032"></a>00032 <span class="keyword">typedef</span> Uint64 <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">uint64</a>;
68 <a name="l00032"></a>00032 <span class="keyword">typedef</span> Uint64 <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">uint64</a>;
6969 <a name="l00033"></a>00033 <span class="preprocessor">#else//unknown compiler</span>
70 <a name="l00034"></a>00034 <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> sint64;
71 <a name="l00035"></a>00035 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">uint64</a>;
70 <a name="l00034"></a>00034 <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> sint64;
71 <a name="l00035"></a>00035 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">uint64</a>;
7272 <a name="l00036"></a>00036 <span class="preprocessor">#endif//GLM_COMPILER</span>
7373 <a name="l00037"></a>00037 <span class="preprocessor"></span>
7474 <a name="l00038"></a>00038 <span class="keyword">template</span>&lt;<span class="keywordtype">bool</span> C&gt;
7575 <a name="l00039"></a>00039 <span class="keyword">struct </span>If
7676 <a name="l00040"></a>00040 {
7777 <a name="l00041"></a>00041 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> F, <span class="keyword">typename</span> T&gt;
78 <a name="l00042"></a>00042 <span class="keyword">static</span> GLM_FUNC_QUALIFIER T apply(F functor, <span class="keyword">const</span> T&amp; val)
78 <a name="l00042"></a>00042 <span class="keyword">static</span> GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> apply(F functor, <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; val)
7979 <a name="l00043"></a>00043 {
8080 <a name="l00044"></a>00044 <span class="keywordflow">return</span> functor(val);
8181 <a name="l00045"></a>00045 }
8585 <a name="l00049"></a>00049 <span class="keyword">struct </span>If&lt;false&gt;
8686 <a name="l00050"></a>00050 {
8787 <a name="l00051"></a>00051 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> F, <span class="keyword">typename</span> T&gt;
88 <a name="l00052"></a>00052 <span class="keyword">static</span> GLM_FUNC_QUALIFIER T apply(F, <span class="keyword">const</span> T&amp; val)
88 <a name="l00052"></a>00052 <span class="keyword">static</span> GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> apply(F, <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; val)
8989 <a name="l00053"></a>00053 {
9090 <a name="l00054"></a>00054 <span class="keywordflow">return</span> val;
9191 <a name="l00055"></a>00055 }
345345 <a name="l00317"></a>00317 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> uint8;
346346 <a name="l00318"></a>00318 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> uint16;
347347 <a name="l00319"></a>00319 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint32;
348 <a name="l00320"></a>00320 <span class="keyword">typedef</span> <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint64</a> uint64;
348 <a name="l00320"></a>00320 <span class="keyword">typedef</span> <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint64</a> uint64;
349349 <a name="l00321"></a>00321
350350 <a name="l00322"></a>00322 <span class="keyword">typedef</span> <a class="code" href="a00009.html" title="16-bit floating point type.">detail::thalf</a> <a class="code" href="a00009.html" title="16-bit floating point type.">float16</a>;
351351 <a name="l00323"></a>00323 <span class="keyword">typedef</span> <span class="keywordtype">float</span> float32;
360360 <a name="l00332"></a>00332 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct </span>
361361 <a name="l00333"></a>00333 <span class="preprocessor"></span><span class="preprocessor"># define GLM_RESTRICT __declspec(restrict)</span>
362362 <a name="l00334"></a>00334 <span class="preprocessor"></span><span class="preprocessor"># define GLM_RESTRICT_VAR __restrict</span>
363 <a name="l00335"></a>00335 <span class="preprocessor"></span><span class="preprocessor">#elif((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC31))</span>
363 <a name="l00335"></a>00335 <span class="preprocessor"></span><span class="preprocessor">#elif((GLM_COMPILER &amp; (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC)) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC31))</span>
364364 <a name="l00336"></a>00336 <span class="preprocessor"></span><span class="preprocessor"># define GLM_DEPRECATED __attribute__((__deprecated__))</span>
365365 <a name="l00337"></a>00337 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ALIGN(x) __attribute__((aligned(x)))</span>
366366 <a name="l00338"></a>00338 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))</span>
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="keyword">namespace </span>glm
5050 <a name="l00014"></a>00014 {
51 <a name="l00015"></a>00015 <span class="keyword">enum</span> comp
51 <a name="l00015"></a><a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">00015</a> <span class="keyword">enum</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a>
5252 <a name="l00016"></a>00016 {
5353 <a name="l00017"></a>00017 X = 0,
5454 <a name="l00018"></a>00018 R = 0,
5555 <a name="l00019"></a>00019 S = 0,
5656 <a name="l00020"></a>00020 Y = 1,
5757 <a name="l00021"></a>00021 G = 1,
58 <a name="l00022"></a>00022 T = 1,
58 <a name="l00022"></a><a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c">00022</a> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> = 1,
5959 <a name="l00023"></a>00023 Z = 2,
6060 <a name="l00024"></a>00024 B = 2,
6161 <a name="l00025"></a>00025 P = 2,
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_associated_min_max extension included&quot;)</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span>
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm
60 <a name="l00025"></a>00025 {
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>test{
62 <a name="l00027"></a>00027 <span class="keywordtype">void</span> main_gtx_associated_min_max();
63 <a name="l00028"></a>00028 }<span class="comment">//namespace test</span>
64 <a name="l00029"></a>00029
65 <a name="l00030"></a>00030 <span class="keyword">namespace </span>gtx
66 <a name="l00031"></a>00031 {
67 <a name="l00033"></a><a class="code" href="a00169.html">00033</a> <span class="keyword">namespace </span>associated_min_max
68 <a name="l00034"></a>00034 {
69 <a name="l00037"></a>00037
70 <a name="l00039"></a>00039 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
71 <a name="l00040"></a>00040 genTypeU <a class="code" href="a00249.html#ga84781b260e2851924efea99c4d2e5ae6" title="Min comparison between 2 variables.">associatedMin</a>(
72 <a name="l00041"></a>00041 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a,
73 <a name="l00042"></a>00042 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b);
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm{
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtx{
61 <a name="l00026"></a><a class="code" href="a00169.html">00026</a> <span class="keyword">namespace </span>associated_min_max
62 <a name="l00027"></a>00027 {
63 <a name="l00030"></a>00030
64 <a name="l00032"></a>00032 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
65 <a name="l00033"></a>00033 genTypeU <a class="code" href="a00248.html#ga84781b260e2851924efea99c4d2e5ae6" title="Min comparison between 2 variables.">associatedMin</a>(
66 <a name="l00034"></a>00034 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a,
67 <a name="l00035"></a>00035 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b);
68 <a name="l00036"></a>00036
69 <a name="l00038"></a>00038 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
70 <a name="l00039"></a>00039 genTypeU <a class="code" href="a00248.html#ga84781b260e2851924efea99c4d2e5ae6" title="Min comparison between 2 variables.">associatedMin</a>(
71 <a name="l00040"></a>00040 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a,
72 <a name="l00041"></a>00041 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b,
73 <a name="l00042"></a>00042 <span class="keyword">const</span> genTypeT&amp; z, <span class="keyword">const</span> genTypeU&amp; c);
7474 <a name="l00043"></a>00043
75 <a name="l00045"></a>00045 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
76 <a name="l00046"></a>00046 genTypeU <a class="code" href="a00249.html#ga84781b260e2851924efea99c4d2e5ae6" title="Min comparison between 2 variables.">associatedMin</a>(
77 <a name="l00047"></a>00047 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a,
78 <a name="l00048"></a>00048 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b,
79 <a name="l00049"></a>00049 <span class="keyword">const</span> genTypeT&amp; z, <span class="keyword">const</span> genTypeU&amp; c);
80 <a name="l00050"></a>00050
81 <a name="l00052"></a>00052 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
82 <a name="l00053"></a>00053 genTypeU <a class="code" href="a00249.html#ga84781b260e2851924efea99c4d2e5ae6" title="Min comparison between 2 variables.">associatedMin</a>(
83 <a name="l00054"></a>00054 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a,
84 <a name="l00055"></a>00055 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b,
85 <a name="l00056"></a>00056 <span class="keyword">const</span> genTypeT&amp; z, <span class="keyword">const</span> genTypeU&amp; c,
86 <a name="l00057"></a>00057 <span class="keyword">const</span> genTypeT&amp; w, <span class="keyword">const</span> genTypeU&amp; d);
87 <a name="l00058"></a>00058
88 <a name="l00060"></a>00060 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
89 <a name="l00061"></a>00061 genTypeU <a class="code" href="a00249.html#ga3b1c8d7070874427d0a0fd84885ce473" title="Max comparison between 2 variables.">associatedMax</a>(
90 <a name="l00062"></a>00062 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a,
91 <a name="l00063"></a>00063 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b);
75 <a name="l00045"></a>00045 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
76 <a name="l00046"></a>00046 genTypeU <a class="code" href="a00248.html#ga84781b260e2851924efea99c4d2e5ae6" title="Min comparison between 2 variables.">associatedMin</a>(
77 <a name="l00047"></a>00047 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a,
78 <a name="l00048"></a>00048 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b,
79 <a name="l00049"></a>00049 <span class="keyword">const</span> genTypeT&amp; z, <span class="keyword">const</span> genTypeU&amp; c,
80 <a name="l00050"></a>00050 <span class="keyword">const</span> genTypeT&amp; w, <span class="keyword">const</span> genTypeU&amp; d);
81 <a name="l00051"></a>00051
82 <a name="l00053"></a>00053 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
83 <a name="l00054"></a>00054 genTypeU <a class="code" href="a00248.html#ga3b1c8d7070874427d0a0fd84885ce473" title="Max comparison between 2 variables.">associatedMax</a>(
84 <a name="l00055"></a>00055 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a,
85 <a name="l00056"></a>00056 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b);
86 <a name="l00057"></a>00057
87 <a name="l00059"></a>00059 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
88 <a name="l00060"></a>00060 genTypeU <a class="code" href="a00248.html#ga3b1c8d7070874427d0a0fd84885ce473" title="Max comparison between 2 variables.">associatedMax</a>(
89 <a name="l00061"></a>00061 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a,
90 <a name="l00062"></a>00062 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b,
91 <a name="l00063"></a>00063 <span class="keyword">const</span> genTypeT&amp; z, <span class="keyword">const</span> genTypeU&amp; c);
9292 <a name="l00064"></a>00064
93 <a name="l00066"></a>00066 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
94 <a name="l00067"></a>00067 genTypeU <a class="code" href="a00249.html#ga3b1c8d7070874427d0a0fd84885ce473" title="Max comparison between 2 variables.">associatedMax</a>(
95 <a name="l00068"></a>00068 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a,
96 <a name="l00069"></a>00069 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b,
97 <a name="l00070"></a>00070 <span class="keyword">const</span> genTypeT&amp; z, <span class="keyword">const</span> genTypeU&amp; c);
98 <a name="l00071"></a>00071
99 <a name="l00073"></a>00073 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
100 <a name="l00074"></a>00074 genTypeU <a class="code" href="a00249.html#ga3b1c8d7070874427d0a0fd84885ce473" title="Max comparison between 2 variables.">associatedMax</a>(
101 <a name="l00075"></a>00075 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a,
102 <a name="l00076"></a>00076 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b,
103 <a name="l00077"></a>00077 <span class="keyword">const</span> genTypeT&amp; z, <span class="keyword">const</span> genTypeU&amp; c,
104 <a name="l00078"></a>00078 <span class="keyword">const</span> genTypeT&amp; w, <span class="keyword">const</span> genTypeU&amp; d);
105 <a name="l00080"></a>00080
106 <a name="l00081"></a>00081 }<span class="comment">//namespace associated_min_max</span>
107 <a name="l00082"></a>00082
108 <a name="l00083"></a>00083 <span class="keywordtype">bool</span> test();
109 <a name="l00084"></a>00084 }<span class="comment">//namespace gtx</span>
110 <a name="l00085"></a>00085 }<span class="comment">//namespace glm</span>
111 <a name="l00086"></a>00086
112 <a name="l00087"></a>00087 <span class="preprocessor">#include &quot;associated_min_max.inl&quot;</span>
113 <a name="l00088"></a>00088
114 <a name="l00089"></a>00089 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::associated_min_max;}
115 <a name="l00090"></a>00090
116 <a name="l00091"></a>00091 <span class="preprocessor">#endif//glm_gtx_associated_min_max</span>
93 <a name="l00066"></a>00066 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
94 <a name="l00067"></a>00067 genTypeU <a class="code" href="a00248.html#ga3b1c8d7070874427d0a0fd84885ce473" title="Max comparison between 2 variables.">associatedMax</a>(
95 <a name="l00068"></a>00068 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a,
96 <a name="l00069"></a>00069 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b,
97 <a name="l00070"></a>00070 <span class="keyword">const</span> genTypeT&amp; z, <span class="keyword">const</span> genTypeU&amp; c,
98 <a name="l00071"></a>00071 <span class="keyword">const</span> genTypeT&amp; w, <span class="keyword">const</span> genTypeU&amp; d);
99 <a name="l00072"></a>00072
100 <a name="l00074"></a>00074 } <span class="comment">//namespace associated_min_max</span>
101 <a name="l00075"></a>00075 } <span class="comment">//namespace gtx</span>
102 <a name="l00076"></a>00076 } <span class="comment">//namespace glm</span>
103 <a name="l00077"></a>00077
104 <a name="l00078"></a>00078 <span class="preprocessor">#include &quot;associated_min_max.inl&quot;</span>
105 <a name="l00079"></a>00079
106 <a name="l00080"></a>00080 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::associated_min_max;}
107 <a name="l00081"></a>00081
108 <a name="l00082"></a>00082 <span class="preprocessor">#endif//glm_gtx_associated_min_max</span>
117109 </pre></div></div>
118110 </div>
119111 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_bit extension included&quot;)</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5959 <a name="l00024"></a>00024 <span class="preprocessor"></span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm
61 <a name="l00026"></a>00026 {
62 <a name="l00027"></a>00027 <span class="keyword">namespace </span>test{
63 <a name="l00028"></a>00028 <span class="keywordtype">void</span> main_gtx_bit();
64 <a name="l00029"></a>00029 }<span class="comment">//namespace test</span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm{
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>gtx{
62 <a name="l00027"></a><a class="code" href="a00170.html">00027</a> <span class="keyword">namespace </span>bit
63 <a name="l00028"></a>00028 {
64 <a name="l00029"></a>00029 <span class="keyword">using namespace </span>gtc::half_float;
6565 <a name="l00030"></a>00030
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>gtx{
67 <a name="l00033"></a><a class="code" href="a00170.html">00033</a> <span class="keyword">namespace </span>bit
68 <a name="l00034"></a>00034 {
69 <a name="l00035"></a>00035 <span class="keyword">using namespace </span>gtc::half_float;
70 <a name="l00036"></a>00036
71 <a name="l00039"></a>00039
72 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIType&gt;
73 <a name="l00043"></a>00043 genIType <a class="code" href="a00250.html#ga31dbf05c851060984e107afb39dde5fe" title="Build a mask of &amp;#39;count&amp;#39; bits From GLM_GTX_bit extension.">mask</a>(genIType <span class="keyword">const</span> &amp; count);
74 <a name="l00044"></a>00044
75 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType, <span class="keyword">typename</span> sizeType&gt;
76 <a name="l00049"></a>00049 genIUType <a class="code" href="a00250.html#ga244734bb54e4648970c38b032258035a" title="Component wise extraction of bit fields.">extractField</a>(
77 <a name="l00050"></a>00050 genIUType <span class="keyword">const</span> &amp; v,
78 <a name="l00051"></a>00051 sizeType <span class="keyword">const</span> &amp; first,
79 <a name="l00052"></a>00052 sizeType <span class="keyword">const</span> &amp; count);
80 <a name="l00053"></a>00053
81 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
82 <a name="l00057"></a>00057 <span class="keywordtype">int</span> <a class="code" href="a00250.html#gace8029d9e9090f2aaa0248e320b3f24c" title="Find the lowest bit set to 1 in a integer variable.">lowestBit</a>(genType <span class="keyword">const</span> &amp; value);
83 <a name="l00058"></a>00058
84 <a name="l00061"></a>00061 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
85 <a name="l00062"></a>00062 <span class="keywordtype">int</span> <a class="code" href="a00250.html#ga55e17a1e9347ca10d206f62ffe294608" title="Find the highest bit set to 1 in a integer variable.">highestBit</a>(genType <span class="keyword">const</span> &amp; value);
86 <a name="l00063"></a>00063
87 <a name="l00066"></a>00066 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
88 <a name="l00067"></a>00067 genType <a class="code" href="a00250.html#ga2e2ba1398ef471e40e6a07cbab9a75fe" title="Find the highest bit set to 1 in a integer variable and return its value.">highestBitValue</a>(genType <span class="keyword">const</span> &amp; value);
89 <a name="l00068"></a>00068
90 <a name="l00071"></a>00071 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
91 <a name="l00072"></a>00072 <span class="keywordtype">bool</span> <a class="code" href="a00250.html#gadddfcaa01efe60218e52323707331415" title="Return true if the value is a power of two number.">isPowerOfTwo</a>(genType <span class="keyword">const</span> &amp; value);
92 <a name="l00073"></a>00073
93 <a name="l00076"></a>00076 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
94 <a name="l00077"></a>00077 genType <a class="code" href="a00250.html#ga0a1683dffc58011a161c0b3cb867c93c" title="Return the power of two number which value is just higher the input value.">powerOfTwoAbove</a>(genType <span class="keyword">const</span> &amp; value);
95 <a name="l00078"></a>00078
96 <a name="l00081"></a>00081 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
97 <a name="l00082"></a>00082 genType <a class="code" href="a00250.html#ga9adeb3bc22e67933665600e0dc2e1f8d" title="Return the power of two number which value is just lower the input value.">powerOfTwoBelow</a>(genType <span class="keyword">const</span> &amp; value);
98 <a name="l00083"></a>00083
99 <a name="l00086"></a>00086 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
100 <a name="l00087"></a>00087 genType <a class="code" href="a00250.html#ga12d57451c94950bafe2e1fb57346f082" title="Return the power of two number which value is the closet to the input value.">powerOfTwoNearest</a>(genType <span class="keyword">const</span> &amp; value);
101 <a name="l00088"></a>00088
102 <a name="l00091"></a>00091 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
103 <a name="l00092"></a>00092 genType <a class="code" href="a00250.html#ga2f145f264c334caba22e6949e015d208" title="Revert all bits of any integer based type.">bitRevert</a>(genType <span class="keyword">const</span> &amp; value);
104 <a name="l00093"></a>00093
105 <a name="l00096"></a>00096 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
106 <a name="l00097"></a>00097 genType <a class="code" href="a00250.html#gaeec0d4179d7a092056e2201fff385ef6" title="Rotate all bits to the right.">bitRotateRight</a>(genType <span class="keyword">const</span> &amp; In, std::size_t Shift);
107 <a name="l00098"></a>00098
108 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
109 <a name="l00102"></a>00102 genType <a class="code" href="a00250.html#gaa8de15434b73178fd1d2ea7ee16b59bd" title="Rotate all bits to the left.">bitRotateLeft</a>(genType <span class="keyword">const</span> &amp; In, std::size_t Shift);
110 <a name="l00103"></a>00103
111 <a name="l00105"></a>00105
112 <a name="l00106"></a>00106 }<span class="comment">//namespace bit</span>
113 <a name="l00107"></a>00107 }<span class="comment">//namespace gtx</span>
114 <a name="l00108"></a>00108 }<span class="comment">//namespace glm</span>
115 <a name="l00109"></a>00109
116 <a name="l00110"></a>00110 <span class="preprocessor">#include &quot;bit.inl&quot;</span>
117 <a name="l00111"></a>00111
118 <a name="l00112"></a>00112 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::bit;}
119 <a name="l00113"></a>00113
120 <a name="l00114"></a>00114 <span class="preprocessor">#endif//glm_gtx_bit</span>
66 <a name="l00033"></a>00033
67 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIType&gt;
68 <a name="l00037"></a>00037 genIType <a class="code" href="a00249.html#ga31dbf05c851060984e107afb39dde5fe" title="Build a mask of &amp;#39;count&amp;#39; bits From GLM_GTX_bit extension.">mask</a>(genIType <span class="keyword">const</span> &amp; count);
69 <a name="l00038"></a>00038
70 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType, <span class="keyword">typename</span> sizeType&gt;
71 <a name="l00043"></a>00043 genIUType <a class="code" href="a00249.html#ga244734bb54e4648970c38b032258035a" title="Component wise extraction of bit fields.">extractField</a>(
72 <a name="l00044"></a>00044 genIUType <span class="keyword">const</span> &amp; v,
73 <a name="l00045"></a>00045 sizeType <span class="keyword">const</span> &amp; first,
74 <a name="l00046"></a>00046 sizeType <span class="keyword">const</span> &amp; count);
75 <a name="l00047"></a>00047
76 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
77 <a name="l00051"></a>00051 <span class="keywordtype">int</span> <a class="code" href="a00249.html#gace8029d9e9090f2aaa0248e320b3f24c" title="Find the lowest bit set to 1 in a integer variable.">lowestBit</a>(genType <span class="keyword">const</span> &amp; value);
78 <a name="l00052"></a>00052
79 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
80 <a name="l00056"></a>00056 <span class="keywordtype">int</span> <a class="code" href="a00249.html#ga55e17a1e9347ca10d206f62ffe294608" title="Find the highest bit set to 1 in a integer variable.">highestBit</a>(genType <span class="keyword">const</span> &amp; value);
81 <a name="l00057"></a>00057
82 <a name="l00060"></a>00060 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
83 <a name="l00061"></a>00061 genType <a class="code" href="a00249.html#ga2e2ba1398ef471e40e6a07cbab9a75fe" title="Find the highest bit set to 1 in a integer variable and return its value.">highestBitValue</a>(genType <span class="keyword">const</span> &amp; value);
84 <a name="l00062"></a>00062
85 <a name="l00065"></a>00065 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
86 <a name="l00066"></a>00066 <span class="keywordtype">bool</span> <a class="code" href="a00249.html#gadddfcaa01efe60218e52323707331415" title="Return true if the value is a power of two number.">isPowerOfTwo</a>(genType <span class="keyword">const</span> &amp; value);
87 <a name="l00067"></a>00067
88 <a name="l00070"></a>00070 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
89 <a name="l00071"></a>00071 genType <a class="code" href="a00249.html#ga0a1683dffc58011a161c0b3cb867c93c" title="Return the power of two number which value is just higher the input value.">powerOfTwoAbove</a>(genType <span class="keyword">const</span> &amp; value);
90 <a name="l00072"></a>00072
91 <a name="l00075"></a>00075 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
92 <a name="l00076"></a>00076 genType <a class="code" href="a00249.html#ga9adeb3bc22e67933665600e0dc2e1f8d" title="Return the power of two number which value is just lower the input value.">powerOfTwoBelow</a>(genType <span class="keyword">const</span> &amp; value);
93 <a name="l00077"></a>00077
94 <a name="l00080"></a>00080 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
95 <a name="l00081"></a>00081 genType <a class="code" href="a00249.html#ga12d57451c94950bafe2e1fb57346f082" title="Return the power of two number which value is the closet to the input value.">powerOfTwoNearest</a>(genType <span class="keyword">const</span> &amp; value);
96 <a name="l00082"></a>00082
97 <a name="l00085"></a>00085 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
98 <a name="l00086"></a>00086 genType <a class="code" href="a00249.html#ga2f145f264c334caba22e6949e015d208" title="Revert all bits of any integer based type.">bitRevert</a>(genType <span class="keyword">const</span> &amp; value);
99 <a name="l00087"></a>00087
100 <a name="l00090"></a>00090 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
101 <a name="l00091"></a>00091 genType <a class="code" href="a00249.html#gaeec0d4179d7a092056e2201fff385ef6" title="Rotate all bits to the right.">bitRotateRight</a>(genType <span class="keyword">const</span> &amp; In, std::size_t Shift);
102 <a name="l00092"></a>00092
103 <a name="l00095"></a>00095 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
104 <a name="l00096"></a>00096 genType <a class="code" href="a00249.html#gaa8de15434b73178fd1d2ea7ee16b59bd" title="Rotate all bits to the left.">bitRotateLeft</a>(genType <span class="keyword">const</span> &amp; In, std::size_t Shift);
105 <a name="l00097"></a>00097
106 <a name="l00099"></a>00099 }<span class="comment">//namespace bit</span>
107 <a name="l00100"></a>00100 }<span class="comment">//namespace gtx</span>
108 <a name="l00101"></a>00101 }<span class="comment">//namespace glm</span>
109 <a name="l00102"></a>00102
110 <a name="l00103"></a>00103 <span class="preprocessor">#include &quot;bit.inl&quot;</span>
111 <a name="l00104"></a>00104
112 <a name="l00105"></a>00105 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::bit;}
113 <a name="l00106"></a>00106
114 <a name="l00107"></a>00107 <span class="preprocessor">#endif//glm_gtx_bit</span>
121115 </pre></div></div>
122116 </div>
123117 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_closest_point extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">void</span> main_gtx_closest_point();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00171.html">00031</a> <span class="keyword">namespace </span>closest_point{
66 <a name="l00032"></a>00032
67 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00039"></a>00039 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00251.html#ga14a814a7834db281ef0167947c8f9516" title="Find the point on a straight line which is the closet of a point.">closestPointOnLine</a>(
70 <a name="l00040"></a>00040 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; point,
71 <a name="l00041"></a>00041 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; a,
72 <a name="l00042"></a>00042 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; b);
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00171.html">00025</a> <span class="keyword">namespace </span>closest_point
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
64 <a name="l00033"></a>00033 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00250.html#ga14a814a7834db281ef0167947c8f9516" title="Find the point on a straight line which is the closet of a point.">closestPointOnLine</a>(
65 <a name="l00034"></a>00034 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; point,
66 <a name="l00035"></a>00035 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; a,
67 <a name="l00036"></a>00036 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; b);
68 <a name="l00037"></a>00037
69 <a name="l00039"></a>00039 }<span class="comment">// namespace closest_point</span>
70 <a name="l00040"></a>00040 }<span class="comment">// namespace gtx</span>
71 <a name="l00041"></a>00041 }<span class="comment">// namespace glm</span>
72 <a name="l00042"></a>00042
73 <a name="l00043"></a>00043 <span class="preprocessor">#include &quot;closest_point.inl&quot;</span>
7374 <a name="l00044"></a>00044
74 <a name="l00045"></a>00045 }<span class="comment">//namespace closest_point</span>
75 <a name="l00046"></a>00046 }<span class="comment">//namespace gtx</span>
76 <a name="l00047"></a>00047 }<span class="comment">//namespace glm</span>
77 <a name="l00048"></a>00048
78 <a name="l00049"></a>00049 <span class="preprocessor">#include &quot;closest_point.inl&quot;</span>
79 <a name="l00050"></a>00050
80 <a name="l00051"></a>00051 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::closest_point;}
81 <a name="l00052"></a>00052
82 <a name="l00053"></a>00053 <span class="preprocessor">#endif//glm_gtx_closest_point</span>
75 <a name="l00045"></a>00045 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::closest_point;}
76 <a name="l00046"></a>00046
77 <a name="l00047"></a>00047 <span class="preprocessor">#endif//glm_gtx_closest_point</span>
8378 </pre></div></div>
8479 </div>
8580 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_color_cast extension included&quot;)</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5959 <a name="l00024"></a>00024 <span class="preprocessor"></span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm
61 <a name="l00026"></a>00026 {
62 <a name="l00027"></a>00027 <span class="keyword">namespace </span>test{
63 <a name="l00028"></a>00028 <span class="keywordtype">void</span> main_ext_gtx_color_cast();
64 <a name="l00029"></a>00029 }<span class="comment">//namespace test</span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm{
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>gtx{
62 <a name="l00027"></a><a class="code" href="a00172.html">00027</a> <span class="keyword">namespace </span>color_cast
63 <a name="l00028"></a>00028 {
64 <a name="l00029"></a>00029 <span class="keyword">using namespace </span>gtx::number_precision;
6565 <a name="l00030"></a>00030
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>gtx{
67 <a name="l00033"></a><a class="code" href="a00172.html">00033</a> <span class="keyword">namespace </span>color_cast
68 <a name="l00034"></a>00034 {
69 <a name="l00035"></a>00035 <span class="keyword">using namespace </span>gtx::number_precision;
70 <a name="l00036"></a>00036
71 <a name="l00039"></a>00039
72 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; <a class="code" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint8</a> <a class="code" href="a00252.html#gab11ba0a450ba9a2b3885fa6a631df6f5" title="Conversion of a floating value into a 8bit unsigned int value.">u8channel_cast</a>(valType a);
73 <a name="l00043"></a>00043
74 <a name="l00046"></a>00046 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; <a class="code" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint16</a> <a class="code" href="a00252.html#gab1c15b0a63939cf8b73704b3ee0531bf" title="Conversion of a floating value into a 16bit unsigned int value.">u16channel_cast</a>(valType a);
75 <a name="l00047"></a>00047
76 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint32</a> <a class="code" href="a00252.html#ga76304a49860f623238edd96c9a181963" title="Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extensi...">u32_rgbx_cast</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; c);
77 <a name="l00049"></a>00049 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint32</a> <a class="code" href="a00252.html#gaeeb39141498fdaceb0eb7badd03b3111" title="Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extensi...">u32_xrgb_cast</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; c);
78 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint32</a> <a class="code" href="a00252.html#ga4343a2cc949e6a62e3195a50e03b328a" title="Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extensi...">u32_bgrx_cast</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; c);
79 <a name="l00051"></a>00051 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint32</a> <a class="code" href="a00252.html#gae24be431c89259065ba614b12e130740" title="Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extensi...">u32_xbgr_cast</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; c);
80 <a name="l00052"></a>00052
81 <a name="l00053"></a>00053 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint32</a> <a class="code" href="a00252.html#ga3251915cd4e12f9c74f80949dda11751" title="Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extensi...">u32_rgba_cast</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; c);
82 <a name="l00054"></a>00054 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint32</a> <a class="code" href="a00252.html#ga54d650e121ffa7dd5df995f45eacbe7c" title="Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extensi...">u32_argb_cast</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; c);
83 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint32</a> <a class="code" href="a00252.html#ga994311f638751fbd6c18cbc6e7cc40a2" title="Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extensi...">u32_bgra_cast</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; c);
84 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint32</a> <a class="code" href="a00252.html#ga7419ad7d2b6280021d2e6fe61f959593" title="Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extensi...">u32_abgr_cast</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; c);
85 <a name="l00057"></a>00057
86 <a name="l00058"></a>00058 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint64</a> <a class="code" href="a00252.html#gac6f16d71adbccd604cffae1c83961bba" title="Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extensi...">u64_rgbx_cast</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; c);
87 <a name="l00059"></a>00059 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint64</a> <a class="code" href="a00252.html#ga4b860d9689ce434bef7ecdbb8cdbc4b4" title="Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extensi...">u64_xrgb_cast</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; c);
88 <a name="l00060"></a>00060 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint64</a> <a class="code" href="a00252.html#gae19e40c22424904d922e22525a0bb455" title="Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extensi...">u64_bgrx_cast</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; c);
89 <a name="l00061"></a>00061 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint64</a> <a class="code" href="a00252.html#gac3327797af9858e7716cb02b9f8452bc" title="Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extensi...">u64_xbgr_cast</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; c);
90 <a name="l00062"></a>00062
91 <a name="l00063"></a>00063 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint64</a> <a class="code" href="a00252.html#gafd8e66f86f3c42fe17637ca0db751d40" title="Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extensi...">u64_rgba_cast</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; c);
92 <a name="l00064"></a>00064 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint64</a> <a class="code" href="a00252.html#gadbf0e161e934b6dc7fda389481764f4e" title="Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extensi...">u64_argb_cast</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; c);
93 <a name="l00065"></a>00065 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint64</a> <a class="code" href="a00252.html#ga36cc78b5052b31b83c2f9562088dc66f" title="Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extensi...">u64_bgra_cast</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; c);
94 <a name="l00066"></a>00066 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint64</a> <a class="code" href="a00252.html#ga4f050b0db28ca10c503188070330a8c5" title="Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extensi...">u64_abgr_cast</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; c);
95 <a name="l00067"></a>00067
96 <a name="l00068"></a>00068 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00279.html#ga116e2376ef94e8c60bc5c2b66fc5a6db" title="Half-precision floating-point scalar. (from GLM_GTX_number_precision extension)">gtx::number_precision::f16vec1</a> <a class="code" href="a00252.html#gae735900f14bcc64ebaf42bb812500964" title="Conversion of a u8 or u16 value to a single channel floating value. (From GLM_GTX_color_cast extensio...">f16_channel_cast</a>(T a);
97 <a name="l00069"></a>00069
98 <a name="l00070"></a>00070 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f16vec3</a> <a class="code" href="a00252.html#ga82f8510eb3275299aee11f7a6a0761c0" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f16_rgbx_cast</a>(T c);
99 <a name="l00071"></a>00071 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f16vec3</a> <a class="code" href="a00252.html#ga54f72266de72a0834da07337b2512c78" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f16_xrgb_cast</a>(T c);
100 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f16vec3</a> <a class="code" href="a00252.html#gaed8b82a32ac9f6e8024a6880461496ba" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f16_bgrx_cast</a>(T c);
101 <a name="l00073"></a>00073 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f16vec3</a> <a class="code" href="a00252.html#ga6a18355f6ce1b531a8d879774ba43179" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f16_xbgr_cast</a>(T c);
102 <a name="l00074"></a>00074
103 <a name="l00075"></a>00075 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f16vec4</a> <a class="code" href="a00252.html#ga417f7a9c2bc66229dbeb714308ff45ba" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f16_rgba_cast</a>(T c);
104 <a name="l00076"></a>00076 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f16vec4</a> <a class="code" href="a00252.html#gaf58e7f656ffad74fe4ed093250c444c8" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f16_argb_cast</a>(T c);
105 <a name="l00077"></a>00077 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f16vec4</a> <a class="code" href="a00252.html#gadbd908bc29dd87b7222dad33a6b0a6ad" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f16_bgra_cast</a>(T c);
106 <a name="l00078"></a>00078 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f16vec4</a> <a class="code" href="a00252.html#ga3cd01da9b10cf61cf556fc8e7992f2ea" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f16_abgr_cast</a>(T c);
107 <a name="l00079"></a>00079
108 <a name="l00080"></a>00080 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00279.html#ga07f8d7348eb7ae059a84c118fdfeb943" title="Single-precision floating-point scalar. (from GLM_GTX_number_precision extension)">gtx::number_precision::f32vec1</a> <a class="code" href="a00252.html#ga44006c7374476ad1ee285f28e9c416bb" title="Conversion of a u8 or u16 value to a single channel floating value. (From GLM_GTX_color_cast extensio...">f32_channel_cast</a>(T a);
109 <a name="l00081"></a>00081
110 <a name="l00082"></a>00082 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f32vec3</a> <a class="code" href="a00252.html#ga4ef58cdad0a076db6b9f6f67d918087b" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f32_rgbx_cast</a>(T c);
111 <a name="l00083"></a>00083 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f32vec3</a> <a class="code" href="a00252.html#gaf4c3d60e3f865187ab8dc7e1e53b061b" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f32_xrgb_cast</a>(T c);
112 <a name="l00084"></a>00084 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f32vec3</a> <a class="code" href="a00252.html#ga78abdd7116c8c25e29219b32c4bb937e" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f32_bgrx_cast</a>(T c);
113 <a name="l00085"></a>00085 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f32vec3</a> <a class="code" href="a00252.html#ga46e9df97410a559a816737a331db62dd" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f32_xbgr_cast</a>(T c);
114 <a name="l00086"></a>00086
115 <a name="l00087"></a>00087 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f32vec4</a> <a class="code" href="a00252.html#ga84d5bcccb37c9788bfb0fa00bea4b0fe" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f32_rgba_cast</a>(T c);
116 <a name="l00088"></a>00088 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f32vec4</a> <a class="code" href="a00252.html#gaee24a081d5b7c84ffffdd66d12963c4c" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f32_argb_cast</a>(T c);
117 <a name="l00089"></a>00089 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f32vec4</a> <a class="code" href="a00252.html#gadb328d5e9fff54f6b23dc29e1ce8591e" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f32_bgra_cast</a>(T c);
118 <a name="l00090"></a>00090 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f32vec4</a> <a class="code" href="a00252.html#ga95a33ffb1476bf675e9629301ec180b1" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f32_abgr_cast</a>(T c);
119 <a name="l00091"></a>00091
120 <a name="l00092"></a>00092 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00279.html#gae5987a61b8c03d5c432a9e62f0b3efe1" title="Single-precision floating-point scalar. (from GLM_GTX_number_precision extension)">gtx::number_precision::f64vec1</a> <a class="code" href="a00252.html#gad2b4dbd955443cb15c731e4564f575e0" title="Conversion of a u8 or u16 value to a single channel floating value. (From GLM_GTX_color_cast extensio...">f64_channel_cast</a>(T a);
121 <a name="l00093"></a>00093
122 <a name="l00094"></a>00094 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f64vec3</a> <a class="code" href="a00252.html#ga16520961abfe743f698b2e80cc0dc33a" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f64_rgbx_cast</a>(T c);
123 <a name="l00095"></a>00095 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f64vec3</a> <a class="code" href="a00252.html#ga35d1e8fedde05c4b0bd6b26312fe3677" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f64_xrgb_cast</a>(T c);
124 <a name="l00096"></a>00096 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f64vec3</a> <a class="code" href="a00252.html#gabb6a7bcbd66735a86da1dedf7ea3d530" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f64_bgrx_cast</a>(T c);
125 <a name="l00097"></a>00097 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f64vec3</a> <a class="code" href="a00252.html#gaa2c0dd06608625935b2d940a8155a6ff" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f64_xbgr_cast</a>(T c);
126 <a name="l00098"></a>00098
127 <a name="l00099"></a>00099 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f64vec4</a> <a class="code" href="a00252.html#gae915ae64c81df6ceacb793f9cd6eac40" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f64_rgba_cast</a>(T c);
128 <a name="l00100"></a>00100 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f64vec4</a> <a class="code" href="a00252.html#gab917debabb647fd4144b2d4cf3359737" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f64_argb_cast</a>(T c);
129 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f64vec4</a> <a class="code" href="a00252.html#gac954d9636b86e6a10e19ede77d4f387e" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f64_bgra_cast</a>(T c);
130 <a name="l00102"></a>00102 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f64vec4</a> <a class="code" href="a00252.html#ga42c1cf7dedeaa76629046e8abea5d698" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f64_abgr_cast</a>(T c);
131 <a name="l00103"></a>00103
132 <a name="l00105"></a>00105 }<span class="comment">//namespace color_space</span>
133 <a name="l00106"></a>00106 }<span class="comment">//namespace gtx</span>
134 <a name="l00107"></a>00107 }<span class="comment">//namespace glm</span>
135 <a name="l00108"></a>00108
136 <a name="l00109"></a>00109 <span class="preprocessor">#include &quot;color_cast.inl&quot;</span>
137 <a name="l00110"></a>00110
138 <a name="l00111"></a>00111 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::color_cast;}
139 <a name="l00112"></a>00112
140 <a name="l00113"></a>00113 <span class="preprocessor">#endif//glm_gtx_color_cast</span>
66 <a name="l00033"></a>00033
67 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; <a class="code" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint8</a> <a class="code" href="a00251.html#gab11ba0a450ba9a2b3885fa6a631df6f5" title="Conversion of a floating value into a 8bit unsigned int value.">u8channel_cast</a>(valType a);
68 <a name="l00037"></a>00037
69 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; <a class="code" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint16</a> <a class="code" href="a00251.html#gab1c15b0a63939cf8b73704b3ee0531bf" title="Conversion of a floating value into a 16bit unsigned int value.">u16channel_cast</a>(valType a);
70 <a name="l00041"></a>00041
71 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint32</a> <a class="code" href="a00251.html#ga76304a49860f623238edd96c9a181963" title="Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extensi...">u32_rgbx_cast</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; c);
72 <a name="l00043"></a>00043 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint32</a> <a class="code" href="a00251.html#gaeeb39141498fdaceb0eb7badd03b3111" title="Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extensi...">u32_xrgb_cast</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; c);
73 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint32</a> <a class="code" href="a00251.html#ga4343a2cc949e6a62e3195a50e03b328a" title="Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extensi...">u32_bgrx_cast</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; c);
74 <a name="l00045"></a>00045 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint32</a> <a class="code" href="a00251.html#gae24be431c89259065ba614b12e130740" title="Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extensi...">u32_xbgr_cast</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; c);
75 <a name="l00046"></a>00046
76 <a name="l00047"></a>00047 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint32</a> <a class="code" href="a00251.html#ga3251915cd4e12f9c74f80949dda11751" title="Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extensi...">u32_rgba_cast</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; c);
77 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint32</a> <a class="code" href="a00251.html#ga54d650e121ffa7dd5df995f45eacbe7c" title="Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extensi...">u32_argb_cast</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; c);
78 <a name="l00049"></a>00049 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint32</a> <a class="code" href="a00251.html#ga994311f638751fbd6c18cbc6e7cc40a2" title="Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extensi...">u32_bgra_cast</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; c);
79 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint32</a> <a class="code" href="a00251.html#ga7419ad7d2b6280021d2e6fe61f959593" title="Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extensi...">u32_abgr_cast</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; c);
80 <a name="l00051"></a>00051
81 <a name="l00052"></a>00052 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint64</a> <a class="code" href="a00251.html#gac6f16d71adbccd604cffae1c83961bba" title="Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extensi...">u64_rgbx_cast</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; c);
82 <a name="l00053"></a>00053 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint64</a> <a class="code" href="a00251.html#ga4b860d9689ce434bef7ecdbb8cdbc4b4" title="Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extensi...">u64_xrgb_cast</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; c);
83 <a name="l00054"></a>00054 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint64</a> <a class="code" href="a00251.html#gae19e40c22424904d922e22525a0bb455" title="Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extensi...">u64_bgrx_cast</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; c);
84 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint64</a> <a class="code" href="a00251.html#gac3327797af9858e7716cb02b9f8452bc" title="Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extensi...">u64_xbgr_cast</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; c);
85 <a name="l00056"></a>00056
86 <a name="l00057"></a>00057 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint64</a> <a class="code" href="a00251.html#gafd8e66f86f3c42fe17637ca0db751d40" title="Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extensi...">u64_rgba_cast</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; c);
87 <a name="l00058"></a>00058 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint64</a> <a class="code" href="a00251.html#gadbf0e161e934b6dc7fda389481764f4e" title="Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extensi...">u64_argb_cast</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; c);
88 <a name="l00059"></a>00059 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint64</a> <a class="code" href="a00251.html#ga36cc78b5052b31b83c2f9562088dc66f" title="Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extensi...">u64_bgra_cast</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; c);
89 <a name="l00060"></a>00060 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">gtc::type_precision::uint64</a> <a class="code" href="a00251.html#ga4f050b0db28ca10c503188070330a8c5" title="Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extensi...">u64_abgr_cast</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; c);
90 <a name="l00061"></a>00061
91 <a name="l00062"></a>00062 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00278.html#ga116e2376ef94e8c60bc5c2b66fc5a6db" title="Half-precision floating-point scalar. (from GLM_GTX_number_precision extension)">gtx::number_precision::f16vec1</a> <a class="code" href="a00251.html#gae735900f14bcc64ebaf42bb812500964" title="Conversion of a u8 or u16 value to a single channel floating value. (From GLM_GTX_color_cast extensio...">f16_channel_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> a);
92 <a name="l00063"></a>00063
93 <a name="l00064"></a>00064 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f16vec3</a> <a class="code" href="a00251.html#ga82f8510eb3275299aee11f7a6a0761c0" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f16_rgbx_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
94 <a name="l00065"></a>00065 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f16vec3</a> <a class="code" href="a00251.html#ga54f72266de72a0834da07337b2512c78" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f16_xrgb_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
95 <a name="l00066"></a>00066 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f16vec3</a> <a class="code" href="a00251.html#gaed8b82a32ac9f6e8024a6880461496ba" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f16_bgrx_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
96 <a name="l00067"></a>00067 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f16vec3</a> <a class="code" href="a00251.html#ga6a18355f6ce1b531a8d879774ba43179" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f16_xbgr_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
97 <a name="l00068"></a>00068
98 <a name="l00069"></a>00069 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f16vec4</a> <a class="code" href="a00251.html#ga417f7a9c2bc66229dbeb714308ff45ba" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f16_rgba_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
99 <a name="l00070"></a>00070 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f16vec4</a> <a class="code" href="a00251.html#gaf58e7f656ffad74fe4ed093250c444c8" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f16_argb_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
100 <a name="l00071"></a>00071 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f16vec4</a> <a class="code" href="a00251.html#gadbd908bc29dd87b7222dad33a6b0a6ad" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f16_bgra_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
101 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f16vec4</a> <a class="code" href="a00251.html#ga3cd01da9b10cf61cf556fc8e7992f2ea" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f16_abgr_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
102 <a name="l00073"></a>00073
103 <a name="l00074"></a>00074 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00278.html#ga07f8d7348eb7ae059a84c118fdfeb943" title="Single-precision floating-point scalar. (from GLM_GTX_number_precision extension)">gtx::number_precision::f32vec1</a> <a class="code" href="a00251.html#ga44006c7374476ad1ee285f28e9c416bb" title="Conversion of a u8 or u16 value to a single channel floating value. (From GLM_GTX_color_cast extensio...">f32_channel_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> a);
104 <a name="l00075"></a>00075
105 <a name="l00076"></a>00076 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f32vec3</a> <a class="code" href="a00251.html#ga4ef58cdad0a076db6b9f6f67d918087b" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f32_rgbx_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
106 <a name="l00077"></a>00077 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f32vec3</a> <a class="code" href="a00251.html#gaf4c3d60e3f865187ab8dc7e1e53b061b" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f32_xrgb_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
107 <a name="l00078"></a>00078 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f32vec3</a> <a class="code" href="a00251.html#ga78abdd7116c8c25e29219b32c4bb937e" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f32_bgrx_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
108 <a name="l00079"></a>00079 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f32vec3</a> <a class="code" href="a00251.html#ga46e9df97410a559a816737a331db62dd" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f32_xbgr_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
109 <a name="l00080"></a>00080
110 <a name="l00081"></a>00081 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f32vec4</a> <a class="code" href="a00251.html#ga84d5bcccb37c9788bfb0fa00bea4b0fe" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f32_rgba_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
111 <a name="l00082"></a>00082 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f32vec4</a> <a class="code" href="a00251.html#gaee24a081d5b7c84ffffdd66d12963c4c" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f32_argb_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
112 <a name="l00083"></a>00083 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f32vec4</a> <a class="code" href="a00251.html#gadb328d5e9fff54f6b23dc29e1ce8591e" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f32_bgra_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
113 <a name="l00084"></a>00084 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f32vec4</a> <a class="code" href="a00251.html#ga95a33ffb1476bf675e9629301ec180b1" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f32_abgr_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
114 <a name="l00085"></a>00085
115 <a name="l00086"></a>00086 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00278.html#gae5987a61b8c03d5c432a9e62f0b3efe1" title="Single-precision floating-point scalar. (from GLM_GTX_number_precision extension)">gtx::number_precision::f64vec1</a> <a class="code" href="a00251.html#gad2b4dbd955443cb15c731e4564f575e0" title="Conversion of a u8 or u16 value to a single channel floating value. (From GLM_GTX_color_cast extensio...">f64_channel_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> a);
116 <a name="l00087"></a>00087
117 <a name="l00088"></a>00088 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f64vec3</a> <a class="code" href="a00251.html#ga16520961abfe743f698b2e80cc0dc33a" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f64_rgbx_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
118 <a name="l00089"></a>00089 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f64vec3</a> <a class="code" href="a00251.html#ga35d1e8fedde05c4b0bd6b26312fe3677" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f64_xrgb_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
119 <a name="l00090"></a>00090 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f64vec3</a> <a class="code" href="a00251.html#gabb6a7bcbd66735a86da1dedf7ea3d530" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f64_bgrx_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
120 <a name="l00091"></a>00091 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">gtc::type_precision::f64vec3</a> <a class="code" href="a00251.html#gaa2c0dd06608625935b2d940a8155a6ff" title="Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension...">f64_xbgr_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
121 <a name="l00092"></a>00092
122 <a name="l00093"></a>00093 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f64vec4</a> <a class="code" href="a00251.html#gae915ae64c81df6ceacb793f9cd6eac40" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f64_rgba_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
123 <a name="l00094"></a>00094 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f64vec4</a> <a class="code" href="a00251.html#gab917debabb647fd4144b2d4cf3359737" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f64_argb_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
124 <a name="l00095"></a>00095 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f64vec4</a> <a class="code" href="a00251.html#gac954d9636b86e6a10e19ede77d4f387e" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f64_bgra_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
125 <a name="l00096"></a>00096 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">gtc::type_precision::f64vec4</a> <a class="code" href="a00251.html#ga42c1cf7dedeaa76629046e8abea5d698" title="Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension...">f64_abgr_cast</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> c);
126 <a name="l00097"></a>00097
127 <a name="l00099"></a>00099 }<span class="comment">//namespace color_space</span>
128 <a name="l00100"></a>00100 }<span class="comment">//namespace gtx</span>
129 <a name="l00101"></a>00101 }<span class="comment">//namespace glm</span>
130 <a name="l00102"></a>00102
131 <a name="l00103"></a>00103 <span class="preprocessor">#include &quot;color_cast.inl&quot;</span>
132 <a name="l00104"></a>00104
133 <a name="l00105"></a>00105 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::color_cast;}
134 <a name="l00106"></a>00106
135 <a name="l00107"></a>00107 <span class="preprocessor">#endif//glm_gtx_color_cast</span>
141136 </pre></div></div>
142137 </div>
143138 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_color_space extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">void</span> main_gtx_color_space();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00173.html">00031</a> <span class="keyword">namespace </span>color_space
66 <a name="l00032"></a>00032 {
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00173.html">00025</a> <span class="keyword">namespace </span>color_space
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
64 <a name="l00033"></a>00033 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00252.html#gaa84fde704746ed36b80df7bf521510c5" title="Converts a color from HSV color space to its color in RGB color space.">rgbColor</a>(
65 <a name="l00034"></a>00034 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; hsvValue);
6766 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
69 <a name="l00039"></a>00039 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00253.html#gaa84fde704746ed36b80df7bf521510c5" title="Converts a color from HSV color space to its color in RGB color space.">rgbColor</a>(
70 <a name="l00040"></a>00040 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; hsvValue);
71 <a name="l00041"></a>00041
72 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
73 <a name="l00045"></a>00045 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00253.html#ga20b1d59474b6588da10e72764711cf71" title="Converts a color from RGB color space to its color in HSV color space.">hsvColor</a>(
74 <a name="l00046"></a>00046 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; rgbValue);
75 <a name="l00047"></a>00047
67 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
68 <a name="l00039"></a>00039 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00252.html#ga20b1d59474b6588da10e72764711cf71" title="Converts a color from RGB color space to its color in HSV color space.">hsvColor</a>(
69 <a name="l00040"></a>00040 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; rgbValue);
70 <a name="l00041"></a>00041
71 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
72 <a name="l00045"></a>00045 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00252.html#gade937a20e420b352d33cce2e92c6fe10" title="Build a saturation matrix.">saturation</a>(
73 <a name="l00046"></a>00046 valType <span class="keyword">const</span> s);
74 <a name="l00047"></a>00047
7675 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
77 <a name="l00051"></a>00051 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00253.html#gade937a20e420b352d33cce2e92c6fe10" title="Build a saturation matrix.">saturation</a>(
78 <a name="l00052"></a>00052 valType <span class="keyword">const</span> s);
79 <a name="l00053"></a>00053
80 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
81 <a name="l00057"></a>00057 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00253.html#gade937a20e420b352d33cce2e92c6fe10" title="Build a saturation matrix.">saturation</a>(
82 <a name="l00058"></a>00058 valType <span class="keyword">const</span> s,
83 <a name="l00059"></a>00059 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; color);
84 <a name="l00060"></a>00060
85 <a name="l00063"></a>00063 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
86 <a name="l00064"></a>00064 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;valType&gt;</a> <a class="code" href="a00253.html#gade937a20e420b352d33cce2e92c6fe10" title="Build a saturation matrix.">saturation</a>(
87 <a name="l00065"></a>00065 valType <span class="keyword">const</span> s,
88 <a name="l00066"></a>00066 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;valType&gt;</a> <span class="keyword">const</span> &amp; color);
89 <a name="l00067"></a>00067
90 <a name="l00070"></a>00070 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
91 <a name="l00071"></a>00071 valType <a class="code" href="a00253.html#ga205ff9aab7e86a3e434f1c49f0a2b234" title="Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.">luminosity</a>(
92 <a name="l00072"></a>00072 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; color);
93 <a name="l00073"></a>00073
94 <a name="l00075"></a>00075
95 <a name="l00076"></a>00076 }<span class="comment">//namespace color_space</span>
96 <a name="l00077"></a>00077 }<span class="comment">//namespace gtx</span>
97 <a name="l00078"></a>00078 }<span class="comment">//namespace glm</span>
98 <a name="l00079"></a>00079
99 <a name="l00080"></a>00080 <span class="preprocessor">#include &quot;color_space.inl&quot;</span>
100 <a name="l00081"></a>00081
101 <a name="l00082"></a>00082 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::color_space;}
102 <a name="l00083"></a>00083
103 <a name="l00084"></a>00084 <span class="preprocessor">#endif//glm_gtx_color_space</span>
76 <a name="l00051"></a>00051 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00252.html#gade937a20e420b352d33cce2e92c6fe10" title="Build a saturation matrix.">saturation</a>(
77 <a name="l00052"></a>00052 valType <span class="keyword">const</span> s,
78 <a name="l00053"></a>00053 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; color);
79 <a name="l00054"></a>00054
80 <a name="l00057"></a>00057 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
81 <a name="l00058"></a>00058 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;valType&gt;</a> <a class="code" href="a00252.html#gade937a20e420b352d33cce2e92c6fe10" title="Build a saturation matrix.">saturation</a>(
82 <a name="l00059"></a>00059 valType <span class="keyword">const</span> s,
83 <a name="l00060"></a>00060 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;valType&gt;</a> <span class="keyword">const</span> &amp; color);
84 <a name="l00061"></a>00061
85 <a name="l00064"></a>00064 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
86 <a name="l00065"></a>00065 valType <a class="code" href="a00252.html#ga205ff9aab7e86a3e434f1c49f0a2b234" title="Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.">luminosity</a>(
87 <a name="l00066"></a>00066 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; color);
88 <a name="l00067"></a>00067
89 <a name="l00069"></a>00069 }<span class="comment">//namespace color_space</span>
90 <a name="l00070"></a>00070 }<span class="comment">//namespace gtx</span>
91 <a name="l00071"></a>00071 }<span class="comment">//namespace glm</span>
92 <a name="l00072"></a>00072
93 <a name="l00073"></a>00073 <span class="preprocessor">#include &quot;color_space.inl&quot;</span>
94 <a name="l00074"></a>00074
95 <a name="l00075"></a>00075 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::color_space;}
96 <a name="l00076"></a>00076
97 <a name="l00077"></a>00077 <span class="preprocessor">#endif//glm_gtx_color_space</span>
10498 </pre></div></div>
10599 </div>
106100 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_color_space_YCoCg extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">void</span> main_gtx_color_space_YCoCg();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00174.html">00031</a> <span class="keyword">namespace </span>color_space_YCoCg
66 <a name="l00032"></a>00032 {
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00174.html">00025</a> <span class="keyword">namespace </span>color_space_YCoCg
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
64 <a name="l00033"></a>00033 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00253.html#ga41820be771f6edb66eec3d3376bae693" title="Convert a color from RGB color space to YCoCg color space.">rgb2YCoCg</a>(
65 <a name="l00034"></a>00034 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; <a class="code" href="a00252.html#gaa84fde704746ed36b80df7bf521510c5" title="Converts a color from HSV color space to its color in RGB color space.">rgbColor</a>);
6766 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
69 <a name="l00039"></a>00039 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00254.html#ga41820be771f6edb66eec3d3376bae693" title="Convert a color from RGB color space to YCoCg color space.">rgb2YCoCg</a>(
70 <a name="l00040"></a>00040 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; <a class="code" href="a00253.html#gaa84fde704746ed36b80df7bf521510c5" title="Converts a color from HSV color space to its color in RGB color space.">rgbColor</a>);
67 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
68 <a name="l00039"></a>00039 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00253.html#ga638451b1492ea464bcda5d1abb0db614" title="Convert a color from YCoCg color space to RGB color space.">YCoCg2rgb</a>(
69 <a name="l00040"></a>00040 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; YCoCgColor);
7170 <a name="l00041"></a>00041
72 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
73 <a name="l00045"></a>00045 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00254.html#ga638451b1492ea464bcda5d1abb0db614" title="Convert a color from YCoCg color space to RGB color space.">YCoCg2rgb</a>(
74 <a name="l00046"></a>00046 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; YCoCgColor);
75 <a name="l00047"></a>00047
76 <a name="l00051"></a>00051 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
77 <a name="l00052"></a>00052 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00254.html#ga3c8d61f4ce259ce76b44fe70f472c766" title="Convert a color from RGB color space to YCoCgR color space.">rgb2YCoCgR</a>(
78 <a name="l00053"></a>00053 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; rgbColor);
79 <a name="l00054"></a>00054
80 <a name="l00058"></a>00058 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
81 <a name="l00059"></a>00059 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00254.html#ga75497f0965bd4834d39a88c10dee12c4" title="Convert a color from YCoCgR color space to RGB color space.">YCoCgR2rgb</a>(
82 <a name="l00060"></a>00060 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; YCoCgColor);
83 <a name="l00061"></a>00061
84 <a name="l00063"></a>00063 }<span class="comment">//namespace color_space_YCoCg</span>
85 <a name="l00064"></a>00064 }<span class="comment">//namespace gtx</span>
86 <a name="l00065"></a>00065 }<span class="comment">//namespace glm</span>
87 <a name="l00066"></a>00066
88 <a name="l00067"></a>00067 <span class="preprocessor">#include &quot;color_space_YCoCg.inl&quot;</span>
89 <a name="l00068"></a>00068
90 <a name="l00069"></a>00069 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::color_space_YCoCg;}
91 <a name="l00070"></a>00070
92 <a name="l00071"></a>00071 <span class="preprocessor">#endif//glm_gtx_color_space_YCoCg</span>
71 <a name="l00045"></a>00045 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
72 <a name="l00046"></a>00046 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00253.html#ga3c8d61f4ce259ce76b44fe70f472c766" title="Convert a color from RGB color space to YCoCgR color space.">rgb2YCoCgR</a>(
73 <a name="l00047"></a>00047 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; rgbColor);
74 <a name="l00048"></a>00048
75 <a name="l00052"></a>00052 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
76 <a name="l00053"></a>00053 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00253.html#ga75497f0965bd4834d39a88c10dee12c4" title="Convert a color from YCoCgR color space to RGB color space.">YCoCgR2rgb</a>(
77 <a name="l00054"></a>00054 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; YCoCgColor);
78 <a name="l00055"></a>00055
79 <a name="l00057"></a>00057 }<span class="comment">//namespace color_space_YCoCg</span>
80 <a name="l00058"></a>00058 }<span class="comment">//namespace gtx</span>
81 <a name="l00059"></a>00059 }<span class="comment">//namespace glm</span>
82 <a name="l00060"></a>00060
83 <a name="l00061"></a>00061 <span class="preprocessor">#include &quot;color_space_YCoCg.inl&quot;</span>
84 <a name="l00062"></a>00062
85 <a name="l00063"></a>00063 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::color_space_YCoCg;}
86 <a name="l00064"></a>00064
87 <a name="l00065"></a>00065 <span class="preprocessor">#endif//glm_gtx_color_space_YCoCg</span>
9388 </pre></div></div>
9489 </div>
9590 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6363 <a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#include &lt;cmath&gt;</span>
6464 <a name="l00029"></a>00029 <span class="preprocessor">#endif//GLM_COMPILER</span>
6565 <a name="l00030"></a>00030 <span class="preprocessor"></span>
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>glm
67 <a name="l00032"></a>00032 {
68 <a name="l00033"></a>00033 <span class="keyword">namespace </span>test{
69 <a name="l00034"></a>00034 <span class="keywordtype">void</span> main_gtx_compatibility();
70 <a name="l00035"></a>00035 }<span class="comment">//namespace test</span>
71 <a name="l00036"></a>00036
72 <a name="l00037"></a>00037 <span class="keyword">namespace </span>gtx{
73 <a name="l00039"></a><a class="code" href="a00175.html">00039</a> <span class="keyword">namespace </span>compatibility
74 <a name="l00040"></a>00040 {
75 <a name="l00043"></a>00043
76 <a name="l00044"></a><a class="code" href="a00255.html#ga56463ea9166068ab33107e1cea942023">00044</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00255.html#ga56463ea9166068ab33107e1cea942023" title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(T x, T y, T a){<span class="keywordflow">return</span> <a class="code" href="a00238.html#ga11288dc43a2a1833766728a3eb81ac63">mix</a>(x, y, a);}
77 <a name="l00045"></a><a class="code" href="a00255.html#ga5f7bfd8f1e917fd897a738177492c59a">00045</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00255.html#ga56463ea9166068ab33107e1cea942023" title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00238.html#ga11288dc43a2a1833766728a3eb81ac63">mix</a>(x, y, a);}
78 <a name="l00046"></a><a class="code" href="a00255.html#gae7298450eb0c1489eda07ccdfdcbf205">00046</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00255.html#ga56463ea9166068ab33107e1cea942023" title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00238.html#ga11288dc43a2a1833766728a3eb81ac63">mix</a>(x, y, a);}
79 <a name="l00047"></a><a class="code" href="a00255.html#gafe1e12ad09189be637164559d225db78">00047</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00255.html#ga56463ea9166068ab33107e1cea942023" title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00238.html#ga11288dc43a2a1833766728a3eb81ac63">mix</a>(x, y, a);}
80 <a name="l00048"></a><a class="code" href="a00255.html#ga221f6378c8c9f710edaceccb748f5b18">00048</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00255.html#ga56463ea9166068ab33107e1cea942023" title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; y, <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00238.html#ga11288dc43a2a1833766728a3eb81ac63">mix</a>(x, y, a);}
81 <a name="l00049"></a><a class="code" href="a00255.html#gac6fa04956f007fbb8b4c51ba93d3a13a">00049</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00255.html#ga56463ea9166068ab33107e1cea942023" title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; y, <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00238.html#ga11288dc43a2a1833766728a3eb81ac63">mix</a>(x, y, a);}
82 <a name="l00050"></a><a class="code" href="a00255.html#ga466cc6c042c517982f69db928fd697cf">00050</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00255.html#ga56463ea9166068ab33107e1cea942023" title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; y, <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00238.html#ga11288dc43a2a1833766728a3eb81ac63">mix</a>(x, y, a);}
83 <a name="l00051"></a>00051
84 <a name="l00052"></a><a class="code" href="a00255.html#gaa2afedf17ac7da10d95f383ea6be3124">00052</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00255.html#gaa2afedf17ac7da10d95f383ea6be3124" title="Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)">saturate</a>(T x){<span class="keywordflow">return</span> <a class="code" href="a00238.html#ga8d9331a9bd3aa06e1d10eb7fa0dbb9e5" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(x, T(0), T(1));}
85 <a name="l00053"></a><a class="code" href="a00255.html#gadcd5e59d930f0e9b26a78740b403412b">00053</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00255.html#gaa2afedf17ac7da10d95f383ea6be3124" title="Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)">saturate</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00238.html#ga8d9331a9bd3aa06e1d10eb7fa0dbb9e5" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(x, T(0), T(1));}
86 <a name="l00054"></a><a class="code" href="a00255.html#ga30791379500c2646301973bc133cb240">00054</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00255.html#gaa2afedf17ac7da10d95f383ea6be3124" title="Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)">saturate</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00238.html#ga8d9331a9bd3aa06e1d10eb7fa0dbb9e5" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(x, T(0), T(1));}
87 <a name="l00055"></a><a class="code" href="a00255.html#ga10a1c2401e1051008c551c3a0eadf6e4">00055</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00255.html#gaa2afedf17ac7da10d95f383ea6be3124" title="Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)">saturate</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00238.html#ga8d9331a9bd3aa06e1d10eb7fa0dbb9e5" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(x, T(0), T(1));}
88 <a name="l00056"></a>00056
89 <a name="l00057"></a><a class="code" href="a00255.html#gacea44c6ab8e09b0616c58a514b1a9a81">00057</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00255.html#gacea44c6ab8e09b0616c58a514b1a9a81" title="Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...">atan2</a>(T x, T y){<span class="keywordflow">return</span> <a class="code" href="a00238.html#ga32dbceedb2910e519860a225ae7f7450" title="Arc tangent.">atan</a>(x, y);}
90 <a name="l00058"></a><a class="code" href="a00255.html#ga7aa5d9aae622970abb85b946ded2c64e">00058</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00255.html#gacea44c6ab8e09b0616c58a514b1a9a81" title="Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...">atan2</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00238.html#ga32dbceedb2910e519860a225ae7f7450" title="Arc tangent.">atan</a>(x, y);}
91 <a name="l00059"></a><a class="code" href="a00255.html#ga4af7333865c906a5199342ec99ab6002">00059</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00255.html#gacea44c6ab8e09b0616c58a514b1a9a81" title="Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...">atan2</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00238.html#ga32dbceedb2910e519860a225ae7f7450" title="Arc tangent.">atan</a>(x, y);}
92 <a name="l00060"></a><a class="code" href="a00255.html#ga83dab39f1f74ed90e9511a5f88805a08">00060</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00255.html#gacea44c6ab8e09b0616c58a514b1a9a81" title="Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...">atan2</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00238.html#ga32dbceedb2910e519860a225ae7f7450" title="Arc tangent.">atan</a>(x, y);}
93 <a name="l00061"></a>00061
94 <a name="l00062"></a>00062 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <span class="keywordtype">bool</span> <a class="code" href="a00255.html#ga048f613527d6146d30bd45cfb9593ba4" title="Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...">isfinite</a>(genType <span class="keyword">const</span> &amp; x);
95 <a name="l00063"></a>00063 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;bool&gt;</a> <a class="code" href="a00255.html#ga048f613527d6146d30bd45cfb9593ba4" title="Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...">isfinite</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;valType&gt;</a>&amp; x);
96 <a name="l00064"></a>00064 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;bool&gt;</a> <a class="code" href="a00255.html#ga048f613527d6146d30bd45cfb9593ba4" title="Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...">isfinite</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a>&amp; x);
97 <a name="l00065"></a>00065 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;bool&gt;</a> <a class="code" href="a00255.html#ga048f613527d6146d30bd45cfb9593ba4" title="Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...">isfinite</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;valType&gt;</a>&amp; x);
98 <a name="l00066"></a>00066
99 <a name="l00067"></a>00067 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <span class="keywordtype">bool</span> <a class="code" href="a00255.html#gab262f10a801ed389ab19f064f7dee84d" title="Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension)...">isinf</a>(genType <span class="keyword">const</span> &amp; x);
100 <a name="l00068"></a>00068 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;bool&gt;</a> <a class="code" href="a00255.html#gab262f10a801ed389ab19f064f7dee84d" title="Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension)...">isinf</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;genType&gt;</a>&amp; x);
101 <a name="l00069"></a>00069 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;bool&gt;</a> <a class="code" href="a00255.html#gab262f10a801ed389ab19f064f7dee84d" title="Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension)...">isinf</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;genType&gt;</a>&amp; x);
102 <a name="l00070"></a>00070 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;bool&gt;</a> <a class="code" href="a00255.html#gab262f10a801ed389ab19f064f7dee84d" title="Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension)...">isinf</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;genType&gt;</a>&amp; x);
103 <a name="l00071"></a>00071
104 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <span class="keywordtype">bool</span> <a class="code" href="a00255.html#gab221b862baf158dabffa0b6b5d3bee6d" title="Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension)...">isnan</a>(genType <span class="keyword">const</span> &amp; x);
105 <a name="l00073"></a>00073 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;bool&gt;</a> <a class="code" href="a00255.html#gab221b862baf158dabffa0b6b5d3bee6d" title="Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension)...">isnan</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;genType&gt;</a>&amp; x);
106 <a name="l00074"></a>00074 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;bool&gt;</a> <a class="code" href="a00255.html#gab221b862baf158dabffa0b6b5d3bee6d" title="Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension)...">isnan</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;genType&gt;</a>&amp; x);
107 <a name="l00075"></a>00075 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;bool&gt;</a> <a class="code" href="a00255.html#gab221b862baf158dabffa0b6b5d3bee6d" title="Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension)...">isnan</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;genType&gt;</a>&amp; x);
108 <a name="l00076"></a>00076
109 <a name="l00077"></a><a class="code" href="a00255.html#gaddcd7aa2e30e61af5b38660613d3979e">00077</a> <span class="keyword">typedef</span> <span class="keywordtype">bool</span> <a class="code" href="a00255.html#gaddcd7aa2e30e61af5b38660613d3979e" title="boolean type with 1 component. (From GLM_GTX_compatibility extension)">bool1</a>;
110 <a name="l00078"></a><a class="code" href="a00255.html#ga88cfb6bf63a7fd1f03fe5abeae2aec1d">00078</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;bool&gt;</a> <a class="code" href="a00255.html#ga88cfb6bf63a7fd1f03fe5abeae2aec1d" title="boolean type with 2 components. (From GLM_GTX_compatibility extension)">bool2</a>;
111 <a name="l00079"></a><a class="code" href="a00255.html#gade36f151806e985eec29fdf96ae6a2bb">00079</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;bool&gt;</a> <a class="code" href="a00255.html#gade36f151806e985eec29fdf96ae6a2bb" title="boolean type with 3 components. (From GLM_GTX_compatibility extension)">bool3</a>;
112 <a name="l00080"></a><a class="code" href="a00255.html#ga1ee8c362caed549a5a83fdd9db6ec6c2">00080</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;bool&gt;</a> <a class="code" href="a00255.html#ga1ee8c362caed549a5a83fdd9db6ec6c2" title="boolean type with 4 components. (From GLM_GTX_compatibility extension)">bool4</a>;
113 <a name="l00081"></a>00081
114 <a name="l00082"></a><a class="code" href="a00255.html#ga7f895c936f0c29c8729afbbf22806090">00082</a> <span class="keyword">typedef</span> <span class="keywordtype">bool</span> <a class="code" href="a00255.html#ga7f895c936f0c29c8729afbbf22806090" title="boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension)">bool1x1</a>;
115 <a name="l00083"></a><a class="code" href="a00255.html#ga51dfdd84c191d9433ebf5e626af2c1f9">00083</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;bool&gt;</a> <a class="code" href="a00255.html#ga51dfdd84c191d9433ebf5e626af2c1f9" title="boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)">bool2x2</a>;
116 <a name="l00084"></a><a class="code" href="a00255.html#ga3982a05435c6c2d492b747f8adf6b9e0">00084</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;bool&gt;</a> <a class="code" href="a00255.html#ga3982a05435c6c2d492b747f8adf6b9e0" title="boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)">bool2x3</a>;
117 <a name="l00085"></a><a class="code" href="a00255.html#ga78a505943e47244f4495d07e4884c318">00085</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;bool&gt;</a> <a class="code" href="a00255.html#ga78a505943e47244f4495d07e4884c318" title="boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)">bool2x4</a>;
118 <a name="l00086"></a><a class="code" href="a00255.html#gaf4e8c9209cfd75ac029f8d95e9520e2d">00086</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;bool&gt;</a> <a class="code" href="a00255.html#gaf4e8c9209cfd75ac029f8d95e9520e2d" title="boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)">bool3x2</a>;
119 <a name="l00087"></a><a class="code" href="a00255.html#ga977c0274e9364b129774aedb65b3dcbd">00087</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;bool&gt;</a> <a class="code" href="a00255.html#ga977c0274e9364b129774aedb65b3dcbd" title="boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)">bool3x3</a>;
120 <a name="l00088"></a><a class="code" href="a00255.html#ga5174a0758ee4bc91a51b1eb7b100a416">00088</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;bool&gt;</a> <a class="code" href="a00255.html#ga5174a0758ee4bc91a51b1eb7b100a416" title="boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)">bool3x4</a>;
121 <a name="l00089"></a><a class="code" href="a00255.html#ga590198580792550bff2a6bd7f811c8d9">00089</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;bool&gt;</a> <a class="code" href="a00255.html#ga590198580792550bff2a6bd7f811c8d9" title="boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)">bool4x2</a>;
122 <a name="l00090"></a><a class="code" href="a00255.html#gac8ac5c2c5db2f164ae2e25d1b9898a6b">00090</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;bool&gt;</a> <a class="code" href="a00255.html#gac8ac5c2c5db2f164ae2e25d1b9898a6b" title="boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)">bool4x3</a>;
123 <a name="l00091"></a><a class="code" href="a00255.html#gac437f71eba4fabf6d7551f1889af2ea5">00091</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;bool&gt;</a> <a class="code" href="a00255.html#gac437f71eba4fabf6d7551f1889af2ea5" title="boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)">bool4x4</a>;
124 <a name="l00092"></a>00092
125 <a name="l00093"></a><a class="code" href="a00255.html#ga0670a2111b5e4a6410bd027fa0232fc3">00093</a> <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00255.html#ga0670a2111b5e4a6410bd027fa0232fc3" title="integer vector with 1 component. (From GLM_GTX_compatibility extension)">int1</a>;
126 <a name="l00094"></a><a class="code" href="a00255.html#ga96b72b048dd3d9eb7caa93f9589b46a0">00094</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;int&gt;</a> <a class="code" href="a00255.html#ga96b72b048dd3d9eb7caa93f9589b46a0" title="integer vector with 2 components. (From GLM_GTX_compatibility extension)">int2</a>;
127 <a name="l00095"></a><a class="code" href="a00255.html#ga0e57fa71b1be1f6501d3985b7b7d4dac">00095</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;int&gt;</a> <a class="code" href="a00255.html#ga0e57fa71b1be1f6501d3985b7b7d4dac" title="integer vector with 3 components. (From GLM_GTX_compatibility extension)">int3</a>;
128 <a name="l00096"></a><a class="code" href="a00255.html#ga827bb0abe63248b0ae292a83ff55097a">00096</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;int&gt;</a> <a class="code" href="a00255.html#ga827bb0abe63248b0ae292a83ff55097a" title="integer vector with 4 components. (From GLM_GTX_compatibility extension)">int4</a>;
129 <a name="l00097"></a>00097
130 <a name="l00098"></a><a class="code" href="a00255.html#ga056ffe02d3a45af626f8e62221881c7a">00098</a> <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00255.html#ga056ffe02d3a45af626f8e62221881c7a" title="integer matrix with 1 component. (From GLM_GTX_compatibility extension)">int1x1</a>;
131 <a name="l00099"></a><a class="code" href="a00255.html#gab7644293a70c1e329624f556b779edde">00099</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;int&gt;</a> <a class="code" href="a00255.html#gab7644293a70c1e329624f556b779edde" title="integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)">int2x2</a>;
132 <a name="l00100"></a><a class="code" href="a00255.html#gaf2c5ace70f19d3916b43f25ab7ffbc95">00100</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;int&gt;</a> <a class="code" href="a00255.html#gaf2c5ace70f19d3916b43f25ab7ffbc95" title="integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)">int2x3</a>;
133 <a name="l00101"></a><a class="code" href="a00255.html#ga20ba14d42f3856221a0eb5194184bcf9">00101</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;int&gt;</a> <a class="code" href="a00255.html#ga20ba14d42f3856221a0eb5194184bcf9" title="integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)">int2x4</a>;
134 <a name="l00102"></a><a class="code" href="a00255.html#ga75bc457489f7d23f5ea56445c0b3fa3f">00102</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;int&gt;</a> <a class="code" href="a00255.html#ga75bc457489f7d23f5ea56445c0b3fa3f" title="integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)">int3x2</a>;
135 <a name="l00103"></a><a class="code" href="a00255.html#ga90d6b84bdde0d8247774aac30909ed03">00103</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;int&gt;</a> <a class="code" href="a00255.html#ga90d6b84bdde0d8247774aac30909ed03" title="integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)">int3x3</a>;
136 <a name="l00104"></a><a class="code" href="a00255.html#ga91da3b288518f40c78ee1d0e1fb1cdb3">00104</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;int&gt;</a> <a class="code" href="a00255.html#ga91da3b288518f40c78ee1d0e1fb1cdb3" title="integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)">int3x4</a>;
137 <a name="l00105"></a><a class="code" href="a00255.html#ga9101cda6ad27c3d5aa596ef9baeca75d">00105</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;int&gt;</a> <a class="code" href="a00255.html#ga9101cda6ad27c3d5aa596ef9baeca75d" title="integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)">int4x2</a>;
138 <a name="l00106"></a><a class="code" href="a00255.html#ga5f93d57c0c99fd11c353e952b107b036">00106</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;int&gt;</a> <a class="code" href="a00255.html#ga5f93d57c0c99fd11c353e952b107b036" title="integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)">int4x3</a>;
139 <a name="l00107"></a><a class="code" href="a00255.html#gacd4827b69f52f6486625bf65d23fe53f">00107</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;int&gt;</a> <a class="code" href="a00255.html#gacd4827b69f52f6486625bf65d23fe53f" title="integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)">int4x4</a>;
140 <a name="l00108"></a>00108
141 <a name="l00109"></a><a class="code" href="a00255.html#gac92f2c2693fb34285be07e772fcf0a53">00109</a> <span class="keyword">typedef</span> <a class="code" href="a00009.html" title="16-bit floating point type.">gtc::half_float::half</a> <a class="code" href="a00255.html#gac92f2c2693fb34285be07e772fcf0a53" title="half-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)...">half1</a>;
142 <a name="l00110"></a><a class="code" href="a00255.html#gaf768e8598259bc50119150ebea01fdbb">00110</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00255.html#gaf768e8598259bc50119150ebea01fdbb" title="half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)...">half2</a>;
143 <a name="l00111"></a><a class="code" href="a00255.html#gadb391aad07ab3f0a00d53a0a322fe52e">00111</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00255.html#gadb391aad07ab3f0a00d53a0a322fe52e" title="half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)...">half3</a>;
144 <a name="l00112"></a><a class="code" href="a00255.html#gaa4906c782e978976545039046ed3d629">00112</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00255.html#gaa4906c782e978976545039046ed3d629" title="half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)...">half4</a>;
145 <a name="l00113"></a>00113
146 <a name="l00114"></a><a class="code" href="a00255.html#ga9117ea66da761db845b445c4e7e1c745">00114</a> <span class="keyword">typedef</span> <a class="code" href="a00009.html" title="16-bit floating point type.">gtc::half_float::half</a> <a class="code" href="a00255.html#ga9117ea66da761db845b445c4e7e1c745" title="half-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)...">half1x1</a>;
147 <a name="l00115"></a><a class="code" href="a00255.html#gae04667191899a90d334e7585f341c523">00115</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00255.html#gae04667191899a90d334e7585f341c523" title="half-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)...">half2x2</a>;
148 <a name="l00116"></a><a class="code" href="a00255.html#ga44334615025353ffd16946ee83c96ebe">00116</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00255.html#ga44334615025353ffd16946ee83c96ebe" title="half-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)...">half2x3</a>;
149 <a name="l00117"></a><a class="code" href="a00255.html#gae0b63041228648f9223a421429c5a243">00117</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00255.html#gae0b63041228648f9223a421429c5a243" title="half-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)...">half2x4</a>;
150 <a name="l00118"></a><a class="code" href="a00255.html#gabb94c5e2a5c5091b7c65e132a02b2e55">00118</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00255.html#gabb94c5e2a5c5091b7c65e132a02b2e55" title="half-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)...">half3x2</a>;
151 <a name="l00119"></a><a class="code" href="a00255.html#ga2a4cf36c30efcd3358d617840ed8a3f2">00119</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00255.html#ga2a4cf36c30efcd3358d617840ed8a3f2" title="half-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)...">half3x3</a>;
152 <a name="l00120"></a><a class="code" href="a00255.html#gadecf6b2be379805949e6e74a24e2bdbd">00120</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00255.html#gadecf6b2be379805949e6e74a24e2bdbd" title="half-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)...">half3x4</a>;
153 <a name="l00121"></a><a class="code" href="a00255.html#ga34877ae24fd35deb8001cc358366e47f">00121</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00255.html#ga34877ae24fd35deb8001cc358366e47f" title="half-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)...">half4x2</a>;
154 <a name="l00122"></a><a class="code" href="a00255.html#gaae1ce7ae382a802a08180c21bfb2d863">00122</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00255.html#gaae1ce7ae382a802a08180c21bfb2d863" title="half-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)...">half4x3</a>;
155 <a name="l00123"></a><a class="code" href="a00255.html#gad5c6e0603afbcd8ccf217fe2dca50cc1">00123</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00255.html#gad5c6e0603afbcd8ccf217fe2dca50cc1" title="half-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)...">half4x4</a>;
156 <a name="l00124"></a>00124
157 <a name="l00125"></a><a class="code" href="a00255.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">00125</a> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00255.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead" title="single-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)...">float1</a>;
158 <a name="l00126"></a><a class="code" href="a00255.html#ga36aed7f41ff3a1be99f215754f43376f">00126</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;float&gt;</a> <a class="code" href="a00255.html#ga36aed7f41ff3a1be99f215754f43376f" title="single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)...">float2</a>;
159 <a name="l00127"></a><a class="code" href="a00255.html#ga1fe9cc8caced9aa000c36ca3c0a046ab">00127</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;float&gt;</a> <a class="code" href="a00255.html#ga1fe9cc8caced9aa000c36ca3c0a046ab" title="single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension)...">float3</a>;
160 <a name="l00128"></a><a class="code" href="a00255.html#ga1b1ca9850faf4c3ffddf95093a17b49c">00128</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;float&gt;</a> <a class="code" href="a00255.html#ga1b1ca9850faf4c3ffddf95093a17b49c" title="single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension)...">float4</a>;
161 <a name="l00129"></a>00129
162 <a name="l00130"></a><a class="code" href="a00255.html#ga73720b8dc4620835b17f74d428f98c0c">00130</a> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00255.html#ga73720b8dc4620835b17f74d428f98c0c" title="single-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)...">float1x1</a>;
163 <a name="l00131"></a><a class="code" href="a00255.html#gaf8d19b6f81f5cb8151f37c66c15691fa">00131</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;float&gt;</a> <a class="code" href="a00255.html#gaf8d19b6f81f5cb8151f37c66c15691fa" title="single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)...">float2x2</a>;
164 <a name="l00132"></a><a class="code" href="a00255.html#gaafc2b478b36de8b9da6fe1e0f88f68d4">00132</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;float&gt;</a> <a class="code" href="a00255.html#gaafc2b478b36de8b9da6fe1e0f88f68d4" title="single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)...">float2x3</a>;
165 <a name="l00133"></a><a class="code" href="a00255.html#ga77d14ba22d90b0af72a1572ee1bd9458">00133</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;float&gt;</a> <a class="code" href="a00255.html#ga77d14ba22d90b0af72a1572ee1bd9458" title="single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)...">float2x4</a>;
166 <a name="l00134"></a><a class="code" href="a00255.html#ga46c62307ff5e8418d27be225c1187e25">00134</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;float&gt;</a> <a class="code" href="a00255.html#ga46c62307ff5e8418d27be225c1187e25" title="single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)...">float3x2</a>;
167 <a name="l00135"></a><a class="code" href="a00255.html#ga5e6e08a42341c82268a4a94a02f7b016">00135</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;float&gt;</a> <a class="code" href="a00255.html#ga5e6e08a42341c82268a4a94a02f7b016" title="single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)...">float3x3</a>;
168 <a name="l00136"></a><a class="code" href="a00255.html#ga14a4142cbea2f8ade68c6c4ca0bca2e6">00136</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;float&gt;</a> <a class="code" href="a00255.html#ga14a4142cbea2f8ade68c6c4ca0bca2e6" title="single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)...">float3x4</a>;
169 <a name="l00137"></a><a class="code" href="a00255.html#ga7d53a0bdb8ce3ea6f26483d03a93309c">00137</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;float&gt;</a> <a class="code" href="a00255.html#ga7d53a0bdb8ce3ea6f26483d03a93309c" title="single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)...">float4x2</a>;
170 <a name="l00138"></a><a class="code" href="a00255.html#ga90ec9566c9961638c70e2ba2e3fd94fc">00138</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;float&gt;</a> <a class="code" href="a00255.html#ga90ec9566c9961638c70e2ba2e3fd94fc" title="single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)...">float4x3</a>;
171 <a name="l00139"></a><a class="code" href="a00255.html#ga1ab661a1b315e963ce81a7ebfb110aa7">00139</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;float&gt;</a> <a class="code" href="a00255.html#ga1ab661a1b315e963ce81a7ebfb110aa7" title="single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)...">float4x4</a>;
172 <a name="l00140"></a>00140
173 <a name="l00141"></a><a class="code" href="a00255.html#ga20b861a9b6e2a300323671c57a02525b">00141</a> <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00255.html#ga20b861a9b6e2a300323671c57a02525b" title="double-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)...">double1</a>;
174 <a name="l00142"></a><a class="code" href="a00255.html#ga7a2bed57d1cc7209ee6d027010bc96b6">00142</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;double&gt;</a> <a class="code" href="a00255.html#ga7a2bed57d1cc7209ee6d027010bc96b6" title="double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)...">double2</a>;
175 <a name="l00143"></a><a class="code" href="a00255.html#gaed0358fe1eb696b655a13eac4ececb2a">00143</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;double&gt;</a> <a class="code" href="a00255.html#gaed0358fe1eb696b655a13eac4ececb2a" title="double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension)...">double3</a>;
176 <a name="l00144"></a><a class="code" href="a00255.html#gace0ba846c7443d0d56abb0ca3e61469d">00144</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;double&gt;</a> <a class="code" href="a00255.html#gace0ba846c7443d0d56abb0ca3e61469d" title="double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension)...">double4</a>;
177 <a name="l00145"></a>00145
178 <a name="l00146"></a><a class="code" href="a00255.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">00146</a> <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00255.html#ga45f16a4dd0db1f199afaed9fd12fe9a8" title="double-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)...">double1x1</a>;
179 <a name="l00147"></a><a class="code" href="a00255.html#ga96772f5981821b9e80c572481e37f220">00147</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;double&gt;</a> <a class="code" href="a00255.html#ga96772f5981821b9e80c572481e37f220" title="double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)...">double2x2</a>;
180 <a name="l00148"></a><a class="code" href="a00255.html#ga07bbc143dfea7838be68d63c114317f4">00148</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;double&gt;</a> <a class="code" href="a00255.html#ga07bbc143dfea7838be68d63c114317f4" title="double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)...">double2x3</a>;
181 <a name="l00149"></a><a class="code" href="a00255.html#ga1e68c0a16e5684f44d86faac2a7d6810">00149</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;double&gt;</a> <a class="code" href="a00255.html#ga1e68c0a16e5684f44d86faac2a7d6810" title="double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)...">double2x4</a>;
182 <a name="l00150"></a><a class="code" href="a00255.html#ga6e8dd2531703ce00b253ddd3c0c6eaca">00150</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;double&gt;</a> <a class="code" href="a00255.html#ga6e8dd2531703ce00b253ddd3c0c6eaca" title="double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)...">double3x2</a>;
183 <a name="l00151"></a><a class="code" href="a00255.html#ga5dfb1357edcef48fcfdf9908906ae086">00151</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;double&gt;</a> <a class="code" href="a00255.html#ga5dfb1357edcef48fcfdf9908906ae086" title="double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)...">double3x3</a>;
184 <a name="l00152"></a><a class="code" href="a00255.html#ga3b83eafbc284acce070855469c39b991">00152</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;double&gt;</a> <a class="code" href="a00255.html#ga3b83eafbc284acce070855469c39b991" title="double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)...">double3x4</a>;
185 <a name="l00153"></a><a class="code" href="a00255.html#ga19c9ec02aa62b78e9709c4b2e2ae6f35">00153</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;double&gt;</a> <a class="code" href="a00255.html#ga19c9ec02aa62b78e9709c4b2e2ae6f35" title="double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)...">double4x2</a>;
186 <a name="l00154"></a><a class="code" href="a00255.html#ga53c7dc9532c324aefb75a5f08033cd12">00154</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;double&gt;</a> <a class="code" href="a00255.html#ga53c7dc9532c324aefb75a5f08033cd12" title="double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)...">double4x3</a>;
187 <a name="l00155"></a><a class="code" href="a00255.html#ga2cc8e4fa772bfc5c1cada72ee5cadaf8">00155</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;double&gt;</a> <a class="code" href="a00255.html#ga2cc8e4fa772bfc5c1cada72ee5cadaf8" title="double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)...">double4x4</a>;
188 <a name="l00156"></a>00156
189 <a name="l00158"></a>00158
190 <a name="l00159"></a>00159 }<span class="comment">//namespace compatibility</span>
191 <a name="l00160"></a>00160 }<span class="comment">//namespace gtx</span>
192 <a name="l00161"></a>00161 }<span class="comment">//namespace glm</span>
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>glm{
67 <a name="l00032"></a>00032 <span class="keyword">namespace </span>gtx{
68 <a name="l00033"></a><a class="code" href="a00175.html">00033</a> <span class="keyword">namespace </span>compatibility
69 <a name="l00034"></a>00034 {
70 <a name="l00037"></a>00037
71 <a name="l00038"></a><a class="code" href="a00254.html#ga56463ea9166068ab33107e1cea942023">00038</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00254.html#ga56463ea9166068ab33107e1cea942023" title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> a){<span class="keywordflow">return</span> <a class="code" href="a00145.html#aa0e50f7c66dbac1eb55e8ff6635f8cf1">mix</a>(x, y, a);}
72 <a name="l00039"></a><a class="code" href="a00254.html#ga5f7bfd8f1e917fd897a738177492c59a">00039</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00254.html#ga56463ea9166068ab33107e1cea942023" title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> a){<span class="keywordflow">return</span> <a class="code" href="a00145.html#aa0e50f7c66dbac1eb55e8ff6635f8cf1">mix</a>(x, y, a);}
73 <a name="l00040"></a><a class="code" href="a00254.html#gae7298450eb0c1489eda07ccdfdcbf205">00040</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00254.html#ga56463ea9166068ab33107e1cea942023" title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> a){<span class="keywordflow">return</span> <a class="code" href="a00145.html#aa0e50f7c66dbac1eb55e8ff6635f8cf1">mix</a>(x, y, a);}
74 <a name="l00041"></a><a class="code" href="a00254.html#gafe1e12ad09189be637164559d225db78">00041</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00254.html#ga56463ea9166068ab33107e1cea942023" title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> a){<span class="keywordflow">return</span> <a class="code" href="a00145.html#aa0e50f7c66dbac1eb55e8ff6635f8cf1">mix</a>(x, y, a);}
75 <a name="l00042"></a><a class="code" href="a00254.html#ga221f6378c8c9f710edaceccb748f5b18">00042</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00254.html#ga56463ea9166068ab33107e1cea942023" title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; y, <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00145.html#aa0e50f7c66dbac1eb55e8ff6635f8cf1">mix</a>(x, y, a);}
76 <a name="l00043"></a><a class="code" href="a00254.html#gac6fa04956f007fbb8b4c51ba93d3a13a">00043</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00254.html#ga56463ea9166068ab33107e1cea942023" title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; y, <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00145.html#aa0e50f7c66dbac1eb55e8ff6635f8cf1">mix</a>(x, y, a);}
77 <a name="l00044"></a><a class="code" href="a00254.html#ga466cc6c042c517982f69db928fd697cf">00044</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00254.html#ga56463ea9166068ab33107e1cea942023" title="Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a...">lerp</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; y, <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00145.html#aa0e50f7c66dbac1eb55e8ff6635f8cf1">mix</a>(x, y, a);}
78 <a name="l00045"></a>00045
79 <a name="l00046"></a><a class="code" href="a00254.html#gaa2afedf17ac7da10d95f383ea6be3124">00046</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00254.html#gaa2afedf17ac7da10d95f383ea6be3124" title="Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)">saturate</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> x){<span class="keywordflow">return</span> <a class="code" href="a00145.html#a3f3febbf65f3a1f5695aae62f0e89694" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>(0), <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>(1));}
80 <a name="l00047"></a><a class="code" href="a00254.html#gadcd5e59d930f0e9b26a78740b403412b">00047</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00254.html#gaa2afedf17ac7da10d95f383ea6be3124" title="Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)">saturate</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00145.html#a3f3febbf65f3a1f5695aae62f0e89694" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>(0), <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>(1));}
81 <a name="l00048"></a><a class="code" href="a00254.html#ga30791379500c2646301973bc133cb240">00048</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00254.html#gaa2afedf17ac7da10d95f383ea6be3124" title="Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)">saturate</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00145.html#a3f3febbf65f3a1f5695aae62f0e89694" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>(0), <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>(1));}
82 <a name="l00049"></a><a class="code" href="a00254.html#ga10a1c2401e1051008c551c3a0eadf6e4">00049</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00254.html#gaa2afedf17ac7da10d95f383ea6be3124" title="Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)">saturate</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00145.html#a3f3febbf65f3a1f5695aae62f0e89694" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>(0), <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>(1));}
83 <a name="l00050"></a>00050
84 <a name="l00051"></a><a class="code" href="a00254.html#gacea44c6ab8e09b0616c58a514b1a9a81">00051</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00254.html#gacea44c6ab8e09b0616c58a514b1a9a81" title="Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...">atan2</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> y){<span class="keywordflow">return</span> <a class="code" href="a00237.html#ga32dbceedb2910e519860a225ae7f7450" title="Arc tangent.">atan</a>(x, y);}
85 <a name="l00052"></a><a class="code" href="a00254.html#ga7aa5d9aae622970abb85b946ded2c64e">00052</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00254.html#gacea44c6ab8e09b0616c58a514b1a9a81" title="Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...">atan2</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00237.html#ga32dbceedb2910e519860a225ae7f7450" title="Arc tangent.">atan</a>(x, y);}
86 <a name="l00053"></a><a class="code" href="a00254.html#ga4af7333865c906a5199342ec99ab6002">00053</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00254.html#gacea44c6ab8e09b0616c58a514b1a9a81" title="Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...">atan2</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00237.html#ga32dbceedb2910e519860a225ae7f7450" title="Arc tangent.">atan</a>(x, y);}
87 <a name="l00054"></a><a class="code" href="a00254.html#ga83dab39f1f74ed90e9511a5f88805a08">00054</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00254.html#gacea44c6ab8e09b0616c58a514b1a9a81" title="Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...">atan2</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00237.html#ga32dbceedb2910e519860a225ae7f7450" title="Arc tangent.">atan</a>(x, y);}
88 <a name="l00055"></a>00055
89 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <span class="keywordtype">bool</span> <a class="code" href="a00254.html#ga048f613527d6146d30bd45cfb9593ba4" title="Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...">isfinite</a>(genType <span class="keyword">const</span> &amp; x);
90 <a name="l00057"></a>00057 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;bool&gt;</a> <a class="code" href="a00254.html#ga048f613527d6146d30bd45cfb9593ba4" title="Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...">isfinite</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;valType&gt;</a>&amp; x);
91 <a name="l00058"></a>00058 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;bool&gt;</a> <a class="code" href="a00254.html#ga048f613527d6146d30bd45cfb9593ba4" title="Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...">isfinite</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a>&amp; x);
92 <a name="l00059"></a>00059 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;bool&gt;</a> <a class="code" href="a00254.html#ga048f613527d6146d30bd45cfb9593ba4" title="Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...">isfinite</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;valType&gt;</a>&amp; x);
93 <a name="l00060"></a>00060
94 <a name="l00061"></a>00061 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <span class="keywordtype">bool</span> <a class="code" href="a00254.html#gab262f10a801ed389ab19f064f7dee84d" title="Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension)...">isinf</a>(genType <span class="keyword">const</span> &amp; x);
95 <a name="l00062"></a>00062 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;bool&gt;</a> <a class="code" href="a00254.html#gab262f10a801ed389ab19f064f7dee84d" title="Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension)...">isinf</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;genType&gt;</a>&amp; x);
96 <a name="l00063"></a>00063 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;bool&gt;</a> <a class="code" href="a00254.html#gab262f10a801ed389ab19f064f7dee84d" title="Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension)...">isinf</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;genType&gt;</a>&amp; x);
97 <a name="l00064"></a>00064 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;bool&gt;</a> <a class="code" href="a00254.html#gab262f10a801ed389ab19f064f7dee84d" title="Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension)...">isinf</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;genType&gt;</a>&amp; x);
98 <a name="l00065"></a>00065
99 <a name="l00066"></a>00066 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <span class="keywordtype">bool</span> <a class="code" href="a00254.html#gab221b862baf158dabffa0b6b5d3bee6d" title="Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension)...">isnan</a>(genType <span class="keyword">const</span> &amp; x);
100 <a name="l00067"></a>00067 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;bool&gt;</a> <a class="code" href="a00254.html#gab221b862baf158dabffa0b6b5d3bee6d" title="Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension)...">isnan</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;genType&gt;</a>&amp; x);
101 <a name="l00068"></a>00068 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;bool&gt;</a> <a class="code" href="a00254.html#gab221b862baf158dabffa0b6b5d3bee6d" title="Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension)...">isnan</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;genType&gt;</a>&amp; x);
102 <a name="l00069"></a>00069 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;bool&gt;</a> <a class="code" href="a00254.html#gab221b862baf158dabffa0b6b5d3bee6d" title="Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension)...">isnan</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;genType&gt;</a>&amp; x);
103 <a name="l00070"></a>00070
104 <a name="l00071"></a><a class="code" href="a00254.html#gaddcd7aa2e30e61af5b38660613d3979e">00071</a> <span class="keyword">typedef</span> <span class="keywordtype">bool</span> <a class="code" href="a00254.html#gaddcd7aa2e30e61af5b38660613d3979e" title="boolean type with 1 component. (From GLM_GTX_compatibility extension)">bool1</a>;
105 <a name="l00072"></a><a class="code" href="a00254.html#ga88cfb6bf63a7fd1f03fe5abeae2aec1d">00072</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;bool&gt;</a> <a class="code" href="a00254.html#ga88cfb6bf63a7fd1f03fe5abeae2aec1d" title="boolean type with 2 components. (From GLM_GTX_compatibility extension)">bool2</a>;
106 <a name="l00073"></a><a class="code" href="a00254.html#gade36f151806e985eec29fdf96ae6a2bb">00073</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;bool&gt;</a> <a class="code" href="a00254.html#gade36f151806e985eec29fdf96ae6a2bb" title="boolean type with 3 components. (From GLM_GTX_compatibility extension)">bool3</a>;
107 <a name="l00074"></a><a class="code" href="a00254.html#ga1ee8c362caed549a5a83fdd9db6ec6c2">00074</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;bool&gt;</a> <a class="code" href="a00254.html#ga1ee8c362caed549a5a83fdd9db6ec6c2" title="boolean type with 4 components. (From GLM_GTX_compatibility extension)">bool4</a>;
108 <a name="l00075"></a>00075
109 <a name="l00076"></a><a class="code" href="a00254.html#ga7f895c936f0c29c8729afbbf22806090">00076</a> <span class="keyword">typedef</span> <span class="keywordtype">bool</span> <a class="code" href="a00254.html#ga7f895c936f0c29c8729afbbf22806090" title="boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension)">bool1x1</a>;
110 <a name="l00077"></a><a class="code" href="a00254.html#ga51dfdd84c191d9433ebf5e626af2c1f9">00077</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;bool&gt;</a> <a class="code" href="a00254.html#ga51dfdd84c191d9433ebf5e626af2c1f9" title="boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)">bool2x2</a>;
111 <a name="l00078"></a><a class="code" href="a00254.html#ga3982a05435c6c2d492b747f8adf6b9e0">00078</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;bool&gt;</a> <a class="code" href="a00254.html#ga3982a05435c6c2d492b747f8adf6b9e0" title="boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)">bool2x3</a>;
112 <a name="l00079"></a><a class="code" href="a00254.html#ga78a505943e47244f4495d07e4884c318">00079</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;bool&gt;</a> <a class="code" href="a00254.html#ga78a505943e47244f4495d07e4884c318" title="boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)">bool2x4</a>;
113 <a name="l00080"></a><a class="code" href="a00254.html#gaf4e8c9209cfd75ac029f8d95e9520e2d">00080</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;bool&gt;</a> <a class="code" href="a00254.html#gaf4e8c9209cfd75ac029f8d95e9520e2d" title="boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)">bool3x2</a>;
114 <a name="l00081"></a><a class="code" href="a00254.html#ga977c0274e9364b129774aedb65b3dcbd">00081</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;bool&gt;</a> <a class="code" href="a00254.html#ga977c0274e9364b129774aedb65b3dcbd" title="boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)">bool3x3</a>;
115 <a name="l00082"></a><a class="code" href="a00254.html#ga5174a0758ee4bc91a51b1eb7b100a416">00082</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;bool&gt;</a> <a class="code" href="a00254.html#ga5174a0758ee4bc91a51b1eb7b100a416" title="boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)">bool3x4</a>;
116 <a name="l00083"></a><a class="code" href="a00254.html#ga590198580792550bff2a6bd7f811c8d9">00083</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;bool&gt;</a> <a class="code" href="a00254.html#ga590198580792550bff2a6bd7f811c8d9" title="boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)">bool4x2</a>;
117 <a name="l00084"></a><a class="code" href="a00254.html#gac8ac5c2c5db2f164ae2e25d1b9898a6b">00084</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;bool&gt;</a> <a class="code" href="a00254.html#gac8ac5c2c5db2f164ae2e25d1b9898a6b" title="boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)">bool4x3</a>;
118 <a name="l00085"></a><a class="code" href="a00254.html#gac437f71eba4fabf6d7551f1889af2ea5">00085</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;bool&gt;</a> <a class="code" href="a00254.html#gac437f71eba4fabf6d7551f1889af2ea5" title="boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)">bool4x4</a>;
119 <a name="l00086"></a>00086
120 <a name="l00087"></a><a class="code" href="a00254.html#ga0670a2111b5e4a6410bd027fa0232fc3">00087</a> <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00254.html#ga0670a2111b5e4a6410bd027fa0232fc3" title="integer vector with 1 component. (From GLM_GTX_compatibility extension)">int1</a>;
121 <a name="l00088"></a><a class="code" href="a00254.html#ga96b72b048dd3d9eb7caa93f9589b46a0">00088</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;int&gt;</a> <a class="code" href="a00254.html#ga96b72b048dd3d9eb7caa93f9589b46a0" title="integer vector with 2 components. (From GLM_GTX_compatibility extension)">int2</a>;
122 <a name="l00089"></a><a class="code" href="a00254.html#ga0e57fa71b1be1f6501d3985b7b7d4dac">00089</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;int&gt;</a> <a class="code" href="a00254.html#ga0e57fa71b1be1f6501d3985b7b7d4dac" title="integer vector with 3 components. (From GLM_GTX_compatibility extension)">int3</a>;
123 <a name="l00090"></a><a class="code" href="a00254.html#ga827bb0abe63248b0ae292a83ff55097a">00090</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;int&gt;</a> <a class="code" href="a00254.html#ga827bb0abe63248b0ae292a83ff55097a" title="integer vector with 4 components. (From GLM_GTX_compatibility extension)">int4</a>;
124 <a name="l00091"></a>00091
125 <a name="l00092"></a><a class="code" href="a00254.html#ga056ffe02d3a45af626f8e62221881c7a">00092</a> <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00254.html#ga056ffe02d3a45af626f8e62221881c7a" title="integer matrix with 1 component. (From GLM_GTX_compatibility extension)">int1x1</a>;
126 <a name="l00093"></a><a class="code" href="a00254.html#gab7644293a70c1e329624f556b779edde">00093</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;int&gt;</a> <a class="code" href="a00254.html#gab7644293a70c1e329624f556b779edde" title="integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)">int2x2</a>;
127 <a name="l00094"></a><a class="code" href="a00254.html#gaf2c5ace70f19d3916b43f25ab7ffbc95">00094</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;int&gt;</a> <a class="code" href="a00254.html#gaf2c5ace70f19d3916b43f25ab7ffbc95" title="integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)">int2x3</a>;
128 <a name="l00095"></a><a class="code" href="a00254.html#ga20ba14d42f3856221a0eb5194184bcf9">00095</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;int&gt;</a> <a class="code" href="a00254.html#ga20ba14d42f3856221a0eb5194184bcf9" title="integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)">int2x4</a>;
129 <a name="l00096"></a><a class="code" href="a00254.html#ga75bc457489f7d23f5ea56445c0b3fa3f">00096</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;int&gt;</a> <a class="code" href="a00254.html#ga75bc457489f7d23f5ea56445c0b3fa3f" title="integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)">int3x2</a>;
130 <a name="l00097"></a><a class="code" href="a00254.html#ga90d6b84bdde0d8247774aac30909ed03">00097</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;int&gt;</a> <a class="code" href="a00254.html#ga90d6b84bdde0d8247774aac30909ed03" title="integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)">int3x3</a>;
131 <a name="l00098"></a><a class="code" href="a00254.html#ga91da3b288518f40c78ee1d0e1fb1cdb3">00098</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;int&gt;</a> <a class="code" href="a00254.html#ga91da3b288518f40c78ee1d0e1fb1cdb3" title="integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)">int3x4</a>;
132 <a name="l00099"></a><a class="code" href="a00254.html#ga9101cda6ad27c3d5aa596ef9baeca75d">00099</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;int&gt;</a> <a class="code" href="a00254.html#ga9101cda6ad27c3d5aa596ef9baeca75d" title="integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)">int4x2</a>;
133 <a name="l00100"></a><a class="code" href="a00254.html#ga5f93d57c0c99fd11c353e952b107b036">00100</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;int&gt;</a> <a class="code" href="a00254.html#ga5f93d57c0c99fd11c353e952b107b036" title="integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)">int4x3</a>;
134 <a name="l00101"></a><a class="code" href="a00254.html#gacd4827b69f52f6486625bf65d23fe53f">00101</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;int&gt;</a> <a class="code" href="a00254.html#gacd4827b69f52f6486625bf65d23fe53f" title="integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)">int4x4</a>;
135 <a name="l00102"></a>00102
136 <a name="l00103"></a><a class="code" href="a00254.html#gac92f2c2693fb34285be07e772fcf0a53">00103</a> <span class="keyword">typedef</span> <a class="code" href="a00009.html" title="16-bit floating point type.">gtc::half_float::half</a> <a class="code" href="a00254.html#gac92f2c2693fb34285be07e772fcf0a53" title="half-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)...">half1</a>;
137 <a name="l00104"></a><a class="code" href="a00254.html#gaf768e8598259bc50119150ebea01fdbb">00104</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00254.html#gaf768e8598259bc50119150ebea01fdbb" title="half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)...">half2</a>;
138 <a name="l00105"></a><a class="code" href="a00254.html#gadb391aad07ab3f0a00d53a0a322fe52e">00105</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00254.html#gadb391aad07ab3f0a00d53a0a322fe52e" title="half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)...">half3</a>;
139 <a name="l00106"></a><a class="code" href="a00254.html#gaa4906c782e978976545039046ed3d629">00106</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00254.html#gaa4906c782e978976545039046ed3d629" title="half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)...">half4</a>;
140 <a name="l00107"></a>00107
141 <a name="l00108"></a><a class="code" href="a00254.html#ga9117ea66da761db845b445c4e7e1c745">00108</a> <span class="keyword">typedef</span> <a class="code" href="a00009.html" title="16-bit floating point type.">gtc::half_float::half</a> <a class="code" href="a00254.html#ga9117ea66da761db845b445c4e7e1c745" title="half-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)...">half1x1</a>;
142 <a name="l00109"></a><a class="code" href="a00254.html#gae04667191899a90d334e7585f341c523">00109</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00254.html#gae04667191899a90d334e7585f341c523" title="half-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)...">half2x2</a>;
143 <a name="l00110"></a><a class="code" href="a00254.html#ga44334615025353ffd16946ee83c96ebe">00110</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00254.html#ga44334615025353ffd16946ee83c96ebe" title="half-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)...">half2x3</a>;
144 <a name="l00111"></a><a class="code" href="a00254.html#gae0b63041228648f9223a421429c5a243">00111</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00254.html#gae0b63041228648f9223a421429c5a243" title="half-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)...">half2x4</a>;
145 <a name="l00112"></a><a class="code" href="a00254.html#gabb94c5e2a5c5091b7c65e132a02b2e55">00112</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00254.html#gabb94c5e2a5c5091b7c65e132a02b2e55" title="half-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)...">half3x2</a>;
146 <a name="l00113"></a><a class="code" href="a00254.html#ga2a4cf36c30efcd3358d617840ed8a3f2">00113</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00254.html#ga2a4cf36c30efcd3358d617840ed8a3f2" title="half-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)...">half3x3</a>;
147 <a name="l00114"></a><a class="code" href="a00254.html#gadecf6b2be379805949e6e74a24e2bdbd">00114</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00254.html#gadecf6b2be379805949e6e74a24e2bdbd" title="half-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)...">half3x4</a>;
148 <a name="l00115"></a><a class="code" href="a00254.html#ga34877ae24fd35deb8001cc358366e47f">00115</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00254.html#ga34877ae24fd35deb8001cc358366e47f" title="half-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)...">half4x2</a>;
149 <a name="l00116"></a><a class="code" href="a00254.html#gaae1ce7ae382a802a08180c21bfb2d863">00116</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00254.html#gaae1ce7ae382a802a08180c21bfb2d863" title="half-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)...">half4x3</a>;
150 <a name="l00117"></a><a class="code" href="a00254.html#gad5c6e0603afbcd8ccf217fe2dca50cc1">00117</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;gtc::half_float::half&gt;</a> <a class="code" href="a00254.html#gad5c6e0603afbcd8ccf217fe2dca50cc1" title="half-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)...">half4x4</a>;
151 <a name="l00118"></a>00118
152 <a name="l00119"></a><a class="code" href="a00254.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">00119</a> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00254.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead" title="single-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)...">float1</a>;
153 <a name="l00120"></a><a class="code" href="a00254.html#ga36aed7f41ff3a1be99f215754f43376f">00120</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;float&gt;</a> <a class="code" href="a00254.html#ga36aed7f41ff3a1be99f215754f43376f" title="single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)...">float2</a>;
154 <a name="l00121"></a><a class="code" href="a00254.html#ga1fe9cc8caced9aa000c36ca3c0a046ab">00121</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;float&gt;</a> <a class="code" href="a00254.html#ga1fe9cc8caced9aa000c36ca3c0a046ab" title="single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension)...">float3</a>;
155 <a name="l00122"></a><a class="code" href="a00254.html#ga1b1ca9850faf4c3ffddf95093a17b49c">00122</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;float&gt;</a> <a class="code" href="a00254.html#ga1b1ca9850faf4c3ffddf95093a17b49c" title="single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension)...">float4</a>;
156 <a name="l00123"></a>00123
157 <a name="l00124"></a><a class="code" href="a00254.html#ga73720b8dc4620835b17f74d428f98c0c">00124</a> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00254.html#ga73720b8dc4620835b17f74d428f98c0c" title="single-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)...">float1x1</a>;
158 <a name="l00125"></a><a class="code" href="a00254.html#gaf8d19b6f81f5cb8151f37c66c15691fa">00125</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;float&gt;</a> <a class="code" href="a00254.html#gaf8d19b6f81f5cb8151f37c66c15691fa" title="single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)...">float2x2</a>;
159 <a name="l00126"></a><a class="code" href="a00254.html#gaafc2b478b36de8b9da6fe1e0f88f68d4">00126</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;float&gt;</a> <a class="code" href="a00254.html#gaafc2b478b36de8b9da6fe1e0f88f68d4" title="single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)...">float2x3</a>;
160 <a name="l00127"></a><a class="code" href="a00254.html#ga77d14ba22d90b0af72a1572ee1bd9458">00127</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;float&gt;</a> <a class="code" href="a00254.html#ga77d14ba22d90b0af72a1572ee1bd9458" title="single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)...">float2x4</a>;
161 <a name="l00128"></a><a class="code" href="a00254.html#ga46c62307ff5e8418d27be225c1187e25">00128</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;float&gt;</a> <a class="code" href="a00254.html#ga46c62307ff5e8418d27be225c1187e25" title="single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)...">float3x2</a>;
162 <a name="l00129"></a><a class="code" href="a00254.html#ga5e6e08a42341c82268a4a94a02f7b016">00129</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;float&gt;</a> <a class="code" href="a00254.html#ga5e6e08a42341c82268a4a94a02f7b016" title="single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)...">float3x3</a>;
163 <a name="l00130"></a><a class="code" href="a00254.html#ga14a4142cbea2f8ade68c6c4ca0bca2e6">00130</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;float&gt;</a> <a class="code" href="a00254.html#ga14a4142cbea2f8ade68c6c4ca0bca2e6" title="single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)...">float3x4</a>;
164 <a name="l00131"></a><a class="code" href="a00254.html#ga7d53a0bdb8ce3ea6f26483d03a93309c">00131</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;float&gt;</a> <a class="code" href="a00254.html#ga7d53a0bdb8ce3ea6f26483d03a93309c" title="single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)...">float4x2</a>;
165 <a name="l00132"></a><a class="code" href="a00254.html#ga90ec9566c9961638c70e2ba2e3fd94fc">00132</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;float&gt;</a> <a class="code" href="a00254.html#ga90ec9566c9961638c70e2ba2e3fd94fc" title="single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)...">float4x3</a>;
166 <a name="l00133"></a><a class="code" href="a00254.html#ga1ab661a1b315e963ce81a7ebfb110aa7">00133</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;float&gt;</a> <a class="code" href="a00254.html#ga1ab661a1b315e963ce81a7ebfb110aa7" title="single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)...">float4x4</a>;
167 <a name="l00134"></a>00134
168 <a name="l00135"></a><a class="code" href="a00254.html#ga20b861a9b6e2a300323671c57a02525b">00135</a> <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00254.html#ga20b861a9b6e2a300323671c57a02525b" title="double-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)...">double1</a>;
169 <a name="l00136"></a><a class="code" href="a00254.html#ga7a2bed57d1cc7209ee6d027010bc96b6">00136</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;double&gt;</a> <a class="code" href="a00254.html#ga7a2bed57d1cc7209ee6d027010bc96b6" title="double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)...">double2</a>;
170 <a name="l00137"></a><a class="code" href="a00254.html#gaed0358fe1eb696b655a13eac4ececb2a">00137</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;double&gt;</a> <a class="code" href="a00254.html#gaed0358fe1eb696b655a13eac4ececb2a" title="double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension)...">double3</a>;
171 <a name="l00138"></a><a class="code" href="a00254.html#gace0ba846c7443d0d56abb0ca3e61469d">00138</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;double&gt;</a> <a class="code" href="a00254.html#gace0ba846c7443d0d56abb0ca3e61469d" title="double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension)...">double4</a>;
172 <a name="l00139"></a>00139
173 <a name="l00140"></a><a class="code" href="a00254.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">00140</a> <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00254.html#ga45f16a4dd0db1f199afaed9fd12fe9a8" title="double-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)...">double1x1</a>;
174 <a name="l00141"></a><a class="code" href="a00254.html#ga96772f5981821b9e80c572481e37f220">00141</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;double&gt;</a> <a class="code" href="a00254.html#ga96772f5981821b9e80c572481e37f220" title="double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)...">double2x2</a>;
175 <a name="l00142"></a><a class="code" href="a00254.html#ga07bbc143dfea7838be68d63c114317f4">00142</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;double&gt;</a> <a class="code" href="a00254.html#ga07bbc143dfea7838be68d63c114317f4" title="double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)...">double2x3</a>;
176 <a name="l00143"></a><a class="code" href="a00254.html#ga1e68c0a16e5684f44d86faac2a7d6810">00143</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;double&gt;</a> <a class="code" href="a00254.html#ga1e68c0a16e5684f44d86faac2a7d6810" title="double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)...">double2x4</a>;
177 <a name="l00144"></a><a class="code" href="a00254.html#ga6e8dd2531703ce00b253ddd3c0c6eaca">00144</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;double&gt;</a> <a class="code" href="a00254.html#ga6e8dd2531703ce00b253ddd3c0c6eaca" title="double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)...">double3x2</a>;
178 <a name="l00145"></a><a class="code" href="a00254.html#ga5dfb1357edcef48fcfdf9908906ae086">00145</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;double&gt;</a> <a class="code" href="a00254.html#ga5dfb1357edcef48fcfdf9908906ae086" title="double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)...">double3x3</a>;
179 <a name="l00146"></a><a class="code" href="a00254.html#ga3b83eafbc284acce070855469c39b991">00146</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;double&gt;</a> <a class="code" href="a00254.html#ga3b83eafbc284acce070855469c39b991" title="double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)...">double3x4</a>;
180 <a name="l00147"></a><a class="code" href="a00254.html#ga19c9ec02aa62b78e9709c4b2e2ae6f35">00147</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;double&gt;</a> <a class="code" href="a00254.html#ga19c9ec02aa62b78e9709c4b2e2ae6f35" title="double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)...">double4x2</a>;
181 <a name="l00148"></a><a class="code" href="a00254.html#ga53c7dc9532c324aefb75a5f08033cd12">00148</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;double&gt;</a> <a class="code" href="a00254.html#ga53c7dc9532c324aefb75a5f08033cd12" title="double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)...">double4x3</a>;
182 <a name="l00149"></a><a class="code" href="a00254.html#ga2cc8e4fa772bfc5c1cada72ee5cadaf8">00149</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;double&gt;</a> <a class="code" href="a00254.html#ga2cc8e4fa772bfc5c1cada72ee5cadaf8" title="double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)...">double4x4</a>;
183 <a name="l00150"></a>00150
184 <a name="l00152"></a>00152 }<span class="comment">//namespace compatibility</span>
185 <a name="l00153"></a>00153 }<span class="comment">//namespace gtx</span>
186 <a name="l00154"></a>00154 }<span class="comment">//namespace glm</span>
187 <a name="l00155"></a>00155
188 <a name="l00156"></a>00156 <span class="preprocessor">#include &quot;compatibility.inl&quot;</span>
189 <a name="l00157"></a>00157
190 <a name="l00158"></a>00158 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::compatibility;}
191 <a name="l00159"></a>00159
192 <a name="l00160"></a>00160 <span class="preprocessor">#endif//glm_gtx_compatibility</span>
193 <a name="l00161"></a>00161 <span class="preprocessor"></span>
193194 <a name="l00162"></a>00162
194 <a name="l00163"></a>00163 <span class="preprocessor">#include &quot;compatibility.inl&quot;</span>
195 <a name="l00163"></a>00163
195196 <a name="l00164"></a>00164
196 <a name="l00165"></a>00165 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::compatibility;}
197 <a name="l00165"></a>00165
197198 <a name="l00166"></a>00166
198 <a name="l00167"></a>00167 <span class="preprocessor">#endif//glm_gtx_compatibility</span>
199 <a name="l00168"></a>00168 <span class="preprocessor"></span>
199 <a name="l00167"></a>00167
200 <a name="l00168"></a>00168
200201 <a name="l00169"></a>00169
201202 <a name="l00170"></a>00170
202 <a name="l00171"></a>00171
203 <a name="l00172"></a>00172
204 <a name="l00173"></a>00173
205 <a name="l00174"></a>00174
206 <a name="l00175"></a>00175
207 <a name="l00176"></a>00176
208 <a name="l00177"></a>00177
209203 </pre></div></div>
210204 </div>
211205 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_component_wise extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">void</span> main_gtx_component_wise();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00176.html">00031</a> <span class="keyword">namespace </span>component_wise
66 <a name="l00032"></a>00032 {
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00176.html">00025</a> <span class="keyword">namespace </span>component_wise
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
64 <a name="l00033"></a>00033 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00255.html#ga67c4614f0fc500f0d0f9db9b2d7f8c00" title="Add all vector components together.">compAdd</a>(
65 <a name="l00034"></a>00034 genType <span class="keyword">const</span> &amp; v);
6766 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
69 <a name="l00039"></a>00039 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00256.html#ga67c4614f0fc500f0d0f9db9b2d7f8c00" title="Add all vector components together.">compAdd</a>(
70 <a name="l00040"></a>00040 genType <span class="keyword">const</span> &amp; v);
67 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
68 <a name="l00039"></a>00039 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00255.html#ga5a504b61c83eb400b0b253b9984af52f" title="Multiply all vector components together.">compMul</a>(
69 <a name="l00040"></a>00040 genType <span class="keyword">const</span> &amp; v);
7170 <a name="l00041"></a>00041
72 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
73 <a name="l00045"></a>00045 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00256.html#ga5a504b61c83eb400b0b253b9984af52f" title="Multiply all vector components together.">compMul</a>(
74 <a name="l00046"></a>00046 genType <span class="keyword">const</span> &amp; v);
71 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
72 <a name="l00045"></a>00045 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00255.html#ga62000aa6f70f216f84b771caeb64ea1d" title="Find the minimum value between single vector components.">compMin</a>(
73 <a name="l00046"></a>00046 genType <span class="keyword">const</span> &amp; v);
7574 <a name="l00047"></a>00047
76 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
77 <a name="l00051"></a>00051 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00256.html#ga62000aa6f70f216f84b771caeb64ea1d" title="Find the minimum value between single vector components.">compMin</a>(
78 <a name="l00052"></a>00052 genType <span class="keyword">const</span> &amp; v);
75 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
76 <a name="l00051"></a>00051 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00255.html#gaf5600944ec0e04504a9577a483f05a50" title="Find the maximum value between single vector components.">compMax</a>(
77 <a name="l00052"></a>00052 genType <span class="keyword">const</span> &amp; v);
7978 <a name="l00053"></a>00053
80 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
81 <a name="l00057"></a>00057 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00256.html#gaf5600944ec0e04504a9577a483f05a50" title="Find the maximum value between single vector components.">compMax</a>(
82 <a name="l00058"></a>00058 genType <span class="keyword">const</span> &amp; v);
83 <a name="l00059"></a>00059
84 <a name="l00061"></a>00061
85 <a name="l00062"></a>00062 }<span class="comment">//namespace component_wise</span>
86 <a name="l00063"></a>00063 }<span class="comment">//namespace gtx</span>
87 <a name="l00064"></a>00064 }<span class="comment">//namespace glm</span>
88 <a name="l00065"></a>00065
89 <a name="l00066"></a>00066 <span class="preprocessor">#include &quot;component_wise.inl&quot;</span>
90 <a name="l00067"></a>00067
91 <a name="l00068"></a>00068 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::component_wise;}
92 <a name="l00069"></a>00069
93 <a name="l00070"></a>00070 <span class="preprocessor">#endif//glm_gtx_component_wise</span>
79 <a name="l00055"></a>00055 }<span class="comment">//namespace component_wise</span>
80 <a name="l00056"></a>00056 }<span class="comment">//namespace gtx</span>
81 <a name="l00057"></a>00057 }<span class="comment">//namespace glm</span>
82 <a name="l00058"></a>00058
83 <a name="l00059"></a>00059 <span class="preprocessor">#include &quot;component_wise.inl&quot;</span>
84 <a name="l00060"></a>00060
85 <a name="l00061"></a>00061 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::component_wise;}
86 <a name="l00062"></a>00062
87 <a name="l00063"></a>00063 <span class="preprocessor">#endif//glm_gtx_component_wise</span>
9488 </pre></div></div>
9589 </div>
9690 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4444 <a name="l00007"></a>00007 <span class="comment">// File : glm/gtx/epsilon.hpp</span>
4545 <a name="l00009"></a>00009 <span class="comment"></span><span class="comment">// Dependency:</span>
4646 <a name="l00010"></a>00010 <span class="comment">// - GLM core</span>
47 <a name="l00011"></a>00011 <span class="comment">// - GLM_GTX_half</span>
48 <a name="l00013"></a>00013 <span class="comment"></span>
49 <a name="l00014"></a>00014 <span class="preprocessor">#ifndef glm_gtx_epsilon</span>
50 <a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define glm_gtx_epsilon</span>
51 <a name="l00016"></a>00016 <span class="preprocessor"></span>
52 <a name="l00017"></a>00017 <span class="comment">// Dependency:</span>
53 <a name="l00018"></a>00018 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
54 <a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span>
55 <a name="l00020"></a>00020
56 <a name="l00021"></a>00021 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
57 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_epsilon extension included&quot;)</span>
58 <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
59 <a name="l00024"></a>00024 <span class="preprocessor"></span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm
61 <a name="l00026"></a>00026 {
62 <a name="l00027"></a>00027 <span class="keyword">namespace </span>test{
63 <a name="l00028"></a>00028 <span class="keywordtype">void</span> main_gtx_epsilon();
64 <a name="l00029"></a>00029 }<span class="comment">//namespace test</span>
65 <a name="l00030"></a>00030
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>gtx{
67 <a name="l00033"></a><a class="code" href="a00177.html">00033</a> <span class="keyword">namespace </span>epsilon
68 <a name="l00034"></a>00034 {
69 <a name="l00037"></a>00037
70 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
71 <a name="l00041"></a>00041 <span class="keywordtype">bool</span> <a class="code" href="a00257.html#gae56f18f757e2d08bae0d5ce0d8e59980" title="Returns the component-wise compare of |x - y| &amp;lt; epsilon.">equalEpsilon</a>(
72 <a name="l00042"></a>00042 genTypeT <span class="keyword">const</span> &amp; x,
73 <a name="l00043"></a>00043 genTypeT <span class="keyword">const</span> &amp; y,
74 <a name="l00044"></a>00044 genTypeU <span class="keyword">const</span> &amp; epsilon);
75 <a name="l00045"></a>00045
76 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
77 <a name="l00049"></a>00049 <span class="keywordtype">bool</span> <a class="code" href="a00257.html#ga2f60f387fd69452ec68d5b38682d87b8" title="Returns the component-wise compare of |x - y| &amp;gt;= epsilon.">notEqualEpsilon</a>(
78 <a name="l00050"></a>00050 genTypeT <span class="keyword">const</span> &amp; x,
79 <a name="l00051"></a>00051 genTypeT <span class="keyword">const</span> &amp; y,
80 <a name="l00052"></a>00052 genTypeU <span class="keyword">const</span> &amp; epsilon);
81 <a name="l00053"></a>00053
82 <a name="l00055"></a>00055
83 <a name="l00056"></a>00056 }<span class="comment">//namespace epsilon</span>
84 <a name="l00057"></a>00057 }<span class="comment">//namespace gtx</span>
85 <a name="l00058"></a>00058 }<span class="comment">//namespace glm</span>
86 <a name="l00059"></a>00059
87 <a name="l00060"></a>00060 <span class="preprocessor">#include &quot;epsilon.inl&quot;</span>
88 <a name="l00061"></a>00061
89 <a name="l00062"></a>00062 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::epsilon;}
90 <a name="l00063"></a>00063
91 <a name="l00064"></a>00064 <span class="preprocessor">#endif//glm_gtx_epsilon</span>
47 <a name="l00011"></a>00011 <span class="comment">// - GLM_GTC_half_float</span>
48 <a name="l00012"></a>00012 <span class="comment">// - GLM_GTC_quaternion</span>
49 <a name="l00014"></a>00014 <span class="comment"></span>
50 <a name="l00015"></a>00015 <span class="preprocessor">#ifndef glm_gtx_epsilon</span>
51 <a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define glm_gtx_epsilon</span>
52 <a name="l00017"></a>00017 <span class="preprocessor"></span>
53 <a name="l00018"></a>00018 <span class="comment">// Dependency:</span>
54 <a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
55 <a name="l00020"></a>00020 <span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span>
56 <a name="l00021"></a>00021 <span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span>
57 <a name="l00022"></a>00022
58 <a name="l00023"></a>00023 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
59 <a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_epsilon extension included&quot;)</span>
60 <a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
61 <a name="l00026"></a>00026 <span class="preprocessor"></span>
62 <a name="l00027"></a>00027 <span class="keyword">namespace </span>glm{
63 <a name="l00028"></a>00028 <span class="keyword">namespace </span>gtx{
64 <a name="l00029"></a><a class="code" href="a00177.html">00029</a> <span class="keyword">namespace </span>epsilon
65 <a name="l00030"></a>00030 {
66 <a name="l00033"></a>00033
67 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
68 <a name="l00037"></a>00037 <span class="keywordtype">bool</span> <a class="code" href="a00256.html#gae56f18f757e2d08bae0d5ce0d8e59980" title="Returns the component-wise compare of |x - y| &amp;lt; epsilon.">equalEpsilon</a>(
69 <a name="l00038"></a>00038 genTypeT <span class="keyword">const</span> &amp; x,
70 <a name="l00039"></a>00039 genTypeT <span class="keyword">const</span> &amp; y,
71 <a name="l00040"></a>00040 genTypeU <span class="keyword">const</span> &amp; epsilon);
72 <a name="l00041"></a>00041
73 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
74 <a name="l00045"></a>00045 <span class="keywordtype">bool</span> <a class="code" href="a00256.html#ga2f60f387fd69452ec68d5b38682d87b8" title="Returns the component-wise compare of |x - y| &amp;gt;= epsilon.">notEqualEpsilon</a>(
75 <a name="l00046"></a>00046 genTypeT <span class="keyword">const</span> &amp; x,
76 <a name="l00047"></a>00047 genTypeT <span class="keyword">const</span> &amp; y,
77 <a name="l00048"></a>00048 genTypeU <span class="keyword">const</span> &amp; epsilon);
78 <a name="l00049"></a>00049
79 <a name="l00051"></a>00051 }<span class="comment">//namespace epsilon</span>
80 <a name="l00052"></a>00052 }<span class="comment">//namespace gtx</span>
81 <a name="l00053"></a>00053 }<span class="comment">//namespace glm</span>
82 <a name="l00054"></a>00054
83 <a name="l00055"></a>00055 <span class="preprocessor">#include &quot;epsilon.inl&quot;</span>
84 <a name="l00056"></a>00056
85 <a name="l00057"></a>00057 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::epsilon;}
86 <a name="l00058"></a>00058
87 <a name="l00059"></a>00059 <span class="preprocessor">#endif//glm_gtx_epsilon</span>
9288 </pre></div></div>
9389 </div>
9490 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6060 <a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_euler_angles extension included&quot;)</span>
6161 <a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
6262 <a name="l00028"></a>00028 <span class="preprocessor"></span>
63 <a name="l00029"></a>00029 <span class="keyword">namespace </span>glm
64 <a name="l00030"></a>00030 {
65 <a name="l00031"></a>00031 <span class="keyword">namespace </span>gtx{
66 <a name="l00033"></a><a class="code" href="a00178.html">00033</a> <span class="keyword">namespace </span>euler_angles
67 <a name="l00034"></a>00034 {
68 <a name="l00037"></a>00037
69 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
70 <a name="l00041"></a>00041 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00258.html#ga383b615b7c516d129d8a569caeb02e60" title="Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.">eulerAngleX</a>(
71 <a name="l00042"></a>00042 valType <span class="keyword">const</span> &amp; angleX);
72 <a name="l00043"></a>00043
73 <a name="l00046"></a>00046 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
74 <a name="l00047"></a>00047 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00258.html#ga19efbeee8e1e51be3424fad187aada03" title="Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.">eulerAngleY</a>(
75 <a name="l00048"></a>00048 valType <span class="keyword">const</span> &amp; angleY);
76 <a name="l00049"></a>00049
77 <a name="l00052"></a>00052 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
78 <a name="l00053"></a>00053 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00258.html#ga950aebf621ca275949b90845a1e76d79" title="Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.">eulerAngleZ</a>(
79 <a name="l00054"></a>00054 valType <span class="keyword">const</span> &amp; angleZ);
80 <a name="l00055"></a>00055
81 <a name="l00058"></a>00058 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
82 <a name="l00059"></a>00059 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00258.html#gab31953fcb1febf66c095f80928c11880" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).">eulerAngleXY</a>(
83 <a name="l00060"></a>00060 valType <span class="keyword">const</span> &amp; angleX,
84 <a name="l00061"></a>00061 valType <span class="keyword">const</span> &amp; angleY);
85 <a name="l00062"></a>00062
86 <a name="l00065"></a>00065 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
87 <a name="l00066"></a>00066 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00258.html#gac7eb231dc5b6519dcd1e28f8662d0db6" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).">eulerAngleYX</a>(
88 <a name="l00067"></a>00067 valType <span class="keyword">const</span> &amp; angleY,
89 <a name="l00068"></a>00068 valType <span class="keyword">const</span> &amp; angleX);
90 <a name="l00069"></a>00069
91 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
92 <a name="l00073"></a>00073 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00258.html#gaacdf1305fa3190de23ebff5f717d5b1a" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).">eulerAngleXZ</a>(
93 <a name="l00074"></a>00074 valType <span class="keyword">const</span> &amp; angleX,
94 <a name="l00075"></a>00075 valType <span class="keyword">const</span> &amp; angleZ);
95 <a name="l00076"></a>00076
96 <a name="l00079"></a>00079 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
97 <a name="l00080"></a>00080 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00258.html#ga5afd9174575eab4105c9e3c07a9f68f7" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).">eulerAngleZX</a>(
98 <a name="l00081"></a>00081 valType <span class="keyword">const</span> &amp; angleZ,
99 <a name="l00082"></a>00082 valType <span class="keyword">const</span> &amp; angleX);
100 <a name="l00083"></a>00083
101 <a name="l00086"></a>00086 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
102 <a name="l00087"></a>00087 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00258.html#gac528b349b40a8c1d1b34c4a17221bb48" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).">eulerAngleYZ</a>(
103 <a name="l00088"></a>00088 valType <span class="keyword">const</span> &amp; angleY,
104 <a name="l00089"></a>00089 valType <span class="keyword">const</span> &amp; angleZ);
105 <a name="l00090"></a>00090
106 <a name="l00093"></a>00093 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
107 <a name="l00094"></a>00094 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00258.html#gade7193b3d889285671cdfafd62339a87" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).">eulerAngleZY</a>(
108 <a name="l00095"></a>00095 valType <span class="keyword">const</span> &amp; angleZ,
109 <a name="l00096"></a>00096 valType <span class="keyword">const</span> &amp; angleY);
110 <a name="l00097"></a>00097
111 <a name="l00100"></a>00100 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
112 <a name="l00101"></a>00101 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00258.html#ga9a1c23259481176631e5910b8a294c0c" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).">eulerAngleYXZ</a>(
113 <a name="l00102"></a>00102 valType <span class="keyword">const</span> &amp; <a class="code" href="a00286.html#ga4795f1cc522d82d672f7be9a405583c4" title="Returns yaw value of euler angles.">yaw</a>,
114 <a name="l00103"></a>00103 valType <span class="keyword">const</span> &amp; <a class="code" href="a00286.html#gafad23e37f1723bbbbd7f9498cd729126" title="Returns pitch value of euler angles.">pitch</a>,
115 <a name="l00104"></a>00104 valType <span class="keyword">const</span> &amp; <a class="code" href="a00286.html#ga60a4f955b2836d85f3d21ded84879926" title="Returns roll value of euler angles.">roll</a>);
116 <a name="l00105"></a>00105
117 <a name="l00108"></a>00108 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
118 <a name="l00109"></a>00109 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00258.html#gab21847188e03d21037f895642252dcc7" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).">yawPitchRoll</a>(
119 <a name="l00110"></a>00110 valType <span class="keyword">const</span> &amp; yaw,
120 <a name="l00111"></a>00111 valType <span class="keyword">const</span> &amp; pitch,
121 <a name="l00112"></a>00112 valType <span class="keyword">const</span> &amp; roll);
122 <a name="l00113"></a>00113
123 <a name="l00116"></a>00116 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
124 <a name="l00117"></a>00117 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <a class="code" href="a00258.html#ga6b666a8d6dede8301520d023d0e96470" title="Creates a 2D 2 * 2 rotation matrix from an euler angle.">orientate2</a>(T <span class="keyword">const</span> &amp; <a class="code" href="a00286.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>);
125 <a name="l00118"></a>00118
126 <a name="l00121"></a>00121 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
127 <a name="l00122"></a>00122 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00258.html#gaabc9340ff9d773e8117f2bed0b1bcacd" title="Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.">orientate3</a>(T <span class="keyword">const</span> &amp; angle);
128 <a name="l00123"></a>00123
129 <a name="l00126"></a>00126 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
130 <a name="l00127"></a>00127 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00258.html#gaabc9340ff9d773e8117f2bed0b1bcacd" title="Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.">orientate3</a>(<a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; angles);
131 <a name="l00128"></a>00128
132 <a name="l00131"></a>00131 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
133 <a name="l00132"></a>00132 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00258.html#gac9b9ee10382d273e6f2497f0c34ba125" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).">orientate4</a>(<a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; angles);
134 <a name="l00133"></a>00133
135 <a name="l00135"></a>00135 }<span class="comment">//namespace euler_angles</span>
136 <a name="l00136"></a>00136 }<span class="comment">//namespace gtx</span>
137 <a name="l00137"></a>00137 }<span class="comment">//namespace glm</span>
63 <a name="l00029"></a>00029 <span class="keyword">namespace </span>glm{
64 <a name="l00030"></a>00030 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00178.html">00031</a> <span class="keyword">namespace </span>euler_angles
66 <a name="l00032"></a>00032 {
67 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
69 <a name="l00039"></a>00039 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00257.html#ga383b615b7c516d129d8a569caeb02e60" title="Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.">eulerAngleX</a>(
70 <a name="l00040"></a>00040 valType <span class="keyword">const</span> &amp; angleX);
71 <a name="l00041"></a>00041
72 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
73 <a name="l00045"></a>00045 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00257.html#ga19efbeee8e1e51be3424fad187aada03" title="Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.">eulerAngleY</a>(
74 <a name="l00046"></a>00046 valType <span class="keyword">const</span> &amp; angleY);
75 <a name="l00047"></a>00047
76 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
77 <a name="l00051"></a>00051 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00257.html#ga950aebf621ca275949b90845a1e76d79" title="Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.">eulerAngleZ</a>(
78 <a name="l00052"></a>00052 valType <span class="keyword">const</span> &amp; angleZ);
79 <a name="l00053"></a>00053
80 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
81 <a name="l00057"></a>00057 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00257.html#gab31953fcb1febf66c095f80928c11880" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).">eulerAngleXY</a>(
82 <a name="l00058"></a>00058 valType <span class="keyword">const</span> &amp; angleX,
83 <a name="l00059"></a>00059 valType <span class="keyword">const</span> &amp; angleY);
84 <a name="l00060"></a>00060
85 <a name="l00063"></a>00063 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
86 <a name="l00064"></a>00064 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00257.html#gac7eb231dc5b6519dcd1e28f8662d0db6" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).">eulerAngleYX</a>(
87 <a name="l00065"></a>00065 valType <span class="keyword">const</span> &amp; angleY,
88 <a name="l00066"></a>00066 valType <span class="keyword">const</span> &amp; angleX);
89 <a name="l00067"></a>00067
90 <a name="l00070"></a>00070 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
91 <a name="l00071"></a>00071 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00257.html#gaacdf1305fa3190de23ebff5f717d5b1a" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).">eulerAngleXZ</a>(
92 <a name="l00072"></a>00072 valType <span class="keyword">const</span> &amp; angleX,
93 <a name="l00073"></a>00073 valType <span class="keyword">const</span> &amp; angleZ);
94 <a name="l00074"></a>00074
95 <a name="l00077"></a>00077 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
96 <a name="l00078"></a>00078 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00257.html#ga5afd9174575eab4105c9e3c07a9f68f7" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).">eulerAngleZX</a>(
97 <a name="l00079"></a>00079 valType <span class="keyword">const</span> &amp; angleZ,
98 <a name="l00080"></a>00080 valType <span class="keyword">const</span> &amp; angleX);
99 <a name="l00081"></a>00081
100 <a name="l00084"></a>00084 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
101 <a name="l00085"></a>00085 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00257.html#gac528b349b40a8c1d1b34c4a17221bb48" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).">eulerAngleYZ</a>(
102 <a name="l00086"></a>00086 valType <span class="keyword">const</span> &amp; angleY,
103 <a name="l00087"></a>00087 valType <span class="keyword">const</span> &amp; angleZ);
104 <a name="l00088"></a>00088
105 <a name="l00091"></a>00091 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
106 <a name="l00092"></a>00092 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00257.html#gade7193b3d889285671cdfafd62339a87" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).">eulerAngleZY</a>(
107 <a name="l00093"></a>00093 valType <span class="keyword">const</span> &amp; angleZ,
108 <a name="l00094"></a>00094 valType <span class="keyword">const</span> &amp; angleY);
109 <a name="l00095"></a>00095
110 <a name="l00098"></a>00098 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
111 <a name="l00099"></a>00099 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00257.html#ga9a1c23259481176631e5910b8a294c0c" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).">eulerAngleYXZ</a>(
112 <a name="l00100"></a>00100 valType <span class="keyword">const</span> &amp; <a class="code" href="a00285.html#ga4795f1cc522d82d672f7be9a405583c4" title="Returns yaw value of euler angles in degrees.">yaw</a>,
113 <a name="l00101"></a>00101 valType <span class="keyword">const</span> &amp; <a class="code" href="a00285.html#gafad23e37f1723bbbbd7f9498cd729126" title="Returns pitch value of euler angles in degrees.">pitch</a>,
114 <a name="l00102"></a>00102 valType <span class="keyword">const</span> &amp; <a class="code" href="a00285.html#ga60a4f955b2836d85f3d21ded84879926" title="Returns roll value of euler angles in degrees.">roll</a>);
115 <a name="l00103"></a>00103
116 <a name="l00106"></a>00106 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
117 <a name="l00107"></a>00107 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00257.html#gab21847188e03d21037f895642252dcc7" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).">yawPitchRoll</a>(
118 <a name="l00108"></a>00108 valType <span class="keyword">const</span> &amp; yaw,
119 <a name="l00109"></a>00109 valType <span class="keyword">const</span> &amp; pitch,
120 <a name="l00110"></a>00110 valType <span class="keyword">const</span> &amp; roll);
121 <a name="l00111"></a>00111
122 <a name="l00114"></a>00114 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
123 <a name="l00115"></a>00115 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <a class="code" href="a00257.html#ga6b666a8d6dede8301520d023d0e96470" title="Creates a 2D 2 * 2 rotation matrix from an euler angle.">orientate2</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; <a class="code" href="a00285.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>);
124 <a name="l00116"></a>00116
125 <a name="l00119"></a>00119 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
126 <a name="l00120"></a>00120 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00257.html#gaabc9340ff9d773e8117f2bed0b1bcacd" title="Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.">orientate3</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; angle);
127 <a name="l00121"></a>00121
128 <a name="l00124"></a>00124 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
129 <a name="l00125"></a>00125 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00257.html#gaabc9340ff9d773e8117f2bed0b1bcacd" title="Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.">orientate3</a>(<a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; angles);
130 <a name="l00126"></a>00126
131 <a name="l00129"></a>00129 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
132 <a name="l00130"></a>00130 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00257.html#gac9b9ee10382d273e6f2497f0c34ba125" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).">orientate4</a>(<a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; angles);
133 <a name="l00131"></a>00131
134 <a name="l00133"></a>00133 }<span class="comment">//namespace euler_angles</span>
135 <a name="l00134"></a>00134 }<span class="comment">//namespace gtx</span>
136 <a name="l00135"></a>00135 }<span class="comment">//namespace glm</span>
137 <a name="l00136"></a>00136
138 <a name="l00137"></a>00137 <span class="preprocessor">#include &quot;euler_angles.inl&quot;</span>
138139 <a name="l00138"></a>00138
139 <a name="l00139"></a>00139 <span class="preprocessor">#include &quot;euler_angles.inl&quot;</span>
140 <a name="l00139"></a>00139 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::euler_angles;}
140141 <a name="l00140"></a>00140
141 <a name="l00141"></a>00141 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::euler_angles;}
142 <a name="l00142"></a>00142
143 <a name="l00143"></a>00143 <span class="preprocessor">#endif//glm_gtx_euler_angles</span>
142 <a name="l00141"></a>00141 <span class="preprocessor">#endif//glm_gtx_euler_angles</span>
144143 </pre></div></div>
145144 </div>
146145 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_extend extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">void</span> main_gtx_extend();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00179.html">00031</a> <span class="keyword">namespace </span><a class="code" href="a00259.html#ga9fe82185d36e8136fb2656bacf3d4a86" title="Extends of Length the Origin position using the (Source - Origin) direction.">extend</a>
66 <a name="l00032"></a>00032 {
67 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
69 <a name="l00039"></a>00039 genType <a class="code" href="a00259.html#ga9fe82185d36e8136fb2656bacf3d4a86" title="Extends of Length the Origin position using the (Source - Origin) direction.">extend</a>(
70 <a name="l00040"></a>00040 genType <span class="keyword">const</span> &amp; Origin,
71 <a name="l00041"></a>00041 genType <span class="keyword">const</span> &amp; Source,
72 <a name="l00042"></a>00042 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> Length);
73 <a name="l00043"></a>00043
74 <a name="l00045"></a>00045
75 <a name="l00046"></a>00046 }<span class="comment">//namespace extend</span>
76 <a name="l00047"></a>00047 }<span class="comment">//namespace gtx</span>
77 <a name="l00048"></a>00048 }<span class="comment">//namespace glm</span>
78 <a name="l00049"></a>00049
79 <a name="l00050"></a>00050 <span class="preprocessor">#include &quot;extend.inl&quot;</span>
80 <a name="l00051"></a>00051
81 <a name="l00052"></a>00052 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span><a class="code" href="a00259.html#ga9fe82185d36e8136fb2656bacf3d4a86" title="Extends of Length the Origin position using the (Source - Origin) direction.">gtx::extend</a>;}
82 <a name="l00053"></a>00053
83 <a name="l00054"></a>00054 <span class="preprocessor">#endif//glm_gtx_extend</span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00179.html">00025</a> <span class="keyword">namespace </span><a class="code" href="a00258.html#ga9fe82185d36e8136fb2656bacf3d4a86" title="Extends of Length the Origin position using the (Source - Origin) direction.">extend</a>
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
64 <a name="l00033"></a>00033 genType <a class="code" href="a00258.html#ga9fe82185d36e8136fb2656bacf3d4a86" title="Extends of Length the Origin position using the (Source - Origin) direction.">extend</a>(
65 <a name="l00034"></a>00034 genType <span class="keyword">const</span> &amp; Origin,
66 <a name="l00035"></a>00035 genType <span class="keyword">const</span> &amp; Source,
67 <a name="l00036"></a>00036 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> Length);
68 <a name="l00037"></a>00037
69 <a name="l00039"></a>00039 }<span class="comment">//namespace extend</span>
70 <a name="l00040"></a>00040 }<span class="comment">//namespace gtx</span>
71 <a name="l00041"></a>00041 }<span class="comment">//namespace glm</span>
72 <a name="l00042"></a>00042
73 <a name="l00043"></a>00043 <span class="preprocessor">#include &quot;extend.inl&quot;</span>
74 <a name="l00044"></a>00044
75 <a name="l00045"></a>00045 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span><a class="code" href="a00258.html#ga9fe82185d36e8136fb2656bacf3d4a86" title="Extends of Length the Origin position using the (Source - Origin) direction.">gtx::extend</a>;}
76 <a name="l00046"></a>00046
77 <a name="l00047"></a>00047 <span class="preprocessor">#endif//glm_gtx_extend</span>
8478 </pre></div></div>
8579 </div>
8680 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_extented_min_max extension included&quot;)</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5959 <a name="l00024"></a>00024 <span class="preprocessor"></span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm
61 <a name="l00026"></a>00026 {
62 <a name="l00027"></a>00027 <span class="keyword">namespace </span>test{
63 <a name="l00028"></a>00028 <span class="keywordtype">void</span> main_ext_gtx_extented_min_max();
64 <a name="l00029"></a>00029 }<span class="comment">//namespace test</span>
65 <a name="l00030"></a>00030
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>gtx{
67 <a name="l00033"></a><a class="code" href="a00180.html">00033</a> <span class="keyword">namespace </span>extented_min_max
68 <a name="l00034"></a>00034 {
69 <a name="l00037"></a>00037
70 <a name="l00038"></a>00038 <span class="comment">//&lt; Return the minimum component-wise values of 3 inputs </span>
71 <a name="l00039"></a>00039 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
72 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
73 <a name="l00041"></a>00041 T <a class="code" href="a00238.html#gacbc721d96bff24d97ed7989d35f27067" title="Returns y if y &amp;lt; x; otherwise, it returns x.">min</a>(
74 <a name="l00042"></a>00042 T <span class="keyword">const</span> &amp; x,
75 <a name="l00043"></a>00043 T <span class="keyword">const</span> &amp; y,
76 <a name="l00044"></a>00044 T <span class="keyword">const</span> &amp; z);
77 <a name="l00045"></a>00045
78 <a name="l00046"></a>00046 <span class="comment">//&lt; Return the minimum component-wise values of 3 inputs</span>
79 <a name="l00047"></a>00047 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
80 <a name="l00048"></a>00048 <span class="keyword">template</span>
81 <a name="l00049"></a>00049 &lt;
82 <a name="l00050"></a>00050 <span class="keyword">typename</span> T,
83 <a name="l00051"></a>00051 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
84 <a name="l00052"></a>00052 &gt;
85 <a name="l00053"></a>00053 C&lt;T&gt; min(
86 <a name="l00054"></a>00054 C&lt;T&gt; <span class="keyword">const</span> &amp; x,
87 <a name="l00055"></a>00055 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; y,
88 <a name="l00056"></a>00056 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; z);
89 <a name="l00057"></a>00057
90 <a name="l00058"></a>00058 <span class="comment">//&lt; Return the minimum component-wise values of 3 inputs </span>
91 <a name="l00059"></a>00059 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
92 <a name="l00060"></a>00060 <span class="keyword">template</span>
93 <a name="l00061"></a>00061 &lt;
94 <a name="l00062"></a>00062 <span class="keyword">typename</span> T,
95 <a name="l00063"></a>00063 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
96 <a name="l00064"></a>00064 &gt;
97 <a name="l00065"></a>00065 C&lt;T&gt; min(
98 <a name="l00066"></a>00066 C&lt;T&gt; <span class="keyword">const</span> &amp; x,
99 <a name="l00067"></a>00067 C&lt;T&gt; <span class="keyword">const</span> &amp; y,
100 <a name="l00068"></a>00068 C&lt;T&gt; <span class="keyword">const</span> &amp; z);
101 <a name="l00069"></a>00069
102 <a name="l00070"></a>00070 <span class="comment">//&lt; Return the minimum component-wise values of 4 inputs </span>
103 <a name="l00071"></a>00071 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
104 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
105 <a name="l00073"></a>00073 T min(
106 <a name="l00074"></a>00074 T <span class="keyword">const</span> &amp; x,
107 <a name="l00075"></a>00075 T <span class="keyword">const</span> &amp; y,
108 <a name="l00076"></a>00076 T <span class="keyword">const</span> &amp; z,
109 <a name="l00077"></a>00077 T <span class="keyword">const</span> &amp; w);
110 <a name="l00078"></a>00078
111 <a name="l00079"></a>00079 <span class="comment">//&lt; Return the minimum component-wise values of 4 inputs </span>
112 <a name="l00080"></a>00080 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
113 <a name="l00081"></a>00081 <span class="keyword">template</span>
114 <a name="l00082"></a>00082 &lt;
115 <a name="l00083"></a>00083 <span class="keyword">typename</span> T,
116 <a name="l00084"></a>00084 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
117 <a name="l00085"></a>00085 &gt;
118 <a name="l00086"></a>00086 C&lt;T&gt; min(
119 <a name="l00087"></a>00087 C&lt;T&gt; <span class="keyword">const</span> &amp; x,
120 <a name="l00088"></a>00088 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; y,
121 <a name="l00089"></a>00089 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; z,
122 <a name="l00090"></a>00090 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; w);
123 <a name="l00091"></a>00091
124 <a name="l00092"></a>00092 <span class="comment">//&lt; Return the minimum component-wise values of 4 inputs</span>
125 <a name="l00093"></a>00093 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
126 <a name="l00094"></a>00094 <span class="keyword">template</span>
127 <a name="l00095"></a>00095 &lt;
128 <a name="l00096"></a>00096 <span class="keyword">typename</span> T,
129 <a name="l00097"></a>00097 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
130 <a name="l00098"></a>00098 &gt;
131 <a name="l00099"></a>00099 C&lt;T&gt; min(
132 <a name="l00100"></a>00100 C&lt;T&gt; <span class="keyword">const</span> &amp; x,
133 <a name="l00101"></a>00101 C&lt;T&gt; <span class="keyword">const</span> &amp; y,
134 <a name="l00102"></a>00102 C&lt;T&gt; <span class="keyword">const</span> &amp; z,
135 <a name="l00103"></a>00103 C&lt;T&gt; <span class="keyword">const</span> &amp; w);
136 <a name="l00104"></a>00104
137 <a name="l00105"></a>00105 <span class="comment">//&lt; Return the maximum component-wise values of 3 inputs </span>
138 <a name="l00106"></a>00106 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
139 <a name="l00107"></a>00107 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
140 <a name="l00108"></a>00108 T <a class="code" href="a00238.html#ga33a594380eeb7ac803c747298563d084" title="Returns y if x &amp;lt; y; otherwise, it returns x.">max</a>(
141 <a name="l00109"></a>00109 T <span class="keyword">const</span> &amp; x,
142 <a name="l00110"></a>00110 T <span class="keyword">const</span> &amp; y,
143 <a name="l00111"></a>00111 T <span class="keyword">const</span> &amp; z);
144 <a name="l00112"></a>00112
145 <a name="l00113"></a>00113 <span class="comment">//&lt; Return the maximum component-wise values of 3 inputs</span>
146 <a name="l00114"></a>00114 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
147 <a name="l00115"></a>00115 <span class="keyword">template</span>
148 <a name="l00116"></a>00116 &lt;
149 <a name="l00117"></a>00117 <span class="keyword">typename</span> T,
150 <a name="l00118"></a>00118 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
151 <a name="l00119"></a>00119 &gt;
152 <a name="l00120"></a>00120 C&lt;T&gt; max(
153 <a name="l00121"></a>00121 C&lt;T&gt; <span class="keyword">const</span> &amp; x,
154 <a name="l00122"></a>00122 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; y,
155 <a name="l00123"></a>00123 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; z);
156 <a name="l00124"></a>00124
157 <a name="l00125"></a>00125 <span class="comment">//&lt; Return the maximum component-wise values of 3 inputs </span>
158 <a name="l00126"></a>00126 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
159 <a name="l00127"></a>00127 <span class="keyword">template</span>
160 <a name="l00128"></a>00128 &lt;
161 <a name="l00129"></a>00129 <span class="keyword">typename</span> T,
162 <a name="l00130"></a>00130 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
163 <a name="l00131"></a>00131 &gt;
164 <a name="l00132"></a>00132 C&lt;T&gt; max(
165 <a name="l00133"></a>00133 C&lt;T&gt; <span class="keyword">const</span> &amp; x,
166 <a name="l00134"></a>00134 C&lt;T&gt; <span class="keyword">const</span> &amp; y,
167 <a name="l00135"></a>00135 C&lt;T&gt; <span class="keyword">const</span> &amp; z);
168 <a name="l00136"></a>00136
169 <a name="l00137"></a>00137 <span class="comment">//&lt; Return the maximum component-wise values of 4 inputs</span>
170 <a name="l00138"></a>00138 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
171 <a name="l00139"></a>00139 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
172 <a name="l00140"></a>00140 T max(
173 <a name="l00141"></a>00141 T <span class="keyword">const</span> &amp; x,
174 <a name="l00142"></a>00142 T <span class="keyword">const</span> &amp; y,
175 <a name="l00143"></a>00143 T <span class="keyword">const</span> &amp; z,
176 <a name="l00144"></a>00144 T <span class="keyword">const</span> &amp; w);
177 <a name="l00145"></a>00145
178 <a name="l00146"></a>00146 <span class="comment">//&lt; Return the maximum component-wise values of 4 inputs </span>
179 <a name="l00147"></a>00147 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
180 <a name="l00148"></a>00148 <span class="keyword">template</span>
181 <a name="l00149"></a>00149 &lt;
182 <a name="l00150"></a>00150 <span class="keyword">typename</span> T,
183 <a name="l00151"></a>00151 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
184 <a name="l00152"></a>00152 &gt;
185 <a name="l00153"></a>00153 C&lt;T&gt; max(
186 <a name="l00154"></a>00154 C&lt;T&gt; <span class="keyword">const</span> &amp; x,
187 <a name="l00155"></a>00155 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; y,
188 <a name="l00156"></a>00156 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; z,
189 <a name="l00157"></a>00157 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; w);
190 <a name="l00158"></a>00158
191 <a name="l00159"></a>00159 <span class="comment">//&lt; Return the maximum component-wise values of 4 inputs </span>
192 <a name="l00160"></a>00160 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
193 <a name="l00161"></a>00161 <span class="keyword">template</span>
194 <a name="l00162"></a>00162 &lt;
195 <a name="l00163"></a>00163 <span class="keyword">typename</span> T,
196 <a name="l00164"></a>00164 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
197 <a name="l00165"></a>00165 &gt;
198 <a name="l00166"></a>00166 C&lt;T&gt; max(
199 <a name="l00167"></a>00167 C&lt;T&gt; <span class="keyword">const</span> &amp; x,
200 <a name="l00168"></a>00168 C&lt;T&gt; <span class="keyword">const</span> &amp; y,
201 <a name="l00169"></a>00169 C&lt;T&gt; <span class="keyword">const</span> &amp; z,
202 <a name="l00170"></a>00170 C&lt;T&gt; <span class="keyword">const</span> &amp; w);
203 <a name="l00171"></a>00171
204 <a name="l00173"></a>00173
205 <a name="l00174"></a>00174 }<span class="comment">//namespace extented_min_max</span>
206 <a name="l00175"></a>00175 }<span class="comment">//namespace gtx</span>
207 <a name="l00176"></a>00176 }<span class="comment">//namespace glm</span>
208 <a name="l00177"></a>00177
209 <a name="l00178"></a>00178 <span class="preprocessor">#include &quot;extented_min_max.inl&quot;</span>
210 <a name="l00179"></a>00179
211 <a name="l00180"></a>00180 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::extented_min_max;}
212 <a name="l00181"></a>00181
213 <a name="l00182"></a>00182 <span class="preprocessor">#endif//glm_gtx_extented_min_max</span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm{
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>gtx{
62 <a name="l00027"></a><a class="code" href="a00180.html">00027</a> <span class="keyword">namespace </span>extented_min_max
63 <a name="l00028"></a>00028 {
64 <a name="l00031"></a>00031
65 <a name="l00032"></a>00032 <span class="comment">//&lt; Return the minimum component-wise values of 3 inputs </span>
66 <a name="l00033"></a>00033 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
67 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
68 <a name="l00035"></a>00035 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00145.html#a0fcafc1c8cd3961014e3f00d6a8a649e" title="Returns y if y &amp;lt; x; otherwise, it returns x.">min</a>(
69 <a name="l00036"></a>00036 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; x,
70 <a name="l00037"></a>00037 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; y,
71 <a name="l00038"></a>00038 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; z);
72 <a name="l00039"></a>00039
73 <a name="l00040"></a>00040 <span class="comment">//&lt; Return the minimum component-wise values of 3 inputs</span>
74 <a name="l00041"></a>00041 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
75 <a name="l00042"></a>00042 <span class="keyword">template</span>
76 <a name="l00043"></a>00043 &lt;
77 <a name="l00044"></a>00044 <span class="keyword">typename</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>,
78 <a name="l00045"></a>00045 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
79 <a name="l00046"></a>00046 &gt;
80 <a name="l00047"></a>00047 C&lt;T&gt; min(
81 <a name="l00048"></a>00048 C&lt;T&gt; <span class="keyword">const</span> &amp; x,
82 <a name="l00049"></a>00049 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; y,
83 <a name="l00050"></a>00050 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; z);
84 <a name="l00051"></a>00051
85 <a name="l00052"></a>00052 <span class="comment">//&lt; Return the minimum component-wise values of 3 inputs </span>
86 <a name="l00053"></a>00053 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
87 <a name="l00054"></a>00054 <span class="keyword">template</span>
88 <a name="l00055"></a>00055 &lt;
89 <a name="l00056"></a>00056 <span class="keyword">typename</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>,
90 <a name="l00057"></a>00057 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
91 <a name="l00058"></a>00058 &gt;
92 <a name="l00059"></a>00059 C&lt;T&gt; min(
93 <a name="l00060"></a>00060 C&lt;T&gt; <span class="keyword">const</span> &amp; x,
94 <a name="l00061"></a>00061 C&lt;T&gt; <span class="keyword">const</span> &amp; y,
95 <a name="l00062"></a>00062 C&lt;T&gt; <span class="keyword">const</span> &amp; z);
96 <a name="l00063"></a>00063
97 <a name="l00064"></a>00064 <span class="comment">//&lt; Return the minimum component-wise values of 4 inputs </span>
98 <a name="l00065"></a>00065 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
99 <a name="l00066"></a>00066 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
100 <a name="l00067"></a>00067 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> min(
101 <a name="l00068"></a>00068 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; x,
102 <a name="l00069"></a>00069 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; y,
103 <a name="l00070"></a>00070 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; z,
104 <a name="l00071"></a>00071 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; w);
105 <a name="l00072"></a>00072
106 <a name="l00073"></a>00073 <span class="comment">//&lt; Return the minimum component-wise values of 4 inputs </span>
107 <a name="l00074"></a>00074 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
108 <a name="l00075"></a>00075 <span class="keyword">template</span>
109 <a name="l00076"></a>00076 &lt;
110 <a name="l00077"></a>00077 <span class="keyword">typename</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>,
111 <a name="l00078"></a>00078 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
112 <a name="l00079"></a>00079 &gt;
113 <a name="l00080"></a>00080 C&lt;T&gt; min(
114 <a name="l00081"></a>00081 C&lt;T&gt; <span class="keyword">const</span> &amp; x,
115 <a name="l00082"></a>00082 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; y,
116 <a name="l00083"></a>00083 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; z,
117 <a name="l00084"></a>00084 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; w);
118 <a name="l00085"></a>00085
119 <a name="l00086"></a>00086 <span class="comment">//&lt; Return the minimum component-wise values of 4 inputs</span>
120 <a name="l00087"></a>00087 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
121 <a name="l00088"></a>00088 <span class="keyword">template</span>
122 <a name="l00089"></a>00089 &lt;
123 <a name="l00090"></a>00090 <span class="keyword">typename</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>,
124 <a name="l00091"></a>00091 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
125 <a name="l00092"></a>00092 &gt;
126 <a name="l00093"></a>00093 C&lt;T&gt; min(
127 <a name="l00094"></a>00094 C&lt;T&gt; <span class="keyword">const</span> &amp; x,
128 <a name="l00095"></a>00095 C&lt;T&gt; <span class="keyword">const</span> &amp; y,
129 <a name="l00096"></a>00096 C&lt;T&gt; <span class="keyword">const</span> &amp; z,
130 <a name="l00097"></a>00097 C&lt;T&gt; <span class="keyword">const</span> &amp; w);
131 <a name="l00098"></a>00098
132 <a name="l00099"></a>00099 <span class="comment">//&lt; Return the maximum component-wise values of 3 inputs </span>
133 <a name="l00100"></a>00100 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
134 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
135 <a name="l00102"></a>00102 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00145.html#a60f960e757f8e07b105696ba1b43a3ba" title="Returns y if x &amp;lt; y; otherwise, it returns x.">max</a>(
136 <a name="l00103"></a>00103 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; x,
137 <a name="l00104"></a>00104 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; y,
138 <a name="l00105"></a>00105 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; z);
139 <a name="l00106"></a>00106
140 <a name="l00107"></a>00107 <span class="comment">//&lt; Return the maximum component-wise values of 3 inputs</span>
141 <a name="l00108"></a>00108 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
142 <a name="l00109"></a>00109 <span class="keyword">template</span>
143 <a name="l00110"></a>00110 &lt;
144 <a name="l00111"></a>00111 <span class="keyword">typename</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>,
145 <a name="l00112"></a>00112 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
146 <a name="l00113"></a>00113 &gt;
147 <a name="l00114"></a>00114 C&lt;T&gt; max(
148 <a name="l00115"></a>00115 C&lt;T&gt; <span class="keyword">const</span> &amp; x,
149 <a name="l00116"></a>00116 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; y,
150 <a name="l00117"></a>00117 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; z);
151 <a name="l00118"></a>00118
152 <a name="l00119"></a>00119 <span class="comment">//&lt; Return the maximum component-wise values of 3 inputs </span>
153 <a name="l00120"></a>00120 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
154 <a name="l00121"></a>00121 <span class="keyword">template</span>
155 <a name="l00122"></a>00122 &lt;
156 <a name="l00123"></a>00123 <span class="keyword">typename</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>,
157 <a name="l00124"></a>00124 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
158 <a name="l00125"></a>00125 &gt;
159 <a name="l00126"></a>00126 C&lt;T&gt; max(
160 <a name="l00127"></a>00127 C&lt;T&gt; <span class="keyword">const</span> &amp; x,
161 <a name="l00128"></a>00128 C&lt;T&gt; <span class="keyword">const</span> &amp; y,
162 <a name="l00129"></a>00129 C&lt;T&gt; <span class="keyword">const</span> &amp; z);
163 <a name="l00130"></a>00130
164 <a name="l00131"></a>00131 <span class="comment">//&lt; Return the maximum component-wise values of 4 inputs</span>
165 <a name="l00132"></a>00132 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
166 <a name="l00133"></a>00133 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
167 <a name="l00134"></a>00134 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> max(
168 <a name="l00135"></a>00135 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; x,
169 <a name="l00136"></a>00136 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; y,
170 <a name="l00137"></a>00137 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; z,
171 <a name="l00138"></a>00138 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; w);
172 <a name="l00139"></a>00139
173 <a name="l00140"></a>00140 <span class="comment">//&lt; Return the maximum component-wise values of 4 inputs </span>
174 <a name="l00141"></a>00141 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
175 <a name="l00142"></a>00142 <span class="keyword">template</span>
176 <a name="l00143"></a>00143 &lt;
177 <a name="l00144"></a>00144 <span class="keyword">typename</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>,
178 <a name="l00145"></a>00145 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
179 <a name="l00146"></a>00146 &gt;
180 <a name="l00147"></a>00147 C&lt;T&gt; max(
181 <a name="l00148"></a>00148 C&lt;T&gt; <span class="keyword">const</span> &amp; x,
182 <a name="l00149"></a>00149 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; y,
183 <a name="l00150"></a>00150 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; z,
184 <a name="l00151"></a>00151 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; w);
185 <a name="l00152"></a>00152
186 <a name="l00153"></a>00153 <span class="comment">//&lt; Return the maximum component-wise values of 4 inputs </span>
187 <a name="l00154"></a>00154 <span class="comment">//&lt; From GLM_GTX_extented_min_max extension</span>
188 <a name="l00155"></a>00155 <span class="keyword">template</span>
189 <a name="l00156"></a>00156 &lt;
190 <a name="l00157"></a>00157 <span class="keyword">typename</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>,
191 <a name="l00158"></a>00158 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
192 <a name="l00159"></a>00159 &gt;
193 <a name="l00160"></a>00160 C&lt;T&gt; max(
194 <a name="l00161"></a>00161 C&lt;T&gt; <span class="keyword">const</span> &amp; x,
195 <a name="l00162"></a>00162 C&lt;T&gt; <span class="keyword">const</span> &amp; y,
196 <a name="l00163"></a>00163 C&lt;T&gt; <span class="keyword">const</span> &amp; z,
197 <a name="l00164"></a>00164 C&lt;T&gt; <span class="keyword">const</span> &amp; w);
198 <a name="l00165"></a>00165
199 <a name="l00167"></a>00167 }<span class="comment">//namespace extented_min_max</span>
200 <a name="l00168"></a>00168 }<span class="comment">//namespace gtx</span>
201 <a name="l00169"></a>00169 }<span class="comment">//namespace glm</span>
202 <a name="l00170"></a>00170
203 <a name="l00171"></a>00171 <span class="preprocessor">#include &quot;extented_min_max.inl&quot;</span>
204 <a name="l00172"></a>00172
205 <a name="l00173"></a>00173 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::extented_min_max;}
206 <a name="l00174"></a>00174
207 <a name="l00175"></a>00175 <span class="preprocessor">#endif//glm_gtx_extented_min_max</span>
214208 </pre></div></div>
215209 </div>
216210 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_fast_exponential extension included&quot;)</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5959 <a name="l00024"></a>00024 <span class="preprocessor"></span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm
61 <a name="l00026"></a>00026 {
62 <a name="l00027"></a>00027 <span class="keyword">namespace </span>test{
63 <a name="l00028"></a>00028 <span class="keywordtype">void</span> main_gtx_fast_exponential();
64 <a name="l00029"></a>00029 }<span class="comment">//namespace test</span>
65 <a name="l00030"></a>00030
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>gtx{
67 <a name="l00033"></a><a class="code" href="a00181.html">00033</a> <span class="keyword">namespace </span>fast_exponential
68 <a name="l00034"></a>00034 {
69 <a name="l00035"></a>00035 <span class="keyword">using namespace </span>gtc::half_float;
70 <a name="l00038"></a>00038
71 <a name="l00041"></a>00041 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
72 <a name="l00042"></a>00042 valType <a class="code" href="a00261.html#gaaf77117ea021fa1ece715d0b94dd8a2b" title="Faster than the common pow function but less accurate.">fastPow</a>(
73 <a name="l00043"></a>00043 valType <span class="keyword">const</span> &amp; x,
74 <a name="l00044"></a>00044 valType <span class="keyword">const</span> &amp; y);
75 <a name="l00045"></a>00045
76 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;
77 <a name="l00049"></a>00049 T <a class="code" href="a00261.html#gaaf77117ea021fa1ece715d0b94dd8a2b" title="Faster than the common pow function but less accurate.">fastPow</a>(
78 <a name="l00050"></a>00050 <span class="keyword">const</span> T&amp; x,
79 <a name="l00051"></a>00051 <span class="keyword">const</span> U&amp; y);
80 <a name="l00052"></a>00052
81 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
82 <a name="l00056"></a>00056 T <a class="code" href="a00261.html#ga10df16993c31fda159ebe8fc0d95167f" title="Faster than the common exp function but less accurate.">fastExp</a>(<span class="keyword">const</span> T&amp; x);
83 <a name="l00057"></a>00057
84 <a name="l00060"></a>00060 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
85 <a name="l00061"></a>00061 T <a class="code" href="a00261.html#gaf0c2539c6843c1e0e514445bd4c4a72b" title="Faster than the common log function but less accurate.">fastLog</a>(<span class="keyword">const</span> T&amp; x);
86 <a name="l00062"></a>00062
87 <a name="l00065"></a>00065 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
88 <a name="l00066"></a>00066 T <a class="code" href="a00261.html#ga12669721e13e183233ed5c6025dce5e4" title="Faster than the common exp2 function but less accurate.">fastExp2</a>(<span class="keyword">const</span> T&amp; x);
89 <a name="l00067"></a>00067
90 <a name="l00070"></a>00070 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
91 <a name="l00071"></a>00071 T <a class="code" href="a00261.html#gaef27f6ec081ab71024019faa178d4506" title="Faster than the common log2 function but less accurate.">fastLog2</a>(<span class="keyword">const</span> T&amp; x);
92 <a name="l00072"></a>00072
93 <a name="l00075"></a>00075 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
94 <a name="l00076"></a>00076 T <a class="code" href="a00261.html#ga23893e648b441fb48f8c0ab504cf8aeb" title="Faster than the common ln function but less accurate.">fastLn</a>(<span class="keyword">const</span> T&amp; x);
95 <a name="l00077"></a>00077
96 <a name="l00079"></a>00079
97 <a name="l00080"></a>00080 }<span class="comment">//namespace fast_exponential</span>
98 <a name="l00081"></a>00081 }<span class="comment">//namespace gtx</span>
99 <a name="l00082"></a>00082 }<span class="comment">//namespace glm</span>
100 <a name="l00083"></a>00083
101 <a name="l00084"></a>00084 <span class="preprocessor">#include &quot;fast_exponential.inl&quot;</span>
102 <a name="l00085"></a>00085
103 <a name="l00086"></a>00086 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::fast_exponential;}
104 <a name="l00087"></a>00087
105 <a name="l00088"></a>00088 <span class="preprocessor">#endif//glm_gtx_fast_exponential</span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm{
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>gtx{
62 <a name="l00027"></a><a class="code" href="a00181.html">00027</a> <span class="keyword">namespace </span>fast_exponential
63 <a name="l00028"></a>00028 {
64 <a name="l00029"></a>00029 <span class="keyword">using namespace </span>gtc::half_float;
65 <a name="l00032"></a>00032
66 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
67 <a name="l00036"></a>00036 valType <a class="code" href="a00260.html#gaaf77117ea021fa1ece715d0b94dd8a2b" title="Faster than the common pow function but less accurate.">fastPow</a>(
68 <a name="l00037"></a>00037 valType <span class="keyword">const</span> &amp; x,
69 <a name="l00038"></a>00038 valType <span class="keyword">const</span> &amp; y);
70 <a name="l00039"></a>00039
71 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;
72 <a name="l00043"></a>00043 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00260.html#gaaf77117ea021fa1ece715d0b94dd8a2b" title="Faster than the common pow function but less accurate.">fastPow</a>(
73 <a name="l00044"></a>00044 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; x,
74 <a name="l00045"></a>00045 <span class="keyword">const</span> U&amp; y);
75 <a name="l00046"></a>00046
76 <a name="l00049"></a>00049 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
77 <a name="l00050"></a>00050 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00260.html#ga10df16993c31fda159ebe8fc0d95167f" title="Faster than the common exp function but less accurate.">fastExp</a>(<span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; x);
78 <a name="l00051"></a>00051
79 <a name="l00054"></a>00054 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
80 <a name="l00055"></a>00055 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00260.html#gaf0c2539c6843c1e0e514445bd4c4a72b" title="Faster than the common log function but less accurate.">fastLog</a>(<span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; x);
81 <a name="l00056"></a>00056
82 <a name="l00059"></a>00059 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
83 <a name="l00060"></a>00060 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00260.html#ga12669721e13e183233ed5c6025dce5e4" title="Faster than the common exp2 function but less accurate.">fastExp2</a>(<span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; x);
84 <a name="l00061"></a>00061
85 <a name="l00064"></a>00064 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
86 <a name="l00065"></a>00065 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00260.html#gaef27f6ec081ab71024019faa178d4506" title="Faster than the common log2 function but less accurate.">fastLog2</a>(<span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; x);
87 <a name="l00066"></a>00066
88 <a name="l00069"></a>00069 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
89 <a name="l00070"></a>00070 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00260.html#ga23893e648b441fb48f8c0ab504cf8aeb" title="Faster than the common ln function but less accurate.">fastLn</a>(<span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; x);
90 <a name="l00071"></a>00071
91 <a name="l00073"></a>00073 }<span class="comment">//namespace fast_exponential</span>
92 <a name="l00074"></a>00074 }<span class="comment">//namespace gtx</span>
93 <a name="l00075"></a>00075 }<span class="comment">//namespace glm</span>
94 <a name="l00076"></a>00076
95 <a name="l00077"></a>00077 <span class="preprocessor">#include &quot;fast_exponential.inl&quot;</span>
96 <a name="l00078"></a>00078
97 <a name="l00079"></a>00079 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::fast_exponential;}
98 <a name="l00080"></a>00080
99 <a name="l00081"></a>00081 <span class="preprocessor">#endif//glm_gtx_fast_exponential</span>
106100 </pre></div></div>
107101 </div>
108102 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5858 <a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_fast_square_root extension included&quot;)</span>
5959 <a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
6060 <a name="l00026"></a>00026 <span class="preprocessor"></span>
61 <a name="l00027"></a>00027 <span class="keyword">namespace </span>glm
62 <a name="l00028"></a>00028 {
63 <a name="l00029"></a>00029 <span class="keyword">namespace </span>test{
64 <a name="l00030"></a>00030 <span class="keywordtype">void</span> main_gtx_fast_square_root();
65 <a name="l00031"></a>00031 }<span class="comment">//namespace test</span>
66 <a name="l00032"></a>00032
67 <a name="l00033"></a>00033 <span class="keyword">namespace </span>gtx{
68 <a name="l00035"></a><a class="code" href="a00182.html">00035</a> <span class="keyword">namespace </span>fast_square_root
69 <a name="l00036"></a>00036 {
70 <a name="l00039"></a>00039
71 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
72 <a name="l00043"></a>00043 genType <a class="code" href="a00262.html#gaced2a1b7a161290e4d401967607d56db" title="Faster than the common sqrt function but less accurate.">fastSqrt</a>(genType <span class="keyword">const</span> &amp; x);
73 <a name="l00044"></a>00044
74 <a name="l00047"></a>00047 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
75 <a name="l00048"></a>00048 genType <a class="code" href="a00262.html#ga1858a37f06c79e17f287bbaa8f75b08e" title="Faster than the common inversesqrt function but less accurate.">fastInverseSqrt</a>(genType <span class="keyword">const</span> &amp; x);
76 <a name="l00049"></a>00049
77 <a name="l00052"></a>00052 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
78 <a name="l00053"></a>00053 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00262.html#gada4490e940c0c4e08beab6db793f8934" title="Faster than the common length function but less accurate.">fastLength</a>(genType <span class="keyword">const</span> &amp; x);
79 <a name="l00054"></a>00054
80 <a name="l00057"></a>00057 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
81 <a name="l00058"></a>00058 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00262.html#ga68162c92de0e592216be943345169da7" title="Faster than the common distance function but less accurate.">fastDistance</a>(genType <span class="keyword">const</span> &amp; x, genType <span class="keyword">const</span> &amp; y);
82 <a name="l00059"></a>00059
83 <a name="l00062"></a>00062 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
84 <a name="l00063"></a>00063 genType <a class="code" href="a00262.html#ga7e785d24d7bbac63f273baf9af1160da" title="Faster than the common normalize function but less accurate.">fastNormalize</a>(genType <span class="keyword">const</span> &amp; x);
85 <a name="l00064"></a>00064
86 <a name="l00066"></a>00066
87 <a name="l00067"></a>00067 }<span class="comment">//namespace fast_square_root</span>
88 <a name="l00068"></a>00068 }<span class="comment">// namespace gtx</span>
89 <a name="l00069"></a>00069 }<span class="comment">//namespace glm</span>
90 <a name="l00070"></a>00070
91 <a name="l00071"></a>00071 <span class="preprocessor">#include &quot;fast_square_root.inl&quot;</span>
92 <a name="l00072"></a>00072
93 <a name="l00073"></a>00073 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::fast_square_root;}
94 <a name="l00074"></a>00074
95 <a name="l00075"></a>00075 <span class="preprocessor">#endif//glm_gtx_fast_square_root</span>
61 <a name="l00027"></a>00027 <span class="keyword">namespace </span>glm{
62 <a name="l00028"></a>00028 <span class="keyword">namespace </span>gtx{
63 <a name="l00029"></a><a class="code" href="a00182.html">00029</a> <span class="keyword">namespace </span>fast_square_root
64 <a name="l00030"></a>00030 {
65 <a name="l00033"></a>00033
66 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
67 <a name="l00037"></a>00037 genType <a class="code" href="a00261.html#gaced2a1b7a161290e4d401967607d56db" title="Faster than the common sqrt function but less accurate.">fastSqrt</a>(genType <span class="keyword">const</span> &amp; x);
68 <a name="l00038"></a>00038
69 <a name="l00041"></a>00041 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
70 <a name="l00042"></a>00042 genType <a class="code" href="a00261.html#ga1858a37f06c79e17f287bbaa8f75b08e" title="Faster than the common inversesqrt function but less accurate.">fastInverseSqrt</a>(genType <span class="keyword">const</span> &amp; x);
71 <a name="l00043"></a>00043
72 <a name="l00046"></a>00046 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
73 <a name="l00047"></a>00047 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00261.html#gada4490e940c0c4e08beab6db793f8934" title="Faster than the common length function but less accurate.">fastLength</a>(genType <span class="keyword">const</span> &amp; x);
74 <a name="l00048"></a>00048
75 <a name="l00051"></a>00051 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
76 <a name="l00052"></a>00052 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00261.html#ga68162c92de0e592216be943345169da7" title="Faster than the common distance function but less accurate.">fastDistance</a>(genType <span class="keyword">const</span> &amp; x, genType <span class="keyword">const</span> &amp; y);
77 <a name="l00053"></a>00053
78 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
79 <a name="l00057"></a>00057 genType <a class="code" href="a00261.html#ga7e785d24d7bbac63f273baf9af1160da" title="Faster than the common normalize function but less accurate.">fastNormalize</a>(genType <span class="keyword">const</span> &amp; x);
80 <a name="l00058"></a>00058
81 <a name="l00060"></a>00060 }<span class="comment">// namespace fast_square_root</span>
82 <a name="l00061"></a>00061 }<span class="comment">// namespace gtx</span>
83 <a name="l00062"></a>00062 }<span class="comment">// namespace glm</span>
84 <a name="l00063"></a>00063
85 <a name="l00064"></a>00064 <span class="preprocessor">#include &quot;fast_square_root.inl&quot;</span>
86 <a name="l00065"></a>00065
87 <a name="l00066"></a>00066 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::fast_square_root;}
88 <a name="l00067"></a>00067
89 <a name="l00068"></a>00068 <span class="preprocessor">#endif//glm_gtx_fast_square_root</span>
9690 </pre></div></div>
9791 </div>
9892 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_fast_trigonometry extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">void</span> main_gtx_fast_trigonometry();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00183.html">00031</a> <span class="keyword">namespace </span>fast_trigonometry
66 <a name="l00032"></a>00032 {
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00183.html">00025</a> <span class="keyword">namespace </span>fast_trigonometry
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
64 <a name="l00034"></a>00034 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00262.html#ga0844ea62ea81d215b56449f1b3b4968a" title="Faster than the common sin function but less accurate.">fastSin</a>(<span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; <a class="code" href="a00285.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>);
6765 <a name="l00035"></a>00035
6866 <a name="l00039"></a>00039 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00040"></a>00040 T <a class="code" href="a00263.html#ga0844ea62ea81d215b56449f1b3b4968a" title="Faster than the common sin function but less accurate.">fastSin</a>(<span class="keyword">const</span> T&amp; <a class="code" href="a00286.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>);
67 <a name="l00040"></a>00040 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00262.html#ga53a9033f33561a2b7133326d721a05cc" title="Faster than the common cos function but less accurate.">fastCos</a>(<span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; angle);
7068 <a name="l00041"></a>00041
71 <a name="l00045"></a>00045 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
72 <a name="l00046"></a>00046 T <a class="code" href="a00263.html#ga53a9033f33561a2b7133326d721a05cc" title="Faster than the common cos function but less accurate.">fastCos</a>(<span class="keyword">const</span> T&amp; angle);
69 <a name="l00045"></a>00045 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
70 <a name="l00046"></a>00046 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00262.html#ga311fc8d0d067bf3d229566aae8f81a1a" title="Faster than the common tan function but less accurate.">fastTan</a>(<span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; angle);
7371 <a name="l00047"></a>00047
74 <a name="l00051"></a>00051 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
75 <a name="l00052"></a>00052 T <a class="code" href="a00263.html#ga311fc8d0d067bf3d229566aae8f81a1a" title="Faster than the common tan function but less accurate.">fastTan</a>(<span class="keyword">const</span> T&amp; angle);
72 <a name="l00051"></a>00051 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
73 <a name="l00052"></a>00052 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00262.html#ga73073afdd18dce08727f232c892c5dcd" title="Faster than the common asin function but less accurate.">fastAsin</a>(<span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; angle);
7674 <a name="l00053"></a>00053
77 <a name="l00057"></a>00057 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
78 <a name="l00058"></a>00058 T <a class="code" href="a00263.html#ga73073afdd18dce08727f232c892c5dcd" title="Faster than the common asin function but less accurate.">fastAsin</a>(<span class="keyword">const</span> T&amp; angle);
75 <a name="l00057"></a>00057 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
76 <a name="l00058"></a>00058 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00262.html#ga4a704d388edfa3912257b69184d730ba" title="Faster than the common acos function but less accurate.">fastAcos</a>(<span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; angle);
7977 <a name="l00059"></a>00059
8078 <a name="l00063"></a>00063 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
81 <a name="l00064"></a>00064 T <a class="code" href="a00263.html#ga4a704d388edfa3912257b69184d730ba" title="Faster than the common acos function but less accurate.">fastAcos</a>(<span class="keyword">const</span> T&amp; angle);
79 <a name="l00064"></a>00064 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00262.html#gafae71c7958e50cf435f9e73ee4e579f7" title="Faster than the common atan function but less accurate.">fastAtan</a>(<span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; y, <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; x);
8280 <a name="l00065"></a>00065
83 <a name="l00069"></a>00069 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
84 <a name="l00070"></a>00070 T <a class="code" href="a00263.html#gafae71c7958e50cf435f9e73ee4e579f7" title="Faster than the common atan function but less accurate.">fastAtan</a>(<span class="keyword">const</span> T&amp; y, <span class="keyword">const</span> T&amp; x);
81 <a name="l00069"></a>00069 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
82 <a name="l00070"></a>00070 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00262.html#gafae71c7958e50cf435f9e73ee4e579f7" title="Faster than the common atan function but less accurate.">fastAtan</a>(<span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; angle);
8583 <a name="l00071"></a>00071
86 <a name="l00075"></a>00075 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
87 <a name="l00076"></a>00076 T <a class="code" href="a00263.html#gafae71c7958e50cf435f9e73ee4e579f7" title="Faster than the common atan function but less accurate.">fastAtan</a>(<span class="keyword">const</span> T&amp; angle);
88 <a name="l00077"></a>00077
89 <a name="l00079"></a>00079
90 <a name="l00080"></a>00080 }<span class="comment">//namespace fast_trigonometry</span>
91 <a name="l00081"></a>00081 }<span class="comment">//namespace gtx</span>
92 <a name="l00082"></a>00082 }<span class="comment">//namespace glm</span>
93 <a name="l00083"></a>00083
94 <a name="l00084"></a>00084 <span class="preprocessor">#include &quot;fast_trigonometry.inl&quot;</span>
95 <a name="l00085"></a>00085
96 <a name="l00086"></a>00086 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::fast_trigonometry;}
97 <a name="l00087"></a>00087
98 <a name="l00088"></a>00088 <span class="preprocessor">#endif//glm_gtx_fast_trigonometry</span>
84 <a name="l00073"></a>00073 }<span class="comment">//namespace fast_trigonometry</span>
85 <a name="l00074"></a>00074 }<span class="comment">//namespace gtx</span>
86 <a name="l00075"></a>00075 }<span class="comment">//namespace glm</span>
87 <a name="l00076"></a>00076
88 <a name="l00077"></a>00077 <span class="preprocessor">#include &quot;fast_trigonometry.inl&quot;</span>
89 <a name="l00078"></a>00078
90 <a name="l00079"></a>00079 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::fast_trigonometry;}
91 <a name="l00080"></a>00080
92 <a name="l00081"></a>00081 <span class="preprocessor">#endif//glm_gtx_fast_trigonometry</span>
9993 </pre></div></div>
10094 </div>
10195 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5050 <a name="l00014"></a>00014
5151 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm
5252 <a name="l00016"></a>00016 {
53 <a name="l00017"></a>00017 <span class="keyword">namespace </span>test{
54 <a name="l00018"></a>00018 <span class="keywordtype">void</span> main_core_func_common();
55 <a name="l00019"></a>00019 }<span class="comment">//namespace test</span>
53 <a name="l00017"></a>00017 <span class="keyword">namespace </span>core{
54 <a name="l00018"></a>00018 <span class="keyword">namespace </span>function{
55 <a name="l00019"></a>00019 <span class="keyword">namespace </span>common{
5656 <a name="l00020"></a>00020
57 <a name="l00021"></a>00021 <span class="keyword">namespace </span>core{
58 <a name="l00022"></a><a class="code" href="a00144.html">00022</a> <span class="keyword">namespace </span>function{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>common{
60 <a name="l00025"></a><a class="code" href="a00146.html">00025</a>
61 <a name="l00028"></a>00028
62 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genFIType&gt;
63 <a name="l00034"></a>00034 genFIType <a class="code" href="a00238.html#ga5206aa60ce61ad1d7d1b53d5028c7a2a" title="Returns x if x &amp;gt;= 0; otherwise, it returns -x.">abs</a>(genFIType <span class="keyword">const</span> &amp; x);
64 <a name="l00035"></a>00035
65 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genFIType&gt;
66 <a name="l00041"></a>00041 genFIType <a class="code" href="a00238.html#ga992a45e46af5dc123e688808d1bae48f" title="Returns 1.0 if x &amp;gt; 0, 0.0 if x == 0, or -1.0 if x &amp;lt; 0.">sign</a>(genFIType <span class="keyword">const</span> &amp; x);
67 <a name="l00042"></a>00042
68 <a name="l00047"></a>00047 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
69 <a name="l00048"></a>00048 genType <a class="code" href="a00238.html#ga4206a98e812c2bd4801e4d299c83f6c7" title="Returns a value equal to the nearest integer that is less then or equal to x.">floor</a>(genType <span class="keyword">const</span> &amp; x);
70 <a name="l00049"></a>00049
71 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
72 <a name="l00056"></a>00056 genType <a class="code" href="a00238.html#ga2303d814e83b34ee2d5f34fcff7fa275" title="Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...">trunc</a>(genType <span class="keyword">const</span> &amp; x);
73 <a name="l00057"></a>00057
74 <a name="l00066"></a>00066 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
75 <a name="l00067"></a>00067 genType <a class="code" href="a00238.html#gaa4cb0836cd9457ac6cedd3366333b16f" title="Returns a value equal to the nearest integer to x.">round</a>(genType <span class="keyword">const</span> &amp; x);
76 <a name="l00068"></a>00068
77 <a name="l00075"></a>00075 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
78 <a name="l00076"></a>00076 genType <a class="code" href="a00238.html#ga656ce625ba1dc1d137bfc7cc7b2ab50b" title="Returns a value equal to the nearest integer to x.">roundEven</a>(genType <span class="keyword">const</span> &amp; x);
79 <a name="l00077"></a>00077
80 <a name="l00083"></a>00083 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
81 <a name="l00084"></a>00084 genType <a class="code" href="a00238.html#ga828376ee58b02d80d91eee97c50323f8" title="Returns a value equal to the nearest integer that is greater than or equal to x.">ceil</a>(genType <span class="keyword">const</span> &amp; x);
82 <a name="l00085"></a>00085
83 <a name="l00090"></a>00090 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
84 <a name="l00091"></a>00091 genType <a class="code" href="a00238.html#ga67dda5fd839bc489827be9e225847a45" title="Return x - floor(x).">fract</a>(genType <span class="keyword">const</span> &amp; x);
85 <a name="l00092"></a>00092
86 <a name="l00098"></a>00098 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
87 <a name="l00099"></a>00099 genType <a class="code" href="a00238.html#ga73fa91f6041b135083b0dea6e88c7aba" title="Modulus.">mod</a>(
88 <a name="l00100"></a>00100 genType <span class="keyword">const</span> &amp; x,
89 <a name="l00101"></a>00101 genType <span class="keyword">const</span> &amp; y);
90 <a name="l00102"></a>00102
91 <a name="l00108"></a>00108 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
92 <a name="l00109"></a>00109 genType <a class="code" href="a00238.html#ga73fa91f6041b135083b0dea6e88c7aba" title="Modulus.">mod</a>(
93 <a name="l00110"></a>00110 genType <span class="keyword">const</span> &amp; x,
94 <a name="l00111"></a>00111 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; y);
95 <a name="l00112"></a>00112
96 <a name="l00120"></a>00120 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
97 <a name="l00121"></a>00121 genType <a class="code" href="a00238.html#ga3f3cec79cc1542950cd4cddb7ab67584" title="Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...">modf</a>(
98 <a name="l00122"></a>00122 genType <span class="keyword">const</span> &amp; x,
99 <a name="l00123"></a>00123 genType &amp; i);
100 <a name="l00124"></a>00124
57 <a name="l00023"></a>00023
58 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genFIType&gt;
59 <a name="l00029"></a>00029 genFIType <a class="code" href="a00291.html#ga427e341830f94e41ece21ea4ebc854c3" title="Returns x if x &amp;gt;= 0; otherwise, it returns -x.">abs</a>(genFIType <span class="keyword">const</span> &amp; x);
60 <a name="l00030"></a>00030
61 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genFIType&gt;
62 <a name="l00036"></a>00036 genFIType <a class="code" href="a00145.html#a0b7728fc27b611270eada9f278051cb6" title="Returns 1.0 if x &amp;gt; 0, 0.0 if x == 0, or -1.0 if x &amp;lt; 0.">sign</a>(genFIType <span class="keyword">const</span> &amp; x);
63 <a name="l00037"></a>00037
64 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
65 <a name="l00043"></a>00043 genType <a class="code" href="a00145.html#aa59c036229bc74f96c5c014a179eac7c" title="Returns a value equal to the nearest integer that is less then or equal to x.">floor</a>(genType <span class="keyword">const</span> &amp; x);
66 <a name="l00044"></a>00044
67 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
68 <a name="l00051"></a>00051 genType <a class="code" href="a00145.html#a658fa96882dd07b523c48c88bf73d59c" title="Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...">trunc</a>(genType <span class="keyword">const</span> &amp; x);
69 <a name="l00052"></a>00052
70 <a name="l00061"></a>00061 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
71 <a name="l00062"></a>00062 genType <a class="code" href="a00145.html#a76670d4897bcb1cf29956d48a5eb1841" title="Returns a value equal to the nearest integer to x.">round</a>(genType <span class="keyword">const</span> &amp; x);
72 <a name="l00063"></a>00063
73 <a name="l00070"></a>00070 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
74 <a name="l00071"></a>00071 genType <a class="code" href="a00145.html#ab36c846a2b5c10ad70c45101c70893b7" title="Returns a value equal to the nearest integer to x.">roundEven</a>(genType <span class="keyword">const</span> &amp; x);
75 <a name="l00072"></a>00072
76 <a name="l00078"></a>00078 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
77 <a name="l00079"></a>00079 genType <a class="code" href="a00145.html#a396a09decf9e7856783a9376604cc1d7" title="Returns a value equal to the nearest integer that is greater than or equal to x.">ceil</a>(genType <span class="keyword">const</span> &amp; x);
78 <a name="l00080"></a>00080
79 <a name="l00085"></a>00085 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
80 <a name="l00086"></a>00086 genType <a class="code" href="a00145.html#a2ed2478da306c5ccc99ddae4f47e5d70" title="Return x - floor(x).">fract</a>(genType <span class="keyword">const</span> &amp; x);
81 <a name="l00087"></a>00087
82 <a name="l00093"></a>00093 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
83 <a name="l00094"></a>00094 genType <a class="code" href="a00145.html#a43f85499b31f6bd4cfa7fca5f0762d53" title="Modulus.">mod</a>(
84 <a name="l00095"></a>00095 genType <span class="keyword">const</span> &amp; x,
85 <a name="l00096"></a>00096 genType <span class="keyword">const</span> &amp; y);
86 <a name="l00097"></a>00097
87 <a name="l00103"></a>00103 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
88 <a name="l00104"></a>00104 genType <a class="code" href="a00145.html#a43f85499b31f6bd4cfa7fca5f0762d53" title="Modulus.">mod</a>(
89 <a name="l00105"></a>00105 genType <span class="keyword">const</span> &amp; x,
90 <a name="l00106"></a>00106 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; y);
91 <a name="l00107"></a>00107
92 <a name="l00115"></a>00115 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
93 <a name="l00116"></a>00116 genType <a class="code" href="a00145.html#ae64aea185c3a5209716fb33bac274fe3" title="Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...">modf</a>(
94 <a name="l00117"></a>00117 genType <span class="keyword">const</span> &amp; x,
95 <a name="l00118"></a>00118 genType &amp; i);
96 <a name="l00119"></a>00119
97 <a name="l00124"></a>00124 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
98 <a name="l00125"></a>00125 genType <a class="code" href="a00145.html#a0fcafc1c8cd3961014e3f00d6a8a649e" title="Returns y if y &amp;lt; x; otherwise, it returns x.">min</a>(
99 <a name="l00126"></a>00126 genType <span class="keyword">const</span> &amp; x,
100 <a name="l00127"></a>00127 genType <span class="keyword">const</span> &amp; y);
101 <a name="l00128"></a>00128
101102 <a name="l00129"></a>00129 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
102 <a name="l00130"></a>00130 genType <a class="code" href="a00238.html#gacbc721d96bff24d97ed7989d35f27067" title="Returns y if y &amp;lt; x; otherwise, it returns x.">min</a>(
103 <a name="l00130"></a>00130 genType <a class="code" href="a00145.html#a0fcafc1c8cd3961014e3f00d6a8a649e" title="Returns y if y &amp;lt; x; otherwise, it returns x.">min</a>(
103104 <a name="l00131"></a>00131 genType <span class="keyword">const</span> &amp; x,
104 <a name="l00132"></a>00132 genType <span class="keyword">const</span> &amp; y);
105 <a name="l00132"></a>00132 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; y);
105106 <a name="l00133"></a>00133
106 <a name="l00134"></a>00134 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
107 <a name="l00135"></a>00135 genType <a class="code" href="a00238.html#gacbc721d96bff24d97ed7989d35f27067" title="Returns y if y &amp;lt; x; otherwise, it returns x.">min</a>(
108 <a name="l00136"></a>00136 genType <span class="keyword">const</span> &amp; x,
109 <a name="l00137"></a>00137 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; y);
110 <a name="l00138"></a>00138
107 <a name="l00138"></a>00138 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
108 <a name="l00139"></a>00139 genType <a class="code" href="a00145.html#a60f960e757f8e07b105696ba1b43a3ba" title="Returns y if x &amp;lt; y; otherwise, it returns x.">max</a>(
109 <a name="l00140"></a>00140 genType <span class="keyword">const</span> &amp; x,
110 <a name="l00141"></a>00141 genType <span class="keyword">const</span> &amp; y);
111 <a name="l00142"></a>00142
111112 <a name="l00143"></a>00143 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
112 <a name="l00144"></a>00144 genType <a class="code" href="a00238.html#ga33a594380eeb7ac803c747298563d084" title="Returns y if x &amp;lt; y; otherwise, it returns x.">max</a>(
113 <a name="l00144"></a>00144 genType <a class="code" href="a00145.html#a60f960e757f8e07b105696ba1b43a3ba" title="Returns y if x &amp;lt; y; otherwise, it returns x.">max</a>(
113114 <a name="l00145"></a>00145 genType <span class="keyword">const</span> &amp; x,
114 <a name="l00146"></a>00146 genType <span class="keyword">const</span> &amp; y);
115 <a name="l00146"></a>00146 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; y);
115116 <a name="l00147"></a>00147
116 <a name="l00148"></a>00148 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
117 <a name="l00149"></a>00149 genType <a class="code" href="a00238.html#ga33a594380eeb7ac803c747298563d084" title="Returns y if x &amp;lt; y; otherwise, it returns x.">max</a>(
118 <a name="l00150"></a>00150 genType <span class="keyword">const</span> &amp; x,
119 <a name="l00151"></a>00151 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; y);
120 <a name="l00152"></a>00152
121 <a name="l00158"></a>00158 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
122 <a name="l00159"></a>00159 genType <a class="code" href="a00238.html#ga8d9331a9bd3aa06e1d10eb7fa0dbb9e5" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(
123 <a name="l00160"></a>00160 genType <span class="keyword">const</span> &amp; x,
124 <a name="l00161"></a>00161 genType <span class="keyword">const</span> &amp; minVal,
125 <a name="l00162"></a>00162 genType <span class="keyword">const</span> &amp; maxVal);
126 <a name="l00163"></a>00163
127 <a name="l00164"></a>00164 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
128 <a name="l00165"></a>00165 genType <a class="code" href="a00238.html#ga8d9331a9bd3aa06e1d10eb7fa0dbb9e5" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(
129 <a name="l00166"></a>00166 genType <span class="keyword">const</span> &amp; x,
130 <a name="l00167"></a>00167 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; minVal,
131 <a name="l00168"></a>00168 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; maxVal);
132 <a name="l00169"></a>00169
133 <a name="l00194"></a>00194 <span class="comment">// \todo Test when &#39;a&#39; is a boolean.</span>
134 <a name="l00195"></a>00195 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
135 <a name="l00196"></a>00196 genTypeT <a class="code" href="a00238.html#ga11288dc43a2a1833766728a3eb81ac63">mix</a>(genTypeT <span class="keyword">const</span> &amp; x, genTypeT <span class="keyword">const</span> &amp; y, genTypeU <span class="keyword">const</span> &amp; a);
136 <a name="l00197"></a>00197
117 <a name="l00153"></a>00153 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
118 <a name="l00154"></a>00154 genType <a class="code" href="a00145.html#a3f3febbf65f3a1f5695aae62f0e89694" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(
119 <a name="l00155"></a>00155 genType <span class="keyword">const</span> &amp; x,
120 <a name="l00156"></a>00156 genType <span class="keyword">const</span> &amp; minVal,
121 <a name="l00157"></a>00157 genType <span class="keyword">const</span> &amp; maxVal);
122 <a name="l00158"></a>00158
123 <a name="l00159"></a>00159 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
124 <a name="l00160"></a>00160 genType <a class="code" href="a00145.html#a3f3febbf65f3a1f5695aae62f0e89694" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(
125 <a name="l00161"></a>00161 genType <span class="keyword">const</span> &amp; x,
126 <a name="l00162"></a>00162 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; minVal,
127 <a name="l00163"></a>00163 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; maxVal);
128 <a name="l00164"></a>00164
129 <a name="l00189"></a>00189 <span class="comment">// \todo Test when &#39;a&#39; is a boolean.</span>
130 <a name="l00190"></a>00190 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
131 <a name="l00191"></a>00191 genTypeT <a class="code" href="a00145.html#aa0e50f7c66dbac1eb55e8ff6635f8cf1">mix</a>(genTypeT <span class="keyword">const</span> &amp; x, genTypeT <span class="keyword">const</span> &amp; y, genTypeU <span class="keyword">const</span> &amp; a);
132 <a name="l00192"></a>00192
133 <a name="l00197"></a>00197 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
134 <a name="l00198"></a>00198 genType <a class="code" href="a00145.html#af2b4a76ca689c24fe70b2f9b97816502" title="Returns 0.0 if x &amp;lt; edge, otherwise it returns 1.0.">step</a>(
135 <a name="l00199"></a>00199 genType <span class="keyword">const</span> &amp; edge,
136 <a name="l00200"></a>00200 genType <span class="keyword">const</span> &amp; x);
137 <a name="l00201"></a>00201
137138 <a name="l00202"></a>00202 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
138 <a name="l00203"></a>00203 genType <a class="code" href="a00238.html#gaf1c0aac0585f62db8db44e407478c434" title="Returns 0.0 if x &amp;lt; edge, otherwise it returns 1.0.">step</a>(
139 <a name="l00204"></a>00204 genType <span class="keyword">const</span> &amp; edge,
139 <a name="l00203"></a>00203 genType <a class="code" href="a00145.html#af2b4a76ca689c24fe70b2f9b97816502" title="Returns 0.0 if x &amp;lt; edge, otherwise it returns 1.0.">step</a>(
140 <a name="l00204"></a>00204 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; edge,
140141 <a name="l00205"></a>00205 genType <span class="keyword">const</span> &amp; x);
141142 <a name="l00206"></a>00206
142 <a name="l00207"></a>00207 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
143 <a name="l00208"></a>00208 genType <a class="code" href="a00238.html#gaf1c0aac0585f62db8db44e407478c434" title="Returns 0.0 if x &amp;lt; edge, otherwise it returns 1.0.">step</a>(
144 <a name="l00209"></a>00209 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; edge,
145 <a name="l00210"></a>00210 genType <span class="keyword">const</span> &amp; x);
146 <a name="l00211"></a>00211
147 <a name="l00224"></a>00224 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
148 <a name="l00225"></a>00225 genType <a class="code" href="a00238.html#gaec459c912160fa6d9c18acd52976bb4d" title="Returns 0.0 if x &amp;lt;= edge0 and 1.0 if x &amp;gt;= edge1 and performs smooth Hermite interpolation betwe...">smoothstep</a>(
149 <a name="l00226"></a>00226 genType <span class="keyword">const</span> &amp; edge0,
150 <a name="l00227"></a>00227 genType <span class="keyword">const</span> &amp; edge1,
151 <a name="l00228"></a>00228 genType <span class="keyword">const</span> &amp; x);
152 <a name="l00229"></a>00229
153 <a name="l00230"></a>00230 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
154 <a name="l00231"></a>00231 genType <a class="code" href="a00238.html#gaec459c912160fa6d9c18acd52976bb4d" title="Returns 0.0 if x &amp;lt;= edge0 and 1.0 if x &amp;gt;= edge1 and performs smooth Hermite interpolation betwe...">smoothstep</a>(
155 <a name="l00232"></a>00232 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; edge0,
156 <a name="l00233"></a>00233 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; edge1,
157 <a name="l00234"></a>00234 genType <span class="keyword">const</span> &amp; x);
158 <a name="l00235"></a>00235
159 <a name="l00244"></a>00244 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
160 <a name="l00245"></a>00245 <span class="keyword">typename</span> genType::bool_type <a class="code" href="a00238.html#ga873db92807cc955cf98030c94a342d5a" title="Returns true if x holds a NaN (not a number) representation in the underlying implementation&amp;#39;s se...">isnan</a>(genType <span class="keyword">const</span> &amp; x);
161 <a name="l00246"></a>00246
162 <a name="l00255"></a>00255 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
163 <a name="l00256"></a>00256 <span class="keyword">typename</span> genType::bool_type <a class="code" href="a00238.html#ga7194c89cf656614f231e11c46d906465" title="Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...">isinf</a>(genType <span class="keyword">const</span> &amp; x);
164 <a name="l00257"></a>00257
165 <a name="l00264"></a>00264 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;
166 <a name="l00265"></a>00265 genIType <a class="code" href="a00238.html#ga2508259e7d3093603f4c6d3c132a704c" title="Returns a signed integer value representing the encoding of a floating-point value.">floatBitsToInt</a>(genType <span class="keyword">const</span> &amp; value);
167 <a name="l00266"></a>00266
168 <a name="l00273"></a>00273 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genUType&gt;
169 <a name="l00274"></a>00274 genUType <a class="code" href="a00238.html#ga17f59f3a2dd5b93e32ff1057be188681" title="Returns a unsigned integer value representing the encoding of a floating-point value.">floatBitsToUint</a>(genType <span class="keyword">const</span> &amp; value);
170 <a name="l00275"></a>00275
171 <a name="l00284"></a>00284 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;
172 <a name="l00285"></a>00285 genType <a class="code" href="a00238.html#ga3b76eab7091983e936c894b1976e90be" title="Returns a floating-point value corresponding to a signed integer encoding of a floating-point value...">intBitsToFloat</a>(genIType <span class="keyword">const</span> &amp; value);
173 <a name="l00286"></a>00286
174 <a name="l00295"></a>00295 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genUType&gt;
175 <a name="l00296"></a>00296 genType <a class="code" href="a00238.html#ga1a38039b00f182b6b22e909ea5a87bab" title="Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...">uintBitsToFloat</a>(genUType <span class="keyword">const</span> &amp; value);
176 <a name="l00297"></a>00297
177 <a name="l00302"></a>00302 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
178 <a name="l00303"></a>00303 genType <a class="code" href="a00238.html#gad0278428ad872e7be378c3b2ad66b0ba" title="Computes and returns a * b + c.">fma</a>(genType <span class="keyword">const</span> &amp; a, genType <span class="keyword">const</span> &amp; b, genType <span class="keyword">const</span> &amp; c);
179 <a name="l00304"></a>00304
180 <a name="l00317"></a>00317 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;
181 <a name="l00318"></a>00318 genType <a class="code" href="a00238.html#ga51135c18fa3b70b67478e546258caa64" title="Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two...">frexp</a>(genType <span class="keyword">const</span> &amp; x, genIType &amp; <a class="code" href="a00238.html#gac96b81360552e233031fd06390576ebf" title="Returns the natural exponentiation of x, i.e., e^x.">exp</a>);
182 <a name="l00319"></a>00319
183 <a name="l00329"></a>00329 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;
184 <a name="l00330"></a>00330 genType <a class="code" href="a00238.html#gaa99c16ada9e61cca03a8a00938a3c330" title="Builds a floating-point number from x and the corresponding integral exponent of two in exp...">ldexp</a>(genType <span class="keyword">const</span> &amp; x, genIType <span class="keyword">const</span> &amp; <a class="code" href="a00238.html#gac96b81360552e233031fd06390576ebf" title="Returns the natural exponentiation of x, i.e., e^x.">exp</a>);
143 <a name="l00219"></a>00219 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
144 <a name="l00220"></a>00220 genType <a class="code" href="a00145.html#a15314aa4f9d5db43a35367fb7c0ae50a" title="Returns 0.0 if x &amp;lt;= edge0 and 1.0 if x &amp;gt;= edge1 and performs smooth Hermite interpolation betwe...">smoothstep</a>(
145 <a name="l00221"></a>00221 genType <span class="keyword">const</span> &amp; edge0,
146 <a name="l00222"></a>00222 genType <span class="keyword">const</span> &amp; edge1,
147 <a name="l00223"></a>00223 genType <span class="keyword">const</span> &amp; x);
148 <a name="l00224"></a>00224
149 <a name="l00225"></a>00225 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
150 <a name="l00226"></a>00226 genType <a class="code" href="a00145.html#a15314aa4f9d5db43a35367fb7c0ae50a" title="Returns 0.0 if x &amp;lt;= edge0 and 1.0 if x &amp;gt;= edge1 and performs smooth Hermite interpolation betwe...">smoothstep</a>(
151 <a name="l00227"></a>00227 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; edge0,
152 <a name="l00228"></a>00228 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; edge1,
153 <a name="l00229"></a>00229 genType <span class="keyword">const</span> &amp; x);
154 <a name="l00230"></a>00230
155 <a name="l00239"></a>00239 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
156 <a name="l00240"></a>00240 <span class="keyword">typename</span> genType::bool_type <a class="code" href="a00145.html#aa8f4b13390decbfaaa0ca1c521d50c3d" title="Returns true if x holds a NaN (not a number) representation in the underlying implementation&amp;#39;s se...">isnan</a>(genType <span class="keyword">const</span> &amp; x);
157 <a name="l00241"></a>00241
158 <a name="l00250"></a>00250 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
159 <a name="l00251"></a>00251 <span class="keyword">typename</span> genType::bool_type <a class="code" href="a00145.html#ad5d3227e612c93a7d98e2dc4d72a4efc" title="Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...">isinf</a>(genType <span class="keyword">const</span> &amp; x);
160 <a name="l00252"></a>00252
161 <a name="l00259"></a>00259 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;
162 <a name="l00260"></a>00260 genIType <a class="code" href="a00145.html#ac0c97c144df6712b064c7a1b9c68ff49" title="Returns a signed integer value representing the encoding of a floating-point value.">floatBitsToInt</a>(genType <span class="keyword">const</span> &amp; value);
163 <a name="l00261"></a>00261
164 <a name="l00268"></a>00268 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genUType&gt;
165 <a name="l00269"></a>00269 genUType <a class="code" href="a00145.html#afdf3bec43bb2852e27175ee61a1df7c0" title="Returns a unsigned integer value representing the encoding of a floating-point value.">floatBitsToUint</a>(genType <span class="keyword">const</span> &amp; value);
166 <a name="l00270"></a>00270
167 <a name="l00279"></a>00279 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;
168 <a name="l00280"></a>00280 genType <a class="code" href="a00145.html#a3d2881860ac44f93763bc31582e3818c" title="Returns a floating-point value corresponding to a signed integer encoding of a floating-point value...">intBitsToFloat</a>(genIType <span class="keyword">const</span> &amp; value);
169 <a name="l00281"></a>00281
170 <a name="l00290"></a>00290 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genUType&gt;
171 <a name="l00291"></a>00291 genType <a class="code" href="a00145.html#a74b00f232062a3de845fdf3e24312196" title="Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...">uintBitsToFloat</a>(genUType <span class="keyword">const</span> &amp; value);
172 <a name="l00292"></a>00292
173 <a name="l00297"></a>00297 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
174 <a name="l00298"></a>00298 genType <a class="code" href="a00145.html#abfe96f2b10113d099cc3758b604fa339" title="Computes and returns a * b + c.">fma</a>(genType <span class="keyword">const</span> &amp; a, genType <span class="keyword">const</span> &amp; b, genType <span class="keyword">const</span> &amp; c);
175 <a name="l00299"></a>00299
176 <a name="l00312"></a>00312 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;
177 <a name="l00313"></a>00313 genType <a class="code" href="a00145.html#ae38cef3c84f2cd4cac8e19ffe4be9981" title="Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two...">frexp</a>(genType <span class="keyword">const</span> &amp; x, genIType &amp; <a class="code" href="a00237.html#gac96b81360552e233031fd06390576ebf" title="Returns the natural exponentiation of x, i.e., e^x.">exp</a>);
178 <a name="l00314"></a>00314
179 <a name="l00324"></a>00324 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;
180 <a name="l00325"></a>00325 genType <a class="code" href="a00145.html#a6c90cad9fe6a58162ac474a4df261d06" title="Builds a floating-point number from x and the corresponding integral exponent of two in exp...">ldexp</a>(genType <span class="keyword">const</span> &amp; x, genIType <span class="keyword">const</span> &amp; <a class="code" href="a00237.html#gac96b81360552e233031fd06390576ebf" title="Returns the natural exponentiation of x, i.e., e^x.">exp</a>);
181 <a name="l00326"></a>00326
182 <a name="l00328"></a>00328 }<span class="comment">//namespace common</span>
183 <a name="l00329"></a>00329 }<span class="comment">//namespace function</span>
184 <a name="l00330"></a>00330 }<span class="comment">//namespace core</span>
185185 <a name="l00331"></a>00331
186 <a name="l00333"></a>00333
187 <a name="l00334"></a>00334 }<span class="comment">//namespace common</span>
188 <a name="l00335"></a>00335 }<span class="comment">//namespace function</span>
189 <a name="l00336"></a>00336 }<span class="comment">//namespace core</span>
190 <a name="l00337"></a>00337
191 <a name="l00338"></a>00338 <span class="keyword">using namespace </span>core::function::common;
192 <a name="l00339"></a>00339 }<span class="comment">//namespace glm</span>
193 <a name="l00340"></a>00340
194 <a name="l00341"></a>00341 <span class="preprocessor">#include &quot;func_common.inl&quot;</span>
195 <a name="l00342"></a>00342
196 <a name="l00343"></a>00343 <span class="preprocessor">#endif//glm_core_func_common</span>
186 <a name="l00332"></a>00332 <span class="keyword">using namespace </span>core::function::common;
187 <a name="l00333"></a>00333 }<span class="comment">//namespace glm</span>
188 <a name="l00334"></a>00334
189 <a name="l00335"></a>00335 <span class="preprocessor">#include &quot;func_common.inl&quot;</span>
190 <a name="l00336"></a>00336
191 <a name="l00337"></a>00337 <span class="preprocessor">#endif//glm_core_func_common</span>
197192 </pre></div></div>
198193 </div>
199194 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="keyword">namespace </span>glm
5050 <a name="l00014"></a>00014 {
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>test{
52 <a name="l00016"></a>00016 <span class="keywordtype">void</span> main_core_func_exponential();
53 <a name="l00017"></a>00017 }<span class="comment">//namespace test</span>
54 <a name="l00018"></a>00018
55 <a name="l00019"></a>00019 <span class="keyword">namespace </span>core{
56 <a name="l00020"></a>00020 <span class="keyword">namespace </span>function{
57 <a name="l00022"></a><a class="code" href="a00147.html">00022</a> <span class="keyword">namespace </span>exponential{
58 <a name="l00023"></a>00023
59 <a name="l00026"></a>00026
60 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
61 <a name="l00032"></a>00032 genType <a class="code" href="a00238.html#ga8eb76dfbf0fed3397c0327915279f06f" title="Returns x raised to the y power.">pow</a>(genType <span class="keyword">const</span> &amp; x, genType <span class="keyword">const</span> &amp; y);
62 <a name="l00033"></a>00033
63 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
64 <a name="l00039"></a>00039 genType <a class="code" href="a00238.html#gac96b81360552e233031fd06390576ebf" title="Returns the natural exponentiation of x, i.e., e^x.">exp</a>(genType <span class="keyword">const</span> &amp; x);
65 <a name="l00040"></a>00040
66 <a name="l00047"></a>00047 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
67 <a name="l00048"></a>00048 genType <a class="code" href="a00238.html#ga50b7859bfe87c2f075fe7a04e4c68cc3" title="Returns the natural logarithm of x, i.e., returns the value y which satisfies the equation x = e^y...">log</a>(genType <span class="keyword">const</span> &amp; x);
68 <a name="l00049"></a>00049
69 <a name="l00054"></a>00054 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
70 <a name="l00055"></a>00055 genType <a class="code" href="a00238.html#ga79adbdfa6f2e6ce59816c9b0bd1aebe3" title="Returns 2 raised to the x power.">exp2</a>(genType <span class="keyword">const</span> &amp; x);
71 <a name="l00056"></a>00056
72 <a name="l00062"></a>00062 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
73 <a name="l00063"></a>00063 genType <a class="code" href="a00238.html#ga956c24e59912196d4b3714789e57c077" title="Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y...">log2</a>(genType <span class="keyword">const</span> &amp; x);
74 <a name="l00064"></a>00064
75 <a name="l00069"></a>00069 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
76 <a name="l00070"></a>00070 genType <a class="code" href="a00238.html#ga29d9d4ccbca8f2168ac6534fbb65cbad" title="Returns the positive square root of x.">sqrt</a>(genType <span class="keyword">const</span> &amp; x);
77 <a name="l00071"></a>00071
78 <a name="l00076"></a>00076 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
79 <a name="l00077"></a>00077 genType <a class="code" href="a00238.html#gadce520af7df2c97aea9f689ad620fabe" title="Returns the reciprocal of the positive square root of x.">inversesqrt</a>(genType <span class="keyword">const</span> &amp; x);
80 <a name="l00078"></a>00078
51 <a name="l00015"></a><a class="code" href="a00146.html">00015</a> <span class="keyword">namespace </span>core{
52 <a name="l00016"></a><a class="code" href="a00147.html">00016</a> <span class="keyword">namespace </span>function{
53 <a name="l00018"></a><a class="code" href="a00148.html">00018</a> <span class="keyword">namespace </span>exponential{
54 <a name="l00019"></a>00019
55 <a name="l00022"></a>00022
56 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
57 <a name="l00028"></a>00028 genType <a class="code" href="a00237.html#ga8eb76dfbf0fed3397c0327915279f06f" title="Returns x raised to the y power.">pow</a>(genType <span class="keyword">const</span> &amp; x, genType <span class="keyword">const</span> &amp; y);
58 <a name="l00029"></a>00029
59 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
60 <a name="l00035"></a>00035 genType <a class="code" href="a00237.html#gac96b81360552e233031fd06390576ebf" title="Returns the natural exponentiation of x, i.e., e^x.">exp</a>(genType <span class="keyword">const</span> &amp; x);
61 <a name="l00036"></a>00036
62 <a name="l00043"></a>00043 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
63 <a name="l00044"></a>00044 genType <a class="code" href="a00237.html#ga50b7859bfe87c2f075fe7a04e4c68cc3" title="Returns the natural logarithm of x, i.e., returns the value y which satisfies the equation x = e^y...">log</a>(genType <span class="keyword">const</span> &amp; x);
64 <a name="l00045"></a>00045
65 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
66 <a name="l00051"></a>00051 genType <a class="code" href="a00237.html#ga79adbdfa6f2e6ce59816c9b0bd1aebe3" title="Returns 2 raised to the x power.">exp2</a>(genType <span class="keyword">const</span> &amp; x);
67 <a name="l00052"></a>00052
68 <a name="l00058"></a>00058 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
69 <a name="l00059"></a>00059 genType <a class="code" href="a00237.html#ga956c24e59912196d4b3714789e57c077" title="Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y...">log2</a>(genType <span class="keyword">const</span> &amp; x);
70 <a name="l00060"></a>00060
71 <a name="l00065"></a>00065 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
72 <a name="l00066"></a>00066 genType <a class="code" href="a00237.html#ga29d9d4ccbca8f2168ac6534fbb65cbad" title="Returns the positive square root of x.">sqrt</a>(genType <span class="keyword">const</span> &amp; x);
73 <a name="l00067"></a>00067
74 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
75 <a name="l00073"></a>00073 genType <a class="code" href="a00237.html#gadce520af7df2c97aea9f689ad620fabe" title="Returns the reciprocal of the positive square root of x.">inversesqrt</a>(genType <span class="keyword">const</span> &amp; x);
76 <a name="l00074"></a>00074
77 <a name="l00076"></a>00076
78 <a name="l00077"></a>00077 }<span class="comment">//namespace exponential</span>
79 <a name="l00078"></a>00078 }<span class="comment">//namespace function</span>
80 <a name="l00079"></a>00079 }<span class="comment">//namespace core</span>
8181 <a name="l00080"></a>00080
82 <a name="l00081"></a>00081 }<span class="comment">//namespace exponential</span>
83 <a name="l00082"></a>00082 }<span class="comment">//namespace function</span>
84 <a name="l00083"></a>00083 }<span class="comment">//namespace core</span>
85 <a name="l00084"></a>00084
86 <a name="l00085"></a>00085 <span class="keyword">using namespace </span>core::function::exponential;
87 <a name="l00086"></a>00086 }<span class="comment">//namespace glm</span>
88 <a name="l00087"></a>00087
89 <a name="l00088"></a>00088 <span class="preprocessor">#include &quot;func_exponential.inl&quot;</span>
90 <a name="l00089"></a>00089
91 <a name="l00090"></a>00090 <span class="preprocessor">#endif//glm_core_func_exponential</span>
82 <a name="l00081"></a>00081 <span class="keyword">using namespace </span>core::function::exponential;
83 <a name="l00082"></a>00082 }<span class="comment">//namespace glm</span>
84 <a name="l00083"></a>00083
85 <a name="l00084"></a>00084 <span class="preprocessor">#include &quot;func_exponential.inl&quot;</span>
86 <a name="l00085"></a>00085
87 <a name="l00086"></a>00086 <span class="preprocessor">#endif//glm_core_func_exponential</span>
9288 </pre></div></div>
9389 </div>
9490 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="keyword">namespace </span>glm
5050 <a name="l00014"></a>00014 {
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>test{
52 <a name="l00016"></a>00016 <span class="keywordtype">void</span> main_core_func_geometric();
53 <a name="l00017"></a>00017 }<span class="comment">//namespace test</span>
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>core{
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>function{
53 <a name="l00017"></a>00017 <span class="keyword">namespace </span>geometric{
5454 <a name="l00018"></a>00018
55 <a name="l00019"></a>00019 <span class="keyword">namespace </span>core{
56 <a name="l00020"></a>00020 <span class="keyword">namespace </span>function{
57 <a name="l00022"></a><a class="code" href="a00148.html">00022</a> <span class="keyword">namespace </span>geometric{
58 <a name="l00023"></a>00023
59 <a name="l00026"></a>00026
60 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
61 <a name="l00032"></a>00032 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00238.html#ga10ee9a1d18c6da61cab61d8637d23847" title="Returns the length of x, i.e., sqrt(x * x).">length</a>(
62 <a name="l00033"></a>00033 genType <span class="keyword">const</span> &amp; x);
63 <a name="l00034"></a>00034
64 <a name="l00039"></a>00039 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
65 <a name="l00040"></a>00040 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00238.html#gaa7cb6dbe9b8224c25345f1fd6fc09e77" title="Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).">distance</a>(
66 <a name="l00041"></a>00041 genType <span class="keyword">const</span> &amp; p0,
67 <a name="l00042"></a>00042 genType <span class="keyword">const</span> &amp; p1);
68 <a name="l00043"></a>00043
69 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
70 <a name="l00049"></a>00049 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00238.html#ga38e1f1538ac0fedc9d6ac14910105421" title="Returns the dot product of x and y, i.e., result = x * y.">dot</a>(
71 <a name="l00050"></a>00050 genType <span class="keyword">const</span> &amp; x,
72 <a name="l00051"></a>00051 genType <span class="keyword">const</span> &amp; y);
73 <a name="l00052"></a>00052
74 <a name="l00057"></a>00057 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
75 <a name="l00058"></a>00058 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00238.html#ga63272179a066d755953bcfbe38666257" title="Returns the cross product of x and y.">cross</a>(
76 <a name="l00059"></a>00059 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
77 <a name="l00060"></a>00060 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; y);
78 <a name="l00061"></a>00061
79 <a name="l00066"></a>00066 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
80 <a name="l00067"></a>00067 genType <a class="code" href="a00238.html#ga07ff16965f11fa17122ac874ed492276" title="Returns a vector in the same direction as x but with length of 1.">normalize</a>(
81 <a name="l00068"></a>00068 genType <span class="keyword">const</span> &amp; x);
82 <a name="l00069"></a>00069
83 <a name="l00074"></a>00074 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
84 <a name="l00075"></a>00075 genType <a class="code" href="a00238.html#gad591e8f7b1a5e311d3439dda2bb82aea" title="If dot(Nref, I) &amp;lt; 0.0, return N, otherwise, return -N.">faceforward</a>(
85 <a name="l00076"></a>00076 genType <span class="keyword">const</span> &amp; N,
86 <a name="l00077"></a>00077 genType <span class="keyword">const</span> &amp; I,
87 <a name="l00078"></a>00078 genType <span class="keyword">const</span> &amp; Nref);
88 <a name="l00079"></a>00079
89 <a name="l00085"></a>00085 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
90 <a name="l00086"></a>00086 genType <a class="code" href="a00238.html#ga2863d2331eb3752a5a17244c604c1d07" title="For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...">reflect</a>(
91 <a name="l00087"></a>00087 genType <span class="keyword">const</span> &amp; I,
92 <a name="l00088"></a>00088 genType <span class="keyword">const</span> &amp; N);
93 <a name="l00089"></a>00089
94 <a name="l00096"></a>00096 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
95 <a name="l00097"></a>00097 genType <a class="code" href="a00238.html#ga895392ad98499a450e2cc8579d76a84d" title="For the incident vector I and surface normal N, and the ratio of indices of refraction eta...">refract</a>(
96 <a name="l00098"></a>00098 genType <span class="keyword">const</span> &amp; I,
97 <a name="l00099"></a>00099 genType <span class="keyword">const</span> &amp; N,
98 <a name="l00100"></a>00100 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; eta);
99 <a name="l00101"></a>00101
100 <a name="l00103"></a>00103
101 <a name="l00104"></a>00104 }<span class="comment">//namespace geometric</span>
102 <a name="l00105"></a>00105 }<span class="comment">//namespace function</span>
103 <a name="l00106"></a>00106 }<span class="comment">//namespace core</span>
55 <a name="l00021"></a>00021
56 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
57 <a name="l00027"></a>00027 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00237.html#ga10ee9a1d18c6da61cab61d8637d23847" title="Returns the length of x, i.e., sqrt(x * x).">length</a>(
58 <a name="l00028"></a>00028 genType <span class="keyword">const</span> &amp; x);
59 <a name="l00029"></a>00029
60 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
61 <a name="l00035"></a>00035 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00237.html#gaa7cb6dbe9b8224c25345f1fd6fc09e77" title="Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).">distance</a>(
62 <a name="l00036"></a>00036 genType <span class="keyword">const</span> &amp; p0,
63 <a name="l00037"></a>00037 genType <span class="keyword">const</span> &amp; p1);
64 <a name="l00038"></a>00038
65 <a name="l00043"></a>00043 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
66 <a name="l00044"></a>00044 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00237.html#ga38e1f1538ac0fedc9d6ac14910105421" title="Returns the dot product of x and y, i.e., result = x * y.">dot</a>(
67 <a name="l00045"></a>00045 genType <span class="keyword">const</span> &amp; x,
68 <a name="l00046"></a>00046 genType <span class="keyword">const</span> &amp; y);
69 <a name="l00047"></a>00047
70 <a name="l00052"></a>00052 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
71 <a name="l00053"></a>00053 detail::tvec3&lt;T&gt; <a class="code" href="a00237.html#ga63272179a066d755953bcfbe38666257" title="Returns the cross product of x and y.">cross</a>(
72 <a name="l00054"></a>00054 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; x,
73 <a name="l00055"></a>00055 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; y);
74 <a name="l00056"></a>00056
75 <a name="l00061"></a>00061 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
76 <a name="l00062"></a>00062 genType <a class="code" href="a00237.html#ga07ff16965f11fa17122ac874ed492276" title="Returns a vector in the same direction as x but with length of 1.">normalize</a>(
77 <a name="l00063"></a>00063 genType <span class="keyword">const</span> &amp; x);
78 <a name="l00064"></a>00064
79 <a name="l00069"></a>00069 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
80 <a name="l00070"></a>00070 genType <a class="code" href="a00237.html#gad591e8f7b1a5e311d3439dda2bb82aea" title="If dot(Nref, I) &amp;lt; 0.0, return N, otherwise, return -N.">faceforward</a>(
81 <a name="l00071"></a>00071 genType <span class="keyword">const</span> &amp; N,
82 <a name="l00072"></a>00072 genType <span class="keyword">const</span> &amp; I,
83 <a name="l00073"></a>00073 genType <span class="keyword">const</span> &amp; Nref);
84 <a name="l00074"></a>00074
85 <a name="l00080"></a>00080 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
86 <a name="l00081"></a>00081 genType <a class="code" href="a00237.html#ga2863d2331eb3752a5a17244c604c1d07" title="For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...">reflect</a>(
87 <a name="l00082"></a>00082 genType <span class="keyword">const</span> &amp; I,
88 <a name="l00083"></a>00083 genType <span class="keyword">const</span> &amp; N);
89 <a name="l00084"></a>00084
90 <a name="l00091"></a>00091 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
91 <a name="l00092"></a>00092 genType <a class="code" href="a00237.html#ga895392ad98499a450e2cc8579d76a84d" title="For the incident vector I and surface normal N, and the ratio of indices of refraction eta...">refract</a>(
92 <a name="l00093"></a>00093 genType <span class="keyword">const</span> &amp; I,
93 <a name="l00094"></a>00094 genType <span class="keyword">const</span> &amp; N,
94 <a name="l00095"></a>00095 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; eta);
95 <a name="l00096"></a>00096
96 <a name="l00098"></a>00098
97 <a name="l00099"></a>00099 }<span class="comment">//namespace geometric</span>
98 <a name="l00100"></a>00100 }<span class="comment">//namespace function</span>
99 <a name="l00101"></a>00101 }<span class="comment">//namespace core</span>
100 <a name="l00102"></a>00102
101 <a name="l00103"></a>00103 <span class="keyword">using namespace </span>core::function::geometric;
102 <a name="l00104"></a>00104 }<span class="comment">//namespace glm</span>
103 <a name="l00105"></a>00105
104 <a name="l00106"></a>00106 <span class="preprocessor">#include &quot;func_geometric.inl&quot;</span>
104105 <a name="l00107"></a>00107
105 <a name="l00108"></a>00108 <span class="keyword">using namespace </span>core::function::geometric;
106 <a name="l00109"></a>00109 }<span class="comment">//namespace glm</span>
107 <a name="l00110"></a>00110
108 <a name="l00111"></a>00111 <span class="preprocessor">#include &quot;func_geometric.inl&quot;</span>
109 <a name="l00112"></a>00112
110 <a name="l00113"></a>00113 <span class="preprocessor">#endif//glm_core_func_geometric</span>
106 <a name="l00108"></a>00108 <span class="preprocessor">#endif//glm_core_func_geometric</span>
111107 </pre></div></div>
112108 </div>
113109 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="keyword">namespace </span>glm
5050 <a name="l00014"></a>00014 {
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>test{
52 <a name="l00016"></a>00016 <span class="keywordtype">void</span> main_core_func_integer();
53 <a name="l00017"></a>00017 }<span class="comment">//namespace test</span>
54 <a name="l00018"></a>00018
55 <a name="l00019"></a>00019 <span class="keyword">namespace </span>core{
56 <a name="l00020"></a>00020 <span class="keyword">namespace </span>function{
57 <a name="l00022"></a><a class="code" href="a00149.html">00022</a> <span class="keyword">namespace </span>integer{
58 <a name="l00023"></a>00023
59 <a name="l00026"></a>00026
60 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genUType&gt;
61 <a name="l00034"></a>00034 genUType <a class="code" href="a00238.html#ga8d63fd56743cc93286f09742baed4002" title="Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32).">uaddCarry</a>(
62 <a name="l00035"></a>00035 genUType <span class="keyword">const</span> &amp; x,
63 <a name="l00036"></a>00036 genUType <span class="keyword">const</span> &amp; y,
64 <a name="l00037"></a>00037 genUType &amp; carry);
65 <a name="l00038"></a>00038
66 <a name="l00045"></a>00045 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genUType&gt;
67 <a name="l00046"></a>00046 genUType <a class="code" href="a00238.html#ga5ea2ea51e7cf73056069ce7583d61560" title="Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise.">usubBorrow</a>(
68 <a name="l00047"></a>00047 genUType <span class="keyword">const</span> &amp; x,
69 <a name="l00048"></a>00048 genUType <span class="keyword">const</span> &amp; y,
70 <a name="l00049"></a>00049 genUType &amp; borrow);
71 <a name="l00050"></a>00050
72 <a name="l00057"></a>00057 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genUType&gt;
73 <a name="l00058"></a>00058 <span class="keywordtype">void</span> <a class="code" href="a00238.html#gad9b60d1c7e161b78682b7f8b071e213e" title="Multiplies 32-bit integers x and y, producing a 64-bit result.">umulExtended</a>(
74 <a name="l00059"></a>00059 genUType <span class="keyword">const</span> &amp; x,
75 <a name="l00060"></a>00060 genUType <span class="keyword">const</span> &amp; y,
76 <a name="l00061"></a>00061 genUType &amp; msb,
77 <a name="l00062"></a>00062 genUType &amp; lsb);
78 <a name="l00063"></a>00063
79 <a name="l00070"></a>00070 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIType&gt;
80 <a name="l00071"></a>00071 <span class="keywordtype">void</span> <a class="code" href="a00238.html#gac01a66145ce9472afb6a3bee837c0bd6" title="Multiplies 32-bit integers x and y, producing a 64-bit result.">imulExtended</a>(
81 <a name="l00072"></a>00072 genIType <span class="keyword">const</span> &amp; x,
82 <a name="l00073"></a>00073 genIType <span class="keyword">const</span> &amp; y,
83 <a name="l00074"></a>00074 genIType &amp; msb,
84 <a name="l00075"></a>00075 genIType &amp; lsb);
85 <a name="l00076"></a>00076
86 <a name="l00090"></a>00090 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;
87 <a name="l00091"></a>00091 genIUType <a class="code" href="a00238.html#ga3b4804e700ade895189ea8bde142c822" title="Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of...">bitfieldExtract</a>(
88 <a name="l00092"></a>00092 genIUType <span class="keyword">const</span> &amp; Value,
89 <a name="l00093"></a>00093 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; Offset,
90 <a name="l00094"></a>00094 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; Bits);
91 <a name="l00095"></a>00095
92 <a name="l00108"></a>00108 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;
93 <a name="l00109"></a>00109 genIUType <a class="code" href="a00238.html#ga90d0bc8e79f637da58b8fad2fc8f3275" title="Returns the insertion the bits least-significant bits of insert into base.">bitfieldInsert</a>(
94 <a name="l00110"></a>00110 genIUType <span class="keyword">const</span> &amp; Base,
95 <a name="l00111"></a>00111 genIUType <span class="keyword">const</span> &amp; Insert,
96 <a name="l00112"></a>00112 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; Offset,
97 <a name="l00113"></a>00113 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; Bits);
98 <a name="l00114"></a>00114
99 <a name="l00121"></a>00121 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;
100 <a name="l00122"></a>00122 genIUType <a class="code" href="a00238.html#ga68bdb2c3debc414d5567935b4cbca62f" title="Returns the reversal of the bits of value.">bitfieldReverse</a>(genIUType <span class="keyword">const</span> &amp; value);
101 <a name="l00123"></a>00123
102 <a name="l00128"></a>00128 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;
103 <a name="l00129"></a>00129 <span class="keyword">typename</span> C&lt;T&gt;::signed_type <a class="code" href="a00238.html#ga29cfb04fafbaa1939955f11fef28ff38" title="Returns the number of bits set to 1 in the binary representation of value.">bitCount</a>(C&lt;T&gt; <span class="keyword">const</span> &amp; Value);
104 <a name="l00130"></a>00130
105 <a name="l00137"></a>00137 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;
106 <a name="l00138"></a>00138 <span class="keyword">typename</span> C&lt;T&gt;::signed_type <a class="code" href="a00238.html#ga9890456d065156a3c3c9786b14638486" title="Returns the bit number of the least significant bit set to 1 in the binary representation of value...">findLSB</a>(C&lt;T&gt; <span class="keyword">const</span> &amp; Value);
107 <a name="l00139"></a>00139
108 <a name="l00147"></a>00147 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;
109 <a name="l00148"></a>00148 <span class="keyword">typename</span> C&lt;T&gt;::signed_type <a class="code" href="a00238.html#ga0f50b6fe121f170c3725a8abb53ff077" title="Returns the bit number of the most significant bit in the binary representation of value...">findMSB</a>(C&lt;T&gt; <span class="keyword">const</span> &amp; Value);
110 <a name="l00149"></a>00149
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>core{
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>function{
53 <a name="l00018"></a><a class="code" href="a00150.html">00018</a> <span class="keyword">namespace </span>integer{
54 <a name="l00019"></a>00019
55 <a name="l00022"></a>00022
56 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genUType&gt;
57 <a name="l00030"></a>00030 genUType <a class="code" href="a00237.html#ga8d63fd56743cc93286f09742baed4002" title="Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32).">uaddCarry</a>(
58 <a name="l00031"></a>00031 genUType <span class="keyword">const</span> &amp; x,
59 <a name="l00032"></a>00032 genUType <span class="keyword">const</span> &amp; y,
60 <a name="l00033"></a>00033 genUType &amp; carry);
61 <a name="l00034"></a>00034
62 <a name="l00041"></a>00041 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genUType&gt;
63 <a name="l00042"></a>00042 genUType <a class="code" href="a00237.html#ga5ea2ea51e7cf73056069ce7583d61560" title="Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise.">usubBorrow</a>(
64 <a name="l00043"></a>00043 genUType <span class="keyword">const</span> &amp; x,
65 <a name="l00044"></a>00044 genUType <span class="keyword">const</span> &amp; y,
66 <a name="l00045"></a>00045 genUType &amp; borrow);
67 <a name="l00046"></a>00046
68 <a name="l00053"></a>00053 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genUType&gt;
69 <a name="l00054"></a>00054 <span class="keywordtype">void</span> <a class="code" href="a00237.html#gad9b60d1c7e161b78682b7f8b071e213e" title="Multiplies 32-bit integers x and y, producing a 64-bit result.">umulExtended</a>(
70 <a name="l00055"></a>00055 genUType <span class="keyword">const</span> &amp; x,
71 <a name="l00056"></a>00056 genUType <span class="keyword">const</span> &amp; y,
72 <a name="l00057"></a>00057 genUType &amp; msb,
73 <a name="l00058"></a>00058 genUType &amp; lsb);
74 <a name="l00059"></a>00059
75 <a name="l00066"></a>00066 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIType&gt;
76 <a name="l00067"></a>00067 <span class="keywordtype">void</span> <a class="code" href="a00237.html#gac01a66145ce9472afb6a3bee837c0bd6" title="Multiplies 32-bit integers x and y, producing a 64-bit result.">imulExtended</a>(
77 <a name="l00068"></a>00068 genIType <span class="keyword">const</span> &amp; x,
78 <a name="l00069"></a>00069 genIType <span class="keyword">const</span> &amp; y,
79 <a name="l00070"></a>00070 genIType &amp; msb,
80 <a name="l00071"></a>00071 genIType &amp; lsb);
81 <a name="l00072"></a>00072
82 <a name="l00086"></a>00086 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;
83 <a name="l00087"></a>00087 genIUType <a class="code" href="a00237.html#ga3b4804e700ade895189ea8bde142c822" title="Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of...">bitfieldExtract</a>(
84 <a name="l00088"></a>00088 genIUType <span class="keyword">const</span> &amp; Value,
85 <a name="l00089"></a>00089 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; Offset,
86 <a name="l00090"></a>00090 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; Bits);
87 <a name="l00091"></a>00091
88 <a name="l00104"></a>00104 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;
89 <a name="l00105"></a>00105 genIUType <a class="code" href="a00237.html#ga90d0bc8e79f637da58b8fad2fc8f3275" title="Returns the insertion the bits least-significant bits of insert into base.">bitfieldInsert</a>(
90 <a name="l00106"></a>00106 genIUType <span class="keyword">const</span> &amp; Base,
91 <a name="l00107"></a>00107 genIUType <span class="keyword">const</span> &amp; Insert,
92 <a name="l00108"></a>00108 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; Offset,
93 <a name="l00109"></a>00109 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; Bits);
94 <a name="l00110"></a>00110
95 <a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;
96 <a name="l00118"></a>00118 genIUType <a class="code" href="a00237.html#ga68bdb2c3debc414d5567935b4cbca62f" title="Returns the reversal of the bits of value.">bitfieldReverse</a>(genIUType <span class="keyword">const</span> &amp; value);
97 <a name="l00119"></a>00119
98 <a name="l00124"></a>00124 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;
99 <a name="l00125"></a>00125 <span class="keyword">typename</span> C&lt;T&gt;::signed_type <a class="code" href="a00237.html#ga29cfb04fafbaa1939955f11fef28ff38" title="Returns the number of bits set to 1 in the binary representation of value.">bitCount</a>(C&lt;T&gt; <span class="keyword">const</span> &amp; Value);
100 <a name="l00126"></a>00126
101 <a name="l00133"></a>00133 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;
102 <a name="l00134"></a>00134 <span class="keyword">typename</span> C&lt;T&gt;::signed_type <a class="code" href="a00237.html#ga9890456d065156a3c3c9786b14638486" title="Returns the bit number of the least significant bit set to 1 in the binary representation of value...">findLSB</a>(C&lt;T&gt; <span class="keyword">const</span> &amp; Value);
103 <a name="l00135"></a>00135
104 <a name="l00143"></a>00143 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;
105 <a name="l00144"></a>00144 <span class="keyword">typename</span> C&lt;T&gt;::signed_type <a class="code" href="a00237.html#ga0f50b6fe121f170c3725a8abb53ff077" title="Returns the bit number of the most significant bit in the binary representation of value...">findMSB</a>(C&lt;T&gt; <span class="keyword">const</span> &amp; Value);
106 <a name="l00145"></a>00145
107 <a name="l00147"></a>00147
108 <a name="l00148"></a>00148 }<span class="comment">//namespace integer</span>
109 <a name="l00149"></a>00149 }<span class="comment">//namespace function</span>
110 <a name="l00150"></a>00150 }<span class="comment">//namespace core</span>
111111 <a name="l00151"></a>00151
112 <a name="l00152"></a>00152 }<span class="comment">//namespace integer</span>
113 <a name="l00153"></a>00153 }<span class="comment">//namespace function</span>
114 <a name="l00154"></a>00154 }<span class="comment">//namespace core</span>
115 <a name="l00155"></a>00155
116 <a name="l00156"></a>00156 <span class="keyword">using namespace </span>core::function::integer;
117 <a name="l00157"></a>00157 }<span class="comment">//namespace glm</span>
118 <a name="l00158"></a>00158
119 <a name="l00159"></a>00159 <span class="preprocessor">#include &quot;func_integer.inl&quot;</span>
120 <a name="l00160"></a>00160
121 <a name="l00161"></a>00161 <span class="preprocessor">#endif//glm_core_func_integer</span>
122 <a name="l00162"></a>00162 <span class="preprocessor"></span>
112 <a name="l00152"></a>00152 <span class="keyword">using namespace </span>core::function::integer;
113 <a name="l00153"></a>00153 }<span class="comment">//namespace glm</span>
114 <a name="l00154"></a>00154
115 <a name="l00155"></a>00155 <span class="preprocessor">#include &quot;func_integer.inl&quot;</span>
116 <a name="l00156"></a>00156
117 <a name="l00157"></a>00157 <span class="preprocessor">#endif//glm_core_func_integer</span>
118 <a name="l00158"></a>00158 <span class="preprocessor"></span>
123119 </pre></div></div>
124120 </div>
125121 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="keyword">namespace </span>glm
5050 <a name="l00014"></a>00014 {
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>test{
52 <a name="l00016"></a>00016 <span class="keywordtype">void</span> main_core_func_matrix();
53 <a name="l00017"></a>00017 }<span class="comment">//namespace test</span>
54 <a name="l00018"></a>00018
55 <a name="l00019"></a>00019 <span class="keyword">namespace </span>core{
56 <a name="l00020"></a>00020 <span class="keyword">namespace </span>function{
57 <a name="l00022"></a><a class="code" href="a00150.html">00022</a> <span class="keyword">namespace </span>matrix{
58 <a name="l00023"></a>00023
59 <a name="l00026"></a>00026
60 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> matType&gt;
61 <a name="l00033"></a>00033 matType <a class="code" href="a00238.html#gad27896f9d5be202b8d39552eeb352c87" title="Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and...">matrixCompMult</a>(
62 <a name="l00034"></a>00034 matType <span class="keyword">const</span> &amp; x,
63 <a name="l00035"></a>00035 matType <span class="keyword">const</span> &amp; y);
64 <a name="l00036"></a>00036
65 <a name="l00043"></a>00043 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType, <span class="keyword">typename</span> matType&gt;
66 <a name="l00044"></a>00044 matType <a class="code" href="a00238.html#ga04b83f76e97124e8e91d923dd7ba326c" title="Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...">outerProduct</a>(
67 <a name="l00045"></a>00045 vecType <span class="keyword">const</span> &amp; c,
68 <a name="l00046"></a>00046 vecType <span class="keyword">const</span> &amp; r);
69 <a name="l00047"></a>00047
70 <a name="l00052"></a>00052 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> matType&gt;
71 <a name="l00053"></a>00053 <span class="keyword">typename</span> matType::transpose_type <a class="code" href="a00238.html#ga8b1a22512f73b0176ad062d3d480e906" title="Returns the transposed matrix of x.">transpose</a>(
72 <a name="l00054"></a>00054 matType <span class="keyword">const</span> &amp; x);
73 <a name="l00055"></a>00055
74 <a name="l00060"></a>00060 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
75 <a name="l00061"></a>00061 <span class="keyword">typename</span> detail::tmat2x2&lt;T&gt;::value_type <a class="code" href="a00238.html#ga0159ae2542b5bba80743694122247c15" title="Return the determinant of a mat2 matrix.">determinant</a>(
76 <a name="l00062"></a>00062 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
77 <a name="l00063"></a>00063
78 <a name="l00068"></a>00068 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
79 <a name="l00069"></a>00069 <span class="keyword">typename</span> detail::tmat3x3&lt;T&gt;::value_type <a class="code" href="a00238.html#ga0159ae2542b5bba80743694122247c15" title="Return the determinant of a mat2 matrix.">determinant</a>(
80 <a name="l00070"></a>00070 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
81 <a name="l00071"></a>00071
82 <a name="l00076"></a>00076 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
83 <a name="l00077"></a>00077 <span class="keyword">typename</span> detail::tmat4x4&lt;T&gt;::value_type <a class="code" href="a00238.html#ga0159ae2542b5bba80743694122247c15" title="Return the determinant of a mat2 matrix.">determinant</a>(
84 <a name="l00078"></a>00078 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
85 <a name="l00079"></a>00079
86 <a name="l00084"></a>00084 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
87 <a name="l00085"></a>00085 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <a class="code" href="a00238.html#ga21de0684ba52d03625b43eac0c2b866a" title="Return the inverse of a mat2 matrix.">inverse</a>(
88 <a name="l00086"></a>00086 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
89 <a name="l00087"></a>00087
90 <a name="l00092"></a>00092 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
91 <a name="l00093"></a>00093 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00238.html#ga21de0684ba52d03625b43eac0c2b866a" title="Return the inverse of a mat2 matrix.">inverse</a>(
92 <a name="l00094"></a>00094 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
93 <a name="l00095"></a>00095
94 <a name="l00100"></a>00100 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
95 <a name="l00101"></a>00101 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00238.html#ga21de0684ba52d03625b43eac0c2b866a" title="Return the inverse of a mat2 matrix.">inverse</a>(
96 <a name="l00102"></a>00102 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
97 <a name="l00103"></a>00103
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>core{
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>function{
53 <a name="l00018"></a><a class="code" href="a00151.html">00018</a> <span class="keyword">namespace </span>matrix{
54 <a name="l00019"></a>00019
55 <a name="l00022"></a>00022
56 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> matType&gt;
57 <a name="l00029"></a>00029 matType <a class="code" href="a00237.html#gad27896f9d5be202b8d39552eeb352c87" title="Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and...">matrixCompMult</a>(
58 <a name="l00030"></a>00030 matType <span class="keyword">const</span> &amp; x,
59 <a name="l00031"></a>00031 matType <span class="keyword">const</span> &amp; y);
60 <a name="l00032"></a>00032
61 <a name="l00039"></a>00039 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType, <span class="keyword">typename</span> matType&gt;
62 <a name="l00040"></a>00040 matType <a class="code" href="a00237.html#ga04b83f76e97124e8e91d923dd7ba326c" title="Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...">outerProduct</a>(
63 <a name="l00041"></a>00041 vecType <span class="keyword">const</span> &amp; c,
64 <a name="l00042"></a>00042 vecType <span class="keyword">const</span> &amp; r);
65 <a name="l00043"></a>00043
66 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> matType&gt;
67 <a name="l00049"></a>00049 <span class="keyword">typename</span> matType::transpose_type <a class="code" href="a00237.html#ga8b1a22512f73b0176ad062d3d480e906" title="Returns the transposed matrix of x.">transpose</a>(
68 <a name="l00050"></a>00050 matType <span class="keyword">const</span> &amp; x);
69 <a name="l00051"></a>00051
70 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
71 <a name="l00057"></a>00057 <span class="keyword">typename</span> detail::tmat2x2&lt;T&gt;::value_type <a class="code" href="a00237.html#ga0159ae2542b5bba80743694122247c15" title="Return the determinant of a mat2 matrix.">determinant</a>(
72 <a name="l00058"></a>00058 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
73 <a name="l00059"></a>00059
74 <a name="l00064"></a>00064 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
75 <a name="l00065"></a>00065 <span class="keyword">typename</span> detail::tmat3x3&lt;T&gt;::value_type <a class="code" href="a00237.html#ga0159ae2542b5bba80743694122247c15" title="Return the determinant of a mat2 matrix.">determinant</a>(
76 <a name="l00066"></a>00066 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
77 <a name="l00067"></a>00067
78 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
79 <a name="l00073"></a>00073 <span class="keyword">typename</span> detail::tmat4x4&lt;T&gt;::value_type <a class="code" href="a00237.html#ga0159ae2542b5bba80743694122247c15" title="Return the determinant of a mat2 matrix.">determinant</a>(
80 <a name="l00074"></a>00074 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
81 <a name="l00075"></a>00075
82 <a name="l00080"></a>00080 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
83 <a name="l00081"></a>00081 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <a class="code" href="a00237.html#ga21de0684ba52d03625b43eac0c2b866a" title="Return the inverse of a mat2 matrix.">inverse</a>(
84 <a name="l00082"></a>00082 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
85 <a name="l00083"></a>00083
86 <a name="l00088"></a>00088 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
87 <a name="l00089"></a>00089 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00237.html#ga21de0684ba52d03625b43eac0c2b866a" title="Return the inverse of a mat2 matrix.">inverse</a>(
88 <a name="l00090"></a>00090 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
89 <a name="l00091"></a>00091
90 <a name="l00096"></a>00096 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
91 <a name="l00097"></a>00097 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00237.html#ga21de0684ba52d03625b43eac0c2b866a" title="Return the inverse of a mat2 matrix.">inverse</a>(
92 <a name="l00098"></a>00098 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
93 <a name="l00099"></a>00099
94 <a name="l00101"></a>00101
95 <a name="l00102"></a>00102 }<span class="comment">//namespace matrix</span>
96 <a name="l00103"></a>00103 }<span class="comment">//namespace function</span>
97 <a name="l00104"></a>00104 }<span class="comment">//namespace core</span>
9898 <a name="l00105"></a>00105
99 <a name="l00106"></a>00106 }<span class="comment">//namespace matrix</span>
100 <a name="l00107"></a>00107 }<span class="comment">//namespace function</span>
101 <a name="l00108"></a>00108 }<span class="comment">//namespace core</span>
102 <a name="l00109"></a>00109
103 <a name="l00110"></a>00110 <span class="keyword">using namespace </span>core::function::matrix;
104 <a name="l00111"></a>00111 }<span class="comment">//namespace glm</span>
105 <a name="l00112"></a>00112
106 <a name="l00113"></a>00113 <span class="preprocessor">#include &quot;func_matrix.inl&quot;</span>
107 <a name="l00114"></a>00114
108 <a name="l00115"></a>00115 <span class="preprocessor">#endif//glm_core_func_matrix</span>
99 <a name="l00106"></a>00106 <span class="keyword">using namespace </span>core::function::matrix;
100 <a name="l00107"></a>00107 }<span class="comment">//namespace glm</span>
101 <a name="l00108"></a>00108
102 <a name="l00109"></a>00109 <span class="preprocessor">#include &quot;func_matrix.inl&quot;</span>
103 <a name="l00110"></a>00110
104 <a name="l00111"></a>00111 <span class="preprocessor">#endif//glm_core_func_matrix</span>
109105 </pre></div></div>
110106 </div>
111107 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="keyword">namespace </span>glm
5050 <a name="l00014"></a>00014 {
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>test{
52 <a name="l00016"></a>00016 <span class="keywordtype">void</span> main_core_func_noise();
53 <a name="l00017"></a>00017 }<span class="comment">//namespace test</span>
54 <a name="l00018"></a>00018
55 <a name="l00019"></a>00019 <span class="keyword">namespace </span>core{
56 <a name="l00020"></a>00020 <span class="keyword">namespace </span>function{
57 <a name="l00021"></a>00021 <span class="comment">// Define all noise functions from Section 8.9 of GLSL 1.30.8 specification. Included in glm namespace.</span>
58 <a name="l00022"></a>00022 <span class="keyword">namespace </span>noise{
59 <a name="l00023"></a>00023
60 <a name="l00026"></a>00026
61 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
62 <a name="l00032"></a>00032 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00238.html#ga9a5b6e92c055c5d401b2a7c56b4b8da3" title="Returns a 1D noise value based on the input value x.">noise1</a>(genType <span class="keyword">const</span> &amp; x);
63 <a name="l00033"></a>00033
64 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
65 <a name="l00039"></a>00039 detail::tvec2&lt;typename genType::value_type&gt; <a class="code" href="a00238.html#gaad98694033fa19168b99205f5ab33a0e" title="Returns a 2D noise value based on the input value x.">noise2</a>(genType <span class="keyword">const</span> &amp; x);
66 <a name="l00040"></a>00040
67 <a name="l00045"></a>00045 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
68 <a name="l00046"></a>00046 detail::tvec3&lt;typename genType::value_type&gt; <a class="code" href="a00238.html#ga8759756672debb0894c0bb18f5add8a6" title="Returns a 3D noise value based on the input value x.">noise3</a>(genType <span class="keyword">const</span> &amp; x);
69 <a name="l00047"></a>00047
70 <a name="l00052"></a>00052 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
71 <a name="l00053"></a>00053 detail::tvec4&lt;typename genType::value_type&gt; <a class="code" href="a00238.html#gac744c79c4ab6cffafbd197fc5276e62d" title="Returns a 4D noise value based on the input value x.">noise4</a>(genType <span class="keyword">const</span> &amp; x);
72 <a name="l00054"></a>00054
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>core{
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>function{
53 <a name="l00017"></a>00017 <span class="comment">// Define all noise functions from Section 8.9 of GLSL 1.30.8 specification. Included in glm namespace.</span>
54 <a name="l00018"></a>00018 <span class="keyword">namespace </span>noise{
55 <a name="l00019"></a>00019
56 <a name="l00022"></a>00022
57 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
58 <a name="l00028"></a>00028 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00237.html#ga9a5b6e92c055c5d401b2a7c56b4b8da3" title="Returns a 1D noise value based on the input value x.">noise1</a>(genType <span class="keyword">const</span> &amp; x);
59 <a name="l00029"></a>00029
60 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
61 <a name="l00035"></a>00035 detail::tvec2&lt;typename genType::value_type&gt; <a class="code" href="a00237.html#gaad98694033fa19168b99205f5ab33a0e" title="Returns a 2D noise value based on the input value x.">noise2</a>(genType <span class="keyword">const</span> &amp; x);
62 <a name="l00036"></a>00036
63 <a name="l00041"></a>00041 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
64 <a name="l00042"></a>00042 detail::tvec3&lt;typename genType::value_type&gt; <a class="code" href="a00237.html#ga8759756672debb0894c0bb18f5add8a6" title="Returns a 3D noise value based on the input value x.">noise3</a>(genType <span class="keyword">const</span> &amp; x);
65 <a name="l00043"></a>00043
66 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
67 <a name="l00049"></a>00049 detail::tvec4&lt;typename genType::value_type&gt; <a class="code" href="a00237.html#gac744c79c4ab6cffafbd197fc5276e62d" title="Returns a 4D noise value based on the input value x.">noise4</a>(genType <span class="keyword">const</span> &amp; x);
68 <a name="l00050"></a>00050
69 <a name="l00052"></a>00052
70 <a name="l00053"></a>00053 }<span class="comment">//namespace noise</span>
71 <a name="l00054"></a>00054 }<span class="comment">//namespace function</span>
72 <a name="l00055"></a>00055 }<span class="comment">//namespace core</span>
7373 <a name="l00056"></a>00056
74 <a name="l00057"></a>00057 }<span class="comment">//namespace noise</span>
75 <a name="l00058"></a>00058 }<span class="comment">//namespace function</span>
76 <a name="l00059"></a>00059 }<span class="comment">//namespace core</span>
77 <a name="l00060"></a>00060
78 <a name="l00061"></a>00061 <span class="keyword">using namespace </span>core::function::noise;
79 <a name="l00062"></a>00062 }<span class="comment">//namespace glm</span>
80 <a name="l00063"></a>00063
81 <a name="l00064"></a>00064 <span class="preprocessor">#include &quot;func_noise.inl&quot;</span>
82 <a name="l00065"></a>00065
83 <a name="l00066"></a>00066 <span class="preprocessor">#endif//glm_core_func_noise</span>
74 <a name="l00057"></a>00057 <span class="keyword">using namespace </span>core::function::noise;
75 <a name="l00058"></a>00058 }<span class="comment">//namespace glm</span>
76 <a name="l00059"></a>00059
77 <a name="l00060"></a>00060 <span class="preprocessor">#include &quot;func_noise.inl&quot;</span>
78 <a name="l00061"></a>00061
79 <a name="l00062"></a>00062 <span class="preprocessor">#endif//glm_core_func_noise</span>
8480 </pre></div></div>
8581 </div>
8682 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="keyword">namespace </span>glm
5050 <a name="l00014"></a>00014 {
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>test{
52 <a name="l00016"></a>00016 <span class="keywordtype">void</span> main_core_func_packing();
53 <a name="l00017"></a>00017 }<span class="comment">//namespace test</span>
54 <a name="l00018"></a>00018
55 <a name="l00019"></a>00019 <span class="keyword">namespace </span>core{
56 <a name="l00020"></a>00020 <span class="keyword">namespace </span>function{
57 <a name="l00022"></a><a class="code" href="a00152.html">00022</a> <span class="keyword">namespace </span>packing
58 <a name="l00023"></a>00023 {
59 <a name="l00026"></a>00026
60 <a name="l00038"></a>00038 <a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <a class="code" href="a00238.html#ga7fc17302ae69881bb792842d472e7a30" title="First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...">packUnorm2x16</a>(<a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::float32&gt;</a> <span class="keyword">const</span> &amp; v);
61 <a name="l00039"></a>00039
62 <a name="l00051"></a>00051 <a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <a class="code" href="a00238.html#gaf440e4e6c6be271327c5e2538e9c8b5f" title="First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...">packUnorm4x8</a>(<a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::float32&gt;</a> <span class="keyword">const</span> &amp; v);
63 <a name="l00052"></a>00052
64 <a name="l00064"></a>00064 <a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <a class="code" href="a00238.html#ga3f82e6b12495d9751eee53facba475da" title="First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...">packSnorm4x8</a>(<a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::float32&gt;</a> <span class="keyword">const</span> &amp; v);
65 <a name="l00065"></a>00065
66 <a name="l00077"></a>00077 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::float32&gt;</a> <a class="code" href="a00238.html#gab3745178db4024212c4d7cb3df9a6f39" title="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.">unpackUnorm2x16</a>(<a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <span class="keyword">const</span> &amp; p);
67 <a name="l00078"></a>00078
68 <a name="l00090"></a>00090 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::float32&gt;</a> <a class="code" href="a00238.html#ga11630d2b293d96452c412639ec3c942e" title="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.">unpackUnorm4x8</a>(<a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <span class="keyword">const</span> &amp; p);
69 <a name="l00091"></a>00091
70 <a name="l00103"></a>00103 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::float32&gt;</a> <a class="code" href="a00238.html#ga03dafa00be8359e3a028aed81ae6007e" title="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.">unpackSnorm4x8</a>(<a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <span class="keyword">const</span> &amp; p);
71 <a name="l00104"></a>00104
72 <a name="l00113"></a>00113 <span class="keywordtype">double</span> <a class="code" href="a00238.html#ga816867ca2fdb1bfb5d80d7a4f18a9e97" title="Returns a double-precision value obtained by packing the components of v into a 64-bit value...">packDouble2x32</a>(<a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::uint32&gt;</a> <span class="keyword">const</span> &amp; v);
73 <a name="l00114"></a>00114
74 <a name="l00122"></a>00122 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::uint32&gt;</a> <a class="code" href="a00238.html#ga4e80ba8eaef0b878ecb43053a4df9ff7" title="Returns a two-component unsigned integer vector representation of v.">unpackDouble2x32</a>(<span class="keywordtype">double</span> <span class="keyword">const</span> &amp; v);
75 <a name="l00123"></a>00123
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>core{
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>function{
53 <a name="l00018"></a><a class="code" href="a00153.html">00018</a> <span class="keyword">namespace </span>packing
54 <a name="l00019"></a>00019 {
55 <a name="l00022"></a>00022
56 <a name="l00034"></a>00034 <a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <a class="code" href="a00237.html#ga7fc17302ae69881bb792842d472e7a30" title="First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...">packUnorm2x16</a>(<a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::float32&gt;</a> <span class="keyword">const</span> &amp; v);
57 <a name="l00035"></a>00035
58 <a name="l00047"></a>00047 <a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <a class="code" href="a00237.html#gaf440e4e6c6be271327c5e2538e9c8b5f" title="First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...">packUnorm4x8</a>(<a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::float32&gt;</a> <span class="keyword">const</span> &amp; v);
59 <a name="l00048"></a>00048
60 <a name="l00060"></a>00060 <a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <a class="code" href="a00237.html#ga3f82e6b12495d9751eee53facba475da" title="First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...">packSnorm4x8</a>(<a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::float32&gt;</a> <span class="keyword">const</span> &amp; v);
61 <a name="l00061"></a>00061
62 <a name="l00073"></a>00073 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::float32&gt;</a> <a class="code" href="a00237.html#gab3745178db4024212c4d7cb3df9a6f39" title="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.">unpackUnorm2x16</a>(<a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <span class="keyword">const</span> &amp; p);
63 <a name="l00074"></a>00074
64 <a name="l00086"></a>00086 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::float32&gt;</a> <a class="code" href="a00237.html#ga11630d2b293d96452c412639ec3c942e" title="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.">unpackUnorm4x8</a>(<a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <span class="keyword">const</span> &amp; p);
65 <a name="l00087"></a>00087
66 <a name="l00099"></a>00099 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::float32&gt;</a> <a class="code" href="a00237.html#ga03dafa00be8359e3a028aed81ae6007e" title="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.">unpackSnorm4x8</a>(<a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <span class="keyword">const</span> &amp; p);
67 <a name="l00100"></a>00100
68 <a name="l00109"></a>00109 <span class="keywordtype">double</span> <a class="code" href="a00237.html#ga816867ca2fdb1bfb5d80d7a4f18a9e97" title="Returns a double-precision value obtained by packing the components of v into a 64-bit value...">packDouble2x32</a>(<a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::uint32&gt;</a> <span class="keyword">const</span> &amp; v);
69 <a name="l00110"></a>00110
70 <a name="l00118"></a>00118 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::uint32&gt;</a> <a class="code" href="a00237.html#ga4e80ba8eaef0b878ecb43053a4df9ff7" title="Returns a two-component unsigned integer vector representation of v.">unpackDouble2x32</a>(<span class="keywordtype">double</span> <span class="keyword">const</span> &amp; v);
71 <a name="l00119"></a>00119
72 <a name="l00121"></a>00121
73 <a name="l00122"></a>00122 }<span class="comment">//namespace packing</span>
74 <a name="l00123"></a>00123 }<span class="comment">//namespace function</span>
75 <a name="l00124"></a>00124 }<span class="comment">//namespace core</span>
7676 <a name="l00125"></a>00125
77 <a name="l00126"></a>00126 }<span class="comment">//namespace packing</span>
78 <a name="l00127"></a>00127 }<span class="comment">//namespace function</span>
79 <a name="l00128"></a>00128 }<span class="comment">//namespace core</span>
80 <a name="l00129"></a>00129
81 <a name="l00130"></a>00130 <span class="keyword">using namespace </span>core::function::packing;
82 <a name="l00131"></a>00131 }<span class="comment">//namespace glm</span>
83 <a name="l00132"></a>00132
84 <a name="l00133"></a>00133 <span class="preprocessor">#include &quot;func_packing.inl&quot;</span>
85 <a name="l00134"></a>00134
86 <a name="l00135"></a>00135 <span class="preprocessor">#endif//glm_core_func_packing</span>
87 <a name="l00136"></a>00136 <span class="preprocessor"></span>
77 <a name="l00126"></a>00126 <span class="keyword">using namespace </span>core::function::packing;
78 <a name="l00127"></a>00127 }<span class="comment">//namespace glm</span>
79 <a name="l00128"></a>00128
80 <a name="l00129"></a>00129 <span class="preprocessor">#include &quot;func_packing.inl&quot;</span>
81 <a name="l00130"></a>00130
82 <a name="l00131"></a>00131 <span class="preprocessor">#endif//glm_core_func_packing</span>
83 <a name="l00132"></a>00132 <span class="preprocessor"></span>
8884 </pre></div></div>
8985 </div>
9086 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="keyword">namespace </span>glm
5050 <a name="l00014"></a>00014 {
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>test{
52 <a name="l00016"></a>00016 <span class="keywordtype">void</span> main_core_func_trigonometric();
53 <a name="l00017"></a>00017 }<span class="comment">//namespace test</span>
54 <a name="l00018"></a>00018
55 <a name="l00019"></a>00019 <span class="keyword">namespace </span>core{
56 <a name="l00020"></a>00020 <span class="keyword">namespace </span>function{
57 <a name="l00024"></a><a class="code" href="a00153.html">00024</a> <span class="keyword">namespace </span>trigonometric{
58 <a name="l00025"></a>00025
59 <a name="l00028"></a>00028
60 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
61 <a name="l00034"></a>00034 genType <a class="code" href="a00238.html#ga40251a4a07049e7fdcbf155c3cc6d32a" title="Converts degrees to radians and returns the result.">radians</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00238.html#ga2dc092f93e998e01c1cfdaef817ca926" title="Converts radians to degrees and returns the result.">degrees</a>);
62 <a name="l00035"></a>00035
63 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
64 <a name="l00041"></a>00041 genType <a class="code" href="a00238.html#ga2dc092f93e998e01c1cfdaef817ca926" title="Converts radians to degrees and returns the result.">degrees</a>(genType <span class="keyword">const</span> &amp; radians);
65 <a name="l00042"></a>00042
66 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
67 <a name="l00049"></a>00049 genType <a class="code" href="a00238.html#gad246389321f46f7cb1cc422f9fd64cf4" title="The standard trigonometric sine function.">sin</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00286.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>);
68 <a name="l00050"></a>00050
69 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
70 <a name="l00057"></a>00057 genType <a class="code" href="a00238.html#ga4fbc8481a95bcc1c0c6931a34449b9a8" title="The standard trigonometric cosine function.">cos</a>(genType <span class="keyword">const</span> &amp; angle);
71 <a name="l00058"></a>00058
72 <a name="l00063"></a>00063 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
73 <a name="l00064"></a>00064 genType <a class="code" href="a00238.html#ga1a556079a4fee8b5e12fcfe7551f6931" title="The standard trigonometric tangent function.">tan</a>(genType <span class="keyword">const</span> &amp; angle);
74 <a name="l00065"></a>00065
75 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
76 <a name="l00073"></a>00073 genType <a class="code" href="a00238.html#ga3c625e34fc99b33829c28c6d580df7e2" title="Arc sine.">asin</a>(genType <span class="keyword">const</span> &amp; x);
77 <a name="l00074"></a>00074
78 <a name="l00081"></a>00081 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
79 <a name="l00082"></a>00082 genType <a class="code" href="a00238.html#ga52a4b4cbe6d47f94d06ee1efd95786e6" title="Arc cosine.">acos</a>(genType <span class="keyword">const</span> &amp; x);
80 <a name="l00083"></a>00083
81 <a name="l00092"></a>00092 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
82 <a name="l00093"></a>00093 genType <a class="code" href="a00238.html#ga32dbceedb2910e519860a225ae7f7450" title="Arc tangent.">atan</a>(genType <span class="keyword">const</span> &amp; y, genType <span class="keyword">const</span> &amp; x);
83 <a name="l00094"></a>00094
84 <a name="l00100"></a>00100 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
85 <a name="l00101"></a>00101 genType <a class="code" href="a00238.html#ga32dbceedb2910e519860a225ae7f7450" title="Arc tangent.">atan</a>(genType <span class="keyword">const</span> &amp; y_over_x);
86 <a name="l00102"></a>00102
87 <a name="l00107"></a>00107 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
88 <a name="l00108"></a>00108 genType <a class="code" href="a00238.html#ga13a63bc67a160b1614ba3681f57fe480" title="Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2.">sinh</a>(genType <span class="keyword">const</span> &amp; angle);
89 <a name="l00109"></a>00109
90 <a name="l00114"></a>00114 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
91 <a name="l00115"></a>00115 genType <a class="code" href="a00238.html#ga2cfdbcd7a269a114cbb4f19dcf1e3f8b" title="Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2.">cosh</a>(genType <span class="keyword">const</span> &amp; angle);
92 <a name="l00116"></a>00116
93 <a name="l00121"></a>00121 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
94 <a name="l00122"></a>00122 genType <a class="code" href="a00238.html#gad93de1d635832bf722eb78a088bfbaa6" title="Returns the hyperbolic tangent function, sinh(angle) / cosh(angle)">tanh</a>(genType <span class="keyword">const</span> &amp; angle);
95 <a name="l00123"></a>00123
96 <a name="l00128"></a>00128 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
97 <a name="l00129"></a>00129 genType <a class="code" href="a00238.html#ga7ba20fc7c7b3eeef601e73b130e63db5" title="Arc hyperbolic sine; returns the inverse of sinh.">asinh</a>(genType <span class="keyword">const</span> &amp; x);
98 <a name="l00130"></a>00130
99 <a name="l00136"></a>00136 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
100 <a name="l00137"></a>00137 genType <a class="code" href="a00238.html#ga7c8d8ac539a43da0d41e656a38262ff0" title="Arc hyperbolic cosine; returns the non-negative inverse of cosh.">acosh</a>(genType <span class="keyword">const</span> &amp; x);
101 <a name="l00138"></a>00138
102 <a name="l00144"></a>00144 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
103 <a name="l00145"></a>00145 genType <a class="code" href="a00238.html#ga4d896caf7b1a8e5b5e3b29394e8c0ecd" title="Arc hyperbolic tangent; returns the inverse of tanh.">atanh</a>(genType <span class="keyword">const</span> &amp; x);
104 <a name="l00146"></a>00146
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>core{
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>function{
53 <a name="l00020"></a><a class="code" href="a00154.html">00020</a> <span class="keyword">namespace </span>trigonometric{
54 <a name="l00021"></a>00021
55 <a name="l00024"></a>00024
56 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
57 <a name="l00030"></a>00030 genType <a class="code" href="a00237.html#ga40251a4a07049e7fdcbf155c3cc6d32a" title="Converts degrees to radians and returns the result.">radians</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00237.html#ga2dc092f93e998e01c1cfdaef817ca926" title="Converts radians to degrees and returns the result.">degrees</a>);
58 <a name="l00031"></a>00031
59 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
60 <a name="l00037"></a>00037 genType <a class="code" href="a00237.html#ga2dc092f93e998e01c1cfdaef817ca926" title="Converts radians to degrees and returns the result.">degrees</a>(genType <span class="keyword">const</span> &amp; radians);
61 <a name="l00038"></a>00038
62 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
63 <a name="l00045"></a>00045 genType <a class="code" href="a00237.html#gad246389321f46f7cb1cc422f9fd64cf4" title="The standard trigonometric sine function.">sin</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00285.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>);
64 <a name="l00046"></a>00046
65 <a name="l00052"></a>00052 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
66 <a name="l00053"></a>00053 genType <a class="code" href="a00237.html#ga4fbc8481a95bcc1c0c6931a34449b9a8" title="The standard trigonometric cosine function.">cos</a>(genType <span class="keyword">const</span> &amp; angle);
67 <a name="l00054"></a>00054
68 <a name="l00059"></a>00059 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
69 <a name="l00060"></a>00060 genType <a class="code" href="a00237.html#ga1a556079a4fee8b5e12fcfe7551f6931" title="The standard trigonometric tangent function.">tan</a>(genType <span class="keyword">const</span> &amp; angle);
70 <a name="l00061"></a>00061
71 <a name="l00068"></a>00068 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
72 <a name="l00069"></a>00069 genType <a class="code" href="a00237.html#ga3c625e34fc99b33829c28c6d580df7e2" title="Arc sine.">asin</a>(genType <span class="keyword">const</span> &amp; x);
73 <a name="l00070"></a>00070
74 <a name="l00077"></a>00077 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
75 <a name="l00078"></a>00078 genType <a class="code" href="a00237.html#ga52a4b4cbe6d47f94d06ee1efd95786e6" title="Arc cosine.">acos</a>(genType <span class="keyword">const</span> &amp; x);
76 <a name="l00079"></a>00079
77 <a name="l00088"></a>00088 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
78 <a name="l00089"></a>00089 genType <a class="code" href="a00237.html#ga32dbceedb2910e519860a225ae7f7450" title="Arc tangent.">atan</a>(genType <span class="keyword">const</span> &amp; y, genType <span class="keyword">const</span> &amp; x);
79 <a name="l00090"></a>00090
80 <a name="l00096"></a>00096 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
81 <a name="l00097"></a>00097 genType <a class="code" href="a00237.html#ga32dbceedb2910e519860a225ae7f7450" title="Arc tangent.">atan</a>(genType <span class="keyword">const</span> &amp; y_over_x);
82 <a name="l00098"></a>00098
83 <a name="l00103"></a>00103 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
84 <a name="l00104"></a>00104 genType <a class="code" href="a00237.html#ga13a63bc67a160b1614ba3681f57fe480" title="Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2.">sinh</a>(genType <span class="keyword">const</span> &amp; angle);
85 <a name="l00105"></a>00105
86 <a name="l00110"></a>00110 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
87 <a name="l00111"></a>00111 genType <a class="code" href="a00237.html#ga2cfdbcd7a269a114cbb4f19dcf1e3f8b" title="Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2.">cosh</a>(genType <span class="keyword">const</span> &amp; angle);
88 <a name="l00112"></a>00112
89 <a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
90 <a name="l00118"></a>00118 genType <a class="code" href="a00237.html#gad93de1d635832bf722eb78a088bfbaa6" title="Returns the hyperbolic tangent function, sinh(angle) / cosh(angle)">tanh</a>(genType <span class="keyword">const</span> &amp; angle);
91 <a name="l00119"></a>00119
92 <a name="l00124"></a>00124 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
93 <a name="l00125"></a>00125 genType <a class="code" href="a00237.html#ga7ba20fc7c7b3eeef601e73b130e63db5" title="Arc hyperbolic sine; returns the inverse of sinh.">asinh</a>(genType <span class="keyword">const</span> &amp; x);
94 <a name="l00126"></a>00126
95 <a name="l00132"></a>00132 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
96 <a name="l00133"></a>00133 genType <a class="code" href="a00237.html#ga7c8d8ac539a43da0d41e656a38262ff0" title="Arc hyperbolic cosine; returns the non-negative inverse of cosh.">acosh</a>(genType <span class="keyword">const</span> &amp; x);
97 <a name="l00134"></a>00134
98 <a name="l00140"></a>00140 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
99 <a name="l00141"></a>00141 genType <a class="code" href="a00237.html#ga4d896caf7b1a8e5b5e3b29394e8c0ecd" title="Arc hyperbolic tangent; returns the inverse of tanh.">atanh</a>(genType <span class="keyword">const</span> &amp; x);
100 <a name="l00142"></a>00142
101 <a name="l00144"></a>00144
102 <a name="l00145"></a>00145 }<span class="comment">//namespace trigonometric</span>
103 <a name="l00146"></a>00146 }<span class="comment">//namespace function</span>
104 <a name="l00147"></a>00147 }<span class="comment">//namespace core</span>
105105 <a name="l00148"></a>00148
106 <a name="l00149"></a>00149 }<span class="comment">//namespace trigonometric</span>
107 <a name="l00150"></a>00150 }<span class="comment">//namespace function</span>
108 <a name="l00151"></a>00151 }<span class="comment">//namespace core</span>
109 <a name="l00152"></a>00152
110 <a name="l00153"></a>00153 <span class="keyword">using namespace </span>core::function::trigonometric;
111 <a name="l00154"></a>00154 }<span class="comment">//namespace glm</span>
112 <a name="l00155"></a>00155
113 <a name="l00156"></a>00156 <span class="preprocessor">#include &quot;func_trigonometric.inl&quot;</span>
114 <a name="l00157"></a>00157
115 <a name="l00158"></a>00158 <span class="preprocessor">#endif//glm_core_func_trigonometric</span>
116 <a name="l00159"></a>00159 <span class="preprocessor"></span>
117 <a name="l00160"></a>00160
106 <a name="l00149"></a>00149 <span class="keyword">using namespace </span>core::function::trigonometric;
107 <a name="l00150"></a>00150 }<span class="comment">//namespace glm</span>
108 <a name="l00151"></a>00151
109 <a name="l00152"></a>00152 <span class="preprocessor">#include &quot;func_trigonometric.inl&quot;</span>
110 <a name="l00153"></a>00153
111 <a name="l00154"></a>00154 <span class="preprocessor">#endif//glm_core_func_trigonometric</span>
112 <a name="l00155"></a>00155 <span class="preprocessor"></span>
113 <a name="l00156"></a>00156
118114 </pre></div></div>
119115 </div>
120116 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5050 <a name="l00014"></a>00014
5151 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm
5252 <a name="l00016"></a>00016 {
53 <a name="l00017"></a>00017 <span class="keyword">namespace </span>test{
54 <a name="l00018"></a>00018 <span class="keywordtype">void</span> main_core_func_vector_relational();
55 <a name="l00019"></a>00019 }<span class="comment">//namespace test</span>
56 <a name="l00020"></a>00020
57 <a name="l00021"></a>00021 <span class="keyword">namespace </span>core{
58 <a name="l00022"></a>00022 <span class="keyword">namespace </span>function{
59 <a name="l00025"></a>00025 <span class="keyword">namespace </span>vector_relational
60 <a name="l00026"></a><a class="code" href="a00154.html">00026</a> {
61 <a name="l00029"></a>00029
62 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
63 <a name="l00035"></a>00035 GLM_FUNC_QUALIFIER <span class="keyword">typename</span> vecType&lt;T&gt;::bool_type <a class="code" href="a00238.html#ga54e5b894f79b9c1b8f6d28fe6f986e80" title="Returns the component-wise comparison result of x &amp;lt; y.">lessThan</a>
64 <a name="l00036"></a>00036 (
65 <a name="l00037"></a><a class="code" href="a00238.html#ga54e5b894f79b9c1b8f6d28fe6f986e80">00037</a> vecType&lt;T&gt; <span class="keyword">const</span> &amp; x,
66 <a name="l00038"></a>00038 vecType&lt;T&gt; <span class="keyword">const</span> &amp; y
67 <a name="l00039"></a>00039 )
68 <a name="l00040"></a>00040 {
69 <a name="l00041"></a>00041 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;T&gt; &gt;::_YES,
70 <a name="l00042"></a>00042 <span class="stringliteral">&quot;Invalid template instantiation of &#39;lessThan&#39;, GLM vector types required&quot;</span>);
71 <a name="l00043"></a>00043 GLM_STATIC_ASSERT(detail::is_bool&lt;T&gt;::_NO,
72 <a name="l00044"></a>00044 <span class="stringliteral">&quot;Invalid template instantiation of &#39;lessThan&#39;, GLM vector types required floating-point or integer value types vectors&quot;</span>);
53 <a name="l00017"></a>00017 <span class="keyword">namespace </span>core{
54 <a name="l00018"></a>00018 <span class="keyword">namespace </span>function{
55 <a name="l00021"></a>00021 <span class="keyword">namespace </span>vector_relational
56 <a name="l00022"></a>00022 {
57 <a name="l00025"></a>00025
58 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
59 <a name="l00031"></a>00031 GLM_FUNC_QUALIFIER <span class="keyword">typename</span> vecType&lt;T&gt;::bool_type lessThan
60 <a name="l00032"></a>00032 (
61 <a name="l00033"></a>00033 vecType&lt;T&gt; <span class="keyword">const</span> &amp; x,
62 <a name="l00034"></a>00034 vecType&lt;T&gt; <span class="keyword">const</span> &amp; y
63 <a name="l00035"></a>00035 )
64 <a name="l00036"></a>00036 {
65 <a name="l00037"></a>00037 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;T&gt; &gt;::_YES,
66 <a name="l00038"></a>00038 <span class="stringliteral">&quot;Invalid template instantiation of &#39;lessThan&#39;, GLM vector types required&quot;</span>);
67 <a name="l00039"></a>00039 GLM_STATIC_ASSERT(detail::is_bool&lt;T&gt;::_NO,
68 <a name="l00040"></a>00040 <span class="stringliteral">&quot;Invalid template instantiation of &#39;lessThan&#39;, GLM vector types required floating-point or integer value types vectors&quot;</span>);
69 <a name="l00041"></a>00041
70 <a name="l00042"></a>00042 <span class="keyword">typename</span> vecType&lt;bool&gt;::bool_type Result(vecType&lt;bool&gt;::null);
71 <a name="l00043"></a>00043 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
72 <a name="l00044"></a>00044 Result[i] = x[i] &lt; y[i];
7373 <a name="l00045"></a>00045
74 <a name="l00046"></a>00046 <span class="keyword">typename</span> vecType&lt;bool&gt;::bool_type Result(vecType&lt;bool&gt;::null);
75 <a name="l00047"></a>00047 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
76 <a name="l00048"></a>00048 Result[i] = x[i] &lt; y[i];
77 <a name="l00049"></a>00049
78 <a name="l00050"></a>00050 <span class="keywordflow">return</span> Result;
79 <a name="l00051"></a>00051 }
80 <a name="l00052"></a>00052
81 <a name="l00057"></a>00057 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
82 <a name="l00058"></a>00058 GLM_FUNC_QUALIFIER <span class="keyword">typename</span> vecType&lt;T&gt;::bool_type <a class="code" href="a00238.html#ga190db45f1b40202ee0716751448b119d" title="Returns the component-wise comparison of result x &amp;lt;= y.">lessThanEqual</a>
83 <a name="l00059"></a>00059 (
84 <a name="l00060"></a><a class="code" href="a00238.html#ga190db45f1b40202ee0716751448b119d">00060</a> vecType&lt;T&gt; <span class="keyword">const</span> &amp; x,
85 <a name="l00061"></a>00061 vecType&lt;T&gt; <span class="keyword">const</span> &amp; y
86 <a name="l00062"></a>00062 )
87 <a name="l00063"></a>00063 {
88 <a name="l00064"></a>00064 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;T&gt; &gt;::_YES,
89 <a name="l00065"></a>00065 <span class="stringliteral">&quot;Invalid template instantiation of &#39;lessThanEqual&#39;, GLM vector types required&quot;</span>);
90 <a name="l00066"></a>00066 GLM_STATIC_ASSERT(detail::is_bool&lt;T&gt;::_NO,
91 <a name="l00067"></a>00067 <span class="stringliteral">&quot;Invalid template instantiation of &#39;lessThanEqual&#39;, GLM vector types required floating-point or integer value types vectors&quot;</span>);
92 <a name="l00068"></a>00068
93 <a name="l00069"></a>00069 <span class="keyword">typename</span> vecType&lt;bool&gt;::bool_type Result(vecType&lt;bool&gt;::null);
94 <a name="l00070"></a>00070 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
95 <a name="l00071"></a>00071 Result[i] = x[i] &lt;= y[i];
96 <a name="l00072"></a>00072 <span class="keywordflow">return</span> Result;
97 <a name="l00073"></a>00073 }
98 <a name="l00074"></a>00074
99 <a name="l00079"></a>00079 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
100 <a name="l00080"></a>00080 GLM_FUNC_QUALIFIER <span class="keyword">typename</span> vecType&lt;T&gt;::bool_type <a class="code" href="a00238.html#gaef35061292f337c0d788f43a3b1a26c0" title="Returns the component-wise comparison of result x &amp;gt; y.">greaterThan</a>
101 <a name="l00081"></a>00081 (
102 <a name="l00082"></a><a class="code" href="a00238.html#gaef35061292f337c0d788f43a3b1a26c0">00082</a> vecType&lt;T&gt; <span class="keyword">const</span> &amp; x,
103 <a name="l00083"></a>00083 vecType&lt;T&gt; <span class="keyword">const</span> &amp; y
104 <a name="l00084"></a>00084 )
105 <a name="l00085"></a>00085 {
106 <a name="l00086"></a>00086 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;T&gt; &gt;::_YES,
107 <a name="l00087"></a>00087 <span class="stringliteral">&quot;Invalid template instantiation of &#39;greaterThan&#39;, GLM vector types required&quot;</span>);
108 <a name="l00088"></a>00088 GLM_STATIC_ASSERT(detail::is_bool&lt;T&gt;::_NO,
109 <a name="l00089"></a>00089 <span class="stringliteral">&quot;Invalid template instantiation of &#39;greaterThan&#39;, GLM vector types required floating-point or integer value types vectors&quot;</span>);
110 <a name="l00090"></a>00090
111 <a name="l00091"></a>00091 <span class="keyword">typename</span> vecType&lt;bool&gt;::bool_type Result(vecType&lt;bool&gt;::null);
112 <a name="l00092"></a>00092 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
113 <a name="l00093"></a>00093 Result[i] = x[i] &gt; y[i];
114 <a name="l00094"></a>00094 <span class="keywordflow">return</span> Result;
115 <a name="l00095"></a>00095 }
116 <a name="l00096"></a>00096
117 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
118 <a name="l00102"></a>00102 GLM_FUNC_QUALIFIER <span class="keyword">typename</span> vecType&lt;T&gt;::bool_type <a class="code" href="a00238.html#ga39aa8024d619850c81a685a4905177df" title="Returns the component-wise comparison of result x &amp;gt;= y.">greaterThanEqual</a>
119 <a name="l00103"></a>00103 (
120 <a name="l00104"></a><a class="code" href="a00238.html#ga39aa8024d619850c81a685a4905177df">00104</a> vecType&lt;T&gt; <span class="keyword">const</span> &amp; x,
121 <a name="l00105"></a>00105 vecType&lt;T&gt; <span class="keyword">const</span> &amp; y
122 <a name="l00106"></a>00106 )
123 <a name="l00107"></a>00107 {
124 <a name="l00108"></a>00108 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;T&gt; &gt;::_YES,
125 <a name="l00109"></a>00109 <span class="stringliteral">&quot;Invalid template instantiation of &#39;greaterThanEqual&#39;, GLM vector types required&quot;</span>);
126 <a name="l00110"></a>00110 GLM_STATIC_ASSERT(detail::is_bool&lt;T&gt;::_NO,
127 <a name="l00111"></a>00111 <span class="stringliteral">&quot;Invalid template instantiation of &#39;greaterThanEqual&#39;, GLM vector types required floating-point or integer value types vectors&quot;</span>);
128 <a name="l00112"></a>00112
129 <a name="l00113"></a>00113 <span class="keyword">typename</span> vecType&lt;bool&gt;::bool_type Result(vecType&lt;bool&gt;::null);
130 <a name="l00114"></a>00114 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
131 <a name="l00115"></a>00115 Result[i] = x[i] &gt;= y[i];
132 <a name="l00116"></a>00116 <span class="keywordflow">return</span> Result;
133 <a name="l00117"></a>00117 }
134 <a name="l00118"></a>00118
135 <a name="l00123"></a>00123 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
136 <a name="l00124"></a>00124 GLM_FUNC_QUALIFIER <span class="keyword">typename</span> vecType&lt;T&gt;::bool_type <a class="code" href="a00238.html#ga811015178de53f628610f2036946fbb9" title="Returns the component-wise comparison of result x == y.">equal</a>
137 <a name="l00125"></a>00125 (
138 <a name="l00126"></a><a class="code" href="a00238.html#ga811015178de53f628610f2036946fbb9">00126</a> vecType&lt;T&gt; <span class="keyword">const</span> &amp; x,
139 <a name="l00127"></a>00127 vecType&lt;T&gt; <span class="keyword">const</span> &amp; y
140 <a name="l00128"></a>00128 )
141 <a name="l00129"></a>00129 {
142 <a name="l00130"></a>00130 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;T&gt; &gt;::_YES,
143 <a name="l00131"></a>00131 <span class="stringliteral">&quot;Invalid template instantiation of &#39;equal&#39;, GLM vector types required&quot;</span>);
144 <a name="l00132"></a>00132
145 <a name="l00133"></a>00133 <span class="keyword">typename</span> vecType&lt;bool&gt;::bool_type Result(vecType&lt;bool&gt;::null);
146 <a name="l00134"></a>00134 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
147 <a name="l00135"></a>00135 Result[i] = x[i] == y[i];
148 <a name="l00136"></a>00136 <span class="keywordflow">return</span> Result;
149 <a name="l00137"></a>00137 }
150 <a name="l00138"></a>00138
151 <a name="l00143"></a>00143 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
152 <a name="l00144"></a>00144 GLM_FUNC_QUALIFIER <span class="keyword">typename</span> vecType&lt;T&gt;::bool_type <a class="code" href="a00238.html#ga62979ef5be1ad914f866074b900abdcd" title="Returns the component-wise comparison of result x != y.">notEqual</a>
153 <a name="l00145"></a>00145 (
154 <a name="l00146"></a><a class="code" href="a00238.html#ga62979ef5be1ad914f866074b900abdcd">00146</a> vecType&lt;T&gt; <span class="keyword">const</span> &amp; x,
155 <a name="l00147"></a>00147 vecType&lt;T&gt; <span class="keyword">const</span> &amp; y
156 <a name="l00148"></a>00148 )
157 <a name="l00149"></a>00149 {
158 <a name="l00150"></a>00150 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;T&gt; &gt;::_YES,
159 <a name="l00151"></a>00151 <span class="stringliteral">&quot;Invalid template instantiation of &#39;notEqual&#39;, GLM vector types required&quot;</span>);
160 <a name="l00152"></a>00152
161 <a name="l00153"></a>00153 <span class="keyword">typename</span> vecType&lt;bool&gt;::bool_type Result(vecType&lt;bool&gt;::null);
162 <a name="l00154"></a>00154 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
163 <a name="l00155"></a>00155 Result[i] = x[i] != y[i];
164 <a name="l00156"></a>00156 <span class="keywordflow">return</span> Result;
165 <a name="l00157"></a>00157 }
166 <a name="l00158"></a>00158
167 <a name="l00163"></a>00163 <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
168 <a name="l00164"></a>00164 GLM_FUNC_QUALIFIER <span class="keywordtype">bool</span> <a class="code" href="a00238.html#gaa478a7966a4e6550bf0ee58ea8271074" title="Returns true if any component of x is true.">any</a>(vecType&lt;bool&gt; <span class="keyword">const</span> &amp; v)
169 <a name="l00165"></a><a class="code" href="a00238.html#gaa478a7966a4e6550bf0ee58ea8271074">00165</a> {
170 <a name="l00166"></a>00166 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;bool&gt; &gt;::_YES,
171 <a name="l00167"></a>00167 <span class="stringliteral">&quot;Invalid template instantiation of &#39;any&#39;, GLM boolean vector types required&quot;</span>);
172 <a name="l00168"></a>00168
173 <a name="l00169"></a>00169 <span class="keywordtype">bool</span> Result = <span class="keyword">false</span>;
174 <a name="l00170"></a>00170 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
175 <a name="l00171"></a>00171 Result = Result || v[i];
176 <a name="l00172"></a>00172 <span class="keywordflow">return</span> Result;
177 <a name="l00173"></a>00173 }
178 <a name="l00174"></a>00174
179 <a name="l00179"></a>00179 <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
180 <a name="l00180"></a>00180 GLM_FUNC_QUALIFIER <span class="keywordtype">bool</span> <a class="code" href="a00238.html#ga07b92e9e7077f06fe26e417f320b0f0c" title="Returns true if all components of x are true.">all</a>(vecType&lt;bool&gt; <span class="keyword">const</span> &amp; v)
181 <a name="l00181"></a><a class="code" href="a00238.html#ga07b92e9e7077f06fe26e417f320b0f0c">00181</a> {
182 <a name="l00182"></a>00182 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;bool&gt; &gt;::_YES,
183 <a name="l00183"></a>00183 <span class="stringliteral">&quot;Invalid template instantiation of &#39;all&#39;, GLM boolean vector types required&quot;</span>);
184 <a name="l00184"></a>00184
185 <a name="l00185"></a>00185 <span class="keywordtype">bool</span> Result = <span class="keyword">true</span>;
186 <a name="l00186"></a>00186 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
187 <a name="l00187"></a>00187 Result = Result &amp;&amp; v[i];
188 <a name="l00188"></a>00188 <span class="keywordflow">return</span> Result;
189 <a name="l00189"></a>00189 }
190 <a name="l00190"></a>00190
191 <a name="l00196"></a>00196 <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
192 <a name="l00197"></a>00197 GLM_FUNC_QUALIFIER vecType&lt;bool&gt; <a class="code" href="a00238.html#gadb3248006580ee79ebb1d358bce25ca0" title="Returns the component-wise logical complement of x.">not_</a>(vecType&lt;bool&gt; <span class="keyword">const</span> &amp; v)
193 <a name="l00198"></a><a class="code" href="a00238.html#gadb3248006580ee79ebb1d358bce25ca0">00198</a> {
194 <a name="l00199"></a>00199 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;bool&gt; &gt;::_YES,
195 <a name="l00200"></a>00200 <span class="stringliteral">&quot;Invalid template instantiation of &#39;not_&#39;, GLM vector types required&quot;</span>);
196 <a name="l00201"></a>00201
197 <a name="l00202"></a>00202 <span class="keyword">typename</span> vecType&lt;bool&gt;::bool_type Result(vecType&lt;bool&gt;::null);
198 <a name="l00203"></a>00203 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
199 <a name="l00204"></a>00204 Result[i] = !v[i];
200 <a name="l00205"></a>00205 <span class="keywordflow">return</span> Result;
201 <a name="l00206"></a>00206 }
202 <a name="l00207"></a>00207
74 <a name="l00046"></a>00046 <span class="keywordflow">return</span> Result;
75 <a name="l00047"></a>00047 }
76 <a name="l00048"></a>00048
77 <a name="l00053"></a>00053 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
78 <a name="l00054"></a>00054 GLM_FUNC_QUALIFIER <span class="keyword">typename</span> vecType&lt;T&gt;::bool_type lessThanEqual
79 <a name="l00055"></a>00055 (
80 <a name="l00056"></a>00056 vecType&lt;T&gt; <span class="keyword">const</span> &amp; x,
81 <a name="l00057"></a>00057 vecType&lt;T&gt; <span class="keyword">const</span> &amp; y
82 <a name="l00058"></a>00058 )
83 <a name="l00059"></a>00059 {
84 <a name="l00060"></a>00060 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;T&gt; &gt;::_YES,
85 <a name="l00061"></a>00061 <span class="stringliteral">&quot;Invalid template instantiation of &#39;lessThanEqual&#39;, GLM vector types required&quot;</span>);
86 <a name="l00062"></a>00062 GLM_STATIC_ASSERT(detail::is_bool&lt;T&gt;::_NO,
87 <a name="l00063"></a>00063 <span class="stringliteral">&quot;Invalid template instantiation of &#39;lessThanEqual&#39;, GLM vector types required floating-point or integer value types vectors&quot;</span>);
88 <a name="l00064"></a>00064
89 <a name="l00065"></a>00065 <span class="keyword">typename</span> vecType&lt;bool&gt;::bool_type Result(vecType&lt;bool&gt;::null);
90 <a name="l00066"></a>00066 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
91 <a name="l00067"></a>00067 Result[i] = x[i] &lt;= y[i];
92 <a name="l00068"></a>00068 <span class="keywordflow">return</span> Result;
93 <a name="l00069"></a>00069 }
94 <a name="l00070"></a>00070
95 <a name="l00075"></a>00075 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
96 <a name="l00076"></a>00076 GLM_FUNC_QUALIFIER <span class="keyword">typename</span> vecType&lt;T&gt;::bool_type <a class="code" href="a00145.html#acb6f64ca9f1649d4bc4dfa301f59020d" title="Returns the component-wise comparison of result x &amp;gt; y.">greaterThan</a>
97 <a name="l00077"></a>00077 (
98 <a name="l00078"></a><a class="code" href="a00145.html#acb6f64ca9f1649d4bc4dfa301f59020d">00078</a> vecType&lt;T&gt; <span class="keyword">const</span> &amp; x,
99 <a name="l00079"></a>00079 vecType&lt;T&gt; <span class="keyword">const</span> &amp; y
100 <a name="l00080"></a>00080 )
101 <a name="l00081"></a>00081 {
102 <a name="l00082"></a>00082 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;T&gt; &gt;::_YES,
103 <a name="l00083"></a>00083 <span class="stringliteral">&quot;Invalid template instantiation of &#39;greaterThan&#39;, GLM vector types required&quot;</span>);
104 <a name="l00084"></a>00084 GLM_STATIC_ASSERT(detail::is_bool&lt;T&gt;::_NO,
105 <a name="l00085"></a>00085 <span class="stringliteral">&quot;Invalid template instantiation of &#39;greaterThan&#39;, GLM vector types required floating-point or integer value types vectors&quot;</span>);
106 <a name="l00086"></a>00086
107 <a name="l00087"></a>00087 <span class="keyword">typename</span> vecType&lt;bool&gt;::bool_type Result(vecType&lt;bool&gt;::null);
108 <a name="l00088"></a>00088 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
109 <a name="l00089"></a>00089 Result[i] = x[i] &gt; y[i];
110 <a name="l00090"></a>00090 <span class="keywordflow">return</span> Result;
111 <a name="l00091"></a>00091 }
112 <a name="l00092"></a>00092
113 <a name="l00097"></a>00097 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
114 <a name="l00098"></a>00098 GLM_FUNC_QUALIFIER <span class="keyword">typename</span> vecType&lt;T&gt;::bool_type <a class="code" href="a00145.html#a5075e99290081e0bb74ff6c18035735f" title="Returns the component-wise comparison of result x &amp;gt;= y.">greaterThanEqual</a>
115 <a name="l00099"></a>00099 (
116 <a name="l00100"></a><a class="code" href="a00145.html#a5075e99290081e0bb74ff6c18035735f">00100</a> vecType&lt;T&gt; <span class="keyword">const</span> &amp; x,
117 <a name="l00101"></a>00101 vecType&lt;T&gt; <span class="keyword">const</span> &amp; y
118 <a name="l00102"></a>00102 )
119 <a name="l00103"></a>00103 {
120 <a name="l00104"></a>00104 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;T&gt; &gt;::_YES,
121 <a name="l00105"></a>00105 <span class="stringliteral">&quot;Invalid template instantiation of &#39;greaterThanEqual&#39;, GLM vector types required&quot;</span>);
122 <a name="l00106"></a>00106 GLM_STATIC_ASSERT(detail::is_bool&lt;T&gt;::_NO,
123 <a name="l00107"></a>00107 <span class="stringliteral">&quot;Invalid template instantiation of &#39;greaterThanEqual&#39;, GLM vector types required floating-point or integer value types vectors&quot;</span>);
124 <a name="l00108"></a>00108
125 <a name="l00109"></a>00109 <span class="keyword">typename</span> vecType&lt;bool&gt;::bool_type Result(vecType&lt;bool&gt;::null);
126 <a name="l00110"></a>00110 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
127 <a name="l00111"></a>00111 Result[i] = x[i] &gt;= y[i];
128 <a name="l00112"></a>00112 <span class="keywordflow">return</span> Result;
129 <a name="l00113"></a>00113 }
130 <a name="l00114"></a>00114
131 <a name="l00119"></a>00119 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
132 <a name="l00120"></a>00120 GLM_FUNC_QUALIFIER <span class="keyword">typename</span> vecType&lt;T&gt;::bool_type <a class="code" href="a00145.html#ac07ee1974405deae4b81d16064748768" title="Returns the component-wise comparison of result x == y.">equal</a>
133 <a name="l00121"></a>00121 (
134 <a name="l00122"></a><a class="code" href="a00145.html#ac07ee1974405deae4b81d16064748768">00122</a> vecType&lt;T&gt; <span class="keyword">const</span> &amp; x,
135 <a name="l00123"></a>00123 vecType&lt;T&gt; <span class="keyword">const</span> &amp; y
136 <a name="l00124"></a>00124 )
137 <a name="l00125"></a>00125 {
138 <a name="l00126"></a>00126 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;T&gt; &gt;::_YES,
139 <a name="l00127"></a>00127 <span class="stringliteral">&quot;Invalid template instantiation of &#39;equal&#39;, GLM vector types required&quot;</span>);
140 <a name="l00128"></a>00128
141 <a name="l00129"></a>00129 <span class="keyword">typename</span> vecType&lt;bool&gt;::bool_type Result(vecType&lt;bool&gt;::null);
142 <a name="l00130"></a>00130 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
143 <a name="l00131"></a>00131 Result[i] = x[i] == y[i];
144 <a name="l00132"></a>00132 <span class="keywordflow">return</span> Result;
145 <a name="l00133"></a>00133 }
146 <a name="l00134"></a>00134
147 <a name="l00139"></a>00139 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
148 <a name="l00140"></a>00140 GLM_FUNC_QUALIFIER <span class="keyword">typename</span> vecType&lt;T&gt;::bool_type <a class="code" href="a00145.html#afa73db4ea5a8e4548eb7984a7dd6b690" title="Returns the component-wise comparison of result x != y.">notEqual</a>
149 <a name="l00141"></a>00141 (
150 <a name="l00142"></a><a class="code" href="a00145.html#afa73db4ea5a8e4548eb7984a7dd6b690">00142</a> vecType&lt;T&gt; <span class="keyword">const</span> &amp; x,
151 <a name="l00143"></a>00143 vecType&lt;T&gt; <span class="keyword">const</span> &amp; y
152 <a name="l00144"></a>00144 )
153 <a name="l00145"></a>00145 {
154 <a name="l00146"></a>00146 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;T&gt; &gt;::_YES,
155 <a name="l00147"></a>00147 <span class="stringliteral">&quot;Invalid template instantiation of &#39;notEqual&#39;, GLM vector types required&quot;</span>);
156 <a name="l00148"></a>00148
157 <a name="l00149"></a>00149 <span class="keyword">typename</span> vecType&lt;bool&gt;::bool_type Result(vecType&lt;bool&gt;::null);
158 <a name="l00150"></a>00150 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
159 <a name="l00151"></a>00151 Result[i] = x[i] != y[i];
160 <a name="l00152"></a>00152 <span class="keywordflow">return</span> Result;
161 <a name="l00153"></a>00153 }
162 <a name="l00154"></a>00154
163 <a name="l00159"></a>00159 <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
164 <a name="l00160"></a>00160 GLM_FUNC_QUALIFIER <span class="keywordtype">bool</span> <a class="code" href="a00145.html#ad41f4d0d62de8c9a484dfc5dcd1531f0" title="Returns true if any component of x is true.">any</a>(vecType&lt;bool&gt; <span class="keyword">const</span> &amp; v)
165 <a name="l00161"></a><a class="code" href="a00145.html#ad41f4d0d62de8c9a484dfc5dcd1531f0">00161</a> {
166 <a name="l00162"></a>00162 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;bool&gt; &gt;::_YES,
167 <a name="l00163"></a>00163 <span class="stringliteral">&quot;Invalid template instantiation of &#39;any&#39;, GLM boolean vector types required&quot;</span>);
168 <a name="l00164"></a>00164
169 <a name="l00165"></a>00165 <span class="keywordtype">bool</span> Result = <span class="keyword">false</span>;
170 <a name="l00166"></a>00166 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
171 <a name="l00167"></a>00167 Result = Result || v[i];
172 <a name="l00168"></a>00168 <span class="keywordflow">return</span> Result;
173 <a name="l00169"></a>00169 }
174 <a name="l00170"></a>00170
175 <a name="l00175"></a>00175 <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
176 <a name="l00176"></a>00176 GLM_FUNC_QUALIFIER <span class="keywordtype">bool</span> <a class="code" href="a00145.html#aa83bb5852e369786314325d5a72dfe68" title="Returns true if all components of x are true.">all</a>(vecType&lt;bool&gt; <span class="keyword">const</span> &amp; v)
177 <a name="l00177"></a><a class="code" href="a00145.html#aa83bb5852e369786314325d5a72dfe68">00177</a> {
178 <a name="l00178"></a>00178 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;bool&gt; &gt;::_YES,
179 <a name="l00179"></a>00179 <span class="stringliteral">&quot;Invalid template instantiation of &#39;all&#39;, GLM boolean vector types required&quot;</span>);
180 <a name="l00180"></a>00180
181 <a name="l00181"></a>00181 <span class="keywordtype">bool</span> Result = <span class="keyword">true</span>;
182 <a name="l00182"></a>00182 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
183 <a name="l00183"></a>00183 Result = Result &amp;&amp; v[i];
184 <a name="l00184"></a>00184 <span class="keywordflow">return</span> Result;
185 <a name="l00185"></a>00185 }
186 <a name="l00186"></a>00186
187 <a name="l00192"></a>00192 <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
188 <a name="l00193"></a>00193 GLM_FUNC_QUALIFIER vecType&lt;bool&gt; <a class="code" href="a00145.html#ad6e2c2cb8a811dfcf0c29d515d463a66" title="Returns the component-wise logical complement of x.">not_</a>(vecType&lt;bool&gt; <span class="keyword">const</span> &amp; v)
189 <a name="l00194"></a><a class="code" href="a00145.html#ad6e2c2cb8a811dfcf0c29d515d463a66">00194</a> {
190 <a name="l00195"></a>00195 GLM_STATIC_ASSERT(detail::is_vector&lt;vecType&lt;bool&gt; &gt;::_YES,
191 <a name="l00196"></a>00196 <span class="stringliteral">&quot;Invalid template instantiation of &#39;not_&#39;, GLM vector types required&quot;</span>);
192 <a name="l00197"></a>00197
193 <a name="l00198"></a>00198 <span class="keyword">typename</span> vecType&lt;bool&gt;::bool_type Result(vecType&lt;bool&gt;::null);
194 <a name="l00199"></a>00199 <span class="keywordflow">for</span>(<span class="keyword">typename</span> vecType&lt;bool&gt;::size_type i = 0; i &lt; vecType&lt;bool&gt;::value_size(); ++i)
195 <a name="l00200"></a>00200 Result[i] = !v[i];
196 <a name="l00201"></a>00201 <span class="keywordflow">return</span> Result;
197 <a name="l00202"></a>00202 }
198 <a name="l00203"></a>00203
199 <a name="l00205"></a>00205
200 <a name="l00206"></a>00206 }<span class="comment">//namespace vector_relational</span>
201 <a name="l00207"></a>00207 }<span class="comment">//namespace function</span>
202 <a name="l00208"></a>00208 }<span class="comment">//namespace core</span>
203203 <a name="l00209"></a>00209
204 <a name="l00210"></a>00210 }<span class="comment">//namespace vector_relational</span>
205 <a name="l00211"></a>00211 }<span class="comment">//namespace function</span>
206 <a name="l00212"></a>00212 }<span class="comment">//namespace core</span>
207 <a name="l00213"></a>00213
208 <a name="l00214"></a>00214 <span class="keyword">using namespace </span>core::function::vector_relational;
209 <a name="l00215"></a>00215 }<span class="comment">//namespace glm</span>
210 <a name="l00216"></a>00216
211 <a name="l00217"></a>00217 <span class="preprocessor">#include &quot;func_vector_relational.inl&quot;</span>
212 <a name="l00218"></a>00218
213 <a name="l00219"></a>00219 <span class="preprocessor">#endif//glm_core_func_vector_relational</span>
204 <a name="l00210"></a>00210 <span class="keyword">using namespace </span>core::function::vector_relational;
205 <a name="l00211"></a>00211 }<span class="comment">//namespace glm</span>
206 <a name="l00212"></a>00212
207 <a name="l00213"></a>00213 <span class="preprocessor">#include &quot;func_vector_relational.inl&quot;</span>
208 <a name="l00214"></a>00214
209 <a name="l00215"></a>00215 <span class="preprocessor">#endif//glm_core_func_vector_relational</span>
214210 </pre></div></div>
215211 </div>
216212 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6161 <a name="l00025"></a>00025 <span class="preprocessor"></span>
6262 <a name="l00027"></a>00027 <span class="keyword">namespace </span>glm
6363 <a name="l00028"></a>00028 {
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>test
65 <a name="l00030"></a>00030 {
66 <a name="l00031"></a>00031 <span class="keywordtype">bool</span> main_bug();
67 <a name="l00032"></a>00032 <span class="keywordtype">bool</span> main_core();
68 <a name="l00033"></a>00033 }<span class="comment">//namespace test</span>
69 <a name="l00034"></a>00034
70 <a name="l00036"></a>00036 <span class="keyword">namespace </span>core
71 <a name="l00037"></a>00037 {
72 <a name="l00042"></a>00042 <span class="keyword">namespace </span>type{}
73 <a name="l00043"></a>00043
74 <a name="l00046"></a>00046 <span class="keyword">namespace </span>function{}
75 <a name="l00047"></a>00047 }
76 <a name="l00048"></a>00048 <span class="comment">//namespace core</span>
77 <a name="l00049"></a>00049
78 <a name="l00051"></a><a class="code" href="a00158.html">00051</a> <span class="keyword">namespace </span>gtc{}
64 <a name="l00030"></a>00030 <span class="keyword">namespace </span>core
65 <a name="l00031"></a>00031 {
66 <a name="l00036"></a>00036 <span class="keyword">namespace </span>type
67 <a name="l00037"></a>00037 {
68 <a name="l00038"></a>00038 <span class="keyword">namespace </span>precision{}
69 <a name="l00039"></a>00039 }
70 <a name="l00040"></a>00040
71 <a name="l00043"></a>00043 <span class="keyword">namespace </span>function{}
72 <a name="l00044"></a>00044 }<span class="comment">//namespace core</span>
73 <a name="l00045"></a>00045
74 <a name="l00047"></a><a class="code" href="a00158.html">00047</a> <span class="keyword">namespace </span>gtc{}
75 <a name="l00048"></a>00048
76 <a name="l00051"></a><a class="code" href="a00168.html">00051</a> <span class="keyword">namespace </span>gtx{}
7977 <a name="l00052"></a>00052
80 <a name="l00055"></a><a class="code" href="a00168.html">00055</a> <span class="keyword">namespace </span>gtx{}
81 <a name="l00056"></a>00056
82 <a name="l00058"></a><a class="code" href="a00230.html">00058</a> <span class="keyword">namespace </span>img{}
83 <a name="l00059"></a>00059
84 <a name="l00060"></a>00060 } <span class="comment">//namespace glm</span>
85 <a name="l00061"></a>00061
86 <a name="l00062"></a>00062 <span class="preprocessor">#include &quot;./core/_detail.hpp&quot;</span>
87 <a name="l00063"></a>00063 <span class="preprocessor">#include &quot;./core/type.hpp&quot;</span>
88 <a name="l00064"></a>00064
89 <a name="l00065"></a>00065 <span class="preprocessor">#include &quot;./core/func_trigonometric.hpp&quot;</span>
90 <a name="l00066"></a>00066 <span class="preprocessor">#include &quot;./core/func_exponential.hpp&quot;</span>
91 <a name="l00067"></a>00067 <span class="preprocessor">#include &quot;./core/func_common.hpp&quot;</span>
92 <a name="l00068"></a>00068 <span class="preprocessor">#include &quot;./core/func_packing.hpp&quot;</span>
93 <a name="l00069"></a>00069 <span class="preprocessor">#include &quot;./core/func_geometric.hpp&quot;</span>
94 <a name="l00070"></a>00070 <span class="preprocessor">#include &quot;./core/func_matrix.hpp&quot;</span>
95 <a name="l00071"></a>00071 <span class="preprocessor">#include &quot;./core/func_vector_relational.hpp&quot;</span>
96 <a name="l00072"></a>00072 <span class="preprocessor">#include &quot;./core/func_integer.hpp&quot;</span>
97 <a name="l00073"></a>00073 <span class="preprocessor">#include &quot;./core/func_noise.hpp&quot;</span>
98 <a name="l00074"></a>00074 <span class="preprocessor">#include &quot;./core/_swizzle.hpp&quot;</span>
99 <a name="l00075"></a>00075
100 <a name="l00076"></a>00076 <span class="keyword">namespace </span>glm
101 <a name="l00077"></a>00077 {
102 <a name="l00078"></a>00078 <span class="keyword">using namespace </span>core::type;
103 <a name="l00079"></a>00079 <span class="keyword">using namespace </span>core::type::precision;
104 <a name="l00080"></a>00080 <span class="keyword">using namespace </span>core::function;
105 <a name="l00081"></a>00081 } <span class="comment">//namespace glm</span>
78 <a name="l00054"></a><a class="code" href="a00230.html">00054</a> <span class="keyword">namespace </span>virtrev{}
79 <a name="l00055"></a>00055
80 <a name="l00056"></a>00056 <span class="keyword">using namespace </span>core::type;
81 <a name="l00057"></a>00057 <span class="keyword">using namespace </span>core::type::precision;
82 <a name="l00058"></a>00058 <span class="keyword">using namespace </span>core::function;
83 <a name="l00059"></a>00059 }<span class="comment">//namespace glm</span>
84 <a name="l00060"></a>00060
85 <a name="l00061"></a>00061 <span class="preprocessor">#include &quot;./core/_detail.hpp&quot;</span>
86 <a name="l00062"></a>00062 <span class="preprocessor">#include &quot;./core/type.hpp&quot;</span>
87 <a name="l00063"></a>00063
88 <a name="l00064"></a>00064 <span class="preprocessor">#include &quot;./core/func_trigonometric.hpp&quot;</span>
89 <a name="l00065"></a>00065 <span class="preprocessor">#include &quot;./core/func_exponential.hpp&quot;</span>
90 <a name="l00066"></a>00066 <span class="preprocessor">#include &quot;./core/func_common.hpp&quot;</span>
91 <a name="l00067"></a>00067 <span class="preprocessor">#include &quot;./core/func_packing.hpp&quot;</span>
92 <a name="l00068"></a>00068 <span class="preprocessor">#include &quot;./core/func_geometric.hpp&quot;</span>
93 <a name="l00069"></a>00069 <span class="preprocessor">#include &quot;./core/func_matrix.hpp&quot;</span>
94 <a name="l00070"></a>00070 <span class="preprocessor">#include &quot;./core/func_vector_relational.hpp&quot;</span>
95 <a name="l00071"></a>00071 <span class="preprocessor">#include &quot;./core/func_integer.hpp&quot;</span>
96 <a name="l00072"></a>00072 <span class="preprocessor">#include &quot;./core/func_noise.hpp&quot;</span>
97 <a name="l00073"></a>00073 <span class="preprocessor">#include &quot;./core/_swizzle.hpp&quot;</span>
98 <a name="l00074"></a>00074
99 <a name="l00076"></a>00076 <span class="comment">// check type sizes</span>
100 <a name="l00077"></a>00077 <span class="preprocessor">#ifndef GLM_STATIC_ASSERT_NULL</span>
101 <a name="l00078"></a>00078 <span class="preprocessor"></span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00245.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">glm::detail::int8</a>) == 1, <span class="stringliteral">&quot;int8 size isn&#39;t 1 byte on this platform&quot;</span>);
102 <a name="l00079"></a>00079 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00245.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">glm::detail::int16</a>) == 2, <span class="stringliteral">&quot;int16 size isn&#39;t 2 bytes on this platform&quot;</span>);
103 <a name="l00080"></a>00080 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00245.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">glm::detail::int32</a>) == 4, <span class="stringliteral">&quot;int32 size isn&#39;t 4 bytes on this platform&quot;</span>);
104 <a name="l00081"></a>00081 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00245.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">glm::detail::int64</a>) == 8, <span class="stringliteral">&quot;int64 size isn&#39;t 8 bytes on this platform&quot;</span>);
106105 <a name="l00082"></a>00082
107 <a name="l00084"></a>00084 <span class="comment">// check type sizes</span>
108 <a name="l00085"></a>00085 <span class="preprocessor">#ifndef GLM_STATIC_ASSERT_NULL</span>
109 <a name="l00086"></a>00086 <span class="preprocessor"></span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00246.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">glm::detail::int8</a>) == 1, <span class="stringliteral">&quot;int8 size isn&#39;t 1 byte on this platform&quot;</span>);
110 <a name="l00087"></a>00087 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00246.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">glm::detail::int16</a>) == 2, <span class="stringliteral">&quot;int16 size isn&#39;t 2 bytes on this platform&quot;</span>);
111 <a name="l00088"></a>00088 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00246.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">glm::detail::int32</a>) == 4, <span class="stringliteral">&quot;int32 size isn&#39;t 4 bytes on this platform&quot;</span>);
112 <a name="l00089"></a>00089 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00246.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">glm::detail::int64</a>) == 8, <span class="stringliteral">&quot;int64 size isn&#39;t 8 bytes on this platform&quot;</span>);
113 <a name="l00090"></a>00090
114 <a name="l00091"></a>00091 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::detail::uint8</a>) == 1, <span class="stringliteral">&quot;uint8 size isn&#39;t 1 byte on this platform&quot;</span>);
115 <a name="l00092"></a>00092 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::detail::uint16</a>) == 2, <span class="stringliteral">&quot;uint16 size isn&#39;t 2 bytes on this platform&quot;</span>);
116 <a name="l00093"></a>00093 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::detail::uint32</a>) == 4, <span class="stringliteral">&quot;uint32 size isn&#39;t 4 bytes on this platform&quot;</span>);
117 <a name="l00094"></a>00094 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::detail::uint64</a>) == 8, <span class="stringliteral">&quot;uint64 size isn&#39;t 8 bytes on this platform&quot;</span>);
118 <a name="l00095"></a>00095
119 <a name="l00096"></a>00096 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00246.html#ga19287ee46bd37d1459731d7191bc2f66" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::detail::float16</a>) == 2, <span class="stringliteral">&quot;float16 size isn&#39;t 2 bytes on this platform&quot;</span>);
120 <a name="l00097"></a>00097 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00246.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::detail::float32</a>) == 4, <span class="stringliteral">&quot;float32 size isn&#39;t 4 bytes on this platform&quot;</span>);
121 <a name="l00098"></a>00098 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00246.html#gab5596d48586414c91ccb270962dc14d3" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::detail::float64</a>) == 8, <span class="stringliteral">&quot;float64 size isn&#39;t 8 bytes on this platform&quot;</span>);
122 <a name="l00099"></a>00099 <span class="preprocessor">#endif//GLM_STATIC_ASSERT_NULL</span>
123 <a name="l00100"></a>00100 <span class="preprocessor"></span>
124 <a name="l00101"></a>00101 <span class="preprocessor">#endif //glm_glm</span>
106 <a name="l00083"></a>00083 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::detail::uint8</a>) == 1, <span class="stringliteral">&quot;uint8 size isn&#39;t 1 byte on this platform&quot;</span>);
107 <a name="l00084"></a>00084 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::detail::uint16</a>) == 2, <span class="stringliteral">&quot;uint16 size isn&#39;t 2 bytes on this platform&quot;</span>);
108 <a name="l00085"></a>00085 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::detail::uint32</a>) == 4, <span class="stringliteral">&quot;uint32 size isn&#39;t 4 bytes on this platform&quot;</span>);
109 <a name="l00086"></a>00086 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::detail::uint64</a>) == 8, <span class="stringliteral">&quot;uint64 size isn&#39;t 8 bytes on this platform&quot;</span>);
110 <a name="l00087"></a>00087
111 <a name="l00088"></a>00088 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00245.html#ga19287ee46bd37d1459731d7191bc2f66" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::detail::float16</a>) == 2, <span class="stringliteral">&quot;float16 size isn&#39;t 2 bytes on this platform&quot;</span>);
112 <a name="l00089"></a>00089 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00245.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::detail::float32</a>) == 4, <span class="stringliteral">&quot;float32 size isn&#39;t 4 bytes on this platform&quot;</span>);
113 <a name="l00090"></a>00090 GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00245.html#gab5596d48586414c91ccb270962dc14d3" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::detail::float64</a>) == 8, <span class="stringliteral">&quot;float64 size isn&#39;t 8 bytes on this platform&quot;</span>);
114 <a name="l00091"></a>00091 <span class="preprocessor">#endif//GLM_STATIC_ASSERT_NULL</span>
115 <a name="l00092"></a>00092 <span class="preprocessor"></span>
116 <a name="l00093"></a>00093 <span class="preprocessor">#endif//glm_glm</span>
125117 </pre></div></div>
126118 </div>
127119 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_gradient_paint extension included&quot;)</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span>
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm
60 <a name="l00025"></a>00025 {
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>test{
62 <a name="l00027"></a>00027 <span class="keywordtype">void</span> main_gtx_gradient_paint();
63 <a name="l00028"></a>00028 }<span class="comment">//namespace test</span>
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm{
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtx{
61 <a name="l00026"></a><a class="code" href="a00184.html">00026</a> <span class="keyword">namespace </span>gradient_paint
62 <a name="l00027"></a>00027 {
63 <a name="l00028"></a>00028 <span class="keyword">using namespace </span>gtx::optimum_pow;
6464 <a name="l00029"></a>00029
65 <a name="l00030"></a>00030 <span class="keyword">namespace </span>gtx{
66 <a name="l00032"></a><a class="code" href="a00184.html">00032</a> <span class="keyword">namespace </span>gradient_paint
67 <a name="l00033"></a>00033 {
68 <a name="l00034"></a>00034 <span class="keyword">using namespace </span>gtx::optimum_pow;
69 <a name="l00035"></a>00035
70 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
71 <a name="l00037"></a>00037 valType radialGradient(
72 <a name="l00038"></a>00038 <a class="code" href="a00020.html" title="The basic 2D vector type.">glm::detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; Center,
73 <a name="l00039"></a>00039 valType <span class="keyword">const</span> &amp; Radius,
74 <a name="l00040"></a>00040 <a class="code" href="a00020.html" title="The basic 2D vector type.">glm::detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; Focal,
75 <a name="l00041"></a>00041 <a class="code" href="a00020.html" title="The basic 2D vector type.">glm::detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; Position);
76 <a name="l00042"></a>00042
77 <a name="l00043"></a>00043 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
78 <a name="l00044"></a>00044 valType linearGradient(
79 <a name="l00045"></a>00045 <a class="code" href="a00020.html" title="The basic 2D vector type.">glm::detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; Point0,
80 <a name="l00046"></a>00046 <a class="code" href="a00020.html" title="The basic 2D vector type.">glm::detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; Point1,
81 <a name="l00047"></a>00047 <a class="code" href="a00020.html" title="The basic 2D vector type.">glm::detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; Position);
82 <a name="l00048"></a>00048
83 <a name="l00049"></a>00049 }<span class="comment">//namespace gradient_paint</span>
84 <a name="l00050"></a>00050 }<span class="comment">//namespace gtx</span>
85 <a name="l00051"></a>00051 }<span class="comment">//namespace glm</span>
65 <a name="l00032"></a>00032
66 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
67 <a name="l00034"></a>00034 valType radialGradient(
68 <a name="l00035"></a>00035 <a class="code" href="a00020.html" title="The basic 2D vector type.">glm::detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; Center,
69 <a name="l00036"></a>00036 valType <span class="keyword">const</span> &amp; Radius,
70 <a name="l00037"></a>00037 <a class="code" href="a00020.html" title="The basic 2D vector type.">glm::detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; Focal,
71 <a name="l00038"></a>00038 <a class="code" href="a00020.html" title="The basic 2D vector type.">glm::detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; Position);
72 <a name="l00039"></a>00039
73 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
74 <a name="l00041"></a>00041 valType linearGradient(
75 <a name="l00042"></a>00042 <a class="code" href="a00020.html" title="The basic 2D vector type.">glm::detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; Point0,
76 <a name="l00043"></a>00043 <a class="code" href="a00020.html" title="The basic 2D vector type.">glm::detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; Point1,
77 <a name="l00044"></a>00044 <a class="code" href="a00020.html" title="The basic 2D vector type.">glm::detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; Position);
78 <a name="l00045"></a>00045
79 <a name="l00047"></a>00047 }<span class="comment">// namespace gradient_paint</span>
80 <a name="l00048"></a>00048 }<span class="comment">// namespace gtx</span>
81 <a name="l00049"></a>00049 }<span class="comment">// namespace glm</span>
82 <a name="l00050"></a>00050
83 <a name="l00051"></a>00051 <span class="preprocessor">#include &quot;gradient_paint.inl&quot;</span>
8684 <a name="l00052"></a>00052
87 <a name="l00053"></a>00053 <span class="preprocessor">#include &quot;gradient_paint.inl&quot;</span>
85 <a name="l00053"></a>00053 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::gradient_paint;}
8886 <a name="l00054"></a>00054
89 <a name="l00055"></a>00055 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::gradient_paint;}
90 <a name="l00056"></a>00056
91 <a name="l00057"></a>00057 <span class="preprocessor">#endif//glm_gtx_gradient_paint</span>
87 <a name="l00055"></a>00055 <span class="preprocessor">#endif//glm_gtx_gradient_paint</span>
9288 </pre></div></div>
9389 </div>
9490 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5353 <a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_half_float extension included&quot;)</span>
5454 <a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5555 <a name="l00019"></a>00019 <span class="preprocessor"></span>
56 <a name="l00020"></a>00020 <span class="keyword">namespace </span>glm
57 <a name="l00021"></a>00021 {
58 <a name="l00022"></a>00022 <span class="keyword">namespace </span>test{
59 <a name="l00023"></a>00023 <span class="keywordtype">bool</span> main_gtc_half_float();
60 <a name="l00024"></a>00024 }<span class="comment">//namespace </span>
61 <a name="l00025"></a>00025 <span class="keyword">namespace </span>detail
56 <a name="l00020"></a>00020 <span class="keyword">namespace </span>glm{
57 <a name="l00021"></a>00021 <span class="keyword">namespace </span>detail
58 <a name="l00022"></a>00022 {
59 <a name="l00023"></a>00023 <span class="preprocessor">#ifndef _MSC_EXTENSIONS</span>
60 <a name="l00024"></a>00024 <span class="preprocessor"></span> <span class="keyword">template</span> &lt;&gt;
61 <a name="l00025"></a>00025 <span class="keyword">struct </span>tvec2&lt;thalf&gt;
6262 <a name="l00026"></a>00026 {
63 <a name="l00027"></a>00027 <span class="preprocessor">#ifndef _MSC_EXTENSIONS</span>
64 <a name="l00028"></a>00028 <span class="preprocessor"></span> <span class="keyword">template</span> &lt;&gt;
65 <a name="l00029"></a>00029 <span class="keyword">struct </span>tvec2&lt;thalf&gt;
66 <a name="l00030"></a>00030 {
67 <a name="l00031"></a>00031 <span class="keyword">enum</span> ctor{null};
68 <a name="l00032"></a>00032 <span class="keyword">typedef</span> thalf value_type;
69 <a name="l00033"></a>00033 <span class="keyword">typedef</span> std::size_t size_type;
70 <a name="l00034"></a>00034 <span class="keyword">static</span> size_type value_size();
71 <a name="l00035"></a>00035
72 <a name="l00036"></a>00036 <span class="keyword">typedef</span> tvec2&lt;thalf&gt; type;
73 <a name="l00037"></a>00037 <span class="keyword">typedef</span> tvec2&lt;bool&gt; bool_type;
74 <a name="l00038"></a>00038
75 <a name="l00040"></a>00040 <span class="comment">// Data</span>
76 <a name="l00041"></a>00041
77 <a name="l00042"></a>00042 thalf x, y;
78 <a name="l00043"></a>00043
79 <a name="l00045"></a>00045 <span class="comment">// Accesses</span>
80 <a name="l00046"></a>00046
81 <a name="l00047"></a>00047 thalf &amp; operator[](size_type i);
82 <a name="l00048"></a>00048 thalf <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
83 <a name="l00049"></a>00049
84 <a name="l00051"></a>00051 <span class="comment">// Implicit basic constructors</span>
85 <a name="l00052"></a>00052
86 <a name="l00053"></a>00053 tvec2();
87 <a name="l00054"></a>00054 tvec2(tvec2&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
88 <a name="l00055"></a>00055
89 <a name="l00057"></a>00057 <span class="comment">// Explicit basic constructors</span>
90 <a name="l00058"></a>00058
91 <a name="l00059"></a>00059 <span class="keyword">explicit</span> tvec2(ctor);
92 <a name="l00060"></a>00060 <span class="keyword">explicit</span> tvec2(
93 <a name="l00061"></a>00061 thalf <span class="keyword">const</span> &amp; s);
94 <a name="l00062"></a>00062 <span class="keyword">explicit</span> tvec2(
95 <a name="l00063"></a>00063 thalf <span class="keyword">const</span> &amp; s1,
96 <a name="l00064"></a>00064 thalf <span class="keyword">const</span> &amp; s2);
97 <a name="l00065"></a>00065
98 <a name="l00067"></a>00067 <span class="comment">// Swizzle constructors</span>
99 <a name="l00068"></a>00068
100 <a name="l00069"></a>00069 tvec2(tref2&lt;thalf&gt; <span class="keyword">const</span> &amp; r);
101 <a name="l00070"></a>00070
102 <a name="l00072"></a>00072 <span class="comment">// Convertion scalar constructors</span>
103 <a name="l00073"></a>00073
104 <a name="l00075"></a>00075 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
105 <a name="l00076"></a>00076 <span class="keyword">explicit</span> tvec2(U <span class="keyword">const</span> &amp; x);
106 <a name="l00078"></a>00078 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, <span class="keyword">typename</span> V&gt;
107 <a name="l00079"></a>00079 <span class="keyword">explicit</span> tvec2(U <span class="keyword">const</span> &amp; x, V <span class="keyword">const</span> &amp; y);
108 <a name="l00080"></a>00080
109 <a name="l00082"></a>00082 <span class="comment">// Convertion vector constructors</span>
110 <a name="l00083"></a>00083
111 <a name="l00085"></a>00085 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
112 <a name="l00086"></a>00086 <span class="keyword">explicit</span> tvec2(tvec2&lt;U&gt; <span class="keyword">const</span> &amp; v);
113 <a name="l00088"></a>00088 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
114 <a name="l00089"></a>00089 <span class="keyword">explicit</span> tvec2(tvec3&lt;U&gt; <span class="keyword">const</span> &amp; v);
115 <a name="l00091"></a>00091 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
116 <a name="l00092"></a>00092 <span class="keyword">explicit</span> tvec2(tvec4&lt;U&gt; <span class="keyword">const</span> &amp; v);
117 <a name="l00093"></a>00093
118 <a name="l00095"></a>00095 <span class="comment">// Unary arithmetic operators</span>
119 <a name="l00096"></a>00096
120 <a name="l00097"></a>00097 tvec2&lt;thalf&gt;&amp; operator= (tvec2&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
121 <a name="l00098"></a>00098
122 <a name="l00099"></a>00099 tvec2&lt;thalf&gt;&amp; operator+=(thalf <span class="keyword">const</span> &amp; s);
123 <a name="l00100"></a>00100 tvec2&lt;thalf&gt;&amp; operator+=(tvec2&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
124 <a name="l00101"></a>00101 tvec2&lt;thalf&gt;&amp; operator-=(thalf <span class="keyword">const</span> &amp; s);
125 <a name="l00102"></a>00102 tvec2&lt;thalf&gt;&amp; operator-=(tvec2&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
126 <a name="l00103"></a>00103 tvec2&lt;thalf&gt;&amp; operator*=(thalf <span class="keyword">const</span> &amp; s);
127 <a name="l00104"></a>00104 tvec2&lt;thalf&gt;&amp; operator*=(tvec2&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
128 <a name="l00105"></a>00105 tvec2&lt;thalf&gt;&amp; operator/=(thalf <span class="keyword">const</span> &amp; s);
129 <a name="l00106"></a>00106 tvec2&lt;thalf&gt;&amp; operator/=(tvec2&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
130 <a name="l00107"></a>00107 tvec2&lt;thalf&gt;&amp; operator++();
131 <a name="l00108"></a>00108 tvec2&lt;thalf&gt;&amp; operator--();
132 <a name="l00109"></a>00109
133 <a name="l00111"></a>00111 <span class="comment">// Swizzle operators</span>
134 <a name="l00112"></a>00112
135 <a name="l00113"></a>00113 thalf swizzle(comp X) <span class="keyword">const</span>;
136 <a name="l00114"></a>00114 tvec2&lt;thalf&gt; swizzle(comp X, comp Y) <span class="keyword">const</span>;
137 <a name="l00115"></a>00115 tvec3&lt;thalf&gt; swizzle(comp X, comp Y, comp Z) <span class="keyword">const</span>;
138 <a name="l00116"></a>00116 tvec4&lt;thalf&gt; swizzle(comp X, comp Y, comp Z, comp W) <span class="keyword">const</span>;
139 <a name="l00117"></a>00117 tref2&lt;thalf&gt; swizzle(comp X, comp Y);
140 <a name="l00118"></a>00118 };
141 <a name="l00119"></a>00119
142 <a name="l00120"></a>00120 <span class="keyword">template</span> &lt;&gt;
143 <a name="l00121"></a>00121 <span class="keyword">struct </span>tvec3&lt;thalf&gt;
144 <a name="l00122"></a>00122 {
145 <a name="l00123"></a>00123 <span class="keyword">enum</span> ctor{null};
146 <a name="l00124"></a>00124 <span class="keyword">typedef</span> thalf value_type;
147 <a name="l00125"></a>00125 <span class="keyword">typedef</span> std::size_t size_type;
148 <a name="l00126"></a>00126 <span class="keyword">static</span> size_type value_size();
149 <a name="l00127"></a>00127
150 <a name="l00128"></a>00128 <span class="keyword">typedef</span> tvec3&lt;thalf&gt; type;
151 <a name="l00129"></a>00129 <span class="keyword">typedef</span> tvec3&lt;bool&gt; bool_type;
152 <a name="l00130"></a>00130
153 <a name="l00132"></a>00132 <span class="comment">// Data</span>
154 <a name="l00133"></a>00133
155 <a name="l00134"></a>00134 thalf x, y, z;
156 <a name="l00135"></a>00135
157 <a name="l00137"></a>00137 <span class="comment">// Accesses</span>
158 <a name="l00138"></a>00138
159 <a name="l00139"></a>00139 thalf &amp; operator[](size_type i);
160 <a name="l00140"></a>00140 thalf <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
161 <a name="l00141"></a>00141
162 <a name="l00143"></a>00143 <span class="comment">// Implicit basic constructors</span>
163 <a name="l00144"></a>00144
164 <a name="l00145"></a>00145 tvec3();
165 <a name="l00146"></a>00146 tvec3(tvec3&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
166 <a name="l00147"></a>00147
167 <a name="l00149"></a>00149 <span class="comment">// Explicit basic constructors</span>
168 <a name="l00150"></a>00150
169 <a name="l00151"></a>00151 <span class="keyword">explicit</span> tvec3(ctor);
170 <a name="l00152"></a>00152 <span class="keyword">explicit</span> tvec3(
171 <a name="l00153"></a>00153 thalf <span class="keyword">const</span> &amp; s);
172 <a name="l00154"></a>00154 <span class="keyword">explicit</span> tvec3(
173 <a name="l00155"></a>00155 thalf <span class="keyword">const</span> &amp; s1,
174 <a name="l00156"></a>00156 thalf <span class="keyword">const</span> &amp; s2,
175 <a name="l00157"></a>00157 thalf <span class="keyword">const</span> &amp; s3);
176 <a name="l00158"></a>00158
177 <a name="l00160"></a>00160 <span class="comment">// Swizzle constructors</span>
178 <a name="l00161"></a>00161
179 <a name="l00162"></a>00162 tvec3(tref3&lt;thalf&gt; <span class="keyword">const</span> &amp; r);
180 <a name="l00163"></a>00163
181 <a name="l00165"></a>00165 <span class="comment">// Convertion scalar constructors</span>
182 <a name="l00166"></a>00166
183 <a name="l00168"></a>00168 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
184 <a name="l00169"></a>00169 <span class="keyword">explicit</span> tvec3(U <span class="keyword">const</span> &amp; x);
185 <a name="l00171"></a>00171 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, <span class="keyword">typename</span> V, <span class="keyword">typename</span> W&gt;
186 <a name="l00172"></a>00172 <span class="keyword">explicit</span> tvec3(U <span class="keyword">const</span> &amp; x, V <span class="keyword">const</span> &amp; y, W <span class="keyword">const</span> &amp; z);
187 <a name="l00173"></a>00173
188 <a name="l00175"></a>00175 <span class="comment">// Convertion vector constructors</span>
189 <a name="l00176"></a>00176
190 <a name="l00178"></a>00178 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
191 <a name="l00179"></a>00179 <span class="keyword">explicit</span> tvec3(tvec2&lt;A&gt; <span class="keyword">const</span> &amp; v, B <span class="keyword">const</span> &amp; s);
192 <a name="l00181"></a>00181 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
193 <a name="l00182"></a>00182 <span class="keyword">explicit</span> tvec3(A <span class="keyword">const</span> &amp; s, tvec2&lt;B&gt; <span class="keyword">const</span> &amp; v);
194 <a name="l00184"></a>00184 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
195 <a name="l00185"></a>00185 <span class="keyword">explicit</span> tvec3(tvec3&lt;U&gt; <span class="keyword">const</span> &amp; v);
196 <a name="l00187"></a>00187 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
197 <a name="l00188"></a>00188 <span class="keyword">explicit</span> tvec3(tvec4&lt;U&gt; <span class="keyword">const</span> &amp; v);
198 <a name="l00189"></a>00189
199 <a name="l00191"></a>00191 <span class="comment">// Unary arithmetic operators</span>
200 <a name="l00192"></a>00192
201 <a name="l00193"></a>00193 tvec3&lt;thalf&gt;&amp; operator= (tvec3&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
202 <a name="l00194"></a>00194
203 <a name="l00195"></a>00195 tvec3&lt;thalf&gt;&amp; operator+=(thalf <span class="keyword">const</span> &amp; s);
204 <a name="l00196"></a>00196 tvec3&lt;thalf&gt;&amp; operator+=(tvec3&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
205 <a name="l00197"></a>00197 tvec3&lt;thalf&gt;&amp; operator-=(thalf <span class="keyword">const</span> &amp; s);
206 <a name="l00198"></a>00198 tvec3&lt;thalf&gt;&amp; operator-=(tvec3&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
207 <a name="l00199"></a>00199 tvec3&lt;thalf&gt;&amp; operator*=(thalf <span class="keyword">const</span> &amp; s);
208 <a name="l00200"></a>00200 tvec3&lt;thalf&gt;&amp; operator*=(tvec3&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
209 <a name="l00201"></a>00201 tvec3&lt;thalf&gt;&amp; operator/=(thalf <span class="keyword">const</span> &amp; s);
210 <a name="l00202"></a>00202 tvec3&lt;thalf&gt;&amp; operator/=(tvec3&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
211 <a name="l00203"></a>00203 tvec3&lt;thalf&gt;&amp; operator++();
212 <a name="l00204"></a>00204 tvec3&lt;thalf&gt;&amp; operator--();
213 <a name="l00205"></a>00205
214 <a name="l00207"></a>00207 <span class="comment">// Swizzle operators</span>
215 <a name="l00208"></a>00208
216 <a name="l00209"></a>00209 thalf swizzle(comp X) <span class="keyword">const</span>;
217 <a name="l00210"></a>00210 tvec2&lt;thalf&gt; swizzle(comp X, comp Y) <span class="keyword">const</span>;
218 <a name="l00211"></a>00211 tvec3&lt;thalf&gt; swizzle(comp X, comp Y, comp Z) <span class="keyword">const</span>;
219 <a name="l00212"></a>00212 tvec4&lt;thalf&gt; swizzle(comp X, comp Y, comp Z, comp W) <span class="keyword">const</span>;
220 <a name="l00213"></a>00213 tref3&lt;thalf&gt; swizzle(comp X, comp Y, comp Z);
221 <a name="l00214"></a>00214 };
222 <a name="l00215"></a>00215
223 <a name="l00216"></a>00216 <span class="keyword">template</span> &lt;&gt;
224 <a name="l00217"></a>00217 <span class="keyword">struct </span>tvec4&lt;thalf&gt;
225 <a name="l00218"></a>00218 {
226 <a name="l00219"></a>00219 <span class="keyword">enum</span> ctor{null};
227 <a name="l00220"></a>00220 <span class="keyword">typedef</span> thalf value_type;
228 <a name="l00221"></a>00221 <span class="keyword">typedef</span> std::size_t size_type;
229 <a name="l00222"></a>00222 <span class="keyword">static</span> size_type value_size();
230 <a name="l00223"></a>00223
231 <a name="l00224"></a>00224 <span class="keyword">typedef</span> tvec4&lt;thalf&gt; type;
232 <a name="l00225"></a>00225 <span class="keyword">typedef</span> tvec4&lt;bool&gt; bool_type;
233 <a name="l00226"></a>00226
234 <a name="l00228"></a>00228 <span class="comment">// Data</span>
235 <a name="l00229"></a>00229
236 <a name="l00230"></a>00230 thalf x, y, z, w;
237 <a name="l00231"></a>00231
238 <a name="l00233"></a>00233 <span class="comment">// Accesses</span>
239 <a name="l00234"></a>00234
240 <a name="l00235"></a>00235 thalf &amp; operator[](size_type i);
241 <a name="l00236"></a>00236 thalf <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
242 <a name="l00237"></a>00237
243 <a name="l00239"></a>00239 <span class="comment">// Implicit basic constructors</span>
244 <a name="l00240"></a>00240
245 <a name="l00241"></a>00241 tvec4();
246 <a name="l00242"></a>00242 tvec4(tvec4&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
247 <a name="l00243"></a>00243
248 <a name="l00245"></a>00245 <span class="comment">// Explicit basic constructors</span>
249 <a name="l00246"></a>00246
250 <a name="l00247"></a>00247 <span class="keyword">explicit</span> tvec4(ctor);
251 <a name="l00248"></a>00248 <span class="keyword">explicit</span> tvec4(
252 <a name="l00249"></a>00249 thalf <span class="keyword">const</span> &amp; s);
253 <a name="l00250"></a>00250 <span class="keyword">explicit</span> tvec4(
254 <a name="l00251"></a>00251 thalf <span class="keyword">const</span> &amp; s0,
255 <a name="l00252"></a>00252 thalf <span class="keyword">const</span> &amp; s1,
256 <a name="l00253"></a>00253 thalf <span class="keyword">const</span> &amp; s2,
257 <a name="l00254"></a>00254 thalf <span class="keyword">const</span> &amp; s3);
258 <a name="l00255"></a>00255
259 <a name="l00257"></a>00257 <span class="comment">// Swizzle constructors</span>
260 <a name="l00258"></a>00258
261 <a name="l00259"></a>00259 tvec4(tref4&lt;thalf&gt; <span class="keyword">const</span> &amp; r);
262 <a name="l00260"></a>00260
263 <a name="l00262"></a>00262 <span class="comment">// Convertion scalar constructors</span>
264 <a name="l00263"></a>00263
265 <a name="l00265"></a>00265 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
266 <a name="l00266"></a>00266 <span class="keyword">explicit</span> tvec4(U <span class="keyword">const</span> &amp; x);
267 <a name="l00268"></a>00268 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B, <span class="keyword">typename</span> C, <span class="keyword">typename</span> D&gt;
268 <a name="l00269"></a>00269 <span class="keyword">explicit</span> tvec4(A <span class="keyword">const</span> &amp; x, B <span class="keyword">const</span> &amp; y, C <span class="keyword">const</span> &amp; z, D <span class="keyword">const</span> &amp; w);
269 <a name="l00270"></a>00270
270 <a name="l00272"></a>00272 <span class="comment">// Convertion vector constructors</span>
271 <a name="l00273"></a>00273
272 <a name="l00275"></a>00275 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B, <span class="keyword">typename</span> C&gt;
273 <a name="l00276"></a>00276 <span class="keyword">explicit</span> tvec4(tvec2&lt;A&gt; <span class="keyword">const</span> &amp; v, B <span class="keyword">const</span> &amp; s1, C <span class="keyword">const</span> &amp; s2);
274 <a name="l00278"></a>00278 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B, <span class="keyword">typename</span> C&gt;
275 <a name="l00279"></a>00279 <span class="keyword">explicit</span> tvec4(A <span class="keyword">const</span> &amp; s1, tvec2&lt;B&gt; <span class="keyword">const</span> &amp; v, C <span class="keyword">const</span> &amp; s2);
276 <a name="l00281"></a>00281 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B, <span class="keyword">typename</span> C&gt;
277 <a name="l00282"></a>00282 <span class="keyword">explicit</span> tvec4(A <span class="keyword">const</span> &amp; s1, B <span class="keyword">const</span> &amp; s2, tvec2&lt;C&gt; <span class="keyword">const</span> &amp; v);
278 <a name="l00284"></a>00284 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
279 <a name="l00285"></a>00285 <span class="keyword">explicit</span> tvec4(tvec3&lt;A&gt; <span class="keyword">const</span> &amp; v, B <span class="keyword">const</span> &amp; s);
280 <a name="l00287"></a>00287 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
281 <a name="l00288"></a>00288 <span class="keyword">explicit</span> tvec4(A <span class="keyword">const</span> &amp; s, tvec3&lt;B&gt; <span class="keyword">const</span> &amp; v);
282 <a name="l00290"></a>00290 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
283 <a name="l00291"></a>00291 <span class="keyword">explicit</span> tvec4(tvec2&lt;A&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;B&gt; <span class="keyword">const</span> &amp; v2);
284 <a name="l00293"></a>00293 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
285 <a name="l00294"></a>00294 <span class="keyword">explicit</span> tvec4(tvec4&lt;U&gt; <span class="keyword">const</span> &amp; v);
286 <a name="l00295"></a>00295
287 <a name="l00297"></a>00297 <span class="comment">// Unary arithmetic operators</span>
288 <a name="l00298"></a>00298
289 <a name="l00299"></a>00299 tvec4&lt;thalf&gt;&amp; operator= (tvec4&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
290 <a name="l00300"></a>00300
291 <a name="l00301"></a>00301 tvec4&lt;thalf&gt;&amp; operator+=(thalf <span class="keyword">const</span> &amp; s);
292 <a name="l00302"></a>00302 tvec4&lt;thalf&gt;&amp; operator+=(tvec4&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
293 <a name="l00303"></a>00303 tvec4&lt;thalf&gt;&amp; operator-=(thalf <span class="keyword">const</span> &amp; s);
294 <a name="l00304"></a>00304 tvec4&lt;thalf&gt;&amp; operator-=(tvec4&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
295 <a name="l00305"></a>00305 tvec4&lt;thalf&gt;&amp; operator*=(thalf <span class="keyword">const</span> &amp; s);
296 <a name="l00306"></a>00306 tvec4&lt;thalf&gt;&amp; operator*=(tvec4&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
297 <a name="l00307"></a>00307 tvec4&lt;thalf&gt;&amp; operator/=(thalf <span class="keyword">const</span> &amp; s);
298 <a name="l00308"></a>00308 tvec4&lt;thalf&gt;&amp; operator/=(tvec4&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
299 <a name="l00309"></a>00309 tvec4&lt;thalf&gt;&amp; operator++();
300 <a name="l00310"></a>00310 tvec4&lt;thalf&gt;&amp; operator--();
301 <a name="l00311"></a>00311
302 <a name="l00313"></a>00313 <span class="comment">// Swizzle operators</span>
303 <a name="l00314"></a>00314
304 <a name="l00315"></a>00315 thalf swizzle(comp X) <span class="keyword">const</span>;
305 <a name="l00316"></a>00316 tvec2&lt;thalf&gt; swizzle(comp X, comp Y) <span class="keyword">const</span>;
306 <a name="l00317"></a>00317 tvec3&lt;thalf&gt; swizzle(comp X, comp Y, comp Z) <span class="keyword">const</span>;
307 <a name="l00318"></a>00318 tvec4&lt;thalf&gt; swizzle(comp X, comp Y, comp Z, comp W) <span class="keyword">const</span>;
308 <a name="l00319"></a>00319 tref4&lt;thalf&gt; swizzle(comp X, comp Y, comp Z, comp W);
309 <a name="l00320"></a>00320 };
310 <a name="l00321"></a>00321 <span class="preprocessor">#endif//_MSC_EXTENSIONS</span>
311 <a name="l00322"></a>00322 <span class="preprocessor"></span> }
312 <a name="l00323"></a>00323 <span class="comment">//namespace detail</span>
313 <a name="l00324"></a>00324
314 <a name="l00325"></a>00325 <span class="keyword">namespace </span>gtc{
315 <a name="l00327"></a><a class="code" href="a00159.html">00327</a> <span class="keyword">namespace </span>half_float
316 <a name="l00328"></a>00328 {
317 <a name="l00331"></a>00331
318 <a name="l00334"></a><a class="code" href="a00240.html#ga256188598ace9135605a8ac8fc158654">00334</a> <span class="keyword">typedef</span> <a class="code" href="a00009.html" title="16-bit floating point type.">detail::thalf</a> <a class="code" href="a00240.html#ga256188598ace9135605a8ac8fc158654" title="Type for half-precision floating-point numbers.">half</a>;
319 <a name="l00335"></a>00335
320 <a name="l00338"></a><a class="code" href="a00240.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a">00338</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::thalf&gt;</a> <a class="code" href="a00240.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a" title="Vector of 2 half-precision floating-point numbers.">hvec2</a>;
321 <a name="l00339"></a>00339
322 <a name="l00342"></a><a class="code" href="a00240.html#gab708ed615526a03ec26e3b614bea2b7b">00342</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::thalf&gt;</a> <a class="code" href="a00240.html#gab708ed615526a03ec26e3b614bea2b7b" title="Vector of 3 half-precision floating-point numbers.">hvec3</a>;
323 <a name="l00343"></a>00343
324 <a name="l00346"></a><a class="code" href="a00240.html#ga912913b034fea8952fcfc129a633c667">00346</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::thalf&gt;</a> <a class="code" href="a00240.html#ga912913b034fea8952fcfc129a633c667" title="Vector of 4 half-precision floating-point numbers.">hvec4</a>;
325 <a name="l00347"></a>00347
326 <a name="l00350"></a><a class="code" href="a00240.html#ga784f92f5a36fd8e23a69119eb6a80eb8">00350</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;detail::thalf&gt;</a> <a class="code" href="a00240.html#ga784f92f5a36fd8e23a69119eb6a80eb8" title="2 * 2 matrix of half-precision floating-point numbers.">hmat2</a>;
327 <a name="l00351"></a>00351
328 <a name="l00354"></a><a class="code" href="a00240.html#ga97a57670730ece7f6b904d6dcce5bd7a">00354</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;detail::thalf&gt;</a> <a class="code" href="a00240.html#ga97a57670730ece7f6b904d6dcce5bd7a" title="3 * 3 matrix of half-precision floating-point numbers.">hmat3</a>;
329 <a name="l00355"></a>00355
330 <a name="l00358"></a><a class="code" href="a00240.html#gaffa8b541819e978ede6129703be94285">00358</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;detail::thalf&gt;</a> <a class="code" href="a00240.html#gaffa8b541819e978ede6129703be94285" title="4 * 4 matrix of half-precision floating-point numbers.">hmat4</a>;
331 <a name="l00359"></a>00359
332 <a name="l00361"></a>00361
333 <a name="l00362"></a>00362 }<span class="comment">//namespace half_float</span>
334 <a name="l00363"></a>00363 }<span class="comment">//namespace gtc</span>
335 <a name="l00364"></a>00364 }<span class="comment">//namespace glm</span>
336 <a name="l00365"></a>00365
337 <a name="l00366"></a>00366 <span class="preprocessor">#include &quot;half_float.inl&quot;</span>
338 <a name="l00367"></a>00367
339 <a name="l00368"></a>00368 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::half_float;}
340 <a name="l00369"></a>00369
341 <a name="l00370"></a>00370 <span class="preprocessor">#endif//glm_gtc_half_float</span>
63 <a name="l00027"></a>00027 <span class="keyword">enum</span> ctor{null};
64 <a name="l00028"></a>00028 <span class="keyword">typedef</span> thalf value_type;
65 <a name="l00029"></a>00029 <span class="keyword">typedef</span> std::size_t size_type;
66 <a name="l00030"></a>00030 <span class="keyword">static</span> size_type value_size();
67 <a name="l00031"></a>00031
68 <a name="l00032"></a>00032 <span class="keyword">typedef</span> tvec2&lt;thalf&gt; type;
69 <a name="l00033"></a>00033 <span class="keyword">typedef</span> tvec2&lt;bool&gt; bool_type;
70 <a name="l00034"></a>00034
71 <a name="l00036"></a>00036 <span class="comment">// Data</span>
72 <a name="l00037"></a>00037
73 <a name="l00038"></a>00038 thalf x, y;
74 <a name="l00039"></a>00039
75 <a name="l00041"></a>00041 <span class="comment">// Accesses</span>
76 <a name="l00042"></a>00042
77 <a name="l00043"></a>00043 thalf &amp; operator[](size_type i);
78 <a name="l00044"></a>00044 thalf <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
79 <a name="l00045"></a>00045
80 <a name="l00047"></a>00047 <span class="comment">// Implicit basic constructors</span>
81 <a name="l00048"></a>00048
82 <a name="l00049"></a>00049 tvec2();
83 <a name="l00050"></a>00050 tvec2(tvec2&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
84 <a name="l00051"></a>00051
85 <a name="l00053"></a>00053 <span class="comment">// Explicit basic constructors</span>
86 <a name="l00054"></a>00054
87 <a name="l00055"></a>00055 <span class="keyword">explicit</span> tvec2(ctor);
88 <a name="l00056"></a>00056 <span class="keyword">explicit</span> tvec2(
89 <a name="l00057"></a>00057 thalf <span class="keyword">const</span> &amp; s);
90 <a name="l00058"></a>00058 <span class="keyword">explicit</span> tvec2(
91 <a name="l00059"></a>00059 thalf <span class="keyword">const</span> &amp; s1,
92 <a name="l00060"></a>00060 thalf <span class="keyword">const</span> &amp; s2);
93 <a name="l00061"></a>00061
94 <a name="l00063"></a>00063 <span class="comment">// Swizzle constructors</span>
95 <a name="l00064"></a>00064
96 <a name="l00065"></a>00065 tvec2(tref2&lt;thalf&gt; <span class="keyword">const</span> &amp; r);
97 <a name="l00066"></a>00066
98 <a name="l00068"></a>00068 <span class="comment">// Convertion scalar constructors</span>
99 <a name="l00069"></a>00069
100 <a name="l00071"></a>00071 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
101 <a name="l00072"></a>00072 <span class="keyword">explicit</span> tvec2(U <span class="keyword">const</span> &amp; x);
102 <a name="l00074"></a>00074 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, <span class="keyword">typename</span> V&gt;
103 <a name="l00075"></a>00075 <span class="keyword">explicit</span> tvec2(U <span class="keyword">const</span> &amp; x, V <span class="keyword">const</span> &amp; y);
104 <a name="l00076"></a>00076
105 <a name="l00078"></a>00078 <span class="comment">// Convertion vector constructors</span>
106 <a name="l00079"></a>00079
107 <a name="l00081"></a>00081 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
108 <a name="l00082"></a>00082 <span class="keyword">explicit</span> tvec2(tvec2&lt;U&gt; <span class="keyword">const</span> &amp; v);
109 <a name="l00084"></a>00084 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
110 <a name="l00085"></a>00085 <span class="keyword">explicit</span> tvec2(tvec3&lt;U&gt; <span class="keyword">const</span> &amp; v);
111 <a name="l00087"></a>00087 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
112 <a name="l00088"></a>00088 <span class="keyword">explicit</span> tvec2(tvec4&lt;U&gt; <span class="keyword">const</span> &amp; v);
113 <a name="l00089"></a>00089
114 <a name="l00091"></a>00091 <span class="comment">// Unary arithmetic operators</span>
115 <a name="l00092"></a>00092
116 <a name="l00093"></a>00093 tvec2&lt;thalf&gt;&amp; operator= (tvec2&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
117 <a name="l00094"></a>00094
118 <a name="l00095"></a>00095 tvec2&lt;thalf&gt;&amp; operator+=(thalf <span class="keyword">const</span> &amp; s);
119 <a name="l00096"></a>00096 tvec2&lt;thalf&gt;&amp; operator+=(tvec2&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
120 <a name="l00097"></a>00097 tvec2&lt;thalf&gt;&amp; operator-=(thalf <span class="keyword">const</span> &amp; s);
121 <a name="l00098"></a>00098 tvec2&lt;thalf&gt;&amp; operator-=(tvec2&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
122 <a name="l00099"></a>00099 tvec2&lt;thalf&gt;&amp; operator*=(thalf <span class="keyword">const</span> &amp; s);
123 <a name="l00100"></a>00100 tvec2&lt;thalf&gt;&amp; operator*=(tvec2&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
124 <a name="l00101"></a>00101 tvec2&lt;thalf&gt;&amp; operator/=(thalf <span class="keyword">const</span> &amp; s);
125 <a name="l00102"></a>00102 tvec2&lt;thalf&gt;&amp; operator/=(tvec2&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
126 <a name="l00103"></a>00103 tvec2&lt;thalf&gt;&amp; operator++();
127 <a name="l00104"></a>00104 tvec2&lt;thalf&gt;&amp; operator--();
128 <a name="l00105"></a>00105
129 <a name="l00107"></a>00107 <span class="comment">// Swizzle operators</span>
130 <a name="l00108"></a>00108
131 <a name="l00109"></a>00109 thalf swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X) <span class="keyword">const</span>;
132 <a name="l00110"></a>00110 tvec2&lt;thalf&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y) <span class="keyword">const</span>;
133 <a name="l00111"></a>00111 tvec3&lt;thalf&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z) <span class="keyword">const</span>;
134 <a name="l00112"></a>00112 tvec4&lt;thalf&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> W) <span class="keyword">const</span>;
135 <a name="l00113"></a>00113 tref2&lt;thalf&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y);
136 <a name="l00114"></a>00114 };
137 <a name="l00115"></a>00115
138 <a name="l00116"></a>00116 <span class="keyword">template</span> &lt;&gt;
139 <a name="l00117"></a>00117 <span class="keyword">struct </span>tvec3&lt;thalf&gt;
140 <a name="l00118"></a>00118 {
141 <a name="l00119"></a>00119 <span class="keyword">enum</span> ctor{null};
142 <a name="l00120"></a>00120 <span class="keyword">typedef</span> thalf value_type;
143 <a name="l00121"></a>00121 <span class="keyword">typedef</span> std::size_t size_type;
144 <a name="l00122"></a>00122 <span class="keyword">static</span> size_type value_size();
145 <a name="l00123"></a>00123
146 <a name="l00124"></a>00124 <span class="keyword">typedef</span> tvec3&lt;thalf&gt; type;
147 <a name="l00125"></a>00125 <span class="keyword">typedef</span> tvec3&lt;bool&gt; bool_type;
148 <a name="l00126"></a>00126
149 <a name="l00128"></a>00128 <span class="comment">// Data</span>
150 <a name="l00129"></a>00129
151 <a name="l00130"></a>00130 thalf x, y, z;
152 <a name="l00131"></a>00131
153 <a name="l00133"></a>00133 <span class="comment">// Accesses</span>
154 <a name="l00134"></a>00134
155 <a name="l00135"></a>00135 thalf &amp; operator[](size_type i);
156 <a name="l00136"></a>00136 thalf <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
157 <a name="l00137"></a>00137
158 <a name="l00139"></a>00139 <span class="comment">// Implicit basic constructors</span>
159 <a name="l00140"></a>00140
160 <a name="l00141"></a>00141 tvec3();
161 <a name="l00142"></a>00142 tvec3(tvec3&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
162 <a name="l00143"></a>00143
163 <a name="l00145"></a>00145 <span class="comment">// Explicit basic constructors</span>
164 <a name="l00146"></a>00146
165 <a name="l00147"></a>00147 <span class="keyword">explicit</span> tvec3(ctor);
166 <a name="l00148"></a>00148 <span class="keyword">explicit</span> tvec3(
167 <a name="l00149"></a>00149 thalf <span class="keyword">const</span> &amp; s);
168 <a name="l00150"></a>00150 <span class="keyword">explicit</span> tvec3(
169 <a name="l00151"></a>00151 thalf <span class="keyword">const</span> &amp; s1,
170 <a name="l00152"></a>00152 thalf <span class="keyword">const</span> &amp; s2,
171 <a name="l00153"></a>00153 thalf <span class="keyword">const</span> &amp; s3);
172 <a name="l00154"></a>00154
173 <a name="l00156"></a>00156 <span class="comment">// Swizzle constructors</span>
174 <a name="l00157"></a>00157
175 <a name="l00158"></a>00158 tvec3(tref3&lt;thalf&gt; <span class="keyword">const</span> &amp; r);
176 <a name="l00159"></a>00159
177 <a name="l00161"></a>00161 <span class="comment">// Convertion scalar constructors</span>
178 <a name="l00162"></a>00162
179 <a name="l00164"></a>00164 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
180 <a name="l00165"></a>00165 <span class="keyword">explicit</span> tvec3(U <span class="keyword">const</span> &amp; x);
181 <a name="l00167"></a>00167 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, <span class="keyword">typename</span> V, <span class="keyword">typename</span> W&gt;
182 <a name="l00168"></a>00168 <span class="keyword">explicit</span> tvec3(U <span class="keyword">const</span> &amp; x, V <span class="keyword">const</span> &amp; y, W <span class="keyword">const</span> &amp; z);
183 <a name="l00169"></a>00169
184 <a name="l00171"></a>00171 <span class="comment">// Convertion vector constructors</span>
185 <a name="l00172"></a>00172
186 <a name="l00174"></a>00174 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
187 <a name="l00175"></a>00175 <span class="keyword">explicit</span> tvec3(tvec2&lt;A&gt; <span class="keyword">const</span> &amp; v, B <span class="keyword">const</span> &amp; s);
188 <a name="l00177"></a>00177 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
189 <a name="l00178"></a>00178 <span class="keyword">explicit</span> tvec3(A <span class="keyword">const</span> &amp; s, tvec2&lt;B&gt; <span class="keyword">const</span> &amp; v);
190 <a name="l00180"></a>00180 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
191 <a name="l00181"></a>00181 <span class="keyword">explicit</span> tvec3(tvec3&lt;U&gt; <span class="keyword">const</span> &amp; v);
192 <a name="l00183"></a>00183 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
193 <a name="l00184"></a>00184 <span class="keyword">explicit</span> tvec3(tvec4&lt;U&gt; <span class="keyword">const</span> &amp; v);
194 <a name="l00185"></a>00185
195 <a name="l00187"></a>00187 <span class="comment">// Unary arithmetic operators</span>
196 <a name="l00188"></a>00188
197 <a name="l00189"></a>00189 tvec3&lt;thalf&gt;&amp; operator= (tvec3&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
198 <a name="l00190"></a>00190
199 <a name="l00191"></a>00191 tvec3&lt;thalf&gt;&amp; operator+=(thalf <span class="keyword">const</span> &amp; s);
200 <a name="l00192"></a>00192 tvec3&lt;thalf&gt;&amp; operator+=(tvec3&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
201 <a name="l00193"></a>00193 tvec3&lt;thalf&gt;&amp; operator-=(thalf <span class="keyword">const</span> &amp; s);
202 <a name="l00194"></a>00194 tvec3&lt;thalf&gt;&amp; operator-=(tvec3&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
203 <a name="l00195"></a>00195 tvec3&lt;thalf&gt;&amp; operator*=(thalf <span class="keyword">const</span> &amp; s);
204 <a name="l00196"></a>00196 tvec3&lt;thalf&gt;&amp; operator*=(tvec3&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
205 <a name="l00197"></a>00197 tvec3&lt;thalf&gt;&amp; operator/=(thalf <span class="keyword">const</span> &amp; s);
206 <a name="l00198"></a>00198 tvec3&lt;thalf&gt;&amp; operator/=(tvec3&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
207 <a name="l00199"></a>00199 tvec3&lt;thalf&gt;&amp; operator++();
208 <a name="l00200"></a>00200 tvec3&lt;thalf&gt;&amp; operator--();
209 <a name="l00201"></a>00201
210 <a name="l00203"></a>00203 <span class="comment">// Swizzle operators</span>
211 <a name="l00204"></a>00204
212 <a name="l00205"></a>00205 thalf swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X) <span class="keyword">const</span>;
213 <a name="l00206"></a>00206 tvec2&lt;thalf&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y) <span class="keyword">const</span>;
214 <a name="l00207"></a>00207 tvec3&lt;thalf&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z) <span class="keyword">const</span>;
215 <a name="l00208"></a>00208 tvec4&lt;thalf&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> W) <span class="keyword">const</span>;
216 <a name="l00209"></a>00209 tref3&lt;thalf&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z);
217 <a name="l00210"></a>00210 };
218 <a name="l00211"></a>00211
219 <a name="l00212"></a>00212 <span class="keyword">template</span> &lt;&gt;
220 <a name="l00213"></a>00213 <span class="keyword">struct </span>tvec4&lt;thalf&gt;
221 <a name="l00214"></a>00214 {
222 <a name="l00215"></a>00215 <span class="keyword">enum</span> ctor{null};
223 <a name="l00216"></a>00216 <span class="keyword">typedef</span> thalf value_type;
224 <a name="l00217"></a>00217 <span class="keyword">typedef</span> std::size_t size_type;
225 <a name="l00218"></a>00218 <span class="keyword">static</span> size_type value_size();
226 <a name="l00219"></a>00219
227 <a name="l00220"></a>00220 <span class="keyword">typedef</span> tvec4&lt;thalf&gt; type;
228 <a name="l00221"></a>00221 <span class="keyword">typedef</span> tvec4&lt;bool&gt; bool_type;
229 <a name="l00222"></a>00222
230 <a name="l00224"></a>00224 <span class="comment">// Data</span>
231 <a name="l00225"></a>00225
232 <a name="l00226"></a>00226 thalf x, y, z, w;
233 <a name="l00227"></a>00227
234 <a name="l00229"></a>00229 <span class="comment">// Accesses</span>
235 <a name="l00230"></a>00230
236 <a name="l00231"></a>00231 thalf &amp; operator[](size_type i);
237 <a name="l00232"></a>00232 thalf <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
238 <a name="l00233"></a>00233
239 <a name="l00235"></a>00235 <span class="comment">// Implicit basic constructors</span>
240 <a name="l00236"></a>00236
241 <a name="l00237"></a>00237 tvec4();
242 <a name="l00238"></a>00238 tvec4(tvec4&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
243 <a name="l00239"></a>00239
244 <a name="l00241"></a>00241 <span class="comment">// Explicit basic constructors</span>
245 <a name="l00242"></a>00242
246 <a name="l00243"></a>00243 <span class="keyword">explicit</span> tvec4(ctor);
247 <a name="l00244"></a>00244 <span class="keyword">explicit</span> tvec4(
248 <a name="l00245"></a>00245 thalf <span class="keyword">const</span> &amp; s);
249 <a name="l00246"></a>00246 <span class="keyword">explicit</span> tvec4(
250 <a name="l00247"></a>00247 thalf <span class="keyword">const</span> &amp; s0,
251 <a name="l00248"></a>00248 thalf <span class="keyword">const</span> &amp; s1,
252 <a name="l00249"></a>00249 thalf <span class="keyword">const</span> &amp; s2,
253 <a name="l00250"></a>00250 thalf <span class="keyword">const</span> &amp; s3);
254 <a name="l00251"></a>00251
255 <a name="l00253"></a>00253 <span class="comment">// Swizzle constructors</span>
256 <a name="l00254"></a>00254
257 <a name="l00255"></a>00255 tvec4(tref4&lt;thalf&gt; <span class="keyword">const</span> &amp; r);
258 <a name="l00256"></a>00256
259 <a name="l00258"></a>00258 <span class="comment">// Convertion scalar constructors</span>
260 <a name="l00259"></a>00259
261 <a name="l00261"></a>00261 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
262 <a name="l00262"></a>00262 <span class="keyword">explicit</span> tvec4(U <span class="keyword">const</span> &amp; x);
263 <a name="l00264"></a>00264 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B, <span class="keyword">typename</span> C, <span class="keyword">typename</span> D&gt;
264 <a name="l00265"></a>00265 <span class="keyword">explicit</span> tvec4(A <span class="keyword">const</span> &amp; x, B <span class="keyword">const</span> &amp; y, C <span class="keyword">const</span> &amp; z, D <span class="keyword">const</span> &amp; w);
265 <a name="l00266"></a>00266
266 <a name="l00268"></a>00268 <span class="comment">// Convertion vector constructors</span>
267 <a name="l00269"></a>00269
268 <a name="l00271"></a>00271 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B, <span class="keyword">typename</span> C&gt;
269 <a name="l00272"></a>00272 <span class="keyword">explicit</span> tvec4(tvec2&lt;A&gt; <span class="keyword">const</span> &amp; v, B <span class="keyword">const</span> &amp; s1, C <span class="keyword">const</span> &amp; s2);
270 <a name="l00274"></a>00274 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B, <span class="keyword">typename</span> C&gt;
271 <a name="l00275"></a>00275 <span class="keyword">explicit</span> tvec4(A <span class="keyword">const</span> &amp; s1, tvec2&lt;B&gt; <span class="keyword">const</span> &amp; v, C <span class="keyword">const</span> &amp; s2);
272 <a name="l00277"></a>00277 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B, <span class="keyword">typename</span> C&gt;
273 <a name="l00278"></a>00278 <span class="keyword">explicit</span> tvec4(A <span class="keyword">const</span> &amp; s1, B <span class="keyword">const</span> &amp; s2, tvec2&lt;C&gt; <span class="keyword">const</span> &amp; v);
274 <a name="l00280"></a>00280 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
275 <a name="l00281"></a>00281 <span class="keyword">explicit</span> tvec4(tvec3&lt;A&gt; <span class="keyword">const</span> &amp; v, B <span class="keyword">const</span> &amp; s);
276 <a name="l00283"></a>00283 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
277 <a name="l00284"></a>00284 <span class="keyword">explicit</span> tvec4(A <span class="keyword">const</span> &amp; s, tvec3&lt;B&gt; <span class="keyword">const</span> &amp; v);
278 <a name="l00286"></a>00286 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
279 <a name="l00287"></a>00287 <span class="keyword">explicit</span> tvec4(tvec2&lt;A&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;B&gt; <span class="keyword">const</span> &amp; v2);
280 <a name="l00289"></a>00289 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
281 <a name="l00290"></a>00290 <span class="keyword">explicit</span> tvec4(tvec4&lt;U&gt; <span class="keyword">const</span> &amp; v);
282 <a name="l00291"></a>00291
283 <a name="l00293"></a>00293 <span class="comment">// Unary arithmetic operators</span>
284 <a name="l00294"></a>00294
285 <a name="l00295"></a>00295 tvec4&lt;thalf&gt;&amp; operator= (tvec4&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
286 <a name="l00296"></a>00296
287 <a name="l00297"></a>00297 tvec4&lt;thalf&gt;&amp; operator+=(thalf <span class="keyword">const</span> &amp; s);
288 <a name="l00298"></a>00298 tvec4&lt;thalf&gt;&amp; operator+=(tvec4&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
289 <a name="l00299"></a>00299 tvec4&lt;thalf&gt;&amp; operator-=(thalf <span class="keyword">const</span> &amp; s);
290 <a name="l00300"></a>00300 tvec4&lt;thalf&gt;&amp; operator-=(tvec4&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
291 <a name="l00301"></a>00301 tvec4&lt;thalf&gt;&amp; operator*=(thalf <span class="keyword">const</span> &amp; s);
292 <a name="l00302"></a>00302 tvec4&lt;thalf&gt;&amp; operator*=(tvec4&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
293 <a name="l00303"></a>00303 tvec4&lt;thalf&gt;&amp; operator/=(thalf <span class="keyword">const</span> &amp; s);
294 <a name="l00304"></a>00304 tvec4&lt;thalf&gt;&amp; operator/=(tvec4&lt;thalf&gt; <span class="keyword">const</span> &amp; v);
295 <a name="l00305"></a>00305 tvec4&lt;thalf&gt;&amp; operator++();
296 <a name="l00306"></a>00306 tvec4&lt;thalf&gt;&amp; operator--();
297 <a name="l00307"></a>00307
298 <a name="l00309"></a>00309 <span class="comment">// Swizzle operators</span>
299 <a name="l00310"></a>00310
300 <a name="l00311"></a>00311 thalf swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X) <span class="keyword">const</span>;
301 <a name="l00312"></a>00312 tvec2&lt;thalf&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y) <span class="keyword">const</span>;
302 <a name="l00313"></a>00313 tvec3&lt;thalf&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z) <span class="keyword">const</span>;
303 <a name="l00314"></a>00314 tvec4&lt;thalf&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> W) <span class="keyword">const</span>;
304 <a name="l00315"></a>00315 tref4&lt;thalf&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> W);
305 <a name="l00316"></a>00316 };
306 <a name="l00317"></a>00317 <span class="preprocessor">#endif//_MSC_EXTENSIONS</span>
307 <a name="l00318"></a>00318 <span class="preprocessor"></span>}
308 <a name="l00319"></a>00319 <span class="comment">//namespace detail</span>
309 <a name="l00320"></a>00320
310 <a name="l00321"></a>00321 <span class="keyword">namespace </span>gtc{
311 <a name="l00322"></a><a class="code" href="a00159.html">00322</a> <span class="keyword">namespace </span>half_float
312 <a name="l00323"></a>00323 {
313 <a name="l00326"></a>00326
314 <a name="l00329"></a><a class="code" href="a00239.html#ga256188598ace9135605a8ac8fc158654">00329</a> <span class="keyword">typedef</span> <a class="code" href="a00009.html" title="16-bit floating point type.">detail::thalf</a> <a class="code" href="a00239.html#ga256188598ace9135605a8ac8fc158654" title="Type for half-precision floating-point numbers.">half</a>;
315 <a name="l00330"></a>00330
316 <a name="l00333"></a><a class="code" href="a00239.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a">00333</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::thalf&gt;</a> <a class="code" href="a00239.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a" title="Vector of 2 half-precision floating-point numbers.">hvec2</a>;
317 <a name="l00334"></a>00334
318 <a name="l00337"></a><a class="code" href="a00239.html#gab708ed615526a03ec26e3b614bea2b7b">00337</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::thalf&gt;</a> <a class="code" href="a00239.html#gab708ed615526a03ec26e3b614bea2b7b" title="Vector of 3 half-precision floating-point numbers.">hvec3</a>;
319 <a name="l00338"></a>00338
320 <a name="l00341"></a><a class="code" href="a00239.html#ga912913b034fea8952fcfc129a633c667">00341</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::thalf&gt;</a> <a class="code" href="a00239.html#ga912913b034fea8952fcfc129a633c667" title="Vector of 4 half-precision floating-point numbers.">hvec4</a>;
321 <a name="l00342"></a>00342
322 <a name="l00345"></a><a class="code" href="a00239.html#ga784f92f5a36fd8e23a69119eb6a80eb8">00345</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;detail::thalf&gt;</a> <a class="code" href="a00239.html#ga784f92f5a36fd8e23a69119eb6a80eb8" title="2 * 2 matrix of half-precision floating-point numbers.">hmat2</a>;
323 <a name="l00346"></a>00346
324 <a name="l00349"></a><a class="code" href="a00239.html#ga97a57670730ece7f6b904d6dcce5bd7a">00349</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;detail::thalf&gt;</a> <a class="code" href="a00239.html#ga97a57670730ece7f6b904d6dcce5bd7a" title="3 * 3 matrix of half-precision floating-point numbers.">hmat3</a>;
325 <a name="l00350"></a>00350
326 <a name="l00353"></a><a class="code" href="a00239.html#gaffa8b541819e978ede6129703be94285">00353</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;detail::thalf&gt;</a> <a class="code" href="a00239.html#gaffa8b541819e978ede6129703be94285" title="4 * 4 matrix of half-precision floating-point numbers.">hmat4</a>;
327 <a name="l00354"></a>00354
328 <a name="l00357"></a><a class="code" href="a00239.html#gaef5a99a975d1df44e43f3662d84d24e2">00357</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;detail::thalf&gt;</a> <a class="code" href="a00239.html#gaef5a99a975d1df44e43f3662d84d24e2" title="2 * 2 matrix of half-precision floating-point numbers.">hmat2x2</a>;
329 <a name="l00358"></a>00358
330 <a name="l00361"></a><a class="code" href="a00239.html#ga55c96491b1d2508504b7fad8f31fdd47">00361</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;detail::thalf&gt;</a> <a class="code" href="a00239.html#ga55c96491b1d2508504b7fad8f31fdd47" title="2 * 3 matrix of half-precision floating-point numbers.">hmat2x3</a>;
331 <a name="l00362"></a>00362
332 <a name="l00365"></a><a class="code" href="a00239.html#ga43a7d1bfd8945398effa19eb66ce304a">00365</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;detail::thalf&gt;</a> <a class="code" href="a00239.html#ga43a7d1bfd8945398effa19eb66ce304a" title="2 * 4 matrix of half-precision floating-point numbers.">hmat2x4</a>;
333 <a name="l00366"></a>00366
334 <a name="l00369"></a><a class="code" href="a00239.html#gaf89371358a1d90a224c72795d25a4f3e">00369</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;detail::thalf&gt;</a> <a class="code" href="a00239.html#gaf89371358a1d90a224c72795d25a4f3e" title="3 * 2 matrix of half-precision floating-point numbers.">hmat3x2</a>;
335 <a name="l00370"></a>00370
336 <a name="l00373"></a><a class="code" href="a00239.html#ga3b23962a795f1f157242859c1a35dec0">00373</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;detail::thalf&gt;</a> <a class="code" href="a00239.html#ga3b23962a795f1f157242859c1a35dec0" title="3 * 3 matrix of half-precision floating-point numbers.">hmat3x3</a>;
337 <a name="l00374"></a>00374
338 <a name="l00377"></a><a class="code" href="a00239.html#ga8eeb3d8c00910f5497117d1749b6550f">00377</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;detail::thalf&gt;</a> <a class="code" href="a00239.html#ga8eeb3d8c00910f5497117d1749b6550f" title="3 * 4 matrix of half-precision floating-point numbers.">hmat3x4</a>;
339 <a name="l00378"></a>00378
340 <a name="l00381"></a><a class="code" href="a00239.html#ga370098417bb96d7796b11a4611bf67ac">00381</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;detail::thalf&gt;</a> <a class="code" href="a00239.html#ga370098417bb96d7796b11a4611bf67ac" title="4 * 2 matrix of half-precision floating-point numbers.">hmat4x2</a>;
341 <a name="l00382"></a>00382
342 <a name="l00385"></a><a class="code" href="a00239.html#ga8248b190b2f9a4ff3f2aadf865f72b84">00385</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;detail::thalf&gt;</a> <a class="code" href="a00239.html#ga8248b190b2f9a4ff3f2aadf865f72b84" title="4 * 3 matrix of half-precision floating-point numbers.">hmat4x3</a>;
343 <a name="l00386"></a>00386
344 <a name="l00389"></a><a class="code" href="a00239.html#ga66a4356be6f3c7a1e5cb944657917002">00389</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;detail::thalf&gt;</a> <a class="code" href="a00239.html#ga66a4356be6f3c7a1e5cb944657917002" title="4 * 4 matrix of half-precision floating-point numbers.">hmat4x4</a>;
345 <a name="l00390"></a>00390
346 <a name="l00392"></a>00392
347 <a name="l00393"></a>00393 }<span class="comment">// namespace half_float</span>
348 <a name="l00394"></a>00394 }<span class="comment">// namespace gtc</span>
349 <a name="l00395"></a>00395 }<span class="comment">// namespace glm</span>
350 <a name="l00396"></a>00396
351 <a name="l00397"></a>00397 <span class="preprocessor">#include &quot;half_float.inl&quot;</span>
352 <a name="l00398"></a>00398
353 <a name="l00399"></a>00399 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::half_float;}
354 <a name="l00400"></a>00400
355 <a name="l00401"></a>00401 <span class="preprocessor">#endif//glm_gtc_half_float</span>
342356 </pre></div></div>
343357 </div>
344358 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_handed_coordinate_space extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtx{
61 <a name="l00027"></a><a class="code" href="a00185.html">00027</a> <span class="keyword">namespace </span>handed_coordinate_space
62 <a name="l00028"></a>00028 {
63 <a name="l00031"></a>00031
64 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
65 <a name="l00035"></a>00035 <span class="keywordtype">bool</span> <a class="code" href="a00264.html#ga472eb0d6e9fcf9b503d3c1a74fdee645" title="Return if a trihedron right handed or not.">rightHanded</a>(
66 <a name="l00036"></a>00036 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; tangent,
67 <a name="l00037"></a>00037 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; binormal,
68 <a name="l00038"></a>00038 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; normal);
69 <a name="l00039"></a>00039
70 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
71 <a name="l00043"></a>00043 <span class="keywordtype">bool</span> <a class="code" href="a00264.html#gac222c8dd989fe9fb2142f18320bd683c" title="Return if a trihedron left handed or not.">leftHanded</a>(
72 <a name="l00044"></a>00044 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; tangent,
73 <a name="l00045"></a>00045 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; binormal,
74 <a name="l00046"></a>00046 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; normal);
75 <a name="l00047"></a>00047
76 <a name="l00049"></a>00049
77 <a name="l00050"></a>00050 }<span class="comment">//namespace handed_coordinate_space</span>
78 <a name="l00051"></a>00051 }<span class="comment">//namespace gtx</span>
79 <a name="l00052"></a>00052 }<span class="comment">//namespace glm</span>
80 <a name="l00053"></a>00053
81 <a name="l00054"></a>00054 <span class="preprocessor">#include &quot;handed_coordinate_space.inl&quot;</span>
82 <a name="l00055"></a>00055
83 <a name="l00056"></a>00056 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::handed_coordinate_space;}
84 <a name="l00057"></a>00057
85 <a name="l00058"></a>00058 <span class="preprocessor">#endif//glm_gtx_handed_coordinate_space</span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00185.html">00025</a> <span class="keyword">namespace </span>handed_coordinate_space
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
64 <a name="l00033"></a>00033 <span class="keywordtype">bool</span> <a class="code" href="a00263.html#ga472eb0d6e9fcf9b503d3c1a74fdee645" title="Return if a trihedron right handed or not.">rightHanded</a>(
65 <a name="l00034"></a>00034 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; tangent,
66 <a name="l00035"></a>00035 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; binormal,
67 <a name="l00036"></a>00036 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; normal);
68 <a name="l00037"></a>00037
69 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
70 <a name="l00041"></a>00041 <span class="keywordtype">bool</span> <a class="code" href="a00263.html#gac222c8dd989fe9fb2142f18320bd683c" title="Return if a trihedron left handed or not.">leftHanded</a>(
71 <a name="l00042"></a>00042 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; tangent,
72 <a name="l00043"></a>00043 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; binormal,
73 <a name="l00044"></a>00044 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; normal);
74 <a name="l00045"></a>00045
75 <a name="l00047"></a>00047 }<span class="comment">// namespace handed_coordinate_space</span>
76 <a name="l00048"></a>00048 }<span class="comment">// namespace gtx</span>
77 <a name="l00049"></a>00049 }<span class="comment">// namespace glm</span>
78 <a name="l00050"></a>00050
79 <a name="l00051"></a>00051 <span class="preprocessor">#include &quot;handed_coordinate_space.inl&quot;</span>
80 <a name="l00052"></a>00052
81 <a name="l00053"></a>00053 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::handed_coordinate_space;}
82 <a name="l00054"></a>00054
83 <a name="l00055"></a>00055 <span class="preprocessor">#endif//glm_gtx_handed_coordinate_space</span>
8684 </pre></div></div>
8785 </div>
8886 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_inertia extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtx{
61 <a name="l00027"></a><a class="code" href="a00186.html">00027</a> <span class="keyword">namespace </span>inertia
62 <a name="l00028"></a>00028 {
63 <a name="l00031"></a>00031
64 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
65 <a name="l00035"></a>00035 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00265.html#ga2bc514c4c44559a1f76776ad723833b8" title="Build an inertia matrix for a box.">boxInertia3</a>(
66 <a name="l00036"></a>00036 <span class="keyword">const</span> T Mass,
67 <a name="l00037"></a>00037 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; Scale);
68 <a name="l00038"></a>00038
69 <a name="l00041"></a>00041 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
70 <a name="l00042"></a>00042 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00265.html#ga02d62ab1fe6c9eaaac001f0c73c787f2" title="Build an inertia matrix for a box.">boxInertia4</a>(
71 <a name="l00043"></a>00043 <span class="keyword">const</span> T Mass,
72 <a name="l00044"></a>00044 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; Scale);
73 <a name="l00045"></a>00045
74 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
75 <a name="l00049"></a>00049 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00265.html#gaceea61bf41a4cc6f934543bb42c30ab2" title="Build an inertia matrix for a disk.">diskInertia3</a>(
76 <a name="l00050"></a>00050 <span class="keyword">const</span> T Mass,
77 <a name="l00051"></a>00051 <span class="keyword">const</span> T Radius);
78 <a name="l00052"></a>00052
79 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
80 <a name="l00056"></a>00056 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00265.html#ga0f6f854161239bed615b5cba1cd85d8a" title="Build an inertia matrix for a disk.">diskInertia4</a>(
81 <a name="l00057"></a>00057 <span class="keyword">const</span> T Mass,
82 <a name="l00058"></a>00058 <span class="keyword">const</span> T Radius);
83 <a name="l00059"></a>00059
84 <a name="l00062"></a>00062 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
85 <a name="l00063"></a>00063 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00265.html#gac855b3f388128290af0b3016f5e644e4" title="Build an inertia matrix for a ball.">ballInertia3</a>(
86 <a name="l00064"></a>00064 <span class="keyword">const</span> T Mass,
87 <a name="l00065"></a>00065 <span class="keyword">const</span> T Radius);
88 <a name="l00066"></a>00066
89 <a name="l00069"></a>00069 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
90 <a name="l00070"></a>00070 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00265.html#ga33e5d8cfae7d8d2ee4369bbc68b20304" title="Build an inertia matrix for a ball.">ballInertia4</a>(
91 <a name="l00071"></a>00071 <span class="keyword">const</span> T Mass,
92 <a name="l00072"></a>00072 <span class="keyword">const</span> T Radius);
93 <a name="l00073"></a>00073
94 <a name="l00076"></a>00076 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
95 <a name="l00077"></a>00077 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00265.html#gad3bcd1a2ac02d030f6b774f5692aee01" title="Build an inertia matrix for a sphere.">sphereInertia3</a>(
96 <a name="l00078"></a>00078 <span class="keyword">const</span> T Mass,
97 <a name="l00079"></a>00079 <span class="keyword">const</span> T Radius);
98 <a name="l00080"></a>00080
99 <a name="l00083"></a>00083 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
100 <a name="l00084"></a>00084 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00265.html#ga3d50f9cd04751451b22d712f1ce26351" title="Build an inertia matrix for a sphere.">sphereInertia4</a>(
101 <a name="l00085"></a>00085 <span class="keyword">const</span> T Mass,
102 <a name="l00086"></a>00086 <span class="keyword">const</span> T Radius);
103 <a name="l00087"></a>00087
104 <a name="l00089"></a>00089
105 <a name="l00090"></a>00090 }<span class="comment">//namespace inertia</span>
106 <a name="l00091"></a>00091 }<span class="comment">//namespace gtx</span>
107 <a name="l00092"></a>00092 }<span class="comment">//namespace glm</span>
108 <a name="l00093"></a>00093
109 <a name="l00094"></a>00094 <span class="preprocessor">#include &quot;inertia.inl&quot;</span>
110 <a name="l00095"></a>00095
111 <a name="l00096"></a>00096 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::inertia;}
112 <a name="l00097"></a>00097
113 <a name="l00098"></a>00098 <span class="preprocessor">#endif//glm_gtx_inertia</span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00186.html">00025</a> <span class="keyword">namespace </span>inertia
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
64 <a name="l00033"></a>00033 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00264.html#ga2bc514c4c44559a1f76776ad723833b8" title="Build an inertia matrix for a box.">boxInertia3</a>(
65 <a name="l00034"></a>00034 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Mass,
66 <a name="l00035"></a>00035 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; Scale);
67 <a name="l00036"></a>00036
68 <a name="l00039"></a>00039 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00040"></a>00040 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00264.html#ga02d62ab1fe6c9eaaac001f0c73c787f2" title="Build an inertia matrix for a box.">boxInertia4</a>(
70 <a name="l00041"></a>00041 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Mass,
71 <a name="l00042"></a>00042 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; Scale);
72 <a name="l00043"></a>00043
73 <a name="l00046"></a>00046 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
74 <a name="l00047"></a>00047 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00264.html#gaceea61bf41a4cc6f934543bb42c30ab2" title="Build an inertia matrix for a disk.">diskInertia3</a>(
75 <a name="l00048"></a>00048 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Mass,
76 <a name="l00049"></a>00049 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Radius);
77 <a name="l00050"></a>00050
78 <a name="l00053"></a>00053 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
79 <a name="l00054"></a>00054 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00264.html#ga0f6f854161239bed615b5cba1cd85d8a" title="Build an inertia matrix for a disk.">diskInertia4</a>(
80 <a name="l00055"></a>00055 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Mass,
81 <a name="l00056"></a>00056 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Radius);
82 <a name="l00057"></a>00057
83 <a name="l00060"></a>00060 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
84 <a name="l00061"></a>00061 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00264.html#gac855b3f388128290af0b3016f5e644e4" title="Build an inertia matrix for a ball.">ballInertia3</a>(
85 <a name="l00062"></a>00062 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Mass,
86 <a name="l00063"></a>00063 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Radius);
87 <a name="l00064"></a>00064
88 <a name="l00067"></a>00067 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
89 <a name="l00068"></a>00068 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00264.html#ga33e5d8cfae7d8d2ee4369bbc68b20304" title="Build an inertia matrix for a ball.">ballInertia4</a>(
90 <a name="l00069"></a>00069 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Mass,
91 <a name="l00070"></a>00070 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Radius);
92 <a name="l00071"></a>00071
93 <a name="l00074"></a>00074 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
94 <a name="l00075"></a>00075 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00264.html#gad3bcd1a2ac02d030f6b774f5692aee01" title="Build an inertia matrix for a sphere.">sphereInertia3</a>(
95 <a name="l00076"></a>00076 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Mass,
96 <a name="l00077"></a>00077 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Radius);
97 <a name="l00078"></a>00078
98 <a name="l00081"></a>00081 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
99 <a name="l00082"></a>00082 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00264.html#ga3d50f9cd04751451b22d712f1ce26351" title="Build an inertia matrix for a sphere.">sphereInertia4</a>(
100 <a name="l00083"></a>00083 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Mass,
101 <a name="l00084"></a>00084 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Radius);
102 <a name="l00085"></a>00085
103 <a name="l00087"></a>00087 }<span class="comment">// namespace inertia</span>
104 <a name="l00088"></a>00088 }<span class="comment">// namespace gtx</span>
105 <a name="l00089"></a>00089 }<span class="comment">// namespace glm</span>
106 <a name="l00090"></a>00090
107 <a name="l00091"></a>00091 <span class="preprocessor">#include &quot;inertia.inl&quot;</span>
108 <a name="l00092"></a>00092
109 <a name="l00093"></a>00093 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::inertia;}
110 <a name="l00094"></a>00094
111 <a name="l00095"></a>00095 <span class="preprocessor">#endif//glm_gtx_inertia</span>
114112 </pre></div></div>
115113 </div>
116114 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_int_10_10_10_2 extension included&quot;)</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span>
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm
60 <a name="l00025"></a>00025 {
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>gtx{
62 <a name="l00028"></a><a class="code" href="a00187.html">00028</a> <span class="keyword">namespace </span>int_10_10_10_2
63 <a name="l00029"></a>00029 {
64 <a name="l00030"></a>00030 <span class="keyword">using namespace </span>gtx::raw_data;
65 <a name="l00031"></a>00031
66 <a name="l00034"></a>00034
67 <a name="l00037"></a>00037 <a class="code" href="a00288.html#ga162201f4386c2973e6ebd76ac0941de0" title="Type for dword numbers.">dword</a> <a class="code" href="a00266.html#ga01b292ff461ea3d8e90a916c5b374fb1" title="From GLM_GTX_int_10_10_10_2 extension.">uint10_10_10_2_cast</a>(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::vec4</a> <span class="keyword">const</span> &amp; v);
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm{
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtx{
61 <a name="l00026"></a><a class="code" href="a00187.html">00026</a> <span class="keyword">namespace </span>int_10_10_10_2
62 <a name="l00027"></a>00027 {
63 <a name="l00028"></a>00028 <span class="keyword">using namespace </span>gtx::raw_data;
64 <a name="l00029"></a>00029
65 <a name="l00032"></a>00032
66 <a name="l00035"></a>00035 <a class="code" href="a00287.html#ga162201f4386c2973e6ebd76ac0941de0" title="Type for dword numbers.">dword</a> <a class="code" href="a00265.html#ga01b292ff461ea3d8e90a916c5b374fb1" title="From GLM_GTX_int_10_10_10_2 extension.">uint10_10_10_2_cast</a>(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::vec4</a> <span class="keyword">const</span> &amp; v);
67 <a name="l00036"></a>00036
6868 <a name="l00038"></a>00038
69 <a name="l00040"></a>00040
70 <a name="l00041"></a>00041 }<span class="comment">//namespace integer</span>
71 <a name="l00042"></a>00042 }<span class="comment">//namespace gtx</span>
72 <a name="l00043"></a>00043 }<span class="comment">//namespace glm</span>
69 <a name="l00039"></a>00039 }<span class="comment">//namespace integer</span>
70 <a name="l00040"></a>00040 }<span class="comment">//namespace gtx</span>
71 <a name="l00041"></a>00041 }<span class="comment">//namespace glm</span>
72 <a name="l00042"></a>00042
73 <a name="l00043"></a>00043 <span class="preprocessor">#include &quot;int_10_10_10_2.inl&quot;</span>
7374 <a name="l00044"></a>00044
74 <a name="l00045"></a>00045 <span class="preprocessor">#include &quot;int_10_10_10_2.inl&quot;</span>
75 <a name="l00045"></a>00045 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::int_10_10_10_2;}
7576 <a name="l00046"></a>00046
76 <a name="l00047"></a>00047 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::int_10_10_10_2;}
77 <a name="l00048"></a>00048
78 <a name="l00049"></a>00049 <span class="preprocessor">#endif//glm_gtx_int_10_10_10_2</span>
77 <a name="l00047"></a>00047 <span class="preprocessor">#endif//glm_gtx_int_10_10_10_2</span>
7978 </pre></div></div>
8079 </div>
8180 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_integer extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtx{
61 <a name="l00027"></a><a class="code" href="a00188.html">00027</a> <span class="keyword">namespace </span>integer
62 <a name="l00028"></a>00028 {
63 <a name="l00031"></a>00031
64 <a name="l00034"></a>00034 <span class="keywordtype">int</span> <a class="code" href="a00267.html#gaf34adb6543aab76a364f40bb77dbaeb8" title="Returns x raised to the y power.">pow</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);
65 <a name="l00035"></a>00035
66 <a name="l00038"></a>00038 <span class="keywordtype">int</span> <a class="code" href="a00267.html#gac6ee2be886e1f3be68adc5ee0552bad7" title="Returns the positive square root of x.">sqrt</a>(<span class="keywordtype">int</span> x);
67 <a name="l00039"></a>00039
68 <a name="l00042"></a>00042 <span class="keywordtype">int</span> <a class="code" href="a00267.html#gaf48bc86895ab82c0e1f6f282d5cb6861" title="Modulus.">mod</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);
69 <a name="l00043"></a>00043
70 <a name="l00046"></a>00046 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
71 <a name="l00047"></a>00047 genType <a class="code" href="a00267.html#gab45d1385cbb477a5684f80b0e24807e4" title="Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension...">factorial</a>(genType <span class="keyword">const</span> &amp; x);
72 <a name="l00048"></a>00048
73 <a name="l00050"></a>00050
74 <a name="l00051"></a>00051 }<span class="comment">//namespace integer</span>
75 <a name="l00052"></a>00052 }<span class="comment">//namespace gtx</span>
76 <a name="l00053"></a>00053 }<span class="comment">//namespace glm</span>
77 <a name="l00054"></a>00054
78 <a name="l00055"></a>00055 <span class="preprocessor">#include &quot;integer.inl&quot;</span>
79 <a name="l00056"></a>00056
80 <a name="l00057"></a>00057 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::integer;}
81 <a name="l00058"></a>00058
82 <a name="l00059"></a>00059 <span class="preprocessor">#endif//glm_gtx_integer</span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00188.html">00025</a> <span class="keyword">namespace </span>integer
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keywordtype">int</span> <a class="code" href="a00266.html#gaf34adb6543aab76a364f40bb77dbaeb8" title="Returns x raised to the y power.">pow</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);
64 <a name="l00033"></a>00033
65 <a name="l00036"></a>00036 <span class="keywordtype">int</span> <a class="code" href="a00266.html#gac6ee2be886e1f3be68adc5ee0552bad7" title="Returns the positive square root of x.">sqrt</a>(<span class="keywordtype">int</span> x);
66 <a name="l00037"></a>00037
67 <a name="l00040"></a>00040 <span class="keywordtype">int</span> <a class="code" href="a00266.html#gaf48bc86895ab82c0e1f6f282d5cb6861" title="Modulus.">mod</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);
68 <a name="l00041"></a>00041
69 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
70 <a name="l00045"></a>00045 genType <a class="code" href="a00266.html#gab45d1385cbb477a5684f80b0e24807e4" title="Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension...">factorial</a>(genType <span class="keyword">const</span> &amp; x);
71 <a name="l00046"></a>00046
72 <a name="l00048"></a>00048 }<span class="comment">//namespace integer</span>
73 <a name="l00049"></a>00049 }<span class="comment">//namespace gtx</span>
74 <a name="l00050"></a>00050 }<span class="comment">//namespace glm</span>
75 <a name="l00051"></a>00051
76 <a name="l00052"></a>00052 <span class="preprocessor">#include &quot;integer.inl&quot;</span>
77 <a name="l00053"></a>00053
78 <a name="l00054"></a>00054 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::integer;}
79 <a name="l00055"></a>00055
80 <a name="l00056"></a>00056 <span class="preprocessor">#endif//glm_gtx_integer</span>
8381 </pre></div></div>
8482 </div>
8583 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_closest_point extension included&quot;)</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5959 <a name="l00024"></a>00024 <span class="preprocessor"></span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm
61 <a name="l00026"></a>00026 {
62 <a name="l00027"></a>00027 <span class="keyword">namespace </span>test{
63 <a name="l00028"></a>00028 <span class="keywordtype">void</span> main_gtx_intesect();
64 <a name="l00029"></a>00029 }<span class="comment">//namespace test</span>
65 <a name="l00030"></a>00030
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>gtx{
67 <a name="l00033"></a><a class="code" href="a00189.html">00033</a> <span class="keyword">namespace </span>intersect
68 <a name="l00034"></a>00034 {
69 <a name="l00037"></a>00037
70 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
71 <a name="l00041"></a>00041 <span class="keywordtype">bool</span> <a class="code" href="a00268.html#ga6ce58ac1371605381abb3e00cfe36d78" title="Compute the intersection of a ray and a triangle.">intersectRayTriangle</a>(
72 <a name="l00042"></a>00042 genType <span class="keyword">const</span> &amp; orig, genType <span class="keyword">const</span> &amp; dir,
73 <a name="l00043"></a>00043 genType <span class="keyword">const</span> &amp; vert0, genType <span class="keyword">const</span> &amp; vert1, genType <span class="keyword">const</span> &amp; vert2,
74 <a name="l00044"></a>00044 genType &amp; baryPosition);
75 <a name="l00045"></a>00045
76 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
77 <a name="l00049"></a>00049 <span class="keywordtype">bool</span> <a class="code" href="a00268.html#ga0922c431baec628c6955011c79d39cd9" title="Compute the intersection of a line and a triangle.">intersectLineTriangle</a>(
78 <a name="l00050"></a>00050 genType <span class="keyword">const</span> &amp; orig, genType <span class="keyword">const</span> &amp; dir,
79 <a name="l00051"></a>00051 genType <span class="keyword">const</span> &amp; vert0, genType <span class="keyword">const</span> &amp; vert1, genType <span class="keyword">const</span> &amp; vert2,
80 <a name="l00052"></a>00052 genType &amp; position);
81 <a name="l00053"></a>00053
82 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
83 <a name="l00057"></a>00057 <span class="keywordtype">bool</span> <a class="code" href="a00268.html#gaa03b236dbd4df6b0519b1f2ceea7ef8c" title="Compute the intersection of a ray and a sphere.">intersectRaySphere</a>(
84 <a name="l00058"></a>00058 genType <span class="keyword">const</span> &amp; orig, genType <span class="keyword">const</span> &amp; dir,
85 <a name="l00059"></a>00059 genType <span class="keyword">const</span> &amp; center, <span class="keyword">typename</span> genType::value_type radius,
86 <a name="l00060"></a>00060 genType &amp; position, genType &amp; normal);
87 <a name="l00061"></a>00061
88 <a name="l00064"></a>00064 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
89 <a name="l00065"></a>00065 <span class="keywordtype">bool</span> <a class="code" href="a00268.html#ga33f0584acca58d7446daf594c3b8295f" title="Compute the intersection of a line and a sphere.">intersectLineSphere</a>(
90 <a name="l00066"></a>00066 genType <span class="keyword">const</span> &amp; point0, genType <span class="keyword">const</span> &amp; point1,
91 <a name="l00067"></a>00067 genType <span class="keyword">const</span> &amp; center, <span class="keyword">typename</span> genType::value_type radius,
92 <a name="l00068"></a>00068 genType &amp; position, genType &amp; normal);
93 <a name="l00069"></a>00069
94 <a name="l00071"></a>00071
95 <a name="l00072"></a>00072 }<span class="comment">//namespace intersect</span>
96 <a name="l00073"></a>00073 }<span class="comment">//namespace gtx</span>
97 <a name="l00074"></a>00074 }<span class="comment">//namespace glm</span>
98 <a name="l00075"></a>00075
99 <a name="l00076"></a>00076 <span class="preprocessor">#include &quot;intersect.inl&quot;</span>
100 <a name="l00077"></a>00077
101 <a name="l00078"></a>00078 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::intersect;}
102 <a name="l00079"></a>00079
103 <a name="l00080"></a>00080 <span class="preprocessor">#endif//glm_gtx_intersect</span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm{
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>gtx{
62 <a name="l00027"></a><a class="code" href="a00189.html">00027</a> <span class="keyword">namespace </span>intersect
63 <a name="l00028"></a>00028 {
64 <a name="l00031"></a>00031
65 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
66 <a name="l00035"></a>00035 <span class="keywordtype">bool</span> <a class="code" href="a00267.html#ga6ce58ac1371605381abb3e00cfe36d78" title="Compute the intersection of a ray and a triangle.">intersectRayTriangle</a>(
67 <a name="l00036"></a>00036 genType <span class="keyword">const</span> &amp; orig, genType <span class="keyword">const</span> &amp; dir,
68 <a name="l00037"></a>00037 genType <span class="keyword">const</span> &amp; vert0, genType <span class="keyword">const</span> &amp; vert1, genType <span class="keyword">const</span> &amp; vert2,
69 <a name="l00038"></a>00038 genType &amp; baryPosition);
70 <a name="l00039"></a>00039
71 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
72 <a name="l00043"></a>00043 <span class="keywordtype">bool</span> <a class="code" href="a00267.html#ga0922c431baec628c6955011c79d39cd9" title="Compute the intersection of a line and a triangle.">intersectLineTriangle</a>(
73 <a name="l00044"></a>00044 genType <span class="keyword">const</span> &amp; orig, genType <span class="keyword">const</span> &amp; dir,
74 <a name="l00045"></a>00045 genType <span class="keyword">const</span> &amp; vert0, genType <span class="keyword">const</span> &amp; vert1, genType <span class="keyword">const</span> &amp; vert2,
75 <a name="l00046"></a>00046 genType &amp; position);
76 <a name="l00047"></a>00047
77 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
78 <a name="l00051"></a>00051 <span class="keywordtype">bool</span> <a class="code" href="a00267.html#gaa03b236dbd4df6b0519b1f2ceea7ef8c" title="Compute the intersection of a ray and a sphere.">intersectRaySphere</a>(
79 <a name="l00052"></a>00052 genType <span class="keyword">const</span> &amp; orig, genType <span class="keyword">const</span> &amp; dir,
80 <a name="l00053"></a>00053 genType <span class="keyword">const</span> &amp; center, <span class="keyword">typename</span> genType::value_type radius,
81 <a name="l00054"></a>00054 genType &amp; position, genType &amp; normal);
82 <a name="l00055"></a>00055
83 <a name="l00058"></a>00058 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
84 <a name="l00059"></a>00059 <span class="keywordtype">bool</span> <a class="code" href="a00267.html#ga33f0584acca58d7446daf594c3b8295f" title="Compute the intersection of a line and a sphere.">intersectLineSphere</a>(
85 <a name="l00060"></a>00060 genType <span class="keyword">const</span> &amp; point0, genType <span class="keyword">const</span> &amp; point1,
86 <a name="l00061"></a>00061 genType <span class="keyword">const</span> &amp; center, <span class="keyword">typename</span> genType::value_type radius,
87 <a name="l00062"></a>00062 genType &amp; position, genType &amp; normal);
88 <a name="l00063"></a>00063
89 <a name="l00065"></a>00065 }<span class="comment">//namespace intersect</span>
90 <a name="l00066"></a>00066 }<span class="comment">//namespace gtx</span>
91 <a name="l00067"></a>00067 }<span class="comment">//namespace glm</span>
92 <a name="l00068"></a>00068
93 <a name="l00069"></a>00069 <span class="preprocessor">#include &quot;intersect.inl&quot;</span>
94 <a name="l00070"></a>00070
95 <a name="l00071"></a>00071 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::intersect;}
96 <a name="l00072"></a>00072
97 <a name="l00073"></a>00073 <span class="preprocessor">#endif//glm_gtx_intersect</span>
10498 </pre></div></div>
10599 </div>
106100 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_log_base extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">void</span> main_ext_gtx_log_base();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00190.html">00031</a> <span class="keyword">namespace </span>log_base
66 <a name="l00032"></a>00032 {
67 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
69 <a name="l00039"></a>00039 genType <a class="code" href="a00269.html#ga78c6b55186a549948b9783bdee1dd5e0" title="Logarithm for any base.">log</a>(
70 <a name="l00040"></a>00040 genType <span class="keyword">const</span> &amp; x,
71 <a name="l00041"></a>00041 genType <span class="keyword">const</span> &amp; base);
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00190.html">00025</a> <span class="keyword">namespace </span>log_base
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
64 <a name="l00033"></a>00033 genType <a class="code" href="a00268.html#ga78c6b55186a549948b9783bdee1dd5e0" title="Logarithm for any base.">log</a>(
65 <a name="l00034"></a>00034 genType <span class="keyword">const</span> &amp; x,
66 <a name="l00035"></a>00035 genType <span class="keyword">const</span> &amp; base);
67 <a name="l00036"></a>00036
68 <a name="l00038"></a>00038
69 <a name="l00039"></a>00039 }<span class="comment">//namespace extend</span>
70 <a name="l00040"></a>00040 }<span class="comment">//namespace gtx</span>
71 <a name="l00041"></a>00041 }<span class="comment">//namespace glm</span>
7272 <a name="l00042"></a>00042
73 <a name="l00043"></a>00043 <span class="preprocessor">#include &quot;log_base.inl&quot;</span>
7374 <a name="l00044"></a>00044
74 <a name="l00045"></a>00045 }<span class="comment">//namespace extend</span>
75 <a name="l00046"></a>00046 }<span class="comment">//namespace gtx</span>
76 <a name="l00047"></a>00047 }<span class="comment">//namespace glm</span>
77 <a name="l00048"></a>00048
78 <a name="l00049"></a>00049 <span class="preprocessor">#include &quot;log_base.inl&quot;</span>
79 <a name="l00050"></a>00050
80 <a name="l00051"></a>00051 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::log_base;}
81 <a name="l00052"></a>00052
82 <a name="l00053"></a>00053 <span class="preprocessor">#endif//glm_gtx_log_base</span>
75 <a name="l00045"></a>00045 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::log_base;}
76 <a name="l00046"></a>00046
77 <a name="l00047"></a>00047 <span class="preprocessor">#endif//glm_gtx_log_base</span>
8378 </pre></div></div>
8479 </div>
8580 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6969 <a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor"># This could be handy for archiving the generated documentation or </span>
7070 <a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor"># if some version control system is used.</span>
7171 <a name="l00033"></a>00033 <span class="preprocessor"></span>
72 <a name="l00034"></a>00034 PROJECT_NUMBER = 0.9.1
72 <a name="l00034"></a>00034 PROJECT_NUMBER = 0.9.2
7373 <a name="l00035"></a>00035
7474 <a name="l00036"></a>00036 <span class="preprocessor"># Using the PROJECT_BRIEF tag one can provide an optional one line description</span>
7575 <a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor"># for a project that appears at the top of each page and should give viewer</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
5858 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
5959 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtc{
60 <a name="l00026"></a><a class="code" href="a00160.html">00026</a> <span class="keyword">namespace </span>matrix_access
61 <a name="l00027"></a>00027 {
62 <a name="l00030"></a>00030
63 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
64 <a name="l00034"></a>00034 <span class="keyword">typename</span> genType::row_type <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">row</a>(
65 <a name="l00035"></a>00035 genType <span class="keyword">const</span> &amp; m,
66 <a name="l00036"></a>00036 <span class="keywordtype">int</span> index);
67 <a name="l00037"></a>00037
68 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
69 <a name="l00041"></a>00041 genType <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">row</a>(
70 <a name="l00042"></a>00042 genType <span class="keyword">const</span> &amp; m,
71 <a name="l00043"></a>00043 <span class="keywordtype">int</span> index,
72 <a name="l00044"></a>00044 <span class="keyword">typename</span> genType::row_type <span class="keyword">const</span> &amp; x);
73 <a name="l00045"></a>00045
74 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
75 <a name="l00049"></a>00049 <span class="keyword">typename</span> genType::col_type <a class="code" href="a00241.html#ga0e92f78abad525682684b0c262bbffe4" title="Get a specific column of a matrix.">column</a>(
76 <a name="l00050"></a>00050 genType <span class="keyword">const</span> &amp; m,
77 <a name="l00051"></a>00051 <span class="keywordtype">int</span> index);
78 <a name="l00052"></a>00052
79 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
80 <a name="l00056"></a>00056 genType <a class="code" href="a00241.html#ga0e92f78abad525682684b0c262bbffe4" title="Get a specific column of a matrix.">column</a>(
81 <a name="l00057"></a>00057 genType <span class="keyword">const</span> &amp; m,
82 <a name="l00058"></a>00058 <span class="keywordtype">int</span> index,
83 <a name="l00059"></a>00059 <span class="keyword">typename</span> genType::col_type <span class="keyword">const</span> &amp; x);
84 <a name="l00060"></a>00060
85 <a name="l00062"></a>00062
86 <a name="l00063"></a>00063 }<span class="comment">//namespace matrix_access</span>
87 <a name="l00064"></a>00064 }<span class="comment">//namespace gtc</span>
88 <a name="l00065"></a>00065 }<span class="comment">//namespace glm</span>
89 <a name="l00066"></a>00066
90 <a name="l00067"></a>00067 <span class="preprocessor">#include &quot;matrix_access.inl&quot;</span>
91 <a name="l00068"></a>00068
92 <a name="l00069"></a>00069 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::matrix_access;}
93 <a name="l00070"></a>00070
94 <a name="l00071"></a>00071 <span class="preprocessor">#endif//glm_gtc_matrix_access</span>
60 <a name="l00025"></a><a class="code" href="a00160.html">00025</a> <span class="keyword">namespace </span>matrix_access
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
64 <a name="l00033"></a>00033 <span class="keyword">typename</span> genType::row_type <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">row</a>(
65 <a name="l00034"></a>00034 genType <span class="keyword">const</span> &amp; m,
66 <a name="l00035"></a>00035 <span class="keywordtype">int</span> index);
67 <a name="l00036"></a>00036
68 <a name="l00039"></a>00039 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
69 <a name="l00040"></a>00040 genType <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">row</a>(
70 <a name="l00041"></a>00041 genType <span class="keyword">const</span> &amp; m,
71 <a name="l00042"></a>00042 <span class="keywordtype">int</span> index,
72 <a name="l00043"></a>00043 <span class="keyword">typename</span> genType::row_type <span class="keyword">const</span> &amp; x);
73 <a name="l00044"></a>00044
74 <a name="l00047"></a>00047 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
75 <a name="l00048"></a>00048 <span class="keyword">typename</span> genType::col_type <a class="code" href="a00240.html#ga0e92f78abad525682684b0c262bbffe4" title="Get a specific column of a matrix.">column</a>(
76 <a name="l00049"></a>00049 genType <span class="keyword">const</span> &amp; m,
77 <a name="l00050"></a>00050 <span class="keywordtype">int</span> index);
78 <a name="l00051"></a>00051
79 <a name="l00054"></a>00054 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
80 <a name="l00055"></a>00055 genType <a class="code" href="a00240.html#ga0e92f78abad525682684b0c262bbffe4" title="Get a specific column of a matrix.">column</a>(
81 <a name="l00056"></a>00056 genType <span class="keyword">const</span> &amp; m,
82 <a name="l00057"></a>00057 <span class="keywordtype">int</span> index,
83 <a name="l00058"></a>00058 <span class="keyword">typename</span> genType::col_type <span class="keyword">const</span> &amp; x);
84 <a name="l00059"></a>00059
85 <a name="l00061"></a>00061
86 <a name="l00062"></a>00062 }<span class="comment">//namespace matrix_access</span>
87 <a name="l00063"></a>00063 }<span class="comment">//namespace gtc</span>
88 <a name="l00064"></a>00064 }<span class="comment">//namespace glm</span>
89 <a name="l00065"></a>00065
90 <a name="l00066"></a>00066 <span class="preprocessor">#include &quot;matrix_access.inl&quot;</span>
91 <a name="l00067"></a>00067
92 <a name="l00068"></a>00068 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::matrix_access;}
93 <a name="l00069"></a>00069
94 <a name="l00070"></a>00070 <span class="preprocessor">#endif//glm_gtc_matrix_access</span>
9595 </pre></div></div>
9696 </div>
9797 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_cross_product extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">void</span> main_gtx_matrix_cross_product();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00191.html">00031</a> <span class="keyword">namespace </span>matrix_cross_product
66 <a name="l00032"></a>00032 {
67 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00039"></a>00039 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00270.html#gaa153d0f2600403c659a81a39b59b0f2c" title="Build a cross product matrix.">matrixCross3</a>(
70 <a name="l00040"></a>00040 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
71 <a name="l00041"></a>00041
72 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
73 <a name="l00045"></a>00045 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00270.html#ga8cb94c98874b9b3deff5ad590e0cac23" title="Build a cross product matrix.">matrixCross4</a>(
74 <a name="l00046"></a>00046 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
75 <a name="l00047"></a>00047
76 <a name="l00049"></a>00049
77 <a name="l00050"></a>00050 }<span class="comment">//namespace matrix_cross_product</span>
78 <a name="l00051"></a>00051 }<span class="comment">//namespace gtx</span>
79 <a name="l00052"></a>00052 }<span class="comment">//namespace glm</span>
80 <a name="l00053"></a>00053
81 <a name="l00054"></a>00054 <span class="preprocessor">#include &quot;matrix_cross_product.inl&quot;</span>
82 <a name="l00055"></a>00055
83 <a name="l00056"></a>00056 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::matrix_cross_product;}
84 <a name="l00057"></a>00057
85 <a name="l00058"></a>00058 <span class="preprocessor">#endif//glm_gtx_matrix_cross_product</span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00191.html">00025</a> <span class="keyword">namespace </span>matrix_cross_product
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
64 <a name="l00033"></a>00033 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00269.html#gaa153d0f2600403c659a81a39b59b0f2c" title="Build a cross product matrix.">matrixCross3</a>(
65 <a name="l00034"></a>00034 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
66 <a name="l00035"></a>00035
67 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
68 <a name="l00039"></a>00039 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00269.html#ga8cb94c98874b9b3deff5ad590e0cac23" title="Build a cross product matrix.">matrixCross4</a>(
69 <a name="l00040"></a>00040 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
70 <a name="l00041"></a>00041
71 <a name="l00043"></a>00043 }<span class="comment">//namespace matrix_cross_product</span>
72 <a name="l00044"></a>00044 }<span class="comment">//namespace gtx</span>
73 <a name="l00045"></a>00045 }<span class="comment">//namespace glm</span>
74 <a name="l00046"></a>00046
75 <a name="l00047"></a>00047 <span class="preprocessor">#include &quot;matrix_cross_product.inl&quot;</span>
76 <a name="l00048"></a>00048
77 <a name="l00049"></a>00049 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::matrix_cross_product;}
78 <a name="l00050"></a>00050
79 <a name="l00051"></a>00051 <span class="preprocessor">#endif//glm_gtx_matrix_cross_product</span>
8680 </pre></div></div>
8781 </div>
8882 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_matrix_integer extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">bool</span> main_gtc_matrix_integer();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtc{
65 <a name="l00031"></a><a class="code" href="a00161.html">00031</a> <span class="keyword">namespace </span>matrix_integer
66 <a name="l00032"></a>00032 {
67 <a name="l00035"></a>00035
68 <a name="l00036"></a><a class="code" href="a00242.html#ga16e9ac01daa94cd41baca57b1720c4d2">00036</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;highp_int&gt;</a> <a class="code" href="a00242.html#ga16e9ac01daa94cd41baca57b1720c4d2" title="High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat2</a>;
69 <a name="l00037"></a><a class="code" href="a00242.html#ga1aab5488573c134db709107b0aa45060">00037</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;highp_int&gt;</a> <a class="code" href="a00242.html#ga1aab5488573c134db709107b0aa45060" title="High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat3</a>;
70 <a name="l00038"></a><a class="code" href="a00242.html#ga001cb3722aece6e478d1c013cd561248">00038</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;highp_int&gt;</a> <a class="code" href="a00242.html#ga001cb3722aece6e478d1c013cd561248" title="High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat4</a>;
71 <a name="l00039"></a>00039
72 <a name="l00040"></a><a class="code" href="a00242.html#ga503734c9f848968b3ede74017d3927e0">00040</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;highp_int&gt;</a> <a class="code" href="a00242.html#ga503734c9f848968b3ede74017d3927e0" title="High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat2x2</a>;
73 <a name="l00041"></a><a class="code" href="a00242.html#gae4ac618eb06b7288e4a14633971320ed">00041</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;highp_int&gt;</a> <a class="code" href="a00242.html#gae4ac618eb06b7288e4a14633971320ed" title="High-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat2x3</a>;
74 <a name="l00042"></a><a class="code" href="a00242.html#ga73ca75871a9a43972be9bb4b295b1e3f">00042</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;highp_int&gt;</a> <a class="code" href="a00242.html#ga73ca75871a9a43972be9bb4b295b1e3f" title="High-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat2x4</a>;
75 <a name="l00043"></a><a class="code" href="a00242.html#ga8e2e34fc5f030a888cff9b9fdf169c01">00043</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;highp_int&gt;</a> <a class="code" href="a00242.html#ga8e2e34fc5f030a888cff9b9fdf169c01" title="High-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat3x2</a>;
76 <a name="l00044"></a><a class="code" href="a00242.html#ga20a5eb2dc99580c5eee0d1287a81dc71">00044</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;highp_int&gt;</a> <a class="code" href="a00242.html#ga20a5eb2dc99580c5eee0d1287a81dc71" title="High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat3x3</a>;
77 <a name="l00045"></a><a class="code" href="a00242.html#ga52c1fd71b37cd7534b3ba05cfddf5641">00045</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;highp_int&gt;</a> <a class="code" href="a00242.html#ga52c1fd71b37cd7534b3ba05cfddf5641" title="High-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat3x4</a>;
78 <a name="l00046"></a><a class="code" href="a00242.html#ga8d5483e43eaf948445dad0316adfd065">00046</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;highp_int&gt;</a> <a class="code" href="a00242.html#ga8d5483e43eaf948445dad0316adfd065" title="High-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat4x2</a>;
79 <a name="l00047"></a><a class="code" href="a00242.html#ga39096445d642ca381cec94a9dcefa49e">00047</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;highp_int&gt;</a> <a class="code" href="a00242.html#ga39096445d642ca381cec94a9dcefa49e" title="High-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat4x3</a>;
80 <a name="l00048"></a><a class="code" href="a00242.html#ga1956c46bca65b5b00c01250e0d5f1de6">00048</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;highp_int&gt;</a> <a class="code" href="a00242.html#ga1956c46bca65b5b00c01250e0d5f1de6" title="High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat4x4</a>;
81 <a name="l00049"></a>00049
82 <a name="l00050"></a><a class="code" href="a00242.html#ga143ecf702b39ac7730009796b5d61b48">00050</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;mediump_int&gt;</a> <a class="code" href="a00242.html#ga143ecf702b39ac7730009796b5d61b48" title="Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat2</a>;
83 <a name="l00051"></a><a class="code" href="a00242.html#ga88879288540afc046b8dcf9574f39599">00051</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;mediump_int&gt;</a> <a class="code" href="a00242.html#ga88879288540afc046b8dcf9574f39599" title="Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat3</a>;
84 <a name="l00052"></a><a class="code" href="a00242.html#ga8f1cc05b68f13365c227d40cb52e6a6d">00052</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;mediump_int&gt;</a> <a class="code" href="a00242.html#ga8f1cc05b68f13365c227d40cb52e6a6d" title="Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat4</a>;
85 <a name="l00053"></a>00053
86 <a name="l00054"></a><a class="code" href="a00242.html#ga14f7ebf70ea05156698a0cb403dff827">00054</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;mediump_int&gt;</a> <a class="code" href="a00242.html#ga14f7ebf70ea05156698a0cb403dff827" title="Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat2x2</a>;
87 <a name="l00055"></a><a class="code" href="a00242.html#ga971f0d97d5aa82d96885b23132260bc5">00055</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;mediump_int&gt;</a> <a class="code" href="a00242.html#ga971f0d97d5aa82d96885b23132260bc5" title="Medium-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat2x3</a>;
88 <a name="l00056"></a><a class="code" href="a00242.html#gaa912743dd1649cdc2231ad08c7b3ad83">00056</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;mediump_int&gt;</a> <a class="code" href="a00242.html#gaa912743dd1649cdc2231ad08c7b3ad83" title="Medium-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat2x4</a>;
89 <a name="l00057"></a><a class="code" href="a00242.html#ga846e335231d6d156ce1dff7ee8d247c0">00057</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;mediump_int&gt;</a> <a class="code" href="a00242.html#ga846e335231d6d156ce1dff7ee8d247c0" title="Medium-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat3x2</a>;
90 <a name="l00058"></a><a class="code" href="a00242.html#gae49f27a71c9643dc6e852d29de1a7337">00058</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;mediump_int&gt;</a> <a class="code" href="a00242.html#gae49f27a71c9643dc6e852d29de1a7337" title="Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat3x3</a>;
91 <a name="l00059"></a><a class="code" href="a00242.html#ga5c32e78899b8ddc6d38a46a059dea62b">00059</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;mediump_int&gt;</a> <a class="code" href="a00242.html#ga5c32e78899b8ddc6d38a46a059dea62b" title="Medium-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat3x4</a>;
92 <a name="l00060"></a><a class="code" href="a00242.html#gafa1f18250380f03bcdba92af051cf436">00060</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;mediump_int&gt;</a> <a class="code" href="a00242.html#gafa1f18250380f03bcdba92af051cf436" title="Medium-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat4x2</a>;
93 <a name="l00061"></a><a class="code" href="a00242.html#ga6ce6435a08574b6d53933bce0fb99aa9">00061</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;mediump_int&gt;</a> <a class="code" href="a00242.html#ga6ce6435a08574b6d53933bce0fb99aa9" title="Medium-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat4x3</a>;
94 <a name="l00062"></a><a class="code" href="a00242.html#gad548e325172bf111285d710e0aedada6">00062</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;mediump_int&gt;</a> <a class="code" href="a00242.html#gad548e325172bf111285d710e0aedada6" title="Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat4x4</a>;
95 <a name="l00063"></a>00063
96 <a name="l00064"></a><a class="code" href="a00242.html#ga53ba084d560fbe0a32409b7ad29a405f">00064</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;lowp_int&gt;</a> <a class="code" href="a00242.html#ga53ba084d560fbe0a32409b7ad29a405f" title="Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat2</a>;
97 <a name="l00065"></a><a class="code" href="a00242.html#ga602bbe8185b35c8e02038924c95c526c">00065</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;lowp_int&gt;</a> <a class="code" href="a00242.html#ga602bbe8185b35c8e02038924c95c526c" title="Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat3</a>;
98 <a name="l00066"></a><a class="code" href="a00242.html#ga6e0f075c487aee31df91d9dbd71db88d">00066</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;lowp_int&gt;</a> <a class="code" href="a00242.html#ga6e0f075c487aee31df91d9dbd71db88d" title="Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat4</a>;
99 <a name="l00067"></a>00067
100 <a name="l00068"></a><a class="code" href="a00242.html#ga4cb2449be4c36270d0f6c2849f72037c">00068</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;lowp_int&gt;</a> <a class="code" href="a00242.html#ga4cb2449be4c36270d0f6c2849f72037c" title="Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat2x2</a>;
101 <a name="l00069"></a><a class="code" href="a00242.html#gad9cf0368a1cd253d87307c9784ea4c56">00069</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;lowp_int&gt;</a> <a class="code" href="a00242.html#gad9cf0368a1cd253d87307c9784ea4c56" title="Low-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat2x3</a>;
102 <a name="l00070"></a><a class="code" href="a00242.html#gab065fa79d6c42b6df2e261c76b359524">00070</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;lowp_int&gt;</a> <a class="code" href="a00242.html#gab065fa79d6c42b6df2e261c76b359524" title="Low-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat2x4</a>;
103 <a name="l00071"></a><a class="code" href="a00242.html#gaf96385c22d0e6876b8b5c3dcc2e1d91a">00071</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;lowp_int&gt;</a> <a class="code" href="a00242.html#gaf96385c22d0e6876b8b5c3dcc2e1d91a" title="Low-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat3x2</a>;
104 <a name="l00072"></a><a class="code" href="a00242.html#ga4da80362c97eb9abb48cedc5a444daf6">00072</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;lowp_int&gt;</a> <a class="code" href="a00242.html#ga4da80362c97eb9abb48cedc5a444daf6" title="Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat3x3</a>;
105 <a name="l00073"></a><a class="code" href="a00242.html#ga7114fd267da92d44c98a440704e0be79">00073</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;lowp_int&gt;</a> <a class="code" href="a00242.html#ga7114fd267da92d44c98a440704e0be79" title="Low-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat3x4</a>;
106 <a name="l00074"></a><a class="code" href="a00242.html#gab9357fc7eb98b919fba7f1656fd548a8">00074</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;lowp_int&gt;</a> <a class="code" href="a00242.html#gab9357fc7eb98b919fba7f1656fd548a8" title="Low-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat4x2</a>;
107 <a name="l00075"></a><a class="code" href="a00242.html#gac21d66a9936eb54d12b8e57b08e589bc">00075</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;lowp_int&gt;</a> <a class="code" href="a00242.html#gac21d66a9936eb54d12b8e57b08e589bc" title="Low-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat4x3</a>;
108 <a name="l00076"></a><a class="code" href="a00242.html#gad30fba4d4c94eda205b3f768274f0893">00076</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;lowp_int&gt;</a> <a class="code" href="a00242.html#gad30fba4d4c94eda205b3f768274f0893" title="Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat4x4</a>;
109 <a name="l00077"></a>00077
110 <a name="l00078"></a><a class="code" href="a00242.html#ga9917f09e4bbb414e5b10f5e00c7de70d">00078</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;highp_uint&gt;</a> <a class="code" href="a00242.html#ga9917f09e4bbb414e5b10f5e00c7de70d" title="High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat2</a>;
111 <a name="l00079"></a><a class="code" href="a00242.html#gac7928fd1dbf3decc2463e0044d10ba14">00079</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;highp_uint&gt;</a> <a class="code" href="a00242.html#gac7928fd1dbf3decc2463e0044d10ba14" title="High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat3</a>;
112 <a name="l00080"></a><a class="code" href="a00242.html#ga2f29d9ef4636752de31b92a56b44bd8a">00080</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;highp_uint&gt;</a> <a class="code" href="a00242.html#ga2f29d9ef4636752de31b92a56b44bd8a" title="High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat4</a>;
113 <a name="l00081"></a>00081
114 <a name="l00082"></a><a class="code" href="a00242.html#gac46ccd4fa290488681c4574e5e562d55">00082</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;highp_uint&gt;</a> <a class="code" href="a00242.html#gac46ccd4fa290488681c4574e5e562d55" title="High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat2x2</a>;
115 <a name="l00083"></a><a class="code" href="a00242.html#ga81a27f521f29ff4ace4d1e4cde1de2a5">00083</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;highp_uint&gt;</a> <a class="code" href="a00242.html#ga81a27f521f29ff4ace4d1e4cde1de2a5" title="High-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat2x3</a>;
116 <a name="l00084"></a><a class="code" href="a00242.html#gab6c2023040df42564c16a2b464adba9b">00084</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;highp_uint&gt;</a> <a class="code" href="a00242.html#gab6c2023040df42564c16a2b464adba9b" title="High-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat2x4</a>;
117 <a name="l00085"></a><a class="code" href="a00242.html#gab9cdf3c2c04d7346cc45b212a904f02d">00085</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;highp_uint&gt;</a> <a class="code" href="a00242.html#gab9cdf3c2c04d7346cc45b212a904f02d" title="High-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat3x2</a>;
118 <a name="l00086"></a><a class="code" href="a00242.html#gabb4b97694034f2d650dca359db023eaa">00086</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;highp_uint&gt;</a> <a class="code" href="a00242.html#gabb4b97694034f2d650dca359db023eaa" title="High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat3x3</a>;
119 <a name="l00087"></a><a class="code" href="a00242.html#ga8c7be88fb8d49dd55eb6892da1bf1966">00087</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;highp_uint&gt;</a> <a class="code" href="a00242.html#ga8c7be88fb8d49dd55eb6892da1bf1966" title="High-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat3x4</a>;
120 <a name="l00088"></a><a class="code" href="a00242.html#ga84ddf69a6f1912a196c505c4a8fe817b">00088</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;highp_uint&gt;</a> <a class="code" href="a00242.html#ga84ddf69a6f1912a196c505c4a8fe817b" title="High-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat4x2</a>;
121 <a name="l00089"></a><a class="code" href="a00242.html#gaba6def08906f182866bd945babf9a5f7">00089</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;highp_uint&gt;</a> <a class="code" href="a00242.html#gaba6def08906f182866bd945babf9a5f7" title="High-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat4x3</a>;
122 <a name="l00090"></a><a class="code" href="a00242.html#gaff8f7574251ea10466c0f31ca1e83f6d">00090</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;highp_uint&gt;</a> <a class="code" href="a00242.html#gaff8f7574251ea10466c0f31ca1e83f6d" title="High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat4x4</a>;
123 <a name="l00091"></a>00091
124 <a name="l00092"></a><a class="code" href="a00242.html#ga248ef3b18ce8e7974a1b04b9e10b0d70">00092</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;mediump_uint&gt;</a> <a class="code" href="a00242.html#ga248ef3b18ce8e7974a1b04b9e10b0d70" title="Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat2</a>;
125 <a name="l00093"></a><a class="code" href="a00242.html#gaa802202181dac79e9dcd7848af5b57df">00093</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;mediump_uint&gt;</a> <a class="code" href="a00242.html#gaa802202181dac79e9dcd7848af5b57df" title="Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat3</a>;
126 <a name="l00094"></a><a class="code" href="a00242.html#ga3981b8297512d35fe39413149e3f57ad">00094</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;mediump_uint&gt;</a> <a class="code" href="a00242.html#ga3981b8297512d35fe39413149e3f57ad" title="Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat4</a>;
127 <a name="l00095"></a>00095
128 <a name="l00096"></a><a class="code" href="a00242.html#ga4deef9aaf20528b594af15e0d8a8394a">00096</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;mediump_uint&gt;</a> <a class="code" href="a00242.html#ga4deef9aaf20528b594af15e0d8a8394a" title="Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat2x2</a>;
129 <a name="l00097"></a><a class="code" href="a00242.html#ga57dcd02ce5c008214d1ac033d62237f4">00097</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;mediump_uint&gt;</a> <a class="code" href="a00242.html#ga57dcd02ce5c008214d1ac033d62237f4" title="Medium-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat2x3</a>;
130 <a name="l00098"></a><a class="code" href="a00242.html#gaa0005c075583fa42425573df59ae47b7">00098</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;mediump_uint&gt;</a> <a class="code" href="a00242.html#gaa0005c075583fa42425573df59ae47b7" title="Medium-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat2x4</a>;
131 <a name="l00099"></a><a class="code" href="a00242.html#gac65dc743ab57f960c9f77eb817a2b375">00099</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;mediump_uint&gt;</a> <a class="code" href="a00242.html#gac65dc743ab57f960c9f77eb817a2b375" title="Medium-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat3x2</a>;
132 <a name="l00100"></a><a class="code" href="a00242.html#ga69d2278480a495af358ba198cdd708d1">00100</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;mediump_uint&gt;</a> <a class="code" href="a00242.html#ga69d2278480a495af358ba198cdd708d1" title="Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat3x3</a>;
133 <a name="l00101"></a><a class="code" href="a00242.html#ga65ed7a18729feae1ca61a8ab573fe5db">00101</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;mediump_uint&gt;</a> <a class="code" href="a00242.html#ga65ed7a18729feae1ca61a8ab573fe5db" title="Medium-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat3x4</a>;
134 <a name="l00102"></a><a class="code" href="a00242.html#gabab2363c9e7691ba23319174dd3b211e">00102</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;mediump_uint&gt;</a> <a class="code" href="a00242.html#gabab2363c9e7691ba23319174dd3b211e" title="Medium-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat4x2</a>;
135 <a name="l00103"></a><a class="code" href="a00242.html#gaeb0dd2f67c17909a8747089bee0cf301">00103</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;mediump_uint&gt;</a> <a class="code" href="a00242.html#gaeb0dd2f67c17909a8747089bee0cf301" title="Medium-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat4x3</a>;
136 <a name="l00104"></a><a class="code" href="a00242.html#gad8086f60b4190c4b567bded1d0fb4edb">00104</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;mediump_uint&gt;</a> <a class="code" href="a00242.html#gad8086f60b4190c4b567bded1d0fb4edb" title="Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat4x4</a>;
137 <a name="l00105"></a>00105
138 <a name="l00106"></a><a class="code" href="a00242.html#gaf5fd055eb478c690723f3db742fed7ee">00106</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;lowp_uint&gt;</a> <a class="code" href="a00242.html#gaf5fd055eb478c690723f3db742fed7ee" title="Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat2</a>;
139 <a name="l00107"></a><a class="code" href="a00242.html#ga9b9e4dbbb43103f29e432c611ba2a8e9">00107</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;lowp_uint&gt;</a> <a class="code" href="a00242.html#ga9b9e4dbbb43103f29e432c611ba2a8e9" title="Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat3</a>;
140 <a name="l00108"></a><a class="code" href="a00242.html#gabe8174acf8b97bba515e77b050dee149">00108</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;lowp_uint&gt;</a> <a class="code" href="a00242.html#gabe8174acf8b97bba515e77b050dee149" title="Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat4</a>;
141 <a name="l00109"></a>00109
142 <a name="l00110"></a><a class="code" href="a00242.html#ga2041f6554b1e8ed2a6b74cffa2b8d917">00110</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;lowp_uint&gt;</a> <a class="code" href="a00242.html#ga2041f6554b1e8ed2a6b74cffa2b8d917" title="Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat2x2</a>;
143 <a name="l00111"></a><a class="code" href="a00242.html#ga2831bb6c3ed95cfefc2fffd315d31904">00111</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;lowp_uint&gt;</a> <a class="code" href="a00242.html#ga2831bb6c3ed95cfefc2fffd315d31904" title="Low-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat2x3</a>;
144 <a name="l00112"></a><a class="code" href="a00242.html#ga7e15349e63fbb93ce8ab047a02f0fe73">00112</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;lowp_uint&gt;</a> <a class="code" href="a00242.html#ga7e15349e63fbb93ce8ab047a02f0fe73" title="Low-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat2x4</a>;
145 <a name="l00113"></a><a class="code" href="a00242.html#ga9bb2ec92ae5a588cc2f2487a2b39091a">00113</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;lowp_uint&gt;</a> <a class="code" href="a00242.html#ga9bb2ec92ae5a588cc2f2487a2b39091a" title="Low-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat3x2</a>;
146 <a name="l00114"></a><a class="code" href="a00242.html#ga0cd96f6db0335fec76d521c04e55aa72">00114</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;lowp_uint&gt;</a> <a class="code" href="a00242.html#ga0cd96f6db0335fec76d521c04e55aa72" title="Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat3x3</a>;
147 <a name="l00115"></a><a class="code" href="a00242.html#ga74afefa6d98ed4013b0b8973aedaa3c3">00115</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;lowp_uint&gt;</a> <a class="code" href="a00242.html#ga74afefa6d98ed4013b0b8973aedaa3c3" title="Low-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat3x4</a>;
148 <a name="l00116"></a><a class="code" href="a00242.html#ga6c87f764b7e37b732701d12a5dd99b60">00116</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;lowp_uint&gt;</a> <a class="code" href="a00242.html#ga6c87f764b7e37b732701d12a5dd99b60" title="Low-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat4x2</a>;
149 <a name="l00117"></a><a class="code" href="a00242.html#gaf0ec78e818b558be26ab100630bb1a2f">00117</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;lowp_uint&gt;</a> <a class="code" href="a00242.html#gaf0ec78e818b558be26ab100630bb1a2f" title="Low-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat4x3</a>;
150 <a name="l00118"></a><a class="code" href="a00242.html#ga8afd2898b4e81ddfcf4826a1f09261df">00118</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;lowp_uint&gt;</a> <a class="code" href="a00242.html#ga8afd2898b4e81ddfcf4826a1f09261df" title="Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat4x4</a>;
151 <a name="l00119"></a>00119
152 <a name="l00120"></a>00120 <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_INT))</span>
153 <a name="l00121"></a>00121 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">highp_imat2</a> <a class="code" href="a00242.html#gaabe04f9948d4a213bb1c20137de03e01" title="Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">imat2</a>;
154 <a name="l00122"></a>00122 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">highp_imat3</a> <a class="code" href="a00242.html#ga038f68437155ffa3c2583a15264a8195" title="Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">imat3</a>;
155 <a name="l00123"></a>00123 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">highp_imat4</a> <a class="code" href="a00242.html#ga96b0d26a33b81bb6a60ca0f39682f7eb" title="Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">imat4</a>;
156 <a name="l00124"></a>00124 <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">highp_imat2x2</a> <a class="code" href="a00242.html#gaa4732a240522ad9bc28144fda2fc14ec" title="Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">imat2x2</a>;
157 <a name="l00125"></a>00125 <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">highp_imat2x3</a> <a class="code" href="a00242.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605" title="Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">imat2x3</a>;
158 <a name="l00126"></a>00126 <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">highp_imat2x4</a> <a class="code" href="a00242.html#ga9d8faafdca42583d67e792dd038fc668" title="Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">imat2x4</a>;
159 <a name="l00127"></a>00127 <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">highp_imat3x2</a> <a class="code" href="a00242.html#ga7b33bbe4f12c060892bd3cc8d4cd737f" title="Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">imat3x2</a>;
160 <a name="l00128"></a>00128 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">highp_imat3x3</a> <a class="code" href="a00242.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4" title="Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">imat3x3</a>;
161 <a name="l00129"></a>00129 <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">highp_imat3x4</a> <a class="code" href="a00242.html#ga6e9ce23496d8b08dfc302d4039694b58" title="Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">imat3x4</a>;
162 <a name="l00130"></a>00130 <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">highp_imat4x2</a> <a class="code" href="a00242.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa" title="Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">imat4x2</a>;
163 <a name="l00131"></a>00131 <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">highp_imat4x3</a> <a class="code" href="a00242.html#ga705ee0bf49d6c3de4404ce2481bf0df5" title="Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">imat4x3</a>;
164 <a name="l00132"></a>00132 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">highp_imat4x4</a> <a class="code" href="a00242.html#ga43ed5e4f475b6f4cad7cba78f29c405b" title="Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">imat4x4</a>;
165 <a name="l00133"></a>00133 <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_INT))</span>
166 <a name="l00134"></a>00134 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">lowp_imat2</a> <a class="code" href="a00242.html#gaabe04f9948d4a213bb1c20137de03e01" title="Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">imat2</a>;
167 <a name="l00135"></a>00135 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">lowp_imat3</a> <a class="code" href="a00242.html#ga038f68437155ffa3c2583a15264a8195" title="Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">imat3</a>;
168 <a name="l00136"></a>00136 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">lowp_imat4</a> <a class="code" href="a00242.html#ga96b0d26a33b81bb6a60ca0f39682f7eb" title="Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">imat4</a>;
169 <a name="l00137"></a>00137 <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">lowp_imat2x2</a> <a class="code" href="a00242.html#gaa4732a240522ad9bc28144fda2fc14ec" title="Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">imat2x2</a>;
170 <a name="l00138"></a>00138 <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">lowp_imat2x3</a> <a class="code" href="a00242.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605" title="Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">imat2x3</a>;
171 <a name="l00139"></a>00139 <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">lowp_imat2x4</a> <a class="code" href="a00242.html#ga9d8faafdca42583d67e792dd038fc668" title="Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">imat2x4</a>;
172 <a name="l00140"></a>00140 <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">lowp_imat3x2</a> <a class="code" href="a00242.html#ga7b33bbe4f12c060892bd3cc8d4cd737f" title="Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">imat3x2</a>;
173 <a name="l00141"></a>00141 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">lowp_imat3x3</a> <a class="code" href="a00242.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4" title="Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">imat3x3</a>;
174 <a name="l00142"></a>00142 <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">lowp_imat3x4</a> <a class="code" href="a00242.html#ga6e9ce23496d8b08dfc302d4039694b58" title="Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">imat3x4</a>;
175 <a name="l00143"></a>00143 <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">lowp_imat4x2</a> <a class="code" href="a00242.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa" title="Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">imat4x2</a>;
176 <a name="l00144"></a>00144 <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">lowp_imat4x3</a> <a class="code" href="a00242.html#ga705ee0bf49d6c3de4404ce2481bf0df5" title="Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">imat4x3</a>;
177 <a name="l00145"></a>00145 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">lowp_imat4x4</a> <a class="code" href="a00242.html#ga43ed5e4f475b6f4cad7cba78f29c405b" title="Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">imat4x4</a>;
178 <a name="l00146"></a>00146 <span class="preprocessor">#else //if(defined(GLM_PRECISION_MEDIUMP_INT))</span>
179 <a name="l00147"></a><a class="code" href="a00242.html#gaabe04f9948d4a213bb1c20137de03e01">00147</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">mediump_imat2</a> <a class="code" href="a00242.html#gaabe04f9948d4a213bb1c20137de03e01" title="Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">imat2</a>;
180 <a name="l00148"></a><a class="code" href="a00242.html#ga038f68437155ffa3c2583a15264a8195">00148</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">mediump_imat3</a> <a class="code" href="a00242.html#ga038f68437155ffa3c2583a15264a8195" title="Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">imat3</a>;
181 <a name="l00149"></a><a class="code" href="a00242.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">00149</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">mediump_imat4</a> <a class="code" href="a00242.html#ga96b0d26a33b81bb6a60ca0f39682f7eb" title="Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">imat4</a>;
182 <a name="l00150"></a><a class="code" href="a00242.html#gaa4732a240522ad9bc28144fda2fc14ec">00150</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">mediump_imat2x2</a> <a class="code" href="a00242.html#gaa4732a240522ad9bc28144fda2fc14ec" title="Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">imat2x2</a>;
183 <a name="l00151"></a><a class="code" href="a00242.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">00151</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">mediump_imat2x3</a> <a class="code" href="a00242.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605" title="Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">imat2x3</a>;
184 <a name="l00152"></a><a class="code" href="a00242.html#ga9d8faafdca42583d67e792dd038fc668">00152</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">mediump_imat2x4</a> <a class="code" href="a00242.html#ga9d8faafdca42583d67e792dd038fc668" title="Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">imat2x4</a>;
185 <a name="l00153"></a><a class="code" href="a00242.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">00153</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">mediump_imat3x2</a> <a class="code" href="a00242.html#ga7b33bbe4f12c060892bd3cc8d4cd737f" title="Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">imat3x2</a>;
186 <a name="l00154"></a><a class="code" href="a00242.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">00154</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">mediump_imat3x3</a> <a class="code" href="a00242.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4" title="Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">imat3x3</a>;
187 <a name="l00155"></a><a class="code" href="a00242.html#ga6e9ce23496d8b08dfc302d4039694b58">00155</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">mediump_imat3x4</a> <a class="code" href="a00242.html#ga6e9ce23496d8b08dfc302d4039694b58" title="Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">imat3x4</a>;
188 <a name="l00156"></a><a class="code" href="a00242.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">00156</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">mediump_imat4x2</a> <a class="code" href="a00242.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa" title="Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">imat4x2</a>;
189 <a name="l00157"></a><a class="code" href="a00242.html#ga705ee0bf49d6c3de4404ce2481bf0df5">00157</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">mediump_imat4x3</a> <a class="code" href="a00242.html#ga705ee0bf49d6c3de4404ce2481bf0df5" title="Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">imat4x3</a>;
190 <a name="l00158"></a><a class="code" href="a00242.html#ga43ed5e4f475b6f4cad7cba78f29c405b">00158</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">mediump_imat4x4</a> <a class="code" href="a00242.html#ga43ed5e4f475b6f4cad7cba78f29c405b" title="Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">imat4x4</a>;
191 <a name="l00159"></a>00159 <span class="preprocessor">#endif//GLM_PRECISION</span>
192 <a name="l00160"></a>00160 <span class="preprocessor"></span>
193 <a name="l00161"></a>00161 <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_UINT))</span>
194 <a name="l00162"></a>00162 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">highp_umat2</a> <a class="code" href="a00242.html#ga4cae85566f900debf930c41944b64691" title="Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">umat2</a>;
195 <a name="l00163"></a>00163 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">highp_umat3</a> <a class="code" href="a00242.html#ga5085e3ff02abbac5e537eb7b89ab63b6" title="Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">umat3</a>;
196 <a name="l00164"></a>00164 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">highp_umat4</a> <a class="code" href="a00242.html#ga38bc7bb6494e344185df596deeb4544c" title="Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">umat4</a>;
197 <a name="l00165"></a>00165 <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">highp_umat2x2</a> <a class="code" href="a00242.html#gabf8acdd33ce8951051edbca5200898aa" title="Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">umat2x2</a>;
198 <a name="l00166"></a>00166 <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">highp_umat2x3</a> <a class="code" href="a00242.html#ga1870da7578d5022b973a83155d386ab3" title="Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">umat2x3</a>;
199 <a name="l00167"></a>00167 <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">highp_umat2x4</a> <a class="code" href="a00242.html#ga57936a3998e992370e59a223e0ee4fd4" title="Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">umat2x4</a>;
200 <a name="l00168"></a>00168 <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">highp_umat3x2</a> <a class="code" href="a00242.html#ga9cd7fa637a4a6788337f45231fad9e1a" title="Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">umat3x2</a>;
201 <a name="l00169"></a>00169 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">highp_umat3x3</a> <a class="code" href="a00242.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb" title="Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">umat3x3</a>;
202 <a name="l00170"></a>00170 <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">highp_umat3x4</a> <a class="code" href="a00242.html#gae7c78ff3fc4309605ab0fa186c8d48ba" title="Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">umat3x4</a>;
203 <a name="l00171"></a>00171 <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">highp_umat4x2</a> <a class="code" href="a00242.html#ga70fa2d05896aa83cbc8c07672a429b53" title="Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">umat4x2</a>;
204 <a name="l00172"></a>00172 <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">highp_umat4x3</a> <a class="code" href="a00242.html#ga87581417945411f75cb31dd6ca1dba98" title="Unsigned integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">umat4x3</a>;
205 <a name="l00173"></a>00173 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">highp_umat4x4</a> <a class="code" href="a00242.html#gaf72e6d399c42985db6872c50f53d7eb8" title="Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">umat4x4</a>;
206 <a name="l00174"></a>00174 <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_UINT))</span>
207 <a name="l00175"></a>00175 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">lowp_umat2</a> <a class="code" href="a00242.html#ga4cae85566f900debf930c41944b64691" title="Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">umat2</a>;
208 <a name="l00176"></a>00176 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">lowp_umat3</a> <a class="code" href="a00242.html#ga5085e3ff02abbac5e537eb7b89ab63b6" title="Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">umat3</a>;
209 <a name="l00177"></a>00177 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">lowp_umat4</a> <a class="code" href="a00242.html#ga38bc7bb6494e344185df596deeb4544c" title="Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">umat4</a>;
210 <a name="l00178"></a>00178 <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">lowp_umat2x2</a> <a class="code" href="a00242.html#gabf8acdd33ce8951051edbca5200898aa" title="Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">umat2x2</a>;
211 <a name="l00179"></a>00179 <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">lowp_umat2x3</a> <a class="code" href="a00242.html#ga1870da7578d5022b973a83155d386ab3" title="Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">umat2x3</a>;
212 <a name="l00180"></a>00180 <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">lowp_umat2x4</a> <a class="code" href="a00242.html#ga57936a3998e992370e59a223e0ee4fd4" title="Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">umat2x4</a>;
213 <a name="l00181"></a>00181 <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">lowp_umat3x2</a> <a class="code" href="a00242.html#ga9cd7fa637a4a6788337f45231fad9e1a" title="Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">umat3x2</a>;
214 <a name="l00182"></a>00182 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">lowp_umat3x3</a> <a class="code" href="a00242.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb" title="Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">umat3x3</a>;
215 <a name="l00183"></a>00183 <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">lowp_umat3x4</a> <a class="code" href="a00242.html#gae7c78ff3fc4309605ab0fa186c8d48ba" title="Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">umat3x4</a>;
216 <a name="l00184"></a>00184 <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">lowp_umat4x2</a> <a class="code" href="a00242.html#ga70fa2d05896aa83cbc8c07672a429b53" title="Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">umat4x2</a>;
217 <a name="l00185"></a>00185 <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">lowp_umat4x3</a> <a class="code" href="a00242.html#ga87581417945411f75cb31dd6ca1dba98" title="Unsigned integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">umat4x3</a>;
218 <a name="l00186"></a>00186 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">lowp_umat4x4</a> <a class="code" href="a00242.html#gaf72e6d399c42985db6872c50f53d7eb8" title="Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">umat4x4</a>;
219 <a name="l00187"></a>00187 <span class="preprocessor">#else //if(defined(GLM_PRECISION_MEDIUMP_UINT))</span>
220 <a name="l00188"></a><a class="code" href="a00242.html#ga4cae85566f900debf930c41944b64691">00188</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">mediump_umat2</a> <a class="code" href="a00242.html#ga4cae85566f900debf930c41944b64691" title="Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">umat2</a>;
221 <a name="l00189"></a><a class="code" href="a00242.html#ga5085e3ff02abbac5e537eb7b89ab63b6">00189</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">mediump_umat3</a> <a class="code" href="a00242.html#ga5085e3ff02abbac5e537eb7b89ab63b6" title="Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">umat3</a>;
222 <a name="l00190"></a><a class="code" href="a00242.html#ga38bc7bb6494e344185df596deeb4544c">00190</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">mediump_umat4</a> <a class="code" href="a00242.html#ga38bc7bb6494e344185df596deeb4544c" title="Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">umat4</a>;
223 <a name="l00191"></a><a class="code" href="a00242.html#gabf8acdd33ce8951051edbca5200898aa">00191</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">mediump_umat2x2</a> <a class="code" href="a00242.html#gabf8acdd33ce8951051edbca5200898aa" title="Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">umat2x2</a>;
224 <a name="l00192"></a><a class="code" href="a00242.html#ga1870da7578d5022b973a83155d386ab3">00192</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">mediump_umat2x3</a> <a class="code" href="a00242.html#ga1870da7578d5022b973a83155d386ab3" title="Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">umat2x3</a>;
225 <a name="l00193"></a><a class="code" href="a00242.html#ga57936a3998e992370e59a223e0ee4fd4">00193</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">mediump_umat2x4</a> <a class="code" href="a00242.html#ga57936a3998e992370e59a223e0ee4fd4" title="Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">umat2x4</a>;
226 <a name="l00194"></a><a class="code" href="a00242.html#ga9cd7fa637a4a6788337f45231fad9e1a">00194</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">mediump_umat3x2</a> <a class="code" href="a00242.html#ga9cd7fa637a4a6788337f45231fad9e1a" title="Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">umat3x2</a>;
227 <a name="l00195"></a><a class="code" href="a00242.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">00195</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">mediump_umat3x3</a> <a class="code" href="a00242.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb" title="Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">umat3x3</a>;
228 <a name="l00196"></a><a class="code" href="a00242.html#gae7c78ff3fc4309605ab0fa186c8d48ba">00196</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">mediump_umat3x4</a> <a class="code" href="a00242.html#gae7c78ff3fc4309605ab0fa186c8d48ba" title="Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">umat3x4</a>;
229 <a name="l00197"></a><a class="code" href="a00242.html#ga70fa2d05896aa83cbc8c07672a429b53">00197</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">mediump_umat4x2</a> <a class="code" href="a00242.html#ga70fa2d05896aa83cbc8c07672a429b53" title="Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">umat4x2</a>;
230 <a name="l00198"></a><a class="code" href="a00242.html#ga87581417945411f75cb31dd6ca1dba98">00198</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">mediump_umat4x3</a> <a class="code" href="a00242.html#ga87581417945411f75cb31dd6ca1dba98" title="Unsigned integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">umat4x3</a>;
231 <a name="l00199"></a><a class="code" href="a00242.html#gaf72e6d399c42985db6872c50f53d7eb8">00199</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">mediump_umat4x4</a> <a class="code" href="a00242.html#gaf72e6d399c42985db6872c50f53d7eb8" title="Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">umat4x4</a>;
232 <a name="l00200"></a>00200 <span class="preprocessor">#endif//GLM_PRECISION</span>
233 <a name="l00201"></a>00201 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtc{
60 <a name="l00025"></a><a class="code" href="a00161.html">00025</a> <span class="keyword">namespace </span>matrix_integer
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00030"></a><a class="code" href="a00241.html#ga16e9ac01daa94cd41baca57b1720c4d2">00030</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;highp_int&gt;</a> <a class="code" href="a00241.html#ga16e9ac01daa94cd41baca57b1720c4d2" title="High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat2</a>;
64 <a name="l00031"></a><a class="code" href="a00241.html#ga1aab5488573c134db709107b0aa45060">00031</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;highp_int&gt;</a> <a class="code" href="a00241.html#ga1aab5488573c134db709107b0aa45060" title="High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat3</a>;
65 <a name="l00032"></a><a class="code" href="a00241.html#ga001cb3722aece6e478d1c013cd561248">00032</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;highp_int&gt;</a> <a class="code" href="a00241.html#ga001cb3722aece6e478d1c013cd561248" title="High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat4</a>;
66 <a name="l00033"></a>00033
67 <a name="l00034"></a><a class="code" href="a00241.html#ga503734c9f848968b3ede74017d3927e0">00034</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;highp_int&gt;</a> <a class="code" href="a00241.html#ga503734c9f848968b3ede74017d3927e0" title="High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat2x2</a>;
68 <a name="l00035"></a><a class="code" href="a00241.html#gae4ac618eb06b7288e4a14633971320ed">00035</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;highp_int&gt;</a> <a class="code" href="a00241.html#gae4ac618eb06b7288e4a14633971320ed" title="High-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat2x3</a>;
69 <a name="l00036"></a><a class="code" href="a00241.html#ga73ca75871a9a43972be9bb4b295b1e3f">00036</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;highp_int&gt;</a> <a class="code" href="a00241.html#ga73ca75871a9a43972be9bb4b295b1e3f" title="High-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat2x4</a>;
70 <a name="l00037"></a><a class="code" href="a00241.html#ga8e2e34fc5f030a888cff9b9fdf169c01">00037</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;highp_int&gt;</a> <a class="code" href="a00241.html#ga8e2e34fc5f030a888cff9b9fdf169c01" title="High-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat3x2</a>;
71 <a name="l00038"></a><a class="code" href="a00241.html#ga20a5eb2dc99580c5eee0d1287a81dc71">00038</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;highp_int&gt;</a> <a class="code" href="a00241.html#ga20a5eb2dc99580c5eee0d1287a81dc71" title="High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat3x3</a>;
72 <a name="l00039"></a><a class="code" href="a00241.html#ga52c1fd71b37cd7534b3ba05cfddf5641">00039</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;highp_int&gt;</a> <a class="code" href="a00241.html#ga52c1fd71b37cd7534b3ba05cfddf5641" title="High-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat3x4</a>;
73 <a name="l00040"></a><a class="code" href="a00241.html#ga8d5483e43eaf948445dad0316adfd065">00040</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;highp_int&gt;</a> <a class="code" href="a00241.html#ga8d5483e43eaf948445dad0316adfd065" title="High-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat4x2</a>;
74 <a name="l00041"></a><a class="code" href="a00241.html#ga39096445d642ca381cec94a9dcefa49e">00041</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;highp_int&gt;</a> <a class="code" href="a00241.html#ga39096445d642ca381cec94a9dcefa49e" title="High-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat4x3</a>;
75 <a name="l00042"></a><a class="code" href="a00241.html#ga1956c46bca65b5b00c01250e0d5f1de6">00042</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;highp_int&gt;</a> <a class="code" href="a00241.html#ga1956c46bca65b5b00c01250e0d5f1de6" title="High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">highp_imat4x4</a>;
76 <a name="l00043"></a>00043
77 <a name="l00044"></a><a class="code" href="a00241.html#ga143ecf702b39ac7730009796b5d61b48">00044</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;mediump_int&gt;</a> <a class="code" href="a00241.html#ga143ecf702b39ac7730009796b5d61b48" title="Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat2</a>;
78 <a name="l00045"></a><a class="code" href="a00241.html#ga88879288540afc046b8dcf9574f39599">00045</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;mediump_int&gt;</a> <a class="code" href="a00241.html#ga88879288540afc046b8dcf9574f39599" title="Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat3</a>;
79 <a name="l00046"></a><a class="code" href="a00241.html#ga8f1cc05b68f13365c227d40cb52e6a6d">00046</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;mediump_int&gt;</a> <a class="code" href="a00241.html#ga8f1cc05b68f13365c227d40cb52e6a6d" title="Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat4</a>;
80 <a name="l00047"></a>00047
81 <a name="l00048"></a><a class="code" href="a00241.html#ga14f7ebf70ea05156698a0cb403dff827">00048</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;mediump_int&gt;</a> <a class="code" href="a00241.html#ga14f7ebf70ea05156698a0cb403dff827" title="Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat2x2</a>;
82 <a name="l00049"></a><a class="code" href="a00241.html#ga971f0d97d5aa82d96885b23132260bc5">00049</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;mediump_int&gt;</a> <a class="code" href="a00241.html#ga971f0d97d5aa82d96885b23132260bc5" title="Medium-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat2x3</a>;
83 <a name="l00050"></a><a class="code" href="a00241.html#gaa912743dd1649cdc2231ad08c7b3ad83">00050</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;mediump_int&gt;</a> <a class="code" href="a00241.html#gaa912743dd1649cdc2231ad08c7b3ad83" title="Medium-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat2x4</a>;
84 <a name="l00051"></a><a class="code" href="a00241.html#ga846e335231d6d156ce1dff7ee8d247c0">00051</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;mediump_int&gt;</a> <a class="code" href="a00241.html#ga846e335231d6d156ce1dff7ee8d247c0" title="Medium-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat3x2</a>;
85 <a name="l00052"></a><a class="code" href="a00241.html#gae49f27a71c9643dc6e852d29de1a7337">00052</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;mediump_int&gt;</a> <a class="code" href="a00241.html#gae49f27a71c9643dc6e852d29de1a7337" title="Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat3x3</a>;
86 <a name="l00053"></a><a class="code" href="a00241.html#ga5c32e78899b8ddc6d38a46a059dea62b">00053</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;mediump_int&gt;</a> <a class="code" href="a00241.html#ga5c32e78899b8ddc6d38a46a059dea62b" title="Medium-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat3x4</a>;
87 <a name="l00054"></a><a class="code" href="a00241.html#gafa1f18250380f03bcdba92af051cf436">00054</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;mediump_int&gt;</a> <a class="code" href="a00241.html#gafa1f18250380f03bcdba92af051cf436" title="Medium-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat4x2</a>;
88 <a name="l00055"></a><a class="code" href="a00241.html#ga6ce6435a08574b6d53933bce0fb99aa9">00055</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;mediump_int&gt;</a> <a class="code" href="a00241.html#ga6ce6435a08574b6d53933bce0fb99aa9" title="Medium-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat4x3</a>;
89 <a name="l00056"></a><a class="code" href="a00241.html#gad548e325172bf111285d710e0aedada6">00056</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;mediump_int&gt;</a> <a class="code" href="a00241.html#gad548e325172bf111285d710e0aedada6" title="Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">mediump_imat4x4</a>;
90 <a name="l00057"></a>00057
91 <a name="l00058"></a><a class="code" href="a00241.html#ga53ba084d560fbe0a32409b7ad29a405f">00058</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;lowp_int&gt;</a> <a class="code" href="a00241.html#ga53ba084d560fbe0a32409b7ad29a405f" title="Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat2</a>;
92 <a name="l00059"></a><a class="code" href="a00241.html#ga602bbe8185b35c8e02038924c95c526c">00059</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;lowp_int&gt;</a> <a class="code" href="a00241.html#ga602bbe8185b35c8e02038924c95c526c" title="Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat3</a>;
93 <a name="l00060"></a><a class="code" href="a00241.html#ga6e0f075c487aee31df91d9dbd71db88d">00060</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;lowp_int&gt;</a> <a class="code" href="a00241.html#ga6e0f075c487aee31df91d9dbd71db88d" title="Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat4</a>;
94 <a name="l00061"></a>00061
95 <a name="l00062"></a><a class="code" href="a00241.html#ga4cb2449be4c36270d0f6c2849f72037c">00062</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;lowp_int&gt;</a> <a class="code" href="a00241.html#ga4cb2449be4c36270d0f6c2849f72037c" title="Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat2x2</a>;
96 <a name="l00063"></a><a class="code" href="a00241.html#gad9cf0368a1cd253d87307c9784ea4c56">00063</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;lowp_int&gt;</a> <a class="code" href="a00241.html#gad9cf0368a1cd253d87307c9784ea4c56" title="Low-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat2x3</a>;
97 <a name="l00064"></a><a class="code" href="a00241.html#gab065fa79d6c42b6df2e261c76b359524">00064</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;lowp_int&gt;</a> <a class="code" href="a00241.html#gab065fa79d6c42b6df2e261c76b359524" title="Low-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat2x4</a>;
98 <a name="l00065"></a><a class="code" href="a00241.html#gaf96385c22d0e6876b8b5c3dcc2e1d91a">00065</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;lowp_int&gt;</a> <a class="code" href="a00241.html#gaf96385c22d0e6876b8b5c3dcc2e1d91a" title="Low-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat3x2</a>;
99 <a name="l00066"></a><a class="code" href="a00241.html#ga4da80362c97eb9abb48cedc5a444daf6">00066</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;lowp_int&gt;</a> <a class="code" href="a00241.html#ga4da80362c97eb9abb48cedc5a444daf6" title="Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat3x3</a>;
100 <a name="l00067"></a><a class="code" href="a00241.html#ga7114fd267da92d44c98a440704e0be79">00067</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;lowp_int&gt;</a> <a class="code" href="a00241.html#ga7114fd267da92d44c98a440704e0be79" title="Low-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat3x4</a>;
101 <a name="l00068"></a><a class="code" href="a00241.html#gab9357fc7eb98b919fba7f1656fd548a8">00068</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;lowp_int&gt;</a> <a class="code" href="a00241.html#gab9357fc7eb98b919fba7f1656fd548a8" title="Low-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat4x2</a>;
102 <a name="l00069"></a><a class="code" href="a00241.html#gac21d66a9936eb54d12b8e57b08e589bc">00069</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;lowp_int&gt;</a> <a class="code" href="a00241.html#gac21d66a9936eb54d12b8e57b08e589bc" title="Low-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat4x3</a>;
103 <a name="l00070"></a><a class="code" href="a00241.html#gad30fba4d4c94eda205b3f768274f0893">00070</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;lowp_int&gt;</a> <a class="code" href="a00241.html#gad30fba4d4c94eda205b3f768274f0893" title="Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">lowp_imat4x4</a>;
104 <a name="l00071"></a>00071
105 <a name="l00072"></a><a class="code" href="a00241.html#ga9917f09e4bbb414e5b10f5e00c7de70d">00072</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;highp_uint&gt;</a> <a class="code" href="a00241.html#ga9917f09e4bbb414e5b10f5e00c7de70d" title="High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat2</a>;
106 <a name="l00073"></a><a class="code" href="a00241.html#gac7928fd1dbf3decc2463e0044d10ba14">00073</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;highp_uint&gt;</a> <a class="code" href="a00241.html#gac7928fd1dbf3decc2463e0044d10ba14" title="High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat3</a>;
107 <a name="l00074"></a><a class="code" href="a00241.html#ga2f29d9ef4636752de31b92a56b44bd8a">00074</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;highp_uint&gt;</a> <a class="code" href="a00241.html#ga2f29d9ef4636752de31b92a56b44bd8a" title="High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat4</a>;
108 <a name="l00075"></a>00075
109 <a name="l00076"></a><a class="code" href="a00241.html#gac46ccd4fa290488681c4574e5e562d55">00076</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;highp_uint&gt;</a> <a class="code" href="a00241.html#gac46ccd4fa290488681c4574e5e562d55" title="High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat2x2</a>;
110 <a name="l00077"></a><a class="code" href="a00241.html#ga81a27f521f29ff4ace4d1e4cde1de2a5">00077</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;highp_uint&gt;</a> <a class="code" href="a00241.html#ga81a27f521f29ff4ace4d1e4cde1de2a5" title="High-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat2x3</a>;
111 <a name="l00078"></a><a class="code" href="a00241.html#gab6c2023040df42564c16a2b464adba9b">00078</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;highp_uint&gt;</a> <a class="code" href="a00241.html#gab6c2023040df42564c16a2b464adba9b" title="High-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat2x4</a>;
112 <a name="l00079"></a><a class="code" href="a00241.html#gab9cdf3c2c04d7346cc45b212a904f02d">00079</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;highp_uint&gt;</a> <a class="code" href="a00241.html#gab9cdf3c2c04d7346cc45b212a904f02d" title="High-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat3x2</a>;
113 <a name="l00080"></a><a class="code" href="a00241.html#gabb4b97694034f2d650dca359db023eaa">00080</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;highp_uint&gt;</a> <a class="code" href="a00241.html#gabb4b97694034f2d650dca359db023eaa" title="High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat3x3</a>;
114 <a name="l00081"></a><a class="code" href="a00241.html#ga8c7be88fb8d49dd55eb6892da1bf1966">00081</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;highp_uint&gt;</a> <a class="code" href="a00241.html#ga8c7be88fb8d49dd55eb6892da1bf1966" title="High-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat3x4</a>;
115 <a name="l00082"></a><a class="code" href="a00241.html#ga84ddf69a6f1912a196c505c4a8fe817b">00082</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;highp_uint&gt;</a> <a class="code" href="a00241.html#ga84ddf69a6f1912a196c505c4a8fe817b" title="High-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat4x2</a>;
116 <a name="l00083"></a><a class="code" href="a00241.html#gaba6def08906f182866bd945babf9a5f7">00083</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;highp_uint&gt;</a> <a class="code" href="a00241.html#gaba6def08906f182866bd945babf9a5f7" title="High-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat4x3</a>;
117 <a name="l00084"></a><a class="code" href="a00241.html#gaff8f7574251ea10466c0f31ca1e83f6d">00084</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;highp_uint&gt;</a> <a class="code" href="a00241.html#gaff8f7574251ea10466c0f31ca1e83f6d" title="High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">highp_umat4x4</a>;
118 <a name="l00085"></a>00085
119 <a name="l00086"></a><a class="code" href="a00241.html#ga248ef3b18ce8e7974a1b04b9e10b0d70">00086</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;mediump_uint&gt;</a> <a class="code" href="a00241.html#ga248ef3b18ce8e7974a1b04b9e10b0d70" title="Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat2</a>;
120 <a name="l00087"></a><a class="code" href="a00241.html#gaa802202181dac79e9dcd7848af5b57df">00087</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;mediump_uint&gt;</a> <a class="code" href="a00241.html#gaa802202181dac79e9dcd7848af5b57df" title="Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat3</a>;
121 <a name="l00088"></a><a class="code" href="a00241.html#ga3981b8297512d35fe39413149e3f57ad">00088</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;mediump_uint&gt;</a> <a class="code" href="a00241.html#ga3981b8297512d35fe39413149e3f57ad" title="Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat4</a>;
122 <a name="l00089"></a>00089
123 <a name="l00090"></a><a class="code" href="a00241.html#ga4deef9aaf20528b594af15e0d8a8394a">00090</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;mediump_uint&gt;</a> <a class="code" href="a00241.html#ga4deef9aaf20528b594af15e0d8a8394a" title="Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat2x2</a>;
124 <a name="l00091"></a><a class="code" href="a00241.html#ga57dcd02ce5c008214d1ac033d62237f4">00091</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;mediump_uint&gt;</a> <a class="code" href="a00241.html#ga57dcd02ce5c008214d1ac033d62237f4" title="Medium-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat2x3</a>;
125 <a name="l00092"></a><a class="code" href="a00241.html#gaa0005c075583fa42425573df59ae47b7">00092</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;mediump_uint&gt;</a> <a class="code" href="a00241.html#gaa0005c075583fa42425573df59ae47b7" title="Medium-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat2x4</a>;
126 <a name="l00093"></a><a class="code" href="a00241.html#gac65dc743ab57f960c9f77eb817a2b375">00093</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;mediump_uint&gt;</a> <a class="code" href="a00241.html#gac65dc743ab57f960c9f77eb817a2b375" title="Medium-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat3x2</a>;
127 <a name="l00094"></a><a class="code" href="a00241.html#ga69d2278480a495af358ba198cdd708d1">00094</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;mediump_uint&gt;</a> <a class="code" href="a00241.html#ga69d2278480a495af358ba198cdd708d1" title="Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat3x3</a>;
128 <a name="l00095"></a><a class="code" href="a00241.html#ga65ed7a18729feae1ca61a8ab573fe5db">00095</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;mediump_uint&gt;</a> <a class="code" href="a00241.html#ga65ed7a18729feae1ca61a8ab573fe5db" title="Medium-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat3x4</a>;
129 <a name="l00096"></a><a class="code" href="a00241.html#gabab2363c9e7691ba23319174dd3b211e">00096</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;mediump_uint&gt;</a> <a class="code" href="a00241.html#gabab2363c9e7691ba23319174dd3b211e" title="Medium-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat4x2</a>;
130 <a name="l00097"></a><a class="code" href="a00241.html#gaeb0dd2f67c17909a8747089bee0cf301">00097</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;mediump_uint&gt;</a> <a class="code" href="a00241.html#gaeb0dd2f67c17909a8747089bee0cf301" title="Medium-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat4x3</a>;
131 <a name="l00098"></a><a class="code" href="a00241.html#gad8086f60b4190c4b567bded1d0fb4edb">00098</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;mediump_uint&gt;</a> <a class="code" href="a00241.html#gad8086f60b4190c4b567bded1d0fb4edb" title="Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">mediump_umat4x4</a>;
132 <a name="l00099"></a>00099
133 <a name="l00100"></a><a class="code" href="a00241.html#gaf5fd055eb478c690723f3db742fed7ee">00100</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;lowp_uint&gt;</a> <a class="code" href="a00241.html#gaf5fd055eb478c690723f3db742fed7ee" title="Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat2</a>;
134 <a name="l00101"></a><a class="code" href="a00241.html#ga9b9e4dbbb43103f29e432c611ba2a8e9">00101</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;lowp_uint&gt;</a> <a class="code" href="a00241.html#ga9b9e4dbbb43103f29e432c611ba2a8e9" title="Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat3</a>;
135 <a name="l00102"></a><a class="code" href="a00241.html#gabe8174acf8b97bba515e77b050dee149">00102</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;lowp_uint&gt;</a> <a class="code" href="a00241.html#gabe8174acf8b97bba515e77b050dee149" title="Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat4</a>;
136 <a name="l00103"></a>00103
137 <a name="l00104"></a><a class="code" href="a00241.html#ga2041f6554b1e8ed2a6b74cffa2b8d917">00104</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;lowp_uint&gt;</a> <a class="code" href="a00241.html#ga2041f6554b1e8ed2a6b74cffa2b8d917" title="Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat2x2</a>;
138 <a name="l00105"></a><a class="code" href="a00241.html#ga2831bb6c3ed95cfefc2fffd315d31904">00105</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;lowp_uint&gt;</a> <a class="code" href="a00241.html#ga2831bb6c3ed95cfefc2fffd315d31904" title="Low-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat2x3</a>;
139 <a name="l00106"></a><a class="code" href="a00241.html#ga7e15349e63fbb93ce8ab047a02f0fe73">00106</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;lowp_uint&gt;</a> <a class="code" href="a00241.html#ga7e15349e63fbb93ce8ab047a02f0fe73" title="Low-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat2x4</a>;
140 <a name="l00107"></a><a class="code" href="a00241.html#ga9bb2ec92ae5a588cc2f2487a2b39091a">00107</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;lowp_uint&gt;</a> <a class="code" href="a00241.html#ga9bb2ec92ae5a588cc2f2487a2b39091a" title="Low-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat3x2</a>;
141 <a name="l00108"></a><a class="code" href="a00241.html#ga0cd96f6db0335fec76d521c04e55aa72">00108</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;lowp_uint&gt;</a> <a class="code" href="a00241.html#ga0cd96f6db0335fec76d521c04e55aa72" title="Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat3x3</a>;
142 <a name="l00109"></a><a class="code" href="a00241.html#ga74afefa6d98ed4013b0b8973aedaa3c3">00109</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;lowp_uint&gt;</a> <a class="code" href="a00241.html#ga74afefa6d98ed4013b0b8973aedaa3c3" title="Low-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat3x4</a>;
143 <a name="l00110"></a><a class="code" href="a00241.html#ga6c87f764b7e37b732701d12a5dd99b60">00110</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;lowp_uint&gt;</a> <a class="code" href="a00241.html#ga6c87f764b7e37b732701d12a5dd99b60" title="Low-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat4x2</a>;
144 <a name="l00111"></a><a class="code" href="a00241.html#gaf0ec78e818b558be26ab100630bb1a2f">00111</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;lowp_uint&gt;</a> <a class="code" href="a00241.html#gaf0ec78e818b558be26ab100630bb1a2f" title="Low-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat4x3</a>;
145 <a name="l00112"></a><a class="code" href="a00241.html#ga8afd2898b4e81ddfcf4826a1f09261df">00112</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;lowp_uint&gt;</a> <a class="code" href="a00241.html#ga8afd2898b4e81ddfcf4826a1f09261df" title="Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">lowp_umat4x4</a>;
146 <a name="l00113"></a>00113
147 <a name="l00114"></a>00114 <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_INT))</span>
148 <a name="l00115"></a>00115 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">highp_imat2</a> <a class="code" href="a00241.html#gaabe04f9948d4a213bb1c20137de03e01" title="Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">imat2</a>;
149 <a name="l00116"></a>00116 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">highp_imat3</a> <a class="code" href="a00241.html#ga038f68437155ffa3c2583a15264a8195" title="Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">imat3</a>;
150 <a name="l00117"></a>00117 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">highp_imat4</a> <a class="code" href="a00241.html#ga96b0d26a33b81bb6a60ca0f39682f7eb" title="Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">imat4</a>;
151 <a name="l00118"></a>00118 <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">highp_imat2x2</a> <a class="code" href="a00241.html#gaa4732a240522ad9bc28144fda2fc14ec" title="Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">imat2x2</a>;
152 <a name="l00119"></a>00119 <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">highp_imat2x3</a> <a class="code" href="a00241.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605" title="Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">imat2x3</a>;
153 <a name="l00120"></a>00120 <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">highp_imat2x4</a> <a class="code" href="a00241.html#ga9d8faafdca42583d67e792dd038fc668" title="Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">imat2x4</a>;
154 <a name="l00121"></a>00121 <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">highp_imat3x2</a> <a class="code" href="a00241.html#ga7b33bbe4f12c060892bd3cc8d4cd737f" title="Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">imat3x2</a>;
155 <a name="l00122"></a>00122 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">highp_imat3x3</a> <a class="code" href="a00241.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4" title="Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">imat3x3</a>;
156 <a name="l00123"></a>00123 <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">highp_imat3x4</a> <a class="code" href="a00241.html#ga6e9ce23496d8b08dfc302d4039694b58" title="Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">imat3x4</a>;
157 <a name="l00124"></a>00124 <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">highp_imat4x2</a> <a class="code" href="a00241.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa" title="Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">imat4x2</a>;
158 <a name="l00125"></a>00125 <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">highp_imat4x3</a> <a class="code" href="a00241.html#ga705ee0bf49d6c3de4404ce2481bf0df5" title="Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">imat4x3</a>;
159 <a name="l00126"></a>00126 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">highp_imat4x4</a> <a class="code" href="a00241.html#ga43ed5e4f475b6f4cad7cba78f29c405b" title="Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">imat4x4</a>;
160 <a name="l00127"></a>00127 <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_INT))</span>
161 <a name="l00128"></a>00128 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">lowp_imat2</a> <a class="code" href="a00241.html#gaabe04f9948d4a213bb1c20137de03e01" title="Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">imat2</a>;
162 <a name="l00129"></a>00129 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">lowp_imat3</a> <a class="code" href="a00241.html#ga038f68437155ffa3c2583a15264a8195" title="Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">imat3</a>;
163 <a name="l00130"></a>00130 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">lowp_imat4</a> <a class="code" href="a00241.html#ga96b0d26a33b81bb6a60ca0f39682f7eb" title="Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">imat4</a>;
164 <a name="l00131"></a>00131 <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">lowp_imat2x2</a> <a class="code" href="a00241.html#gaa4732a240522ad9bc28144fda2fc14ec" title="Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">imat2x2</a>;
165 <a name="l00132"></a>00132 <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">lowp_imat2x3</a> <a class="code" href="a00241.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605" title="Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">imat2x3</a>;
166 <a name="l00133"></a>00133 <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">lowp_imat2x4</a> <a class="code" href="a00241.html#ga9d8faafdca42583d67e792dd038fc668" title="Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">imat2x4</a>;
167 <a name="l00134"></a>00134 <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">lowp_imat3x2</a> <a class="code" href="a00241.html#ga7b33bbe4f12c060892bd3cc8d4cd737f" title="Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">imat3x2</a>;
168 <a name="l00135"></a>00135 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">lowp_imat3x3</a> <a class="code" href="a00241.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4" title="Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">imat3x3</a>;
169 <a name="l00136"></a>00136 <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">lowp_imat3x4</a> <a class="code" href="a00241.html#ga6e9ce23496d8b08dfc302d4039694b58" title="Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">imat3x4</a>;
170 <a name="l00137"></a>00137 <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">lowp_imat4x2</a> <a class="code" href="a00241.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa" title="Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">imat4x2</a>;
171 <a name="l00138"></a>00138 <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">lowp_imat4x3</a> <a class="code" href="a00241.html#ga705ee0bf49d6c3de4404ce2481bf0df5" title="Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">imat4x3</a>;
172 <a name="l00139"></a>00139 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">lowp_imat4x4</a> <a class="code" href="a00241.html#ga43ed5e4f475b6f4cad7cba78f29c405b" title="Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">imat4x4</a>;
173 <a name="l00140"></a>00140 <span class="preprocessor">#else //if(defined(GLM_PRECISION_MEDIUMP_INT))</span>
174 <a name="l00141"></a><a class="code" href="a00241.html#gaabe04f9948d4a213bb1c20137de03e01">00141</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">mediump_imat2</a> <a class="code" href="a00241.html#gaabe04f9948d4a213bb1c20137de03e01" title="Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">imat2</a>;
175 <a name="l00142"></a><a class="code" href="a00241.html#ga038f68437155ffa3c2583a15264a8195">00142</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">mediump_imat3</a> <a class="code" href="a00241.html#ga038f68437155ffa3c2583a15264a8195" title="Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">imat3</a>;
176 <a name="l00143"></a><a class="code" href="a00241.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">00143</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">mediump_imat4</a> <a class="code" href="a00241.html#ga96b0d26a33b81bb6a60ca0f39682f7eb" title="Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">imat4</a>;
177 <a name="l00144"></a><a class="code" href="a00241.html#gaa4732a240522ad9bc28144fda2fc14ec">00144</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">mediump_imat2x2</a> <a class="code" href="a00241.html#gaa4732a240522ad9bc28144fda2fc14ec" title="Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">imat2x2</a>;
178 <a name="l00145"></a><a class="code" href="a00241.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">00145</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">mediump_imat2x3</a> <a class="code" href="a00241.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605" title="Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">imat2x3</a>;
179 <a name="l00146"></a><a class="code" href="a00241.html#ga9d8faafdca42583d67e792dd038fc668">00146</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">mediump_imat2x4</a> <a class="code" href="a00241.html#ga9d8faafdca42583d67e792dd038fc668" title="Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">imat2x4</a>;
180 <a name="l00147"></a><a class="code" href="a00241.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">00147</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">mediump_imat3x2</a> <a class="code" href="a00241.html#ga7b33bbe4f12c060892bd3cc8d4cd737f" title="Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">imat3x2</a>;
181 <a name="l00148"></a><a class="code" href="a00241.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">00148</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">mediump_imat3x3</a> <a class="code" href="a00241.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4" title="Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">imat3x3</a>;
182 <a name="l00149"></a><a class="code" href="a00241.html#ga6e9ce23496d8b08dfc302d4039694b58">00149</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">mediump_imat3x4</a> <a class="code" href="a00241.html#ga6e9ce23496d8b08dfc302d4039694b58" title="Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">imat3x4</a>;
183 <a name="l00150"></a><a class="code" href="a00241.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">00150</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">mediump_imat4x2</a> <a class="code" href="a00241.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa" title="Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">imat4x2</a>;
184 <a name="l00151"></a><a class="code" href="a00241.html#ga705ee0bf49d6c3de4404ce2481bf0df5">00151</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">mediump_imat4x3</a> <a class="code" href="a00241.html#ga705ee0bf49d6c3de4404ce2481bf0df5" title="Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">imat4x3</a>;
185 <a name="l00152"></a><a class="code" href="a00241.html#ga43ed5e4f475b6f4cad7cba78f29c405b">00152</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">mediump_imat4x4</a> <a class="code" href="a00241.html#ga43ed5e4f475b6f4cad7cba78f29c405b" title="Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">imat4x4</a>;
186 <a name="l00153"></a>00153 <span class="preprocessor">#endif//GLM_PRECISION</span>
187 <a name="l00154"></a>00154 <span class="preprocessor"></span>
188 <a name="l00155"></a>00155 <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_UINT))</span>
189 <a name="l00156"></a>00156 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">highp_umat2</a> <a class="code" href="a00241.html#ga4cae85566f900debf930c41944b64691" title="Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">umat2</a>;
190 <a name="l00157"></a>00157 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">highp_umat3</a> <a class="code" href="a00241.html#ga5085e3ff02abbac5e537eb7b89ab63b6" title="Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">umat3</a>;
191 <a name="l00158"></a>00158 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">highp_umat4</a> <a class="code" href="a00241.html#ga38bc7bb6494e344185df596deeb4544c" title="Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">umat4</a>;
192 <a name="l00159"></a>00159 <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">highp_umat2x2</a> <a class="code" href="a00241.html#gabf8acdd33ce8951051edbca5200898aa" title="Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">umat2x2</a>;
193 <a name="l00160"></a>00160 <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">highp_umat2x3</a> <a class="code" href="a00241.html#ga1870da7578d5022b973a83155d386ab3" title="Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">umat2x3</a>;
194 <a name="l00161"></a>00161 <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">highp_umat2x4</a> <a class="code" href="a00241.html#ga57936a3998e992370e59a223e0ee4fd4" title="Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">umat2x4</a>;
195 <a name="l00162"></a>00162 <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">highp_umat3x2</a> <a class="code" href="a00241.html#ga9cd7fa637a4a6788337f45231fad9e1a" title="Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">umat3x2</a>;
196 <a name="l00163"></a>00163 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">highp_umat3x3</a> <a class="code" href="a00241.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb" title="Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">umat3x3</a>;
197 <a name="l00164"></a>00164 <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">highp_umat3x4</a> <a class="code" href="a00241.html#gae7c78ff3fc4309605ab0fa186c8d48ba" title="Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">umat3x4</a>;
198 <a name="l00165"></a>00165 <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">highp_umat4x2</a> <a class="code" href="a00241.html#ga70fa2d05896aa83cbc8c07672a429b53" title="Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">umat4x2</a>;
199 <a name="l00166"></a>00166 <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">highp_umat4x3</a> <a class="code" href="a00241.html#ga87581417945411f75cb31dd6ca1dba98" title="Unsigned integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">umat4x3</a>;
200 <a name="l00167"></a>00167 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">highp_umat4x4</a> <a class="code" href="a00241.html#gaf72e6d399c42985db6872c50f53d7eb8" title="Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">umat4x4</a>;
201 <a name="l00168"></a>00168 <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_UINT))</span>
202 <a name="l00169"></a>00169 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">lowp_umat2</a> <a class="code" href="a00241.html#ga4cae85566f900debf930c41944b64691" title="Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">umat2</a>;
203 <a name="l00170"></a>00170 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">lowp_umat3</a> <a class="code" href="a00241.html#ga5085e3ff02abbac5e537eb7b89ab63b6" title="Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">umat3</a>;
204 <a name="l00171"></a>00171 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">lowp_umat4</a> <a class="code" href="a00241.html#ga38bc7bb6494e344185df596deeb4544c" title="Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">umat4</a>;
205 <a name="l00172"></a>00172 <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">lowp_umat2x2</a> <a class="code" href="a00241.html#gabf8acdd33ce8951051edbca5200898aa" title="Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">umat2x2</a>;
206 <a name="l00173"></a>00173 <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">lowp_umat2x3</a> <a class="code" href="a00241.html#ga1870da7578d5022b973a83155d386ab3" title="Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">umat2x3</a>;
207 <a name="l00174"></a>00174 <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">lowp_umat2x4</a> <a class="code" href="a00241.html#ga57936a3998e992370e59a223e0ee4fd4" title="Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">umat2x4</a>;
208 <a name="l00175"></a>00175 <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">lowp_umat3x2</a> <a class="code" href="a00241.html#ga9cd7fa637a4a6788337f45231fad9e1a" title="Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">umat3x2</a>;
209 <a name="l00176"></a>00176 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">lowp_umat3x3</a> <a class="code" href="a00241.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb" title="Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">umat3x3</a>;
210 <a name="l00177"></a>00177 <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">lowp_umat3x4</a> <a class="code" href="a00241.html#gae7c78ff3fc4309605ab0fa186c8d48ba" title="Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">umat3x4</a>;
211 <a name="l00178"></a>00178 <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">lowp_umat4x2</a> <a class="code" href="a00241.html#ga70fa2d05896aa83cbc8c07672a429b53" title="Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">umat4x2</a>;
212 <a name="l00179"></a>00179 <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">lowp_umat4x3</a> <a class="code" href="a00241.html#ga87581417945411f75cb31dd6ca1dba98" title="Unsigned integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">umat4x3</a>;
213 <a name="l00180"></a>00180 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">lowp_umat4x4</a> <a class="code" href="a00241.html#gaf72e6d399c42985db6872c50f53d7eb8" title="Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">umat4x4</a>;
214 <a name="l00181"></a>00181 <span class="preprocessor">#else //if(defined(GLM_PRECISION_MEDIUMP_UINT))</span>
215 <a name="l00182"></a><a class="code" href="a00241.html#ga4cae85566f900debf930c41944b64691">00182</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">mediump_umat2</a> <a class="code" href="a00241.html#ga4cae85566f900debf930c41944b64691" title="Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">umat2</a>;
216 <a name="l00183"></a><a class="code" href="a00241.html#ga5085e3ff02abbac5e537eb7b89ab63b6">00183</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">mediump_umat3</a> <a class="code" href="a00241.html#ga5085e3ff02abbac5e537eb7b89ab63b6" title="Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">umat3</a>;
217 <a name="l00184"></a><a class="code" href="a00241.html#ga38bc7bb6494e344185df596deeb4544c">00184</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">mediump_umat4</a> <a class="code" href="a00241.html#ga38bc7bb6494e344185df596deeb4544c" title="Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">umat4</a>;
218 <a name="l00185"></a><a class="code" href="a00241.html#gabf8acdd33ce8951051edbca5200898aa">00185</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">mediump_umat2x2</a> <a class="code" href="a00241.html#gabf8acdd33ce8951051edbca5200898aa" title="Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)">umat2x2</a>;
219 <a name="l00186"></a><a class="code" href="a00241.html#ga1870da7578d5022b973a83155d386ab3">00186</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">mediump_umat2x3</a> <a class="code" href="a00241.html#ga1870da7578d5022b973a83155d386ab3" title="Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)">umat2x3</a>;
220 <a name="l00187"></a><a class="code" href="a00241.html#ga57936a3998e992370e59a223e0ee4fd4">00187</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">mediump_umat2x4</a> <a class="code" href="a00241.html#ga57936a3998e992370e59a223e0ee4fd4" title="Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)">umat2x4</a>;
221 <a name="l00188"></a><a class="code" href="a00241.html#ga9cd7fa637a4a6788337f45231fad9e1a">00188</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">mediump_umat3x2</a> <a class="code" href="a00241.html#ga9cd7fa637a4a6788337f45231fad9e1a" title="Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)">umat3x2</a>;
222 <a name="l00189"></a><a class="code" href="a00241.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">00189</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">mediump_umat3x3</a> <a class="code" href="a00241.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb" title="Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)">umat3x3</a>;
223 <a name="l00190"></a><a class="code" href="a00241.html#gae7c78ff3fc4309605ab0fa186c8d48ba">00190</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">mediump_umat3x4</a> <a class="code" href="a00241.html#gae7c78ff3fc4309605ab0fa186c8d48ba" title="Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)">umat3x4</a>;
224 <a name="l00191"></a><a class="code" href="a00241.html#ga70fa2d05896aa83cbc8c07672a429b53">00191</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">mediump_umat4x2</a> <a class="code" href="a00241.html#ga70fa2d05896aa83cbc8c07672a429b53" title="Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)">umat4x2</a>;
225 <a name="l00192"></a><a class="code" href="a00241.html#ga87581417945411f75cb31dd6ca1dba98">00192</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">mediump_umat4x3</a> <a class="code" href="a00241.html#ga87581417945411f75cb31dd6ca1dba98" title="Unsigned integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)">umat4x3</a>;
226 <a name="l00193"></a><a class="code" href="a00241.html#gaf72e6d399c42985db6872c50f53d7eb8">00193</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">mediump_umat4x4</a> <a class="code" href="a00241.html#gaf72e6d399c42985db6872c50f53d7eb8" title="Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)">umat4x4</a>;
227 <a name="l00194"></a>00194 <span class="preprocessor">#endif//GLM_PRECISION</span>
228 <a name="l00195"></a>00195 <span class="preprocessor"></span>
229 <a name="l00197"></a>00197
230 <a name="l00198"></a>00198 }<span class="comment">//namespace matrix_integer</span>
231 <a name="l00199"></a>00199 }<span class="comment">//namespace gtc</span>
232 <a name="l00200"></a>00200 }<span class="comment">//namespace glm</span>
233 <a name="l00201"></a>00201
234 <a name="l00202"></a>00202 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::matrix_integer;}
234235 <a name="l00203"></a>00203
235 <a name="l00204"></a>00204 }<span class="comment">//namespace matrix_integer</span>
236 <a name="l00205"></a>00205 }<span class="comment">//namespace gtc</span>
237 <a name="l00206"></a>00206 }<span class="comment">//namespace glm</span>
238 <a name="l00207"></a>00207
239 <a name="l00208"></a>00208 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::matrix_integer;}
240 <a name="l00209"></a>00209
241 <a name="l00210"></a>00210 <span class="preprocessor">#endif//glm_gtc_matrix_integer</span>
236 <a name="l00204"></a>00204 <span class="preprocessor">#endif//glm_gtc_matrix_integer</span>
242237 </pre></div></div>
243238 </div>
244239 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_interpolation extension included&quot;)</span>
5858 <a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5959 <a name="l00025"></a>00025 <span class="preprocessor"></span>
60 <a name="l00026"></a>00026 <span class="keyword">namespace </span>glm
61 <a name="l00027"></a>00027 {
62 <a name="l00028"></a>00028 <span class="keyword">namespace </span>test{
63 <a name="l00029"></a>00029 <span class="keywordtype">void</span> main_gtx_transform();
64 <a name="l00030"></a>00030 }<span class="comment">//namespace test</span>
65 <a name="l00031"></a>00031
66 <a name="l00032"></a>00032 <span class="keyword">namespace </span>gtx{
67 <a name="l00034"></a><a class="code" href="a00192.html">00034</a> <span class="keyword">namespace </span>matrix_interpolation
68 <a name="l00035"></a>00035 {
69 <a name="l00038"></a>00038
70 <a name="l00041"></a>00041 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
71 <a name="l00042"></a>00042 <span class="keywordtype">void</span> <a class="code" href="a00305.html#ga92bfeca9adbb485dc0228138d3fd614e" title="Get the axis and angle of the rotation from a matrix.">axisAngle</a>(
72 <a name="l00043"></a>00043 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat,
73 <a name="l00044"></a>00044 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> &amp; <a class="code" href="a00286.html#ga6dd1904e2a6cc8e54bd324994094a6f9" title="Returns the q rotation axis.">axis</a>,
74 <a name="l00045"></a>00045 T &amp; <a class="code" href="a00286.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>);
75 <a name="l00046"></a>00046
76 <a name="l00049"></a>00049 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
77 <a name="l00050"></a>00050 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00305.html#ga8d784d02e76a1411bd16e357e9e78279" title="Build a matrix from axis and angle.">axisAngleMatrix</a>(
78 <a name="l00051"></a>00051 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; axis,
79 <a name="l00052"></a>00052 T <span class="keyword">const</span> angle);
80 <a name="l00053"></a>00053
81 <a name="l00057"></a>00057 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
82 <a name="l00058"></a>00058 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00305.html#ga3a26ef5b04c25263a647ee828faa3bb4" title="Build a interpolation of 4 * 4 matrixes.">interpolate</a>(
83 <a name="l00059"></a>00059 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
84 <a name="l00060"></a>00060 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2,
85 <a name="l00061"></a>00061 T <span class="keyword">const</span> delta);
86 <a name="l00062"></a>00062
87 <a name="l00064"></a>00064
88 <a name="l00065"></a>00065 }<span class="comment">//namespace matrix_interpolation</span>
89 <a name="l00066"></a>00066 }<span class="comment">//namespace gtx</span>
90 <a name="l00067"></a>00067 }<span class="comment">//namespace glm</span>
91 <a name="l00068"></a>00068
92 <a name="l00069"></a>00069 <span class="preprocessor">#include &quot;matrix_interpolation.inl&quot;</span>
93 <a name="l00070"></a>00070
94 <a name="l00071"></a>00071 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::matrix_interpolation;}
95 <a name="l00072"></a>00072
96 <a name="l00073"></a>00073 <span class="preprocessor">#endif//glm_gtx_transform</span>
60 <a name="l00026"></a>00026 <span class="keyword">namespace </span>glm{
61 <a name="l00027"></a>00027 <span class="keyword">namespace </span>gtx{
62 <a name="l00028"></a><a class="code" href="a00192.html">00028</a> <span class="keyword">namespace </span>matrix_interpolation
63 <a name="l00029"></a>00029 {
64 <a name="l00032"></a>00032
65 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
66 <a name="l00036"></a>00036 <span class="keywordtype">void</span> <a class="code" href="a00305.html#ga92bfeca9adbb485dc0228138d3fd614e" title="Get the axis and angle of the rotation from a matrix.">axisAngle</a>(
67 <a name="l00037"></a>00037 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat,
68 <a name="l00038"></a>00038 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> &amp; <a class="code" href="a00285.html#ga6dd1904e2a6cc8e54bd324994094a6f9" title="Returns the q rotation axis.">axis</a>,
69 <a name="l00039"></a>00039 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; <a class="code" href="a00285.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>);
70 <a name="l00040"></a>00040
71 <a name="l00043"></a>00043 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
72 <a name="l00044"></a>00044 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00305.html#ga8d784d02e76a1411bd16e357e9e78279" title="Build a matrix from axis and angle.">axisAngleMatrix</a>(
73 <a name="l00045"></a>00045 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; axis,
74 <a name="l00046"></a>00046 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> angle);
75 <a name="l00047"></a>00047
76 <a name="l00051"></a>00051 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
77 <a name="l00052"></a>00052 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00305.html#ga3a26ef5b04c25263a647ee828faa3bb4" title="Build a interpolation of 4 * 4 matrixes.">interpolate</a>(
78 <a name="l00053"></a>00053 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
79 <a name="l00054"></a>00054 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2,
80 <a name="l00055"></a>00055 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> delta);
81 <a name="l00056"></a>00056
82 <a name="l00058"></a>00058 }<span class="comment">//namespace matrix_interpolation</span>
83 <a name="l00059"></a>00059 }<span class="comment">//namespace gtx</span>
84 <a name="l00060"></a>00060 }<span class="comment">//namespace glm</span>
85 <a name="l00061"></a>00061
86 <a name="l00062"></a>00062 <span class="preprocessor">#include &quot;matrix_interpolation.inl&quot;</span>
87 <a name="l00063"></a>00063
88 <a name="l00064"></a>00064 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::matrix_interpolation;}
89 <a name="l00065"></a>00065
90 <a name="l00066"></a>00066 <span class="preprocessor">#endif//glm_gtx_transform</span>
9791 </pre></div></div>
9892 </div>
9993 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
5858 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
5959 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtc{
60 <a name="l00026"></a><a class="code" href="a00162.html">00026</a> <span class="keyword">namespace </span>matrix_inverse
61 <a name="l00027"></a>00027 {
62 <a name="l00030"></a>00030
63 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
64 <a name="l00034"></a>00034 genType <a class="code" href="a00243.html#gade90330b2e6ef1b27371498cab1c38da" title="Fast matrix inverse for affine matrix.">affineInverse</a>(genType <span class="keyword">const</span> &amp; m);
65 <a name="l00035"></a>00035
66 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
67 <a name="l00039"></a>00039 GLM_FUNC_QUALIFIER <span class="keyword">typename</span> genType::value_type <a class="code" href="a00243.html#ga1df67bb7d1c4c89484ac57c5cc09c7a3" title="Compute the inverse transpose of a matrix.">inverseTranspose</a>(
68 <a name="l00040"></a>00040 genType <span class="keyword">const</span> &amp; m);
69 <a name="l00041"></a>00041
70 <a name="l00043"></a>00043
71 <a name="l00044"></a>00044 }<span class="comment">//namespace matrix_inverse</span>
72 <a name="l00045"></a>00045 }<span class="comment">//namespace gtc</span>
73 <a name="l00046"></a>00046 }<span class="comment">//namespace glm</span>
74 <a name="l00047"></a>00047
75 <a name="l00048"></a>00048 <span class="preprocessor">#include &quot;matrix_inverse.inl&quot;</span>
76 <a name="l00049"></a>00049
77 <a name="l00050"></a>00050 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::matrix_inverse;}
78 <a name="l00051"></a>00051
79 <a name="l00052"></a>00052 <span class="preprocessor">#endif//glm_gtc_matrix_inverse</span>
60 <a name="l00025"></a><a class="code" href="a00162.html">00025</a> <span class="keyword">namespace </span>matrix_inverse
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
64 <a name="l00033"></a>00033 genType <a class="code" href="a00242.html#gade90330b2e6ef1b27371498cab1c38da" title="Fast matrix inverse for affine matrix.">affineInverse</a>(genType <span class="keyword">const</span> &amp; m);
65 <a name="l00034"></a>00034
66 <a name="l00037"></a>00037 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
67 <a name="l00038"></a>00038 GLM_FUNC_QUALIFIER <span class="keyword">typename</span> genType::value_type <a class="code" href="a00242.html#ga1df67bb7d1c4c89484ac57c5cc09c7a3" title="Compute the inverse transpose of a matrix.">inverseTranspose</a>(
68 <a name="l00039"></a>00039 genType <span class="keyword">const</span> &amp; m);
69 <a name="l00040"></a>00040
70 <a name="l00042"></a>00042
71 <a name="l00043"></a>00043 }<span class="comment">//namespace matrix_inverse</span>
72 <a name="l00044"></a>00044 }<span class="comment">//namespace gtc</span>
73 <a name="l00045"></a>00045 }<span class="comment">//namespace glm</span>
74 <a name="l00046"></a>00046
75 <a name="l00047"></a>00047 <span class="preprocessor">#include &quot;matrix_inverse.inl&quot;</span>
76 <a name="l00048"></a>00048
77 <a name="l00049"></a>00049 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::matrix_inverse;}
78 <a name="l00050"></a>00050
79 <a name="l00051"></a>00051 <span class="preprocessor">#endif//glm_gtc_matrix_inverse</span>
8080 </pre></div></div>
8181 </div>
8282 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_major_storage extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtx{
61 <a name="l00027"></a><a class="code" href="a00193.html">00027</a> <span class="keyword">namespace </span>matrix_major_storage
62 <a name="l00028"></a>00028 {
63 <a name="l00031"></a>00031
64 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
65 <a name="l00035"></a>00035 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <a class="code" href="a00271.html#ga136490f7562fa59d7733e2664f8c9fbb" title="Build a row major matrix from row vectors.">rowMajor2</a>(
66 <a name="l00036"></a>00036 <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; v1,
67 <a name="l00037"></a>00037 <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; v2);
68 <a name="l00038"></a>00038
69 <a name="l00041"></a>00041 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
70 <a name="l00042"></a>00042 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <a class="code" href="a00271.html#ga136490f7562fa59d7733e2664f8c9fbb" title="Build a row major matrix from row vectors.">rowMajor2</a>(
71 <a name="l00043"></a>00043 <span class="keyword">const</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a>&amp; m);
72 <a name="l00044"></a>00044
73 <a name="l00047"></a>00047 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
74 <a name="l00048"></a>00048 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00271.html#ga276a9398b180d8028b4a73fb9e675a23" title="Build a row major matrix from row vectors.">rowMajor3</a>(
75 <a name="l00049"></a>00049 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v1,
76 <a name="l00050"></a>00050 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v2,
77 <a name="l00051"></a>00051 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v3);
78 <a name="l00052"></a>00052
79 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
80 <a name="l00056"></a>00056 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00271.html#ga276a9398b180d8028b4a73fb9e675a23" title="Build a row major matrix from row vectors.">rowMajor3</a>(
81 <a name="l00057"></a>00057 <span class="keyword">const</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a>&amp; m);
82 <a name="l00058"></a>00058
83 <a name="l00061"></a>00061 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
84 <a name="l00062"></a>00062 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00271.html#gae1d60e551ab2912d6bb32a999c65b932" title="Build a row major matrix from row vectors.">rowMajor4</a>(
85 <a name="l00063"></a>00063 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v1,
86 <a name="l00064"></a>00064 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v2,
87 <a name="l00065"></a>00065 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v3,
88 <a name="l00066"></a>00066 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v4);
89 <a name="l00067"></a>00067
90 <a name="l00070"></a>00070 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
91 <a name="l00071"></a>00071 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00271.html#gae1d60e551ab2912d6bb32a999c65b932" title="Build a row major matrix from row vectors.">rowMajor4</a>(
92 <a name="l00072"></a>00072 <span class="keyword">const</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a>&amp; m);
93 <a name="l00073"></a>00073
94 <a name="l00076"></a>00076 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
95 <a name="l00077"></a>00077 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <a class="code" href="a00271.html#ga340582d0baf34cf642a6f2ffa34d1d12" title="Build a column major matrix from column vectors.">colMajor2</a>(
96 <a name="l00078"></a>00078 <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; v1,
97 <a name="l00079"></a>00079 <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; v2);
98 <a name="l00080"></a>00080
99 <a name="l00083"></a>00083 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
100 <a name="l00084"></a>00084 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <a class="code" href="a00271.html#ga340582d0baf34cf642a6f2ffa34d1d12" title="Build a column major matrix from column vectors.">colMajor2</a>(
101 <a name="l00085"></a>00085 <span class="keyword">const</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a>&amp; m);
102 <a name="l00086"></a>00086
103 <a name="l00089"></a>00089 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
104 <a name="l00090"></a>00090 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00271.html#ga2951b0d82dcc941092fcca1035d789e1" title="Build a column major matrix from column vectors.">colMajor3</a>(
105 <a name="l00091"></a>00091 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v1,
106 <a name="l00092"></a>00092 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v2,
107 <a name="l00093"></a>00093 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v3);
108 <a name="l00094"></a>00094
109 <a name="l00097"></a>00097 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
110 <a name="l00098"></a>00098 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00271.html#ga2951b0d82dcc941092fcca1035d789e1" title="Build a column major matrix from column vectors.">colMajor3</a>(
111 <a name="l00099"></a>00099 <span class="keyword">const</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a>&amp; m);
112 <a name="l00100"></a>00100
113 <a name="l00103"></a>00103 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
114 <a name="l00104"></a>00104 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00271.html#ga03d1d5a138cc0b75a380376e6c114d6c" title="Build a column major matrix from column vectors.">colMajor4</a>(
115 <a name="l00105"></a>00105 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v1,
116 <a name="l00106"></a>00106 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v2,
117 <a name="l00107"></a>00107 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v3,
118 <a name="l00108"></a>00108 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v4);
119 <a name="l00109"></a>00109
120 <a name="l00112"></a>00112 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
121 <a name="l00113"></a>00113 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00271.html#ga03d1d5a138cc0b75a380376e6c114d6c" title="Build a column major matrix from column vectors.">colMajor4</a>(
122 <a name="l00114"></a>00114 <span class="keyword">const</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a>&amp; m);
123 <a name="l00115"></a>00115
124 <a name="l00117"></a>00117
125 <a name="l00118"></a>00118 }<span class="comment">//namespace matrix_major_storage</span>
126 <a name="l00119"></a>00119 }<span class="comment">//namespace gtx</span>
127 <a name="l00120"></a>00120 }<span class="comment">//namespace glm</span>
128 <a name="l00121"></a>00121
129 <a name="l00122"></a>00122 <span class="preprocessor">#include &quot;matrix_major_storage.inl&quot;</span>
130 <a name="l00123"></a>00123
131 <a name="l00124"></a>00124 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::matrix_major_storage;}
132 <a name="l00125"></a>00125
133 <a name="l00126"></a>00126 <span class="preprocessor">#endif//glm_gtx_matrix_major_storage</span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00193.html">00025</a> <span class="keyword">namespace </span>matrix_major_storage
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
64 <a name="l00033"></a>00033 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <a class="code" href="a00270.html#ga136490f7562fa59d7733e2664f8c9fbb" title="Build a row major matrix from row vectors.">rowMajor2</a>(
65 <a name="l00034"></a>00034 <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; v1,
66 <a name="l00035"></a>00035 <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; v2);
67 <a name="l00036"></a>00036
68 <a name="l00039"></a>00039 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00040"></a>00040 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <a class="code" href="a00270.html#ga136490f7562fa59d7733e2664f8c9fbb" title="Build a row major matrix from row vectors.">rowMajor2</a>(
70 <a name="l00041"></a>00041 <span class="keyword">const</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a>&amp; m);
71 <a name="l00042"></a>00042
72 <a name="l00045"></a>00045 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
73 <a name="l00046"></a>00046 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00270.html#ga276a9398b180d8028b4a73fb9e675a23" title="Build a row major matrix from row vectors.">rowMajor3</a>(
74 <a name="l00047"></a>00047 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v1,
75 <a name="l00048"></a>00048 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v2,
76 <a name="l00049"></a>00049 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v3);
77 <a name="l00050"></a>00050
78 <a name="l00053"></a>00053 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
79 <a name="l00054"></a>00054 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00270.html#ga276a9398b180d8028b4a73fb9e675a23" title="Build a row major matrix from row vectors.">rowMajor3</a>(
80 <a name="l00055"></a>00055 <span class="keyword">const</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a>&amp; m);
81 <a name="l00056"></a>00056
82 <a name="l00059"></a>00059 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
83 <a name="l00060"></a>00060 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00270.html#gae1d60e551ab2912d6bb32a999c65b932" title="Build a row major matrix from row vectors.">rowMajor4</a>(
84 <a name="l00061"></a>00061 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v1,
85 <a name="l00062"></a>00062 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v2,
86 <a name="l00063"></a>00063 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v3,
87 <a name="l00064"></a>00064 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v4);
88 <a name="l00065"></a>00065
89 <a name="l00068"></a>00068 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
90 <a name="l00069"></a>00069 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00270.html#gae1d60e551ab2912d6bb32a999c65b932" title="Build a row major matrix from row vectors.">rowMajor4</a>(
91 <a name="l00070"></a>00070 <span class="keyword">const</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a>&amp; m);
92 <a name="l00071"></a>00071
93 <a name="l00074"></a>00074 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
94 <a name="l00075"></a>00075 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <a class="code" href="a00270.html#ga340582d0baf34cf642a6f2ffa34d1d12" title="Build a column major matrix from column vectors.">colMajor2</a>(
95 <a name="l00076"></a>00076 <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; v1,
96 <a name="l00077"></a>00077 <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; v2);
97 <a name="l00078"></a>00078
98 <a name="l00081"></a>00081 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
99 <a name="l00082"></a>00082 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <a class="code" href="a00270.html#ga340582d0baf34cf642a6f2ffa34d1d12" title="Build a column major matrix from column vectors.">colMajor2</a>(
100 <a name="l00083"></a>00083 <span class="keyword">const</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a>&amp; m);
101 <a name="l00084"></a>00084
102 <a name="l00087"></a>00087 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
103 <a name="l00088"></a>00088 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00270.html#ga2951b0d82dcc941092fcca1035d789e1" title="Build a column major matrix from column vectors.">colMajor3</a>(
104 <a name="l00089"></a>00089 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v1,
105 <a name="l00090"></a>00090 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v2,
106 <a name="l00091"></a>00091 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v3);
107 <a name="l00092"></a>00092
108 <a name="l00095"></a>00095 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
109 <a name="l00096"></a>00096 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00270.html#ga2951b0d82dcc941092fcca1035d789e1" title="Build a column major matrix from column vectors.">colMajor3</a>(
110 <a name="l00097"></a>00097 <span class="keyword">const</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a>&amp; m);
111 <a name="l00098"></a>00098
112 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
113 <a name="l00102"></a>00102 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00270.html#ga03d1d5a138cc0b75a380376e6c114d6c" title="Build a column major matrix from column vectors.">colMajor4</a>(
114 <a name="l00103"></a>00103 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v1,
115 <a name="l00104"></a>00104 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v2,
116 <a name="l00105"></a>00105 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v3,
117 <a name="l00106"></a>00106 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v4);
118 <a name="l00107"></a>00107
119 <a name="l00110"></a>00110 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
120 <a name="l00111"></a>00111 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00270.html#ga03d1d5a138cc0b75a380376e6c114d6c" title="Build a column major matrix from column vectors.">colMajor4</a>(
121 <a name="l00112"></a>00112 <span class="keyword">const</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a>&amp; m);
122 <a name="l00113"></a>00113
123 <a name="l00115"></a>00115 }<span class="comment">//namespace matrix_major_storage</span>
124 <a name="l00116"></a>00116 }<span class="comment">//namespace gtx</span>
125 <a name="l00117"></a>00117 }<span class="comment">//namespace glm</span>
126 <a name="l00118"></a>00118
127 <a name="l00119"></a>00119 <span class="preprocessor">#include &quot;matrix_major_storage.inl&quot;</span>
128 <a name="l00120"></a>00120
129 <a name="l00121"></a>00121 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::matrix_major_storage;}
130 <a name="l00122"></a>00122
131 <a name="l00123"></a>00123 <span class="preprocessor">#endif//glm_gtx_matrix_major_storage</span>
134132 </pre></div></div>
135133 </div>
136134 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_operation extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">void</span> main_gtx_matrix_operation();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00194.html">00031</a> <span class="keyword">namespace </span>matrix_operation
66 <a name="l00032"></a>00032 {
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00194.html">00025</a> <span class="keyword">namespace </span>matrix_operation
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
64 <a name="l00033"></a>00033 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;valType&gt;</a> <a class="code" href="a00271.html#gae2848e38a4533d20f5e7af384440d4d6" title="Build a diagonal matrix.">diagonal2x2</a>(
65 <a name="l00034"></a>00034 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
6766 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
69 <a name="l00039"></a>00039 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;valType&gt;</a> <a class="code" href="a00272.html#gae2848e38a4533d20f5e7af384440d4d6" title="Build a diagonal matrix.">diagonal2x2</a>(
70 <a name="l00040"></a>00040 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
67 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
68 <a name="l00039"></a>00039 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;valType&gt;</a> <a class="code" href="a00271.html#ga61c9061e742d63c52cde17c0bc47a9f3" title="Build a diagonal matrix.">diagonal2x3</a>(
69 <a name="l00040"></a>00040 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
7170 <a name="l00041"></a>00041
72 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
73 <a name="l00045"></a>00045 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;valType&gt;</a> <a class="code" href="a00272.html#ga61c9061e742d63c52cde17c0bc47a9f3" title="Build a diagonal matrix.">diagonal2x3</a>(
74 <a name="l00046"></a>00046 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
71 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
72 <a name="l00045"></a>00045 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;valType&gt;</a> <a class="code" href="a00271.html#ga1a2d2575b5a228370228d0ab34e704aa" title="Build a diagonal matrix.">diagonal2x4</a>(
73 <a name="l00046"></a>00046 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
7574 <a name="l00047"></a>00047
76 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
77 <a name="l00051"></a>00051 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;valType&gt;</a> <a class="code" href="a00272.html#ga1a2d2575b5a228370228d0ab34e704aa" title="Build a diagonal matrix.">diagonal2x4</a>(
78 <a name="l00052"></a>00052 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
75 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
76 <a name="l00051"></a>00051 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;valType&gt;</a> <a class="code" href="a00271.html#ga5e0245ab431bc049e69abeaaaaf2f455" title="Build a diagonal matrix.">diagonal3x2</a>(
77 <a name="l00052"></a>00052 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
7978 <a name="l00053"></a>00053
80 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
81 <a name="l00057"></a>00057 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;valType&gt;</a> <a class="code" href="a00272.html#ga5e0245ab431bc049e69abeaaaaf2f455" title="Build a diagonal matrix.">diagonal3x2</a>(
82 <a name="l00058"></a>00058 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
79 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
80 <a name="l00057"></a>00057 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;valType&gt;</a> <a class="code" href="a00271.html#gacdd60defc29a8d1aa6be63387d3da76a" title="Build a diagonal matrix.">diagonal3x3</a>(
81 <a name="l00058"></a>00058 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
8382 <a name="l00059"></a>00059
84 <a name="l00062"></a>00062 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
85 <a name="l00063"></a>00063 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;valType&gt;</a> <a class="code" href="a00272.html#gacdd60defc29a8d1aa6be63387d3da76a" title="Build a diagonal matrix.">diagonal3x3</a>(
86 <a name="l00064"></a>00064 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
83 <a name="l00062"></a>00062 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
84 <a name="l00063"></a>00063 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;valType&gt;</a> <a class="code" href="a00271.html#ga3fb59fa3dd6a1db3a8712bcc0c92c926" title="Build a diagonal matrix.">diagonal3x4</a>(
85 <a name="l00064"></a>00064 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
8786 <a name="l00065"></a>00065
88 <a name="l00068"></a>00068 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
89 <a name="l00069"></a>00069 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;valType&gt;</a> <a class="code" href="a00272.html#ga3fb59fa3dd6a1db3a8712bcc0c92c926" title="Build a diagonal matrix.">diagonal3x4</a>(
90 <a name="l00070"></a>00070 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
87 <a name="l00068"></a>00068 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
88 <a name="l00069"></a>00069 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;valType&gt;</a> <a class="code" href="a00271.html#ga25edcc4359dc5a420df609bec1a83289" title="Build a diagonal matrix.">diagonal4x2</a>(
89 <a name="l00070"></a>00070 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
9190 <a name="l00071"></a>00071
92 <a name="l00074"></a>00074 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
93 <a name="l00075"></a>00075 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;valType&gt;</a> <a class="code" href="a00272.html#ga25edcc4359dc5a420df609bec1a83289" title="Build a diagonal matrix.">diagonal4x2</a>(
94 <a name="l00076"></a>00076 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
91 <a name="l00074"></a>00074 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
92 <a name="l00075"></a>00075 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;valType&gt;</a> <a class="code" href="a00271.html#ga7b855b1e9e014561a5edcd8cfd928fcc" title="Build a diagonal matrix.">diagonal4x3</a>(
93 <a name="l00076"></a>00076 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
9594 <a name="l00077"></a>00077
96 <a name="l00080"></a>00080 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
97 <a name="l00081"></a>00081 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;valType&gt;</a> <a class="code" href="a00272.html#ga7b855b1e9e014561a5edcd8cfd928fcc" title="Build a diagonal matrix.">diagonal4x3</a>(
98 <a name="l00082"></a>00082 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
95 <a name="l00080"></a>00080 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
96 <a name="l00081"></a>00081 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00271.html#ga2b8a31afd6c7a64309810db58a35a6e8" title="Build a diagonal matrix.">diagonal4x4</a>(
97 <a name="l00082"></a>00082 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
9998 <a name="l00083"></a>00083
100 <a name="l00086"></a>00086 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
101 <a name="l00087"></a>00087 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00272.html#ga2b8a31afd6c7a64309810db58a35a6e8" title="Build a diagonal matrix.">diagonal4x4</a>(
102 <a name="l00088"></a>00088 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
103 <a name="l00089"></a>00089
104 <a name="l00091"></a>00091
105 <a name="l00092"></a>00092 }<span class="comment">//namespace matrix_operation</span>
106 <a name="l00093"></a>00093 }<span class="comment">//namespace gtx</span>
107 <a name="l00094"></a>00094 }<span class="comment">//namespace glm</span>
108 <a name="l00095"></a>00095
109 <a name="l00096"></a>00096 <span class="preprocessor">#include &quot;matrix_operation.inl&quot;</span>
110 <a name="l00097"></a>00097
111 <a name="l00098"></a>00098 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::matrix_operation;}
112 <a name="l00099"></a>00099
113 <a name="l00100"></a>00100 <span class="preprocessor">#endif//glm_gtx_matrix_operation</span>
99 <a name="l00085"></a>00085 }<span class="comment">//namespace matrix_operation</span>
100 <a name="l00086"></a>00086 }<span class="comment">//namespace gtx</span>
101 <a name="l00087"></a>00087 }<span class="comment">//namespace glm</span>
102 <a name="l00088"></a>00088
103 <a name="l00089"></a>00089 <span class="preprocessor">#include &quot;matrix_operation.inl&quot;</span>
104 <a name="l00090"></a>00090
105 <a name="l00091"></a>00091 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::matrix_operation;}
106 <a name="l00092"></a>00092
107 <a name="l00093"></a>00093 <span class="preprocessor">#endif//glm_gtx_matrix_operation</span>
114108 </pre></div></div>
115109 </div>
116110 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4444 <a name="l00007"></a>00007 <span class="comment">// File : glm/gtx/matrix_query.hpp</span>
4545 <a name="l00009"></a>00009 <span class="comment"></span><span class="comment">// Dependency:</span>
4646 <a name="l00010"></a>00010 <span class="comment">// - GLM core</span>
47 <a name="l00012"></a>00012 <span class="comment"></span>
48 <a name="l00013"></a>00013 <span class="preprocessor">#ifndef glm_gtx_matrix_query</span>
49 <a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define glm_gtx_matrix_query</span>
50 <a name="l00015"></a>00015 <span class="preprocessor"></span>
51 <a name="l00016"></a>00016 <span class="comment">// Dependency:</span>
52 <a name="l00017"></a>00017 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
53 <a name="l00018"></a>00018
54 <a name="l00019"></a>00019 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
55 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_query extension included&quot;)</span>
56 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
57 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">void</span> main_gtx_matrix_query();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00195.html">00031</a> <span class="keyword">namespace </span>matrix_query
66 <a name="l00032"></a>00032 {
67 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00039"></a>00039 <span class="keywordtype">bool</span> <a class="code" href="a00273.html#ga3ea08cf50837874a590ef71c78500b5e" title="Return if a matrix a null matrix.">isNull</a>(
70 <a name="l00040"></a>00040 <span class="keyword">const</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a>&amp; m,
71 <a name="l00041"></a>00041 <span class="keyword">const</span> T epsilon = std::numeric_limits&lt;T&gt;::epsilon());
72 <a name="l00042"></a>00042
73 <a name="l00045"></a>00045 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
74 <a name="l00046"></a>00046 <span class="keywordtype">bool</span> <a class="code" href="a00273.html#ga3ea08cf50837874a590ef71c78500b5e" title="Return if a matrix a null matrix.">isNull</a>(
75 <a name="l00047"></a>00047 <span class="keyword">const</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a>&amp; m,
76 <a name="l00048"></a>00048 <span class="keyword">const</span> T epsilon = std::numeric_limits&lt;T&gt;::epsilon());
77 <a name="l00049"></a>00049
78 <a name="l00052"></a>00052 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
79 <a name="l00053"></a>00053 <span class="keywordtype">bool</span> <a class="code" href="a00273.html#ga3ea08cf50837874a590ef71c78500b5e" title="Return if a matrix a null matrix.">isNull</a>(
80 <a name="l00054"></a>00054 <span class="keyword">const</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a>&amp; m,
81 <a name="l00055"></a>00055 <span class="keyword">const</span> T epsilon = std::numeric_limits&lt;T&gt;::epsilon());
82 <a name="l00056"></a>00056
83 <a name="l00059"></a>00059 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;
84 <a name="l00060"></a>00060 <span class="keywordtype">bool</span> <a class="code" href="a00273.html#ga131e3e65bd8a1ac035f849483631f122" title="Return if a matrix an identity matrix.">isIdentity</a>(
85 <a name="l00061"></a>00061 <span class="keyword">const</span> genType&amp; m,
86 <a name="l00062"></a>00062 <span class="keyword">const</span> <span class="keyword">typename</span> genType::value_type epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
87 <a name="l00063"></a>00063
88 <a name="l00066"></a>00066 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
89 <a name="l00067"></a>00067 <span class="keywordtype">bool</span> <a class="code" href="a00273.html#ga4c3e999f20d9b74852a61ef5772f3f02" title="Return if a matrix a normalized matrix.">isNormalized</a>(
90 <a name="l00068"></a>00068 <span class="keyword">const</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a>&amp; m,
91 <a name="l00069"></a>00069 <span class="keyword">const</span> T epsilon = std::numeric_limits&lt;T&gt;::epsilon());
92 <a name="l00070"></a>00070
93 <a name="l00073"></a>00073 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
94 <a name="l00074"></a>00074 <span class="keywordtype">bool</span> <a class="code" href="a00273.html#ga4c3e999f20d9b74852a61ef5772f3f02" title="Return if a matrix a normalized matrix.">isNormalized</a>(
95 <a name="l00075"></a>00075 <span class="keyword">const</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a>&amp; m,
96 <a name="l00076"></a>00076 <span class="keyword">const</span> T epsilon = std::numeric_limits&lt;T&gt;::epsilon());
97 <a name="l00077"></a>00077
98 <a name="l00080"></a>00080 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
99 <a name="l00081"></a>00081 <span class="keywordtype">bool</span> <a class="code" href="a00273.html#ga4c3e999f20d9b74852a61ef5772f3f02" title="Return if a matrix a normalized matrix.">isNormalized</a>(
100 <a name="l00082"></a>00082 <span class="keyword">const</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a>&amp; m,
101 <a name="l00083"></a>00083 <span class="keyword">const</span> T epsilon = std::numeric_limits&lt;T&gt;::epsilon());
102 <a name="l00084"></a>00084
103 <a name="l00087"></a>00087 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;
104 <a name="l00088"></a>00088 <span class="keywordtype">bool</span> <a class="code" href="a00273.html#ga87823a9c3fb605773789866fc31f60e8" title="Return if a matrix an orthonormalized matrix.">isOrthogonal</a>(
105 <a name="l00089"></a>00089 <span class="keyword">const</span> genType&amp; m,
106 <a name="l00090"></a>00090 <span class="keyword">const</span> <span class="keyword">typename</span> genType::value_type epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
47 <a name="l00011"></a>00011 <span class="comment">// - GLM_GTX_matrix_query</span>
48 <a name="l00013"></a>00013 <span class="comment"></span>
49 <a name="l00014"></a>00014 <span class="preprocessor">#ifndef glm_gtx_matrix_query</span>
50 <a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define glm_gtx_matrix_query</span>
51 <a name="l00016"></a>00016 <span class="preprocessor"></span>
52 <a name="l00017"></a>00017 <span class="comment">// Dependency:</span>
53 <a name="l00018"></a>00018 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
54 <a name="l00019"></a>00019
55 <a name="l00020"></a>00020 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
56 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_query extension included&quot;)</span>
57 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
58 <a name="l00023"></a>00023 <span class="preprocessor"></span>
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm{
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtx{
61 <a name="l00026"></a><a class="code" href="a00195.html">00026</a> <span class="keyword">namespace </span>matrix_query
62 <a name="l00027"></a>00027 {
63 <a name="l00030"></a>00030
64 <a name="l00033"></a>00033 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
65 <a name="l00034"></a>00034 <span class="keywordtype">bool</span> <a class="code" href="a00272.html#ga3ea08cf50837874a590ef71c78500b5e" title="Return if a matrix a null matrix.">isNull</a>(
66 <a name="l00035"></a>00035 <span class="keyword">const</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a>&amp; m,
67 <a name="l00036"></a>00036 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> epsilon = std::numeric_limits&lt;T&gt;::epsilon());
68 <a name="l00037"></a>00037
69 <a name="l00040"></a>00040 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
70 <a name="l00041"></a>00041 <span class="keywordtype">bool</span> <a class="code" href="a00272.html#ga3ea08cf50837874a590ef71c78500b5e" title="Return if a matrix a null matrix.">isNull</a>(
71 <a name="l00042"></a>00042 <span class="keyword">const</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a>&amp; m,
72 <a name="l00043"></a>00043 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> epsilon = std::numeric_limits&lt;T&gt;::epsilon());
73 <a name="l00044"></a>00044
74 <a name="l00047"></a>00047 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
75 <a name="l00048"></a>00048 <span class="keywordtype">bool</span> <a class="code" href="a00272.html#ga3ea08cf50837874a590ef71c78500b5e" title="Return if a matrix a null matrix.">isNull</a>(
76 <a name="l00049"></a>00049 <span class="keyword">const</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a>&amp; m,
77 <a name="l00050"></a>00050 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> epsilon = std::numeric_limits&lt;T&gt;::epsilon());
78 <a name="l00051"></a>00051
79 <a name="l00054"></a>00054 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;
80 <a name="l00055"></a>00055 <span class="keywordtype">bool</span> <a class="code" href="a00272.html#ga131e3e65bd8a1ac035f849483631f122" title="Return if a matrix an identity matrix.">isIdentity</a>(
81 <a name="l00056"></a>00056 <span class="keyword">const</span> genType&amp; m,
82 <a name="l00057"></a>00057 <span class="keyword">const</span> <span class="keyword">typename</span> genType::value_type epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
83 <a name="l00058"></a>00058
84 <a name="l00061"></a>00061 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
85 <a name="l00062"></a>00062 <span class="keywordtype">bool</span> <a class="code" href="a00272.html#ga4c3e999f20d9b74852a61ef5772f3f02" title="Return if a matrix a normalized matrix.">isNormalized</a>(
86 <a name="l00063"></a>00063 <span class="keyword">const</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a>&amp; m,
87 <a name="l00064"></a>00064 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> epsilon = std::numeric_limits&lt;T&gt;::epsilon());
88 <a name="l00065"></a>00065
89 <a name="l00068"></a>00068 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
90 <a name="l00069"></a>00069 <span class="keywordtype">bool</span> <a class="code" href="a00272.html#ga4c3e999f20d9b74852a61ef5772f3f02" title="Return if a matrix a normalized matrix.">isNormalized</a>(
91 <a name="l00070"></a>00070 <span class="keyword">const</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a>&amp; m,
92 <a name="l00071"></a>00071 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> epsilon = std::numeric_limits&lt;T&gt;::epsilon());
93 <a name="l00072"></a>00072
94 <a name="l00075"></a>00075 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
95 <a name="l00076"></a>00076 <span class="keywordtype">bool</span> <a class="code" href="a00272.html#ga4c3e999f20d9b74852a61ef5772f3f02" title="Return if a matrix a normalized matrix.">isNormalized</a>(
96 <a name="l00077"></a>00077 <span class="keyword">const</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a>&amp; m,
97 <a name="l00078"></a>00078 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> epsilon = std::numeric_limits&lt;T&gt;::epsilon());
98 <a name="l00079"></a>00079
99 <a name="l00082"></a>00082 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;
100 <a name="l00083"></a>00083 <span class="keywordtype">bool</span> <a class="code" href="a00272.html#ga87823a9c3fb605773789866fc31f60e8" title="Return if a matrix an orthonormalized matrix.">isOrthogonal</a>(
101 <a name="l00084"></a>00084 <span class="keyword">const</span> genType&amp; m,
102 <a name="l00085"></a>00085 <span class="keyword">const</span> <span class="keyword">typename</span> genType::value_type epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
103 <a name="l00086"></a>00086
104 <a name="l00088"></a>00088 }<span class="comment">//namespace matrix_query</span>
105 <a name="l00089"></a>00089 }<span class="comment">//namespace gtx</span>
106 <a name="l00090"></a>00090 }<span class="comment">//namespace glm</span>
107107 <a name="l00091"></a>00091
108 <a name="l00093"></a>00093 }<span class="comment">//namespace matrix_query</span>
109 <a name="l00094"></a>00094 }<span class="comment">//namespace gtx</span>
110 <a name="l00095"></a>00095 }<span class="comment">//namespace glm</span>
111 <a name="l00096"></a>00096
112 <a name="l00097"></a>00097 <span class="preprocessor">#include &quot;matrix_query.inl&quot;</span>
113 <a name="l00098"></a>00098
114 <a name="l00099"></a>00099 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::matrix_query;}
115 <a name="l00100"></a>00100
116 <a name="l00101"></a>00101 <span class="preprocessor">#endif//glm_gtx_matrix_query</span>
108 <a name="l00092"></a>00092 <span class="preprocessor">#include &quot;matrix_query.inl&quot;</span>
109 <a name="l00093"></a>00093
110 <a name="l00094"></a>00094 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::matrix_query;}
111 <a name="l00095"></a>00095
112 <a name="l00096"></a>00096 <span class="preprocessor">#endif//glm_gtx_matrix_query</span>
117113 </pre></div></div>
118114 </div>
119115 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_matrix_transform extension included&quot;)</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span>
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm
60 <a name="l00025"></a>00025 {
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>test{
62 <a name="l00027"></a>00027 <span class="keywordtype">bool</span> main_gtc_matrix_transform();
63 <a name="l00028"></a>00028 }<span class="comment">//namespace test</span>
64 <a name="l00029"></a>00029
65 <a name="l00030"></a>00030 <span class="keyword">namespace </span>gtc{
66 <a name="l00032"></a><a class="code" href="a00163.html">00032</a> <span class="keyword">namespace </span>matrix_transform
67 <a name="l00033"></a>00033 {
68 <a name="l00036"></a>00036
69 <a name="l00039"></a>00039 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
70 <a name="l00040"></a>00040 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00244.html#ga4683c446c8432476750ade56f2537397" title="Builds a translation 4 * 4 matrix created from a vector of 3 components.">translate</a>(
71 <a name="l00041"></a>00041 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
72 <a name="l00042"></a>00042 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
73 <a name="l00043"></a>00043
74 <a name="l00046"></a>00046 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
75 <a name="l00047"></a>00047 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00244.html#ga48168ff70412019857ceb28b3b2b1f5e" title="Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees...">rotate</a>(
76 <a name="l00048"></a>00048 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
77 <a name="l00049"></a>00049 T <span class="keyword">const</span> &amp; <a class="code" href="a00286.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>,
78 <a name="l00050"></a>00050 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
79 <a name="l00051"></a>00051
80 <a name="l00054"></a>00054 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
81 <a name="l00055"></a>00055 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00244.html#ga6da77ee2c33d0d33de557a37ff35b197" title="Builds a scale 4 * 4 matrix created from 3 scalars.">scale</a>(
82 <a name="l00056"></a>00056 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
83 <a name="l00057"></a>00057 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
84 <a name="l00058"></a>00058
85 <a name="l00061"></a>00061 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
86 <a name="l00062"></a>00062 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00244.html#gad25e5b029ebefac5b657861378c17aa8" title="Creates a matrix for an orthographic parallel viewing volume.">ortho</a>(
87 <a name="l00063"></a>00063 T <span class="keyword">const</span> &amp; left,
88 <a name="l00064"></a>00064 T <span class="keyword">const</span> &amp; right,
89 <a name="l00065"></a>00065 T <span class="keyword">const</span> &amp; bottom,
90 <a name="l00066"></a>00066 T <span class="keyword">const</span> &amp; top,
91 <a name="l00067"></a>00067 T <span class="keyword">const</span> &amp; zNear,
92 <a name="l00068"></a>00068 T <span class="keyword">const</span> &amp; zFar);
93 <a name="l00069"></a>00069
94 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
95 <a name="l00073"></a>00073 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00244.html#gad25e5b029ebefac5b657861378c17aa8" title="Creates a matrix for an orthographic parallel viewing volume.">ortho</a>(
96 <a name="l00074"></a>00074 T <span class="keyword">const</span> &amp; left,
97 <a name="l00075"></a>00075 T <span class="keyword">const</span> &amp; right,
98 <a name="l00076"></a>00076 T <span class="keyword">const</span> &amp; bottom,
99 <a name="l00077"></a>00077 T <span class="keyword">const</span> &amp; top);
100 <a name="l00078"></a>00078
101 <a name="l00081"></a>00081 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
102 <a name="l00082"></a>00082 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00244.html#ga517623bf6344a9e276b877366143116a" title="Creates a frustum matrix.">frustum</a>(
103 <a name="l00083"></a>00083 T <span class="keyword">const</span> &amp; left,
104 <a name="l00084"></a>00084 T <span class="keyword">const</span> &amp; right,
105 <a name="l00085"></a>00085 T <span class="keyword">const</span> &amp; bottom,
106 <a name="l00086"></a>00086 T <span class="keyword">const</span> &amp; top,
107 <a name="l00087"></a>00087 T <span class="keyword">const</span> &amp; nearVal,
108 <a name="l00088"></a>00088 T <span class="keyword">const</span> &amp; farVal);
109 <a name="l00089"></a>00089
110 <a name="l00092"></a>00092 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
111 <a name="l00093"></a>00093 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00244.html#ga1bb3652e43f824d8c1dd5b9e60c80437" title="Creates a matrix for a symetric perspective-view frustum.">perspective</a>(
112 <a name="l00094"></a>00094 T <span class="keyword">const</span> &amp; fovy,
113 <a name="l00095"></a>00095 T <span class="keyword">const</span> &amp; aspect,
114 <a name="l00096"></a>00096 T <span class="keyword">const</span> &amp; zNear,
115 <a name="l00097"></a>00097 T <span class="keyword">const</span> &amp; zFar);
116 <a name="l00098"></a>00098
117 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
118 <a name="l00102"></a>00102 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00244.html#ga2d4fab691ace1abbffb3cdd4cc2316e9" title="Builds a perspective projection matrix based on a field of view From GLM_GTC_matrix_transform extensi...">perspectiveFov</a>(
119 <a name="l00103"></a>00103 valType <span class="keyword">const</span> &amp; fov,
120 <a name="l00104"></a>00104 valType <span class="keyword">const</span> &amp; width,
121 <a name="l00105"></a>00105 valType <span class="keyword">const</span> &amp; height,
122 <a name="l00106"></a>00106 valType <span class="keyword">const</span> &amp; zNear,
123 <a name="l00107"></a>00107 valType <span class="keyword">const</span> &amp; zFar);
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm{
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtc{
61 <a name="l00026"></a><a class="code" href="a00163.html">00026</a> <span class="keyword">namespace </span>matrix_transform
62 <a name="l00027"></a>00027 {
63 <a name="l00030"></a>00030
64 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
65 <a name="l00034"></a>00034 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00243.html#ga4683c446c8432476750ade56f2537397" title="Builds a translation 4 * 4 matrix created from a vector of 3 components.">translate</a>(
66 <a name="l00035"></a>00035 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
67 <a name="l00036"></a>00036 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
68 <a name="l00037"></a>00037
69 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
70 <a name="l00041"></a>00041 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00243.html#ga48168ff70412019857ceb28b3b2b1f5e" title="Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees...">rotate</a>(
71 <a name="l00042"></a>00042 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
72 <a name="l00043"></a>00043 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; <a class="code" href="a00285.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>,
73 <a name="l00044"></a>00044 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
74 <a name="l00045"></a>00045
75 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
76 <a name="l00049"></a>00049 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00243.html#ga6da77ee2c33d0d33de557a37ff35b197" title="Builds a scale 4 * 4 matrix created from 3 scalars.">scale</a>(
77 <a name="l00050"></a>00050 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
78 <a name="l00051"></a>00051 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
79 <a name="l00052"></a>00052
80 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
81 <a name="l00056"></a>00056 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00243.html#gad25e5b029ebefac5b657861378c17aa8" title="Creates a matrix for an orthographic parallel viewing volume.">ortho</a>(
82 <a name="l00057"></a>00057 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; left,
83 <a name="l00058"></a>00058 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; right,
84 <a name="l00059"></a>00059 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; bottom,
85 <a name="l00060"></a>00060 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; top,
86 <a name="l00061"></a>00061 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; zNear,
87 <a name="l00062"></a>00062 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; zFar);
88 <a name="l00063"></a>00063
89 <a name="l00066"></a>00066 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
90 <a name="l00067"></a>00067 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00243.html#gad25e5b029ebefac5b657861378c17aa8" title="Creates a matrix for an orthographic parallel viewing volume.">ortho</a>(
91 <a name="l00068"></a>00068 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; left,
92 <a name="l00069"></a>00069 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; right,
93 <a name="l00070"></a>00070 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; bottom,
94 <a name="l00071"></a>00071 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; top);
95 <a name="l00072"></a>00072
96 <a name="l00075"></a>00075 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
97 <a name="l00076"></a>00076 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00243.html#ga517623bf6344a9e276b877366143116a" title="Creates a frustum matrix.">frustum</a>(
98 <a name="l00077"></a>00077 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; left,
99 <a name="l00078"></a>00078 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; right,
100 <a name="l00079"></a>00079 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; bottom,
101 <a name="l00080"></a>00080 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; top,
102 <a name="l00081"></a>00081 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; nearVal,
103 <a name="l00082"></a>00082 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; farVal);
104 <a name="l00083"></a>00083
105 <a name="l00086"></a>00086 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
106 <a name="l00087"></a>00087 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00243.html#ga1bb3652e43f824d8c1dd5b9e60c80437" title="Creates a matrix for a symetric perspective-view frustum.">perspective</a>(
107 <a name="l00088"></a>00088 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; fovy,
108 <a name="l00089"></a>00089 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; aspect,
109 <a name="l00090"></a>00090 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; zNear,
110 <a name="l00091"></a>00091 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; zFar);
111 <a name="l00092"></a>00092
112 <a name="l00095"></a>00095 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
113 <a name="l00096"></a>00096 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00243.html#ga2d4fab691ace1abbffb3cdd4cc2316e9" title="Builds a perspective projection matrix based on a field of view From GLM_GTC_matrix_transform extensi...">perspectiveFov</a>(
114 <a name="l00097"></a>00097 valType <span class="keyword">const</span> &amp; fov,
115 <a name="l00098"></a>00098 valType <span class="keyword">const</span> &amp; width,
116 <a name="l00099"></a>00099 valType <span class="keyword">const</span> &amp; height,
117 <a name="l00100"></a>00100 valType <span class="keyword">const</span> &amp; zNear,
118 <a name="l00101"></a>00101 valType <span class="keyword">const</span> &amp; zFar);
119 <a name="l00102"></a>00102
120 <a name="l00105"></a>00105 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
121 <a name="l00106"></a>00106 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00243.html#gab8bb0d61dfe8a35df79ee3ccc6dd9afe" title="Creates a matrix for a symmetric perspective-view frustum with far plane at infinite ...">infinitePerspective</a>(
122 <a name="l00107"></a>00107 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> fovy, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> aspect, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> zNear);
124123 <a name="l00108"></a>00108
125 <a name="l00111"></a>00111 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
126 <a name="l00112"></a>00112 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00244.html#gab8bb0d61dfe8a35df79ee3ccc6dd9afe" title="Creates a matrix for a symmetric perspective-view frustum with far plane at infinite ...">infinitePerspective</a>(
127 <a name="l00113"></a>00113 T fovy, T aspect, T zNear);
124 <a name="l00111"></a>00111 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
125 <a name="l00112"></a>00112 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00243.html#gac257959595078f003d6a0e4be6f9a2eb" title="Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics har...">tweakedInfinitePerspective</a>(
126 <a name="l00113"></a>00113 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> fovy, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> aspect, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> zNear);
128127 <a name="l00114"></a>00114
129 <a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
130 <a name="l00118"></a>00118 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00244.html#gac257959595078f003d6a0e4be6f9a2eb" title="Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics har...">tweakedInfinitePerspective</a>(
131 <a name="l00119"></a>00119 T fovy, T aspect, T zNear);
132 <a name="l00120"></a>00120
133 <a name="l00123"></a>00123 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;
134 <a name="l00124"></a>00124 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00244.html#ga30e98d64189bae49582de8373de9f09f" title="Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.">project</a>(
135 <a name="l00125"></a>00125 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; obj,
136 <a name="l00126"></a>00126 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; model,
137 <a name="l00127"></a>00127 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; <a class="code" href="a00285.html#ga2bf24fe9717e1711a4f454430c79d726" title="Projects x on Normal.">proj</a>,
138 <a name="l00128"></a>00128 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; viewport);
139 <a name="l00129"></a>00129
140 <a name="l00132"></a>00132 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;
141 <a name="l00133"></a>00133 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00244.html#gac38d611231b15799a0c06c54ff1ede43" title="Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.">unProject</a>(
142 <a name="l00134"></a>00134 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; win,
143 <a name="l00135"></a>00135 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; model,
144 <a name="l00136"></a>00136 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; proj,
145 <a name="l00137"></a>00137 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; viewport);
146 <a name="l00138"></a>00138
147 <a name="l00141"></a>00141 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;
148 <a name="l00142"></a>00142 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00244.html#ga9ebc45c333c8ec63c5047d6c1fcb9415" title="Define a picking region From GLM_GTC_matrix_transform extension.">pickMatrix</a>(
149 <a name="l00143"></a>00143 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; center,
150 <a name="l00144"></a>00144 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; delta,
151 <a name="l00145"></a>00145 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; viewport);
152 <a name="l00146"></a>00146
153 <a name="l00149"></a>00149 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
154 <a name="l00150"></a>00150 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00244.html#ga2d6b6c381f047ea4d9ca4145fed9edd5" title="Build a look at view matrix.">lookAt</a>(
155 <a name="l00151"></a>00151 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; eye,
156 <a name="l00152"></a>00152 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; center,
157 <a name="l00153"></a>00153 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; up);
158 <a name="l00154"></a>00154
159 <a name="l00156"></a>00156 }<span class="comment">//namespace matrix_transform</span>
160 <a name="l00157"></a>00157 }<span class="comment">//namespace gtc</span>
161 <a name="l00158"></a>00158 }<span class="comment">//namespace glm</span>
162 <a name="l00159"></a>00159
163 <a name="l00160"></a>00160 <span class="preprocessor">#include &quot;matrix_transform.inl&quot;</span>
164 <a name="l00161"></a>00161
165 <a name="l00162"></a>00162 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::matrix_transform;}
166 <a name="l00163"></a>00163
167 <a name="l00164"></a>00164 <span class="preprocessor">#endif//glm_gtc_matrix_transform</span>
128 <a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;
129 <a name="l00118"></a>00118 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00243.html#ga30e98d64189bae49582de8373de9f09f" title="Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.">project</a>(
130 <a name="l00119"></a>00119 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; obj,
131 <a name="l00120"></a>00120 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; model,
132 <a name="l00121"></a>00121 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; <a class="code" href="a00284.html#ga2bf24fe9717e1711a4f454430c79d726" title="Projects x on Normal.">proj</a>,
133 <a name="l00122"></a>00122 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; viewport);
134 <a name="l00123"></a>00123
135 <a name="l00126"></a>00126 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;
136 <a name="l00127"></a>00127 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00243.html#gac38d611231b15799a0c06c54ff1ede43" title="Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.">unProject</a>(
137 <a name="l00128"></a>00128 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; win,
138 <a name="l00129"></a>00129 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; model,
139 <a name="l00130"></a>00130 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; proj,
140 <a name="l00131"></a>00131 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; viewport);
141 <a name="l00132"></a>00132
142 <a name="l00135"></a>00135 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;
143 <a name="l00136"></a>00136 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00243.html#ga9ebc45c333c8ec63c5047d6c1fcb9415" title="Define a picking region From GLM_GTC_matrix_transform extension.">pickMatrix</a>(
144 <a name="l00137"></a>00137 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; center,
145 <a name="l00138"></a>00138 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; delta,
146 <a name="l00139"></a>00139 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; viewport);
147 <a name="l00140"></a>00140
148 <a name="l00143"></a>00143 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
149 <a name="l00144"></a>00144 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00243.html#ga2d6b6c381f047ea4d9ca4145fed9edd5" title="Build a look at view matrix.">lookAt</a>(
150 <a name="l00145"></a>00145 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; eye,
151 <a name="l00146"></a>00146 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; center,
152 <a name="l00147"></a>00147 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; up);
153 <a name="l00148"></a>00148
154 <a name="l00150"></a>00150 }<span class="comment">//namespace matrix_transform</span>
155 <a name="l00151"></a>00151 }<span class="comment">//namespace gtc</span>
156 <a name="l00152"></a>00152 }<span class="comment">//namespace glm</span>
157 <a name="l00153"></a>00153
158 <a name="l00154"></a>00154 <span class="preprocessor">#include &quot;matrix_transform.inl&quot;</span>
159 <a name="l00155"></a>00155
160 <a name="l00156"></a>00156 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::matrix_transform;}
161 <a name="l00157"></a>00157
162 <a name="l00158"></a>00158 <span class="preprocessor">#endif//glm_gtc_matrix_transform</span>
168163 </pre></div></div>
169164 </div>
170165 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_mixed_product extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">void</span> main_gtx_matrix_selection();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00196.html">00031</a> <span class="keyword">namespace </span>mixed_product
66 <a name="l00032"></a>00032 {
67 <a name="l00035"></a>00035
68 <a name="l00037"></a>00037 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
69 <a name="l00038"></a>00038 valType <a class="code" href="a00274.html#gacd91c1d0c25c158ab83965b98553970d" title="Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)">mixedProduct</a>(
70 <a name="l00039"></a>00039 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v1,
71 <a name="l00040"></a>00040 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v2,
72 <a name="l00041"></a>00041 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v3);
73 <a name="l00042"></a>00042
74 <a name="l00044"></a>00044 }<span class="comment">//namespace mixed_product</span>
75 <a name="l00045"></a>00045 }<span class="comment">//namespace gtx</span>
76 <a name="l00046"></a>00046 }<span class="comment">//namespace glm</span>
77 <a name="l00047"></a>00047
78 <a name="l00048"></a>00048 <span class="preprocessor">#include &quot;mixed_product.inl&quot;</span>
79 <a name="l00049"></a>00049
80 <a name="l00050"></a>00050 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::mixed_product;}
81 <a name="l00051"></a>00051
82 <a name="l00052"></a>00052 <span class="preprocessor">#endif//glm_gtx_mixed_product</span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00196.html">00025</a> <span class="keyword">namespace </span>mixed_product
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
64 <a name="l00032"></a>00032 valType <a class="code" href="a00273.html#gacd91c1d0c25c158ab83965b98553970d" title="Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)">mixedProduct</a>(
65 <a name="l00033"></a>00033 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v1,
66 <a name="l00034"></a>00034 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v2,
67 <a name="l00035"></a>00035 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v3);
68 <a name="l00036"></a>00036
69 <a name="l00038"></a>00038 }<span class="comment">// namespace mixed_product</span>
70 <a name="l00039"></a>00039 }<span class="comment">// namespace gtx</span>
71 <a name="l00040"></a>00040 }<span class="comment">// namespace glm</span>
72 <a name="l00041"></a>00041
73 <a name="l00042"></a>00042 <span class="preprocessor">#include &quot;mixed_product.inl&quot;</span>
74 <a name="l00043"></a>00043
75 <a name="l00044"></a>00044 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::mixed_product;}
76 <a name="l00045"></a>00045
77 <a name="l00046"></a>00046 <span class="preprocessor">#endif//glm_gtx_mixed_product</span>
8378 </pre></div></div>
8479 </div>
8580 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_multiple extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">bool</span> main_img_multiple();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00197.html">00031</a> <span class="keyword">namespace </span>multiple
66 <a name="l00032"></a>00032 {
67 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
69 <a name="l00039"></a>00039 genType <a class="code" href="a00275.html#ga417f3ba2d04c2fa9ffdeca47b0ad0443" title="Higher Multiple number of Source.">higherMultiple</a>(
70 <a name="l00040"></a>00040 genType <span class="keyword">const</span> &amp; Source,
71 <a name="l00041"></a>00041 genType <span class="keyword">const</span> &amp; Multiple);
72 <a name="l00042"></a>00042
73 <a name="l00045"></a>00045 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
74 <a name="l00046"></a>00046 genType <a class="code" href="a00275.html#ga28760c297ccc5f54111d4469dc1bd1f6" title="Lower Multiple number of Source.">lowerMultiple</a>(
75 <a name="l00047"></a>00047 genType <span class="keyword">const</span> &amp; Source,
76 <a name="l00048"></a>00048 genType <span class="keyword">const</span> &amp; Multiple);
77 <a name="l00049"></a>00049
78 <a name="l00051"></a>00051
79 <a name="l00052"></a>00052 }<span class="comment">//namespace multiple</span>
80 <a name="l00053"></a>00053 }<span class="comment">//namespace gtx</span>
81 <a name="l00054"></a>00054 }<span class="comment">//namespace glm</span>
82 <a name="l00055"></a>00055
83 <a name="l00056"></a>00056 <span class="preprocessor">#include &quot;multiple.inl&quot;</span>
84 <a name="l00057"></a>00057
85 <a name="l00058"></a>00058 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::multiple;}
86 <a name="l00059"></a>00059
87 <a name="l00060"></a>00060 <span class="preprocessor">#endif//glm_gtx_multiple</span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00197.html">00025</a> <span class="keyword">namespace </span>multiple
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
64 <a name="l00033"></a>00033 genType <a class="code" href="a00274.html#ga417f3ba2d04c2fa9ffdeca47b0ad0443" title="Higher Multiple number of Source.">higherMultiple</a>(
65 <a name="l00034"></a>00034 genType <span class="keyword">const</span> &amp; Source,
66 <a name="l00035"></a>00035 genType <span class="keyword">const</span> &amp; Multiple);
67 <a name="l00036"></a>00036
68 <a name="l00039"></a>00039 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
69 <a name="l00040"></a>00040 genType <a class="code" href="a00274.html#ga28760c297ccc5f54111d4469dc1bd1f6" title="Lower Multiple number of Source.">lowerMultiple</a>(
70 <a name="l00041"></a>00041 genType <span class="keyword">const</span> &amp; Source,
71 <a name="l00042"></a>00042 genType <span class="keyword">const</span> &amp; Multiple);
72 <a name="l00043"></a>00043
73 <a name="l00045"></a>00045 }<span class="comment">//namespace multiple</span>
74 <a name="l00046"></a>00046 }<span class="comment">//namespace gtx</span>
75 <a name="l00047"></a>00047 }<span class="comment">//namespace glm</span>
76 <a name="l00048"></a>00048
77 <a name="l00049"></a>00049 <span class="preprocessor">#include &quot;multiple.inl&quot;</span>
78 <a name="l00050"></a>00050
79 <a name="l00051"></a>00051 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::multiple;}
80 <a name="l00052"></a>00052
81 <a name="l00053"></a>00053 <span class="preprocessor">#endif//glm_gtx_multiple</span>
8882 </pre></div></div>
8983 </div>
9084 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5959 <a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_noise extension included&quot;)</span>
6060 <a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
6161 <a name="l00027"></a>00027 <span class="preprocessor"></span>
62 <a name="l00028"></a>00028 <span class="keyword">namespace </span>glm
63 <a name="l00029"></a>00029 {
64 <a name="l00030"></a>00030 <span class="keyword">namespace </span>test{
65 <a name="l00031"></a>00031 <span class="keywordtype">void</span> main_gtx_noise();
66 <a name="l00032"></a>00032 }<span class="comment">//namespace test</span>
67 <a name="l00033"></a>00033
68 <a name="l00034"></a>00034 <span class="keyword">namespace </span>gtx{
69 <a name="l00036"></a><a class="code" href="a00198.html">00036</a> <span class="keyword">namespace </span>noise
70 <a name="l00037"></a>00037 {
71 <a name="l00040"></a>00040
72 <a name="l00043"></a>00043 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span>&lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
73 <a name="l00044"></a>00044 T <a class="code" href="a00306.html#ga9de9e66368f398a09105fedeafbebb3e" title="Classic perlin noise.">perlin</a>(
74 <a name="l00045"></a>00045 vecType&lt;T&gt; <span class="keyword">const</span> &amp; p);
75 <a name="l00046"></a>00046
76 <a name="l00049"></a>00049 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span>&lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
77 <a name="l00050"></a>00050 T <a class="code" href="a00306.html#ga9de9e66368f398a09105fedeafbebb3e" title="Classic perlin noise.">perlin</a>(
78 <a name="l00051"></a>00051 vecType&lt;T&gt; <span class="keyword">const</span> &amp; p,
79 <a name="l00052"></a>00052 vecType&lt;T&gt; <span class="keyword">const</span> &amp; rep);
62 <a name="l00028"></a>00028 <span class="keyword">namespace </span>glm{
63 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
64 <a name="l00030"></a><a class="code" href="a00198.html">00030</a> <span class="keyword">namespace </span>noise
65 <a name="l00031"></a>00031 {
66 <a name="l00034"></a>00034
67 <a name="l00037"></a>00037 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span>&lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
68 <a name="l00038"></a>00038 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00306.html#ga9de9e66368f398a09105fedeafbebb3e" title="Classic perlin noise.">perlin</a>(
69 <a name="l00039"></a>00039 vecType&lt;T&gt; <span class="keyword">const</span> &amp; p);
70 <a name="l00040"></a>00040
71 <a name="l00043"></a>00043 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span>&lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
72 <a name="l00044"></a>00044 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00306.html#ga9de9e66368f398a09105fedeafbebb3e" title="Classic perlin noise.">perlin</a>(
73 <a name="l00045"></a>00045 vecType&lt;T&gt; <span class="keyword">const</span> &amp; p,
74 <a name="l00046"></a>00046 vecType&lt;T&gt; <span class="keyword">const</span> &amp; rep);
75 <a name="l00047"></a>00047
76 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span>&lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
77 <a name="l00051"></a>00051 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00306.html#gaab96cbe99e3757bb55c7d830462fab94" title="Simplex noise.">simplex</a>(
78 <a name="l00052"></a>00052 vecType&lt;T&gt; <span class="keyword">const</span> &amp; p);
8079 <a name="l00053"></a>00053
81 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span>&lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
82 <a name="l00057"></a>00057 T <a class="code" href="a00306.html#gaab96cbe99e3757bb55c7d830462fab94" title="Simplex noise.">simplex</a>(
83 <a name="l00058"></a>00058 vecType&lt;T&gt; <span class="keyword">const</span> &amp; p);
84 <a name="l00059"></a>00059
85 <a name="l00061"></a>00061
86 <a name="l00062"></a>00062 }<span class="comment">//namespace noise</span>
87 <a name="l00063"></a>00063 }<span class="comment">//namespace gtx</span>
88 <a name="l00064"></a>00064 }<span class="comment">//namespace glm</span>
89 <a name="l00065"></a>00065
90 <a name="l00066"></a>00066 <span class="preprocessor">#include &quot;noise.inl&quot;</span>
91 <a name="l00067"></a>00067
92 <a name="l00068"></a>00068 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::noise;}
93 <a name="l00069"></a>00069
94 <a name="l00070"></a>00070 <span class="preprocessor">#endif//glm_gtx_noise</span>
80 <a name="l00055"></a>00055 }<span class="comment">//namespace noise</span>
81 <a name="l00056"></a>00056 }<span class="comment">//namespace gtx</span>
82 <a name="l00057"></a>00057 }<span class="comment">//namespace glm</span>
83 <a name="l00058"></a>00058
84 <a name="l00059"></a>00059 <span class="preprocessor">#include &quot;noise.inl&quot;</span>
85 <a name="l00060"></a>00060
86 <a name="l00061"></a>00061 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::noise;}
87 <a name="l00062"></a>00062
88 <a name="l00063"></a>00063 <span class="preprocessor">#endif//glm_gtx_noise</span>
9589 </pre></div></div>
9690 </div>
9791 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5959 <a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_norm extension included&quot;)</span>
6060 <a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
6161 <a name="l00027"></a>00027 <span class="preprocessor"></span>
62 <a name="l00028"></a>00028 <span class="keyword">namespace </span>glm
63 <a name="l00029"></a>00029 {
64 <a name="l00030"></a>00030 <span class="keyword">namespace </span>test{
65 <a name="l00031"></a>00031 <span class="keywordtype">void</span> main_gtx_norm();
66 <a name="l00032"></a>00032 }<span class="comment">//namespace test</span>
67 <a name="l00033"></a>00033
68 <a name="l00034"></a>00034 <span class="keyword">namespace </span>gtx{
69 <a name="l00036"></a><a class="code" href="a00199.html">00036</a> <span class="keyword">namespace </span>norm
70 <a name="l00037"></a>00037 {
62 <a name="l00028"></a>00028 <span class="keyword">namespace </span>glm{
63 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
64 <a name="l00030"></a><a class="code" href="a00199.html">00030</a> <span class="keyword">namespace </span>norm
65 <a name="l00031"></a>00031 {
66 <a name="l00034"></a>00034
67 <a name="l00037"></a>00037 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
68 <a name="l00038"></a>00038 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00275.html#ga461cea3ee3b98f8fcfea856def1f0ede" title="Returns the squared length of x.">length2</a>(
69 <a name="l00039"></a>00039 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> x);
7170 <a name="l00040"></a>00040
72 <a name="l00043"></a>00043 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
73 <a name="l00044"></a>00044 T <a class="code" href="a00276.html#ga461cea3ee3b98f8fcfea856def1f0ede" title="Returns the squared length of x.">length2</a>(
74 <a name="l00045"></a>00045 <span class="keyword">const</span> T x);
71 <a name="l00043"></a>00043 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
72 <a name="l00044"></a>00044 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00275.html#ga461cea3ee3b98f8fcfea856def1f0ede" title="Returns the squared length of x.">length2</a>(
73 <a name="l00045"></a>00045 <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> &amp; x);
7574 <a name="l00046"></a>00046
76 <a name="l00049"></a>00049 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
77 <a name="l00050"></a>00050 T <a class="code" href="a00276.html#ga461cea3ee3b98f8fcfea856def1f0ede" title="Returns the squared length of x.">length2</a>(
78 <a name="l00051"></a>00051 <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> &amp; x);
79 <a name="l00052"></a>00052
80 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
81 <a name="l00056"></a>00056 T <a class="code" href="a00276.html#ga461cea3ee3b98f8fcfea856def1f0ede" title="Returns the squared length of x.">length2</a>(
82 <a name="l00057"></a>00057 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x);
75 <a name="l00049"></a>00049 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
76 <a name="l00050"></a>00050 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00275.html#ga461cea3ee3b98f8fcfea856def1f0ede" title="Returns the squared length of x.">length2</a>(
77 <a name="l00051"></a>00051 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x);
78 <a name="l00052"></a>00052
79 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
80 <a name="l00056"></a>00056 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00275.html#ga461cea3ee3b98f8fcfea856def1f0ede" title="Returns the squared length of x.">length2</a>(
81 <a name="l00057"></a>00057 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; x);
8382 <a name="l00058"></a>00058
84 <a name="l00061"></a>00061 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
85 <a name="l00062"></a>00062 T <a class="code" href="a00276.html#ga461cea3ee3b98f8fcfea856def1f0ede" title="Returns the squared length of x.">length2</a>(
86 <a name="l00063"></a>00063 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; x);
87 <a name="l00064"></a>00064
88 <a name="l00067"></a>00067 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
89 <a name="l00068"></a>00068 T <a class="code" href="a00276.html#ga461cea3ee3b98f8fcfea856def1f0ede" title="Returns the squared length of x.">length2</a>(
90 <a name="l00069"></a>00069 <span class="keyword">const</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a>&amp; q);
91 <a name="l00070"></a>00070
92 <a name="l00073"></a>00073 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
93 <a name="l00074"></a>00074 T <a class="code" href="a00276.html#ga8ced68108693319d844c896d3e8a2887" title="Returns the squared distance between p0 and p1, i.e., length(p0 - p1).">distance2</a>(
94 <a name="l00075"></a>00075 <span class="keyword">const</span> T p0,
95 <a name="l00076"></a>00076 <span class="keyword">const</span> T p1);
96 <a name="l00077"></a>00077
97 <a name="l00080"></a>00080 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
98 <a name="l00081"></a>00081 T <a class="code" href="a00276.html#ga8ced68108693319d844c896d3e8a2887" title="Returns the squared distance between p0 and p1, i.e., length(p0 - p1).">distance2</a>(
99 <a name="l00082"></a>00082 <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; p0,
100 <a name="l00083"></a>00083 <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; p1);
101 <a name="l00084"></a>00084
102 <a name="l00087"></a>00087 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
103 <a name="l00088"></a>00088 T <a class="code" href="a00276.html#ga8ced68108693319d844c896d3e8a2887" title="Returns the squared distance between p0 and p1, i.e., length(p0 - p1).">distance2</a>(
104 <a name="l00089"></a>00089 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; p0,
105 <a name="l00090"></a>00090 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; p1);
106 <a name="l00091"></a>00091
107 <a name="l00094"></a>00094 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
108 <a name="l00095"></a>00095 T <a class="code" href="a00276.html#ga8ced68108693319d844c896d3e8a2887" title="Returns the squared distance between p0 and p1, i.e., length(p0 - p1).">distance2</a>(
109 <a name="l00096"></a>00096 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; p0,
110 <a name="l00097"></a>00097 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; p1);
111 <a name="l00098"></a>00098
112 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
113 <a name="l00102"></a>00102 T <a class="code" href="a00276.html#gab9942ce9c9a3de0fcb2b2d1a7eea5d1b" title="Returns the L1 norm between x and y.">l1Norm</a>(
114 <a name="l00103"></a>00103 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x,
115 <a name="l00104"></a>00104 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; y);
83 <a name="l00061"></a>00061 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
84 <a name="l00062"></a>00062 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00275.html#ga461cea3ee3b98f8fcfea856def1f0ede" title="Returns the squared length of x.">length2</a>(
85 <a name="l00063"></a>00063 <span class="keyword">const</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a>&amp; q);
86 <a name="l00064"></a>00064
87 <a name="l00067"></a>00067 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
88 <a name="l00068"></a>00068 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00275.html#ga8ced68108693319d844c896d3e8a2887" title="Returns the squared distance between p0 and p1, i.e., length(p0 - p1).">distance2</a>(
89 <a name="l00069"></a>00069 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> p0,
90 <a name="l00070"></a>00070 <span class="keyword">const</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> p1);
91 <a name="l00071"></a>00071
92 <a name="l00074"></a>00074 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
93 <a name="l00075"></a>00075 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00275.html#ga8ced68108693319d844c896d3e8a2887" title="Returns the squared distance between p0 and p1, i.e., length(p0 - p1).">distance2</a>(
94 <a name="l00076"></a>00076 <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; p0,
95 <a name="l00077"></a>00077 <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; p1);
96 <a name="l00078"></a>00078
97 <a name="l00081"></a>00081 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
98 <a name="l00082"></a>00082 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00275.html#ga8ced68108693319d844c896d3e8a2887" title="Returns the squared distance between p0 and p1, i.e., length(p0 - p1).">distance2</a>(
99 <a name="l00083"></a>00083 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; p0,
100 <a name="l00084"></a>00084 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; p1);
101 <a name="l00085"></a>00085
102 <a name="l00088"></a>00088 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
103 <a name="l00089"></a>00089 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00275.html#ga8ced68108693319d844c896d3e8a2887" title="Returns the squared distance between p0 and p1, i.e., length(p0 - p1).">distance2</a>(
104 <a name="l00090"></a>00090 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; p0,
105 <a name="l00091"></a>00091 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; p1);
106 <a name="l00092"></a>00092
107 <a name="l00095"></a>00095 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
108 <a name="l00096"></a>00096 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00275.html#gab9942ce9c9a3de0fcb2b2d1a7eea5d1b" title="Returns the L1 norm between x and y.">l1Norm</a>(
109 <a name="l00097"></a>00097 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x,
110 <a name="l00098"></a>00098 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; y);
111 <a name="l00099"></a>00099
112 <a name="l00102"></a>00102 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
113 <a name="l00103"></a>00103 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00275.html#gab9942ce9c9a3de0fcb2b2d1a7eea5d1b" title="Returns the L1 norm between x and y.">l1Norm</a>(
114 <a name="l00104"></a>00104 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v);
116115 <a name="l00105"></a>00105
117 <a name="l00108"></a>00108 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
118 <a name="l00109"></a>00109 T <a class="code" href="a00276.html#gab9942ce9c9a3de0fcb2b2d1a7eea5d1b" title="Returns the L1 norm between x and y.">l1Norm</a>(
119 <a name="l00110"></a>00110 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v);
120 <a name="l00111"></a>00111
121 <a name="l00114"></a>00114 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
122 <a name="l00115"></a>00115 T <a class="code" href="a00276.html#ga2963700ea5540e339e021733f9b1c285" title="Returns the L2 norm between x and y.">l2Norm</a>(
123 <a name="l00116"></a>00116 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x,
124 <a name="l00117"></a>00117 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; y);
116 <a name="l00108"></a>00108 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
117 <a name="l00109"></a>00109 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00275.html#ga2963700ea5540e339e021733f9b1c285" title="Returns the L2 norm between x and y.">l2Norm</a>(
118 <a name="l00110"></a>00110 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x,
119 <a name="l00111"></a>00111 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; y);
120 <a name="l00112"></a>00112
121 <a name="l00115"></a>00115 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
122 <a name="l00116"></a>00116 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00275.html#ga2963700ea5540e339e021733f9b1c285" title="Returns the L2 norm between x and y.">l2Norm</a>(
123 <a name="l00117"></a>00117 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x);
125124 <a name="l00118"></a>00118
126 <a name="l00121"></a>00121 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
127 <a name="l00122"></a>00122 T <a class="code" href="a00276.html#ga2963700ea5540e339e021733f9b1c285" title="Returns the L2 norm between x and y.">l2Norm</a>(
128 <a name="l00123"></a>00123 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x);
129 <a name="l00124"></a>00124
130 <a name="l00127"></a>00127 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
131 <a name="l00128"></a>00128 T <a class="code" href="a00276.html#gab6b384000fdc1a560fd927684f4f3a2a" title="Returns the L norm between x and y.">lxNorm</a>(
132 <a name="l00129"></a>00129 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x,
133 <a name="l00130"></a>00130 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; y,
134 <a name="l00131"></a>00131 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Depth);
135 <a name="l00132"></a>00132
136 <a name="l00135"></a>00135 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
137 <a name="l00136"></a>00136 T <a class="code" href="a00276.html#gab6b384000fdc1a560fd927684f4f3a2a" title="Returns the L norm between x and y.">lxNorm</a>(
138 <a name="l00137"></a>00137 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x,
139 <a name="l00138"></a>00138 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Depth);
140 <a name="l00139"></a>00139
141 <a name="l00141"></a>00141
142 <a name="l00142"></a>00142 }<span class="comment">//namespace norm</span>
143 <a name="l00143"></a>00143 }<span class="comment">//namespace gtx</span>
144 <a name="l00144"></a>00144 }<span class="comment">//namespace glm</span>
145 <a name="l00145"></a>00145
146 <a name="l00146"></a>00146 <span class="preprocessor">#include &quot;norm.inl&quot;</span>
147 <a name="l00147"></a>00147
148 <a name="l00148"></a>00148 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::norm;}
149 <a name="l00149"></a>00149
150 <a name="l00150"></a>00150 <span class="preprocessor">#endif//glm_gtx_norm</span>
125 <a name="l00121"></a>00121 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
126 <a name="l00122"></a>00122 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00275.html#gab6b384000fdc1a560fd927684f4f3a2a" title="Returns the L norm between x and y.">lxNorm</a>(
127 <a name="l00123"></a>00123 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x,
128 <a name="l00124"></a>00124 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; y,
129 <a name="l00125"></a>00125 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Depth);
130 <a name="l00126"></a>00126
131 <a name="l00129"></a>00129 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
132 <a name="l00130"></a>00130 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00275.html#gab6b384000fdc1a560fd927684f4f3a2a" title="Returns the L norm between x and y.">lxNorm</a>(
133 <a name="l00131"></a>00131 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x,
134 <a name="l00132"></a>00132 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Depth);
135 <a name="l00133"></a>00133
136 <a name="l00135"></a>00135 }<span class="comment">//namespace norm</span>
137 <a name="l00136"></a>00136 }<span class="comment">//namespace gtx</span>
138 <a name="l00137"></a>00137 }<span class="comment">//namespace glm</span>
139 <a name="l00138"></a>00138
140 <a name="l00139"></a>00139 <span class="preprocessor">#include &quot;norm.inl&quot;</span>
141 <a name="l00140"></a>00140
142 <a name="l00141"></a>00141 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::norm;}
143 <a name="l00142"></a>00142
144 <a name="l00143"></a>00143 <span class="preprocessor">#endif//glm_gtx_norm</span>
151145 </pre></div></div>
152146 </div>
153147 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_normal extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">void</span> main_gtx_normal();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00200.html">00031</a> <span class="keyword">namespace </span>normal
66 <a name="l00032"></a>00032 {
67 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00039"></a>00039 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00277.html#ga465b51d9e302c22572a656e657631310" title="Computes triangle normal from triangle points.">triangleNormal</a>(
70 <a name="l00040"></a>00040 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; p1,
71 <a name="l00041"></a>00041 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; p2,
72 <a name="l00042"></a>00042 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; p3);
73 <a name="l00043"></a>00043
74 <a name="l00045"></a>00045
75 <a name="l00046"></a>00046 }<span class="comment">//namespace normal</span>
76 <a name="l00047"></a>00047 }<span class="comment">//namespace gtx</span>
77 <a name="l00048"></a>00048 }<span class="comment">//namespace glm</span>
78 <a name="l00049"></a>00049
79 <a name="l00050"></a>00050 <span class="preprocessor">#include &quot;normal.inl&quot;</span>
80 <a name="l00051"></a>00051
81 <a name="l00052"></a>00052 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::normal;}
82 <a name="l00053"></a>00053
83 <a name="l00054"></a>00054 <span class="preprocessor">#endif//glm_gtx_normal</span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00200.html">00025</a> <span class="keyword">namespace </span>normal
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
64 <a name="l00033"></a>00033 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00276.html#ga465b51d9e302c22572a656e657631310" title="Computes triangle normal from triangle points.">triangleNormal</a>(
65 <a name="l00034"></a>00034 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; p1,
66 <a name="l00035"></a>00035 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; p2,
67 <a name="l00036"></a>00036 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; p3);
68 <a name="l00037"></a>00037
69 <a name="l00039"></a>00039 }<span class="comment">//namespace normal</span>
70 <a name="l00040"></a>00040 }<span class="comment">//namespace gtx</span>
71 <a name="l00041"></a>00041 }<span class="comment">//namespace glm</span>
72 <a name="l00042"></a>00042
73 <a name="l00043"></a>00043 <span class="preprocessor">#include &quot;normal.inl&quot;</span>
74 <a name="l00044"></a>00044
75 <a name="l00045"></a>00045 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::normal;}
76 <a name="l00046"></a>00046
77 <a name="l00047"></a>00047 <span class="preprocessor">#endif//glm_gtx_normal</span>
8478 </pre></div></div>
8579 </div>
8680 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_normalize_dot extension included&quot;)</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5959 <a name="l00024"></a>00024 <span class="preprocessor"></span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm
61 <a name="l00026"></a>00026 {
62 <a name="l00027"></a>00027 <span class="keyword">namespace </span>gtx{
63 <a name="l00029"></a><a class="code" href="a00201.html">00029</a> <span class="keyword">namespace </span>normalize_dot
64 <a name="l00030"></a>00030 {
65 <a name="l00031"></a>00031 <span class="keyword">using namespace </span>gtx::fast_square_root;
66 <a name="l00032"></a>00032
67 <a name="l00035"></a>00035
68 <a name="l00039"></a>00039 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
69 <a name="l00040"></a>00040 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00278.html#ga71e52e38395048672c908861a3758b76" title="Normalize parameters and returns the dot product of x and y.">normalizeDot</a>(
70 <a name="l00041"></a>00041 genType <span class="keyword">const</span> &amp; x,
71 <a name="l00042"></a>00042 genType <span class="keyword">const</span> &amp; y);
72 <a name="l00043"></a>00043
73 <a name="l00047"></a>00047 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
74 <a name="l00048"></a>00048 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00278.html#ga4828b79df21f008a71824a0eecf6e4d7" title="Normalize parameters and returns the dot product of x and y.">fastNormalizeDot</a>(
75 <a name="l00049"></a>00049 genType <span class="keyword">const</span> &amp; x,
76 <a name="l00050"></a>00050 genType <span class="keyword">const</span> &amp; y);
77 <a name="l00051"></a>00051
78 <a name="l00053"></a>00053
79 <a name="l00054"></a>00054 }<span class="comment">//namespace normalize_dot</span>
80 <a name="l00055"></a>00055 }<span class="comment">//namespace gtx</span>
81 <a name="l00056"></a>00056 }<span class="comment">//namespace glm</span>
82 <a name="l00057"></a>00057
83 <a name="l00058"></a>00058 <span class="preprocessor">#include &quot;normalize_dot.inl&quot;</span>
84 <a name="l00059"></a>00059
85 <a name="l00060"></a>00060 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::normalize_dot;}
86 <a name="l00061"></a>00061
87 <a name="l00062"></a>00062 <span class="preprocessor">#endif//glm_gtx_normalize_dot</span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm{
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>gtx{
62 <a name="l00027"></a><a class="code" href="a00201.html">00027</a> <span class="keyword">namespace </span>normalize_dot
63 <a name="l00028"></a>00028 {
64 <a name="l00029"></a>00029 <span class="keyword">using namespace </span>gtx::fast_square_root;
65 <a name="l00030"></a>00030
66 <a name="l00033"></a>00033
67 <a name="l00037"></a>00037 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
68 <a name="l00038"></a>00038 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00277.html#ga71e52e38395048672c908861a3758b76" title="Normalize parameters and returns the dot product of x and y.">normalizeDot</a>(
69 <a name="l00039"></a>00039 genType <span class="keyword">const</span> &amp; x,
70 <a name="l00040"></a>00040 genType <span class="keyword">const</span> &amp; y);
71 <a name="l00041"></a>00041
72 <a name="l00045"></a>00045 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
73 <a name="l00046"></a>00046 <span class="keyword">typename</span> genType::value_type <a class="code" href="a00277.html#ga4828b79df21f008a71824a0eecf6e4d7" title="Normalize parameters and returns the dot product of x and y.">fastNormalizeDot</a>(
74 <a name="l00047"></a>00047 genType <span class="keyword">const</span> &amp; x,
75 <a name="l00048"></a>00048 genType <span class="keyword">const</span> &amp; y);
76 <a name="l00049"></a>00049
77 <a name="l00051"></a>00051 }<span class="comment">//namespace normalize_dot</span>
78 <a name="l00052"></a>00052 }<span class="comment">//namespace gtx</span>
79 <a name="l00053"></a>00053 }<span class="comment">//namespace glm</span>
80 <a name="l00054"></a>00054
81 <a name="l00055"></a>00055 <span class="preprocessor">#include &quot;normalize_dot.inl&quot;</span>
82 <a name="l00056"></a>00056
83 <a name="l00057"></a>00057 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::normalize_dot;}
84 <a name="l00058"></a>00058
85 <a name="l00059"></a>00059 <span class="preprocessor">#endif//glm_gtx_normalize_dot</span>
8886 </pre></div></div>
8987 </div>
9088 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6060 <a name="l00025"></a>00025 <span class="preprocessor"></span>
6161 <a name="l00026"></a>00026 <span class="keyword">namespace </span>glm{
6262 <a name="l00027"></a>00027 <span class="keyword">namespace </span>gtx{
63 <a name="l00029"></a><a class="code" href="a00202.html">00029</a> <span class="keyword">namespace </span>number_precision
64 <a name="l00030"></a>00030 {
65 <a name="l00031"></a>00031 <span class="keyword">using namespace </span>gtc::type_precision;
66 <a name="l00032"></a>00032
67 <a name="l00034"></a>00034 <span class="comment">// Unsigned int vector types </span>
68 <a name="l00035"></a>00035
69 <a name="l00038"></a>00038
70 <a name="l00039"></a><a class="code" href="a00279.html#ga5853fe457f4c8a6bc09343d0e9833980">00039</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">u8</a> <a class="code" href="a00279.html#ga5853fe457f4c8a6bc09343d0e9833980" title="8bit unsigned integer scalar. (from GLM_GTX_number_precision extension)">u8vec1</a>;
71 <a name="l00040"></a><a class="code" href="a00279.html#ga52cc069a92e126c3a8dcde93424d2ef0">00040</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">u16</a> <a class="code" href="a00279.html#ga52cc069a92e126c3a8dcde93424d2ef0" title="16bit unsigned integer scalar. (from GLM_GTX_number_precision extension)">u16vec1</a>;
72 <a name="l00041"></a><a class="code" href="a00279.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">00041</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">u32</a> <a class="code" href="a00279.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3" title="32bit unsigned integer scalar. (from GLM_GTX_number_precision extension)">u32vec1</a>;
73 <a name="l00042"></a><a class="code" href="a00279.html#ga818de170e2584ab037130f2881925974">00042</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">u64</a> <a class="code" href="a00279.html#ga818de170e2584ab037130f2881925974" title="64bit unsigned integer scalar. (from GLM_GTX_number_precision extension)">u64vec1</a>;
74 <a name="l00043"></a>00043
75 <a name="l00045"></a>00045 <span class="comment">// Float vector types </span>
76 <a name="l00046"></a>00046
77 <a name="l00047"></a><a class="code" href="a00279.html#ga116e2376ef94e8c60bc5c2b66fc5a6db">00047</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f16</a> <a class="code" href="a00279.html#ga116e2376ef94e8c60bc5c2b66fc5a6db" title="Half-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f16vec1</a>;
78 <a name="l00048"></a><a class="code" href="a00279.html#ga07f8d7348eb7ae059a84c118fdfeb943">00048</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f32</a> <a class="code" href="a00279.html#ga07f8d7348eb7ae059a84c118fdfeb943" title="Single-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f32vec1</a>;
79 <a name="l00049"></a><a class="code" href="a00279.html#gae5987a61b8c03d5c432a9e62f0b3efe1">00049</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f64</a> <a class="code" href="a00279.html#gae5987a61b8c03d5c432a9e62f0b3efe1" title="Single-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f64vec1</a>;
80 <a name="l00050"></a>00050
81 <a name="l00052"></a>00052 <span class="comment">// Float matrix types </span>
82 <a name="l00053"></a>00053
83 <a name="l00054"></a><a class="code" href="a00279.html#gafb6d00d30a02bc379153fbf0859c55fe">00054</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f16</a> <a class="code" href="a00279.html#gafb6d00d30a02bc379153fbf0859c55fe" title="Half-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f16mat1</a>;
84 <a name="l00055"></a><a class="code" href="a00279.html#ga228eca02d3e3f24c2eec052ee7f719fa">00055</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f16</a> <a class="code" href="a00279.html#ga228eca02d3e3f24c2eec052ee7f719fa" title="Half-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f16mat1x1</a>;
85 <a name="l00056"></a><a class="code" href="a00279.html#ga145ad477a2a3e152855511c3b52469a6">00056</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f32</a> <a class="code" href="a00279.html#ga145ad477a2a3e152855511c3b52469a6" title="Single-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f32mat1</a>;
86 <a name="l00057"></a><a class="code" href="a00279.html#gac88c6a4dbfc380aa26e3adbbade36348">00057</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f32</a> <a class="code" href="a00279.html#gac88c6a4dbfc380aa26e3adbbade36348" title="Single-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f32mat1x1</a>;
87 <a name="l00058"></a><a class="code" href="a00279.html#ga59bfa589419b5265d01314fcecd33435">00058</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f64</a> <a class="code" href="a00279.html#ga59bfa589419b5265d01314fcecd33435" title="Double-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f64mat1</a>;
88 <a name="l00059"></a><a class="code" href="a00279.html#ga448eeb08d0b7d8c43a8b292c981955fd">00059</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f64</a> <a class="code" href="a00279.html#ga448eeb08d0b7d8c43a8b292c981955fd" title="Double-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f64mat1x1</a>;
89 <a name="l00060"></a>00060
90 <a name="l00062"></a>00062 }<span class="comment">//namespace number_precision</span>
91 <a name="l00063"></a>00063 }<span class="comment">//namespace gtx</span>
92 <a name="l00064"></a>00064 }<span class="comment">//namespace glm</span>
93 <a name="l00065"></a>00065
94 <a name="l00066"></a>00066 <span class="preprocessor">#include &quot;number_precision.inl&quot;</span>
95 <a name="l00067"></a>00067
96 <a name="l00068"></a>00068 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::number_precision;}
97 <a name="l00069"></a>00069
98 <a name="l00070"></a>00070 <span class="preprocessor">#endif//glm_gtx_number_precision</span>
63 <a name="l00028"></a><a class="code" href="a00202.html">00028</a> <span class="keyword">namespace </span>number_precision
64 <a name="l00029"></a>00029 {
65 <a name="l00030"></a>00030 <span class="keyword">using namespace </span>gtc::type_precision;
66 <a name="l00031"></a>00031
67 <a name="l00033"></a>00033 <span class="comment">// Unsigned int vector types </span>
68 <a name="l00034"></a>00034
69 <a name="l00037"></a>00037
70 <a name="l00038"></a><a class="code" href="a00278.html#ga5853fe457f4c8a6bc09343d0e9833980">00038</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">u8</a> <a class="code" href="a00278.html#ga5853fe457f4c8a6bc09343d0e9833980" title="8bit unsigned integer scalar. (from GLM_GTX_number_precision extension)">u8vec1</a>;
71 <a name="l00039"></a><a class="code" href="a00278.html#ga52cc069a92e126c3a8dcde93424d2ef0">00039</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">u16</a> <a class="code" href="a00278.html#ga52cc069a92e126c3a8dcde93424d2ef0" title="16bit unsigned integer scalar. (from GLM_GTX_number_precision extension)">u16vec1</a>;
72 <a name="l00040"></a><a class="code" href="a00278.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">00040</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">u32</a> <a class="code" href="a00278.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3" title="32bit unsigned integer scalar. (from GLM_GTX_number_precision extension)">u32vec1</a>;
73 <a name="l00041"></a><a class="code" href="a00278.html#ga818de170e2584ab037130f2881925974">00041</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">u64</a> <a class="code" href="a00278.html#ga818de170e2584ab037130f2881925974" title="64bit unsigned integer scalar. (from GLM_GTX_number_precision extension)">u64vec1</a>;
74 <a name="l00042"></a>00042
75 <a name="l00044"></a>00044 <span class="comment">// Float vector types </span>
76 <a name="l00045"></a>00045
77 <a name="l00046"></a><a class="code" href="a00278.html#ga116e2376ef94e8c60bc5c2b66fc5a6db">00046</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f16</a> <a class="code" href="a00278.html#ga116e2376ef94e8c60bc5c2b66fc5a6db" title="Half-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f16vec1</a>;
78 <a name="l00047"></a><a class="code" href="a00278.html#ga07f8d7348eb7ae059a84c118fdfeb943">00047</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f32</a> <a class="code" href="a00278.html#ga07f8d7348eb7ae059a84c118fdfeb943" title="Single-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f32vec1</a>;
79 <a name="l00048"></a><a class="code" href="a00278.html#gae5987a61b8c03d5c432a9e62f0b3efe1">00048</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f64</a> <a class="code" href="a00278.html#gae5987a61b8c03d5c432a9e62f0b3efe1" title="Single-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f64vec1</a>;
80 <a name="l00049"></a>00049
81 <a name="l00051"></a>00051 <span class="comment">// Float matrix types </span>
82 <a name="l00052"></a>00052
83 <a name="l00053"></a><a class="code" href="a00278.html#gafb6d00d30a02bc379153fbf0859c55fe">00053</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f16</a> <a class="code" href="a00278.html#gafb6d00d30a02bc379153fbf0859c55fe" title="Half-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f16mat1</a>;
84 <a name="l00054"></a><a class="code" href="a00278.html#ga228eca02d3e3f24c2eec052ee7f719fa">00054</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f16</a> <a class="code" href="a00278.html#ga228eca02d3e3f24c2eec052ee7f719fa" title="Half-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f16mat1x1</a>;
85 <a name="l00055"></a><a class="code" href="a00278.html#ga145ad477a2a3e152855511c3b52469a6">00055</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f32</a> <a class="code" href="a00278.html#ga145ad477a2a3e152855511c3b52469a6" title="Single-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f32mat1</a>;
86 <a name="l00056"></a><a class="code" href="a00278.html#gac88c6a4dbfc380aa26e3adbbade36348">00056</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f32</a> <a class="code" href="a00278.html#gac88c6a4dbfc380aa26e3adbbade36348" title="Single-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f32mat1x1</a>;
87 <a name="l00057"></a><a class="code" href="a00278.html#ga59bfa589419b5265d01314fcecd33435">00057</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f64</a> <a class="code" href="a00278.html#ga59bfa589419b5265d01314fcecd33435" title="Double-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f64mat1</a>;
88 <a name="l00058"></a><a class="code" href="a00278.html#ga448eeb08d0b7d8c43a8b292c981955fd">00058</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f64</a> <a class="code" href="a00278.html#ga448eeb08d0b7d8c43a8b292c981955fd" title="Double-precision floating-point scalar. (from GLM_GTX_number_precision extension)">f64mat1x1</a>;
89 <a name="l00059"></a>00059
90 <a name="l00061"></a>00061 }<span class="comment">//namespace number_precision</span>
91 <a name="l00062"></a>00062 }<span class="comment">//namespace gtx</span>
92 <a name="l00063"></a>00063 }<span class="comment">//namespace glm</span>
93 <a name="l00064"></a>00064
94 <a name="l00065"></a>00065 <span class="preprocessor">#include &quot;number_precision.inl&quot;</span>
95 <a name="l00066"></a>00066
96 <a name="l00067"></a>00067 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::number_precision;}
97 <a name="l00068"></a>00068
98 <a name="l00069"></a>00069 <span class="preprocessor">#endif//glm_gtx_number_precision</span>
9999 </pre></div></div>
100100 </div>
101101 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
5858 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
5959 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00026"></a><a class="code" href="a00203.html">00026</a> <span class="keyword">namespace </span>ocl_type
61 <a name="l00027"></a>00027 {
62 <a name="l00029"></a>00029 <span class="comment">// Scalar types </span>
63 <a name="l00030"></a>00030
64 <a name="l00033"></a>00033
65 <a name="l00034"></a><a class="code" href="a00280.html#ga595300752d3c11b13411074df8fcadc7">00034</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">detail::int8</a> <a class="code" href="a00280.html#ga595300752d3c11b13411074df8fcadc7" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_char</a>;
66 <a name="l00035"></a><a class="code" href="a00280.html#ga30b0387f3031a789362d91fc2dd2dc3f">00035</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">detail::int16</a> <a class="code" href="a00280.html#ga30b0387f3031a789362d91fc2dd2dc3f" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_short</a>;
67 <a name="l00036"></a><a class="code" href="a00280.html#ga15daeef78674bfa6218f1fc8050e0967">00036</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">detail::int32</a> <a class="code" href="a00280.html#ga15daeef78674bfa6218f1fc8050e0967" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_int</a>;
68 <a name="l00037"></a><a class="code" href="a00280.html#ga58de53886632d819d967a2972a977c37">00037</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">detail::int64</a> <a class="code" href="a00280.html#ga58de53886632d819d967a2972a977c37" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_long</a>;
69 <a name="l00038"></a>00038
70 <a name="l00039"></a><a class="code" href="a00280.html#ga791bdd6f40533322f03efcc031dc43e7">00039</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint8</a> <a class="code" href="a00280.html#ga791bdd6f40533322f03efcc031dc43e7" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uchar</a>;
71 <a name="l00040"></a><a class="code" href="a00280.html#ga17431e27a8e8d20ec69a3ba3f6557a2d">00040</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint16</a> <a class="code" href="a00280.html#ga17431e27a8e8d20ec69a3ba3f6557a2d" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ushort</a>;
72 <a name="l00041"></a><a class="code" href="a00280.html#gafab0cba90c3db2c143bb3e1bc38ac41f">00041</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <a class="code" href="a00280.html#gafab0cba90c3db2c143bb3e1bc38ac41f" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uint</a>;
73 <a name="l00042"></a><a class="code" href="a00280.html#gaf00884c494b2bd9d47c739847c5e8eaf">00042</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint64</a> <a class="code" href="a00280.html#gaf00884c494b2bd9d47c739847c5e8eaf" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ulong</a>;
74 <a name="l00043"></a>00043
75 <a name="l00044"></a><a class="code" href="a00280.html#ga8bb152355ac899354df1742c673faad0">00044</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga19287ee46bd37d1459731d7191bc2f66" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float16</a> <a class="code" href="a00280.html#ga8bb152355ac899354df1742c673faad0" title="Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)">cl_half</a>;
76 <a name="l00045"></a><a class="code" href="a00280.html#ga6a505bfaeb7d16f0aee456c238d31f06">00045</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float32</a> <a class="code" href="a00280.html#ga6a505bfaeb7d16f0aee456c238d31f06" title="Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension)">cl_float</a>;
60 <a name="l00025"></a><a class="code" href="a00203.html">00025</a> <span class="keyword">namespace </span>ocl_type
61 <a name="l00026"></a>00026 {
62 <a name="l00028"></a>00028 <span class="comment">// Scalar types </span>
63 <a name="l00029"></a>00029
64 <a name="l00032"></a>00032
65 <a name="l00033"></a><a class="code" href="a00279.html#ga595300752d3c11b13411074df8fcadc7">00033</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">detail::int8</a> <a class="code" href="a00279.html#ga595300752d3c11b13411074df8fcadc7" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_char</a>;
66 <a name="l00034"></a><a class="code" href="a00279.html#ga30b0387f3031a789362d91fc2dd2dc3f">00034</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">detail::int16</a> <a class="code" href="a00279.html#ga30b0387f3031a789362d91fc2dd2dc3f" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_short</a>;
67 <a name="l00035"></a><a class="code" href="a00279.html#ga15daeef78674bfa6218f1fc8050e0967">00035</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">detail::int32</a> <a class="code" href="a00279.html#ga15daeef78674bfa6218f1fc8050e0967" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_int</a>;
68 <a name="l00036"></a><a class="code" href="a00279.html#ga58de53886632d819d967a2972a977c37">00036</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">detail::int64</a> <a class="code" href="a00279.html#ga58de53886632d819d967a2972a977c37" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_long</a>;
69 <a name="l00037"></a>00037
70 <a name="l00038"></a><a class="code" href="a00279.html#ga791bdd6f40533322f03efcc031dc43e7">00038</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint8</a> <a class="code" href="a00279.html#ga791bdd6f40533322f03efcc031dc43e7" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uchar</a>;
71 <a name="l00039"></a><a class="code" href="a00279.html#ga17431e27a8e8d20ec69a3ba3f6557a2d">00039</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint16</a> <a class="code" href="a00279.html#ga17431e27a8e8d20ec69a3ba3f6557a2d" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ushort</a>;
72 <a name="l00040"></a><a class="code" href="a00279.html#gafab0cba90c3db2c143bb3e1bc38ac41f">00040</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <a class="code" href="a00279.html#gafab0cba90c3db2c143bb3e1bc38ac41f" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uint</a>;
73 <a name="l00041"></a><a class="code" href="a00279.html#gaf00884c494b2bd9d47c739847c5e8eaf">00041</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint64</a> <a class="code" href="a00279.html#gaf00884c494b2bd9d47c739847c5e8eaf" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ulong</a>;
74 <a name="l00042"></a>00042
75 <a name="l00043"></a><a class="code" href="a00279.html#ga8bb152355ac899354df1742c673faad0">00043</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga19287ee46bd37d1459731d7191bc2f66" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float16</a> <a class="code" href="a00279.html#ga8bb152355ac899354df1742c673faad0" title="Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)">cl_half</a>;
76 <a name="l00044"></a><a class="code" href="a00279.html#ga6a505bfaeb7d16f0aee456c238d31f06">00044</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float32</a> <a class="code" href="a00279.html#ga6a505bfaeb7d16f0aee456c238d31f06" title="Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension)">cl_float</a>;
77 <a name="l00045"></a>00045
7778 <a name="l00046"></a>00046
78 <a name="l00047"></a>00047
79 <a name="l00048"></a><a class="code" href="a00280.html#gafe341e63c543ce750d41ed776ca0f8cc">00048</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">detail::int8</a> <a class="code" href="a00280.html#gafe341e63c543ce750d41ed776ca0f8cc" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_char1</a>;
80 <a name="l00049"></a><a class="code" href="a00280.html#gacedae42c667e97db08055a962e4ac73f">00049</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">detail::int16</a> <a class="code" href="a00280.html#gacedae42c667e97db08055a962e4ac73f" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_short1</a>;
81 <a name="l00050"></a><a class="code" href="a00280.html#ga929eeb0ebaa707edf32fe6381eac38a2">00050</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">detail::int32</a> <a class="code" href="a00280.html#ga929eeb0ebaa707edf32fe6381eac38a2" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_int1</a>;
82 <a name="l00051"></a><a class="code" href="a00280.html#ga23c699d4f4ccf698822b67da14b87481">00051</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">detail::int64</a> <a class="code" href="a00280.html#ga23c699d4f4ccf698822b67da14b87481" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_long1</a>;
83 <a name="l00052"></a>00052
84 <a name="l00053"></a><a class="code" href="a00280.html#ga458a3244086d84cb4a02356e17e10e41">00053</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint8</a> <a class="code" href="a00280.html#ga458a3244086d84cb4a02356e17e10e41" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uchar1</a>;
85 <a name="l00054"></a><a class="code" href="a00280.html#ga2765c8e248830f14881cafc7ff08ce48">00054</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint16</a> <a class="code" href="a00280.html#ga2765c8e248830f14881cafc7ff08ce48" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ushort1</a>;
86 <a name="l00055"></a><a class="code" href="a00280.html#ga463351df94e9f31c91787e9ead1d0f5e">00055</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <a class="code" href="a00280.html#ga463351df94e9f31c91787e9ead1d0f5e" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uint1</a>;
87 <a name="l00056"></a><a class="code" href="a00280.html#ga38c51ec5073e63c422c741cf7e40a6a8">00056</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint64</a> <a class="code" href="a00280.html#ga38c51ec5073e63c422c741cf7e40a6a8" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ulong1</a>;
88 <a name="l00057"></a>00057
89 <a name="l00058"></a>00058 <span class="comment">//typedef detail::float16 cl_half1; //!&lt; \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)</span>
90 <a name="l00059"></a><a class="code" href="a00280.html#gabd9de5d6f4075dcf643bcb3c74b4d169">00059</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float32</a> <a class="code" href="a00280.html#gabd9de5d6f4075dcf643bcb3c74b4d169" title="Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension)">cl_float1</a>;
79 <a name="l00047"></a><a class="code" href="a00279.html#gafe341e63c543ce750d41ed776ca0f8cc">00047</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">detail::int8</a> <a class="code" href="a00279.html#gafe341e63c543ce750d41ed776ca0f8cc" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_char1</a>;
80 <a name="l00048"></a><a class="code" href="a00279.html#gacedae42c667e97db08055a962e4ac73f">00048</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">detail::int16</a> <a class="code" href="a00279.html#gacedae42c667e97db08055a962e4ac73f" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_short1</a>;
81 <a name="l00049"></a><a class="code" href="a00279.html#ga929eeb0ebaa707edf32fe6381eac38a2">00049</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">detail::int32</a> <a class="code" href="a00279.html#ga929eeb0ebaa707edf32fe6381eac38a2" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_int1</a>;
82 <a name="l00050"></a><a class="code" href="a00279.html#ga23c699d4f4ccf698822b67da14b87481">00050</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">detail::int64</a> <a class="code" href="a00279.html#ga23c699d4f4ccf698822b67da14b87481" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_long1</a>;
83 <a name="l00051"></a>00051
84 <a name="l00052"></a><a class="code" href="a00279.html#ga458a3244086d84cb4a02356e17e10e41">00052</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint8</a> <a class="code" href="a00279.html#ga458a3244086d84cb4a02356e17e10e41" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uchar1</a>;
85 <a name="l00053"></a><a class="code" href="a00279.html#ga2765c8e248830f14881cafc7ff08ce48">00053</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint16</a> <a class="code" href="a00279.html#ga2765c8e248830f14881cafc7ff08ce48" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ushort1</a>;
86 <a name="l00054"></a><a class="code" href="a00279.html#ga463351df94e9f31c91787e9ead1d0f5e">00054</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <a class="code" href="a00279.html#ga463351df94e9f31c91787e9ead1d0f5e" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uint1</a>;
87 <a name="l00055"></a><a class="code" href="a00279.html#ga38c51ec5073e63c422c741cf7e40a6a8">00055</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint64</a> <a class="code" href="a00279.html#ga38c51ec5073e63c422c741cf7e40a6a8" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ulong1</a>;
88 <a name="l00056"></a>00056
89 <a name="l00057"></a>00057 <span class="comment">//typedef detail::float16 cl_half1; //!&lt; \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)</span>
90 <a name="l00058"></a><a class="code" href="a00279.html#gabd9de5d6f4075dcf643bcb3c74b4d169">00058</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float32</a> <a class="code" href="a00279.html#gabd9de5d6f4075dcf643bcb3c74b4d169" title="Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension)">cl_float1</a>;
91 <a name="l00059"></a>00059
9192 <a name="l00060"></a>00060
92 <a name="l00061"></a>00061
93 <a name="l00062"></a><a class="code" href="a00280.html#ga5eaab898e9289ffad98798d96a8ff22e">00062</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::int8&gt;</a> <a class="code" href="a00280.html#ga5eaab898e9289ffad98798d96a8ff22e" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_char2</a>;
94 <a name="l00063"></a><a class="code" href="a00280.html#ga035b54a5fd591587d9fa6131e8a0c73c">00063</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::int16&gt;</a> <a class="code" href="a00280.html#ga035b54a5fd591587d9fa6131e8a0c73c" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_short2</a>;
95 <a name="l00064"></a><a class="code" href="a00280.html#ga75d44bea03be3491e5636dea711b70eb">00064</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::int32&gt;</a> <a class="code" href="a00280.html#ga75d44bea03be3491e5636dea711b70eb" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_int2</a>;
96 <a name="l00065"></a><a class="code" href="a00280.html#ga64aa9b2dc534ebd9cb26010e2eabd987">00065</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::int64&gt;</a> <a class="code" href="a00280.html#ga64aa9b2dc534ebd9cb26010e2eabd987" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_long2</a>;
97 <a name="l00066"></a>00066
98 <a name="l00067"></a><a class="code" href="a00280.html#gafee78def47febbb4ff7789df67f80e67">00067</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::uint8&gt;</a> <a class="code" href="a00280.html#gafee78def47febbb4ff7789df67f80e67" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uchar2</a>;
99 <a name="l00068"></a><a class="code" href="a00280.html#ga83879286ad8a304211a9bd1dec8a81b9">00068</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::uint16&gt;</a> <a class="code" href="a00280.html#ga83879286ad8a304211a9bd1dec8a81b9" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ushort2</a>;
100 <a name="l00069"></a><a class="code" href="a00280.html#gaf64dcd996174ae3271a9590c232d680f">00069</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::uint32&gt;</a> <a class="code" href="a00280.html#gaf64dcd996174ae3271a9590c232d680f" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uint2</a>;
101 <a name="l00070"></a><a class="code" href="a00280.html#ga983b584fd1a89ba357c4d161f57a97a5">00070</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::uint64&gt;</a> <a class="code" href="a00280.html#ga983b584fd1a89ba357c4d161f57a97a5" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ulong2</a>;
102 <a name="l00071"></a>00071
103 <a name="l00072"></a>00072 <span class="comment">//typedef detail::tvec2&lt;detail::float16&gt; cl_half2; //!&lt; \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)</span>
104 <a name="l00073"></a><a class="code" href="a00280.html#ga1d631e031b44406b9ecf4c9390ff4aaf">00073</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::float32&gt;</a> <a class="code" href="a00280.html#ga1d631e031b44406b9ecf4c9390ff4aaf" title="Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension)">cl_float2</a>;
93 <a name="l00061"></a><a class="code" href="a00279.html#ga5eaab898e9289ffad98798d96a8ff22e">00061</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::int8&gt;</a> <a class="code" href="a00279.html#ga5eaab898e9289ffad98798d96a8ff22e" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_char2</a>;
94 <a name="l00062"></a><a class="code" href="a00279.html#ga035b54a5fd591587d9fa6131e8a0c73c">00062</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::int16&gt;</a> <a class="code" href="a00279.html#ga035b54a5fd591587d9fa6131e8a0c73c" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_short2</a>;
95 <a name="l00063"></a><a class="code" href="a00279.html#ga75d44bea03be3491e5636dea711b70eb">00063</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::int32&gt;</a> <a class="code" href="a00279.html#ga75d44bea03be3491e5636dea711b70eb" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_int2</a>;
96 <a name="l00064"></a><a class="code" href="a00279.html#ga64aa9b2dc534ebd9cb26010e2eabd987">00064</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::int64&gt;</a> <a class="code" href="a00279.html#ga64aa9b2dc534ebd9cb26010e2eabd987" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_long2</a>;
97 <a name="l00065"></a>00065
98 <a name="l00066"></a><a class="code" href="a00279.html#gafee78def47febbb4ff7789df67f80e67">00066</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::uint8&gt;</a> <a class="code" href="a00279.html#gafee78def47febbb4ff7789df67f80e67" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uchar2</a>;
99 <a name="l00067"></a><a class="code" href="a00279.html#ga83879286ad8a304211a9bd1dec8a81b9">00067</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::uint16&gt;</a> <a class="code" href="a00279.html#ga83879286ad8a304211a9bd1dec8a81b9" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ushort2</a>;
100 <a name="l00068"></a><a class="code" href="a00279.html#gaf64dcd996174ae3271a9590c232d680f">00068</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::uint32&gt;</a> <a class="code" href="a00279.html#gaf64dcd996174ae3271a9590c232d680f" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uint2</a>;
101 <a name="l00069"></a><a class="code" href="a00279.html#ga983b584fd1a89ba357c4d161f57a97a5">00069</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::uint64&gt;</a> <a class="code" href="a00279.html#ga983b584fd1a89ba357c4d161f57a97a5" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ulong2</a>;
102 <a name="l00070"></a>00070
103 <a name="l00071"></a>00071 <span class="comment">//typedef detail::tvec2&lt;detail::float16&gt; cl_half2; //!&lt; \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)</span>
104 <a name="l00072"></a><a class="code" href="a00279.html#ga1d631e031b44406b9ecf4c9390ff4aaf">00072</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;detail::float32&gt;</a> <a class="code" href="a00279.html#ga1d631e031b44406b9ecf4c9390ff4aaf" title="Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension)">cl_float2</a>;
105 <a name="l00073"></a>00073
105106 <a name="l00074"></a>00074
106 <a name="l00075"></a>00075
107 <a name="l00076"></a><a class="code" href="a00280.html#ga3f60c528dc517a88386358e525238198">00076</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::int8&gt;</a> <a class="code" href="a00280.html#ga3f60c528dc517a88386358e525238198" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_char3</a>;
108 <a name="l00077"></a><a class="code" href="a00280.html#gaacc919abeb1dac5c46b35cba6f2ff1f6">00077</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::int16&gt;</a> <a class="code" href="a00280.html#gaacc919abeb1dac5c46b35cba6f2ff1f6" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_short3</a>;
109 <a name="l00078"></a><a class="code" href="a00280.html#ga685501809b08b64d48ede7cd04818675">00078</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::int32&gt;</a> <a class="code" href="a00280.html#ga685501809b08b64d48ede7cd04818675" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_int3</a>;
110 <a name="l00079"></a><a class="code" href="a00280.html#ga6deed316e020729bc448758fc2e72388">00079</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::int64&gt;</a> <a class="code" href="a00280.html#ga6deed316e020729bc448758fc2e72388" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_long3</a>;
111 <a name="l00080"></a>00080
112 <a name="l00081"></a><a class="code" href="a00280.html#ga03f1fdd60172bf92db40de83e13ab2f8">00081</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::uint8&gt;</a> <a class="code" href="a00280.html#ga03f1fdd60172bf92db40de83e13ab2f8" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uchar3</a>;
113 <a name="l00082"></a><a class="code" href="a00280.html#ga8ffa538b79f80a173f52a83c3bcc0587">00082</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::uint16&gt;</a> <a class="code" href="a00280.html#ga8ffa538b79f80a173f52a83c3bcc0587" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ushort3</a>;
114 <a name="l00083"></a><a class="code" href="a00280.html#ga423c13d5b93ab6f5fcdf248e0c89fb8d">00083</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::uint32&gt;</a> <a class="code" href="a00280.html#ga423c13d5b93ab6f5fcdf248e0c89fb8d" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uint3</a>;
115 <a name="l00084"></a><a class="code" href="a00280.html#gaad8f2d09028d9522ff6b792ceaeeebbc">00084</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::uint64&gt;</a> <a class="code" href="a00280.html#gaad8f2d09028d9522ff6b792ceaeeebbc" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ulong3</a>;
116 <a name="l00085"></a>00085
117 <a name="l00086"></a>00086 <span class="comment">//typedef detail::tvec3&lt;detail::float16&gt; cl_half3; //!&lt; \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)</span>
118 <a name="l00087"></a><a class="code" href="a00280.html#gaad4526a10e23f201f55649f264856683">00087</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::float32&gt;</a> <a class="code" href="a00280.html#gaad4526a10e23f201f55649f264856683" title="Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension)">cl_float3</a>;
107 <a name="l00075"></a><a class="code" href="a00279.html#ga3f60c528dc517a88386358e525238198">00075</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::int8&gt;</a> <a class="code" href="a00279.html#ga3f60c528dc517a88386358e525238198" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_char3</a>;
108 <a name="l00076"></a><a class="code" href="a00279.html#gaacc919abeb1dac5c46b35cba6f2ff1f6">00076</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::int16&gt;</a> <a class="code" href="a00279.html#gaacc919abeb1dac5c46b35cba6f2ff1f6" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_short3</a>;
109 <a name="l00077"></a><a class="code" href="a00279.html#ga685501809b08b64d48ede7cd04818675">00077</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::int32&gt;</a> <a class="code" href="a00279.html#ga685501809b08b64d48ede7cd04818675" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_int3</a>;
110 <a name="l00078"></a><a class="code" href="a00279.html#ga6deed316e020729bc448758fc2e72388">00078</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::int64&gt;</a> <a class="code" href="a00279.html#ga6deed316e020729bc448758fc2e72388" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_long3</a>;
111 <a name="l00079"></a>00079
112 <a name="l00080"></a><a class="code" href="a00279.html#ga03f1fdd60172bf92db40de83e13ab2f8">00080</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::uint8&gt;</a> <a class="code" href="a00279.html#ga03f1fdd60172bf92db40de83e13ab2f8" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uchar3</a>;
113 <a name="l00081"></a><a class="code" href="a00279.html#ga8ffa538b79f80a173f52a83c3bcc0587">00081</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::uint16&gt;</a> <a class="code" href="a00279.html#ga8ffa538b79f80a173f52a83c3bcc0587" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ushort3</a>;
114 <a name="l00082"></a><a class="code" href="a00279.html#ga423c13d5b93ab6f5fcdf248e0c89fb8d">00082</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::uint32&gt;</a> <a class="code" href="a00279.html#ga423c13d5b93ab6f5fcdf248e0c89fb8d" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uint3</a>;
115 <a name="l00083"></a><a class="code" href="a00279.html#gaad8f2d09028d9522ff6b792ceaeeebbc">00083</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::uint64&gt;</a> <a class="code" href="a00279.html#gaad8f2d09028d9522ff6b792ceaeeebbc" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ulong3</a>;
116 <a name="l00084"></a>00084
117 <a name="l00085"></a>00085 <span class="comment">//typedef detail::tvec3&lt;detail::float16&gt; cl_half3; //!&lt; \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)</span>
118 <a name="l00086"></a><a class="code" href="a00279.html#gaad4526a10e23f201f55649f264856683">00086</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;detail::float32&gt;</a> <a class="code" href="a00279.html#gaad4526a10e23f201f55649f264856683" title="Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension)">cl_float3</a>;
119 <a name="l00087"></a>00087
119120 <a name="l00088"></a>00088
120 <a name="l00089"></a>00089
121 <a name="l00090"></a><a class="code" href="a00280.html#ga7235804672db90b3b2e8bba142ff4977">00090</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::int8&gt;</a> <a class="code" href="a00280.html#ga7235804672db90b3b2e8bba142ff4977" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_char4</a>;
122 <a name="l00091"></a><a class="code" href="a00280.html#ga4682ecd16257fe283e891b3979e3037c">00091</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::int16&gt;</a> <a class="code" href="a00280.html#ga4682ecd16257fe283e891b3979e3037c" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_short4</a>;
123 <a name="l00092"></a><a class="code" href="a00280.html#ga7cf765cb37a5717826260a44e7c37d03">00092</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::int32&gt;</a> <a class="code" href="a00280.html#ga7cf765cb37a5717826260a44e7c37d03" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_int4</a>;
124 <a name="l00093"></a><a class="code" href="a00280.html#ga4f38be1bb22d86fa7617da6f6907b74c">00093</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::int64&gt;</a> <a class="code" href="a00280.html#ga4f38be1bb22d86fa7617da6f6907b74c" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_long4</a>;
125 <a name="l00094"></a><a class="code" href="a00280.html#ga1ba627aa90581618f0aff17a4f52ebc6">00094</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::uint8&gt;</a> <a class="code" href="a00280.html#ga1ba627aa90581618f0aff17a4f52ebc6" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uchar4</a>;
126 <a name="l00095"></a><a class="code" href="a00280.html#gaef286e330c9eaa72e71c5081a85592b3">00095</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::uint16&gt;</a> <a class="code" href="a00280.html#gaef286e330c9eaa72e71c5081a85592b3" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ushort4</a>;
127 <a name="l00096"></a><a class="code" href="a00280.html#gae75d9f1c7e3cebf862623eb3073870b0">00096</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::uint32&gt;</a> <a class="code" href="a00280.html#gae75d9f1c7e3cebf862623eb3073870b0" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uint4</a>;
128 <a name="l00097"></a><a class="code" href="a00280.html#ga5724575e5574de465785f06eeefd8789">00097</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::uint64&gt;</a> <a class="code" href="a00280.html#ga5724575e5574de465785f06eeefd8789" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ulong4</a>;
129 <a name="l00098"></a>00098
130 <a name="l00099"></a>00099 <span class="comment">//typedef detail::tvec4&lt;detail::float16&gt; cl_half4; //!&lt; \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)</span>
131 <a name="l00100"></a><a class="code" href="a00280.html#ga6a4d1b4f7bfdb1721f1554b30096b325">00100</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::float32&gt;</a> <a class="code" href="a00280.html#ga6a4d1b4f7bfdb1721f1554b30096b325" title="Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension)">cl_float4</a>;
132 <a name="l00101"></a>00101
133 <a name="l00103"></a>00103
134 <a name="l00104"></a>00104 }<span class="comment">//namespace ocl_type</span>
135 <a name="l00105"></a>00105 }<span class="comment">//namespace gtx</span>
136 <a name="l00106"></a>00106 }<span class="comment">//namespace glm</span>
121 <a name="l00089"></a><a class="code" href="a00279.html#ga7235804672db90b3b2e8bba142ff4977">00089</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::int8&gt;</a> <a class="code" href="a00279.html#ga7235804672db90b3b2e8bba142ff4977" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_char4</a>;
122 <a name="l00090"></a><a class="code" href="a00279.html#ga4682ecd16257fe283e891b3979e3037c">00090</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::int16&gt;</a> <a class="code" href="a00279.html#ga4682ecd16257fe283e891b3979e3037c" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_short4</a>;
123 <a name="l00091"></a><a class="code" href="a00279.html#ga7cf765cb37a5717826260a44e7c37d03">00091</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::int32&gt;</a> <a class="code" href="a00279.html#ga7cf765cb37a5717826260a44e7c37d03" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_int4</a>;
124 <a name="l00092"></a><a class="code" href="a00279.html#ga4f38be1bb22d86fa7617da6f6907b74c">00092</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::int64&gt;</a> <a class="code" href="a00279.html#ga4f38be1bb22d86fa7617da6f6907b74c" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_long4</a>;
125 <a name="l00093"></a><a class="code" href="a00279.html#ga1ba627aa90581618f0aff17a4f52ebc6">00093</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::uint8&gt;</a> <a class="code" href="a00279.html#ga1ba627aa90581618f0aff17a4f52ebc6" title="8bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uchar4</a>;
126 <a name="l00094"></a><a class="code" href="a00279.html#gaef286e330c9eaa72e71c5081a85592b3">00094</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::uint16&gt;</a> <a class="code" href="a00279.html#gaef286e330c9eaa72e71c5081a85592b3" title="16bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ushort4</a>;
127 <a name="l00095"></a><a class="code" href="a00279.html#gae75d9f1c7e3cebf862623eb3073870b0">00095</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::uint32&gt;</a> <a class="code" href="a00279.html#gae75d9f1c7e3cebf862623eb3073870b0" title="32bit signed integer. (from GLM_GTX_ocl_type extension)">cl_uint4</a>;
128 <a name="l00096"></a><a class="code" href="a00279.html#ga5724575e5574de465785f06eeefd8789">00096</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::uint64&gt;</a> <a class="code" href="a00279.html#ga5724575e5574de465785f06eeefd8789" title="64bit signed integer. (from GLM_GTX_ocl_type extension)">cl_ulong4</a>;
129 <a name="l00097"></a>00097
130 <a name="l00098"></a>00098 <span class="comment">//typedef detail::tvec4&lt;detail::float16&gt; cl_half4; //!&lt; \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)</span>
131 <a name="l00099"></a><a class="code" href="a00279.html#ga6a4d1b4f7bfdb1721f1554b30096b325">00099</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;detail::float32&gt;</a> <a class="code" href="a00279.html#ga6a4d1b4f7bfdb1721f1554b30096b325" title="Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension)">cl_float4</a>;
132 <a name="l00100"></a>00100
133 <a name="l00102"></a>00102 }<span class="comment">//namespace ocl_type</span>
134 <a name="l00103"></a>00103 }<span class="comment">//namespace gtx</span>
135 <a name="l00104"></a>00104 }<span class="comment">//namespace glm</span>
136 <a name="l00105"></a>00105
137 <a name="l00106"></a>00106 <span class="preprocessor">#include &quot;ocl_type.inl&quot;</span>
137138 <a name="l00107"></a>00107
138 <a name="l00108"></a>00108 <span class="preprocessor">#include &quot;ocl_type.inl&quot;</span>
139 <a name="l00108"></a>00108 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::ocl_type;}
139140 <a name="l00109"></a>00109
140 <a name="l00110"></a>00110 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::ocl_type;}
141 <a name="l00111"></a>00111
142 <a name="l00112"></a>00112 <span class="preprocessor">#endif//glm_gtx_ocl_type</span>
141 <a name="l00110"></a>00110 <span class="preprocessor">#endif//glm_gtx_ocl_type</span>
143142 </pre></div></div>
144143 </div>
145144 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_optimum_pow extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">void</span> main_gtx_optimum_pow();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00204.html">00031</a> <span class="keyword">namespace </span>optimum_pow
66 <a name="l00032"></a>00032 {
67 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
69 <a name="l00039"></a>00039 genType <a class="code" href="a00281.html#gaed0305d69d3e3ba925d2c6e138b4f4bf" title="Returns x raised to the power of 2.">pow2</a>(<span class="keyword">const</span> genType&amp; x);
70 <a name="l00040"></a>00040
71 <a name="l00043"></a>00043 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
72 <a name="l00044"></a>00044 genType <a class="code" href="a00281.html#ga8b7ca4439147682892326d3d61294f46" title="Returns x raised to the power of 3.">pow3</a>(<span class="keyword">const</span> genType&amp; x);
73 <a name="l00045"></a>00045
74 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
75 <a name="l00049"></a>00049 genType <a class="code" href="a00281.html#gafe1d0d8f5f0501c4940ebb8ae76a1ebf" title="Returns x raised to the power of 4.">pow4</a>(<span class="keyword">const</span> genType&amp; x);
76 <a name="l00050"></a>00050
77 <a name="l00053"></a>00053 <span class="keywordtype">bool</span> <a class="code" href="a00281.html#gae72355bc57d5aa5e9b0b823a0d893c82" title="Checks if the parameter is a power of 2 number.">powOfTwo</a>(<span class="keywordtype">int</span> num);
78 <a name="l00054"></a>00054
79 <a name="l00057"></a>00057 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;bool&gt;</a> <a class="code" href="a00281.html#gae72355bc57d5aa5e9b0b823a0d893c82" title="Checks if the parameter is a power of 2 number.">powOfTwo</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;int&gt;</a>&amp; x);
80 <a name="l00058"></a>00058
81 <a name="l00061"></a>00061 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;bool&gt;</a> <a class="code" href="a00281.html#gae72355bc57d5aa5e9b0b823a0d893c82" title="Checks if the parameter is a power of 2 number.">powOfTwo</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;int&gt;</a>&amp; x);
82 <a name="l00062"></a>00062
83 <a name="l00065"></a>00065 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;bool&gt;</a> <a class="code" href="a00281.html#gae72355bc57d5aa5e9b0b823a0d893c82" title="Checks if the parameter is a power of 2 number.">powOfTwo</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;int&gt;</a>&amp; x);
84 <a name="l00066"></a>00066
85 <a name="l00068"></a>00068
86 <a name="l00069"></a>00069 }<span class="comment">//namespace optimum_pow</span>
87 <a name="l00070"></a>00070 }<span class="comment">//namespace gtx</span>
88 <a name="l00071"></a>00071 }<span class="comment">//namespace glm</span>
89 <a name="l00072"></a>00072
90 <a name="l00073"></a>00073 <span class="preprocessor">#include &quot;optimum_pow.inl&quot;</span>
91 <a name="l00074"></a>00074
92 <a name="l00075"></a>00075 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::optimum_pow;}
93 <a name="l00076"></a>00076
94 <a name="l00077"></a>00077 <span class="preprocessor">#endif//glm_gtx_optimum_pow</span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00204.html">00025</a> <span class="keyword">namespace </span>optimum_pow
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
64 <a name="l00033"></a>00033 genType <a class="code" href="a00280.html#gaed0305d69d3e3ba925d2c6e138b4f4bf" title="Returns x raised to the power of 2.">pow2</a>(<span class="keyword">const</span> genType&amp; x);
65 <a name="l00034"></a>00034
66 <a name="l00037"></a>00037 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
67 <a name="l00038"></a>00038 genType <a class="code" href="a00280.html#ga8b7ca4439147682892326d3d61294f46" title="Returns x raised to the power of 3.">pow3</a>(<span class="keyword">const</span> genType&amp; x);
68 <a name="l00039"></a>00039
69 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
70 <a name="l00043"></a>00043 genType <a class="code" href="a00280.html#gafe1d0d8f5f0501c4940ebb8ae76a1ebf" title="Returns x raised to the power of 4.">pow4</a>(<span class="keyword">const</span> genType&amp; x);
71 <a name="l00044"></a>00044
72 <a name="l00047"></a>00047 <span class="keywordtype">bool</span> <a class="code" href="a00280.html#gae72355bc57d5aa5e9b0b823a0d893c82" title="Checks if the parameter is a power of 2 number.">powOfTwo</a>(<span class="keywordtype">int</span> num);
73 <a name="l00048"></a>00048
74 <a name="l00051"></a>00051 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;bool&gt;</a> <a class="code" href="a00280.html#gae72355bc57d5aa5e9b0b823a0d893c82" title="Checks if the parameter is a power of 2 number.">powOfTwo</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;int&gt;</a>&amp; x);
75 <a name="l00052"></a>00052
76 <a name="l00055"></a>00055 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;bool&gt;</a> <a class="code" href="a00280.html#gae72355bc57d5aa5e9b0b823a0d893c82" title="Checks if the parameter is a power of 2 number.">powOfTwo</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;int&gt;</a>&amp; x);
77 <a name="l00056"></a>00056
78 <a name="l00059"></a>00059 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;bool&gt;</a> <a class="code" href="a00280.html#gae72355bc57d5aa5e9b0b823a0d893c82" title="Checks if the parameter is a power of 2 number.">powOfTwo</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;int&gt;</a>&amp; x);
79 <a name="l00060"></a>00060
80 <a name="l00062"></a>00062 }<span class="comment">//namespace optimum_pow</span>
81 <a name="l00063"></a>00063 }<span class="comment">//namespace gtx</span>
82 <a name="l00064"></a>00064 }<span class="comment">//namespace glm</span>
83 <a name="l00065"></a>00065
84 <a name="l00066"></a>00066 <span class="preprocessor">#include &quot;optimum_pow.inl&quot;</span>
85 <a name="l00067"></a>00067
86 <a name="l00068"></a>00068 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::optimum_pow;}
87 <a name="l00069"></a>00069
88 <a name="l00070"></a>00070 <span class="preprocessor">#endif//glm_gtx_optimum_pow</span>
9589 </pre></div></div>
9690 </div>
9791 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_orthonormalize extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">void</span> main_gtx_orthonormalize();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00205.html">00031</a> <span class="keyword">namespace </span><a class="code" href="a00282.html#gaea1a740541f786951af15832223404dd" title="Returns the orthonormalized matrix of m.">orthonormalize</a>
66 <a name="l00032"></a>00032 {
67 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00039"></a>00039 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00282.html#gaea1a740541f786951af15832223404dd" title="Returns the orthonormalized matrix of m.">orthonormalize</a>(
70 <a name="l00040"></a>00040 <span class="keyword">const</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a>&amp; m);
71 <a name="l00041"></a>00041
72 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
73 <a name="l00045"></a>00045 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00282.html#gaea1a740541f786951af15832223404dd" title="Returns the orthonormalized matrix of m.">orthonormalize</a>(
74 <a name="l00046"></a>00046 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x,
75 <a name="l00047"></a>00047 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; y);
76 <a name="l00048"></a>00048
77 <a name="l00050"></a>00050
78 <a name="l00051"></a>00051 }<span class="comment">//namespace orthonormalize</span>
79 <a name="l00052"></a>00052 }<span class="comment">//namespace gtx</span>
80 <a name="l00053"></a>00053 }<span class="comment">//namespace glm</span>
81 <a name="l00054"></a>00054
82 <a name="l00055"></a>00055 <span class="preprocessor">#include &quot;orthonormalize.inl&quot;</span>
83 <a name="l00056"></a>00056
84 <a name="l00057"></a>00057 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span><a class="code" href="a00282.html#gaea1a740541f786951af15832223404dd" title="Returns the orthonormalized matrix of m.">gtx::orthonormalize</a>;}
85 <a name="l00058"></a>00058
86 <a name="l00059"></a>00059 <span class="preprocessor">#endif//glm_gtx_orthonormalize</span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00205.html">00025</a> <span class="keyword">namespace </span><a class="code" href="a00281.html#gaea1a740541f786951af15832223404dd" title="Returns the orthonormalized matrix of m.">orthonormalize</a>
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
64 <a name="l00033"></a>00033 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00281.html#gaea1a740541f786951af15832223404dd" title="Returns the orthonormalized matrix of m.">orthonormalize</a>(
65 <a name="l00034"></a>00034 <span class="keyword">const</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a>&amp; m);
66 <a name="l00035"></a>00035
67 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
68 <a name="l00039"></a>00039 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00281.html#gaea1a740541f786951af15832223404dd" title="Returns the orthonormalized matrix of m.">orthonormalize</a>(
69 <a name="l00040"></a>00040 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; x,
70 <a name="l00041"></a>00041 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; y);
71 <a name="l00042"></a>00042
72 <a name="l00044"></a>00044 }<span class="comment">//namespace orthonormalize</span>
73 <a name="l00045"></a>00045 }<span class="comment">//namespace gtx</span>
74 <a name="l00046"></a>00046 }<span class="comment">//namespace glm</span>
75 <a name="l00047"></a>00047
76 <a name="l00048"></a>00048 <span class="preprocessor">#include &quot;orthonormalize.inl&quot;</span>
77 <a name="l00049"></a>00049
78 <a name="l00050"></a>00050 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span><a class="code" href="a00281.html#gaea1a740541f786951af15832223404dd" title="Returns the orthonormalized matrix of m.">gtx::orthonormalize</a>;}
79 <a name="l00051"></a>00051
80 <a name="l00052"></a>00052 <span class="preprocessor">#endif//glm_gtx_orthonormalize</span>
8781 </pre></div></div>
8882 </div>
8983 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_perpendicular extension included&quot;)</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5959 <a name="l00024"></a>00024 <span class="preprocessor"></span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm
61 <a name="l00026"></a>00026 {
62 <a name="l00027"></a>00027 <span class="keyword">namespace </span>test{
63 <a name="l00028"></a>00028 <span class="keywordtype">void</span> main_gtx_perpendicular();
64 <a name="l00029"></a>00029 }<span class="comment">//namespace test</span>
65 <a name="l00030"></a>00030
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>gtx{
67 <a name="l00033"></a><a class="code" href="a00206.html">00033</a> <span class="keyword">namespace </span>perpendicular
68 <a name="l00034"></a>00034 {
69 <a name="l00037"></a>00037
70 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
71 <a name="l00041"></a>00041 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00283.html#ga2e991fe07f1b020a37523922bb421e92" title="Projects x a perpendicular axis of Normal.">perp</a>(
72 <a name="l00042"></a>00042 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
73 <a name="l00043"></a>00043 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; Normal);
74 <a name="l00044"></a>00044
75 <a name="l00047"></a>00047 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
76 <a name="l00048"></a>00048 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00283.html#ga2e991fe07f1b020a37523922bb421e92" title="Projects x a perpendicular axis of Normal.">perp</a>(
77 <a name="l00049"></a>00049 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
78 <a name="l00050"></a>00050 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; Normal);
79 <a name="l00051"></a>00051
80 <a name="l00054"></a>00054 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
81 <a name="l00055"></a>00055 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00283.html#ga2e991fe07f1b020a37523922bb421e92" title="Projects x a perpendicular axis of Normal.">perp</a>(
82 <a name="l00056"></a>00056 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
83 <a name="l00057"></a>00057 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; Normal);
84 <a name="l00058"></a>00058
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm{
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>gtx{
62 <a name="l00027"></a><a class="code" href="a00206.html">00027</a> <span class="keyword">namespace </span>perpendicular
63 <a name="l00028"></a>00028 {
64 <a name="l00031"></a>00031
65 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
66 <a name="l00035"></a>00035 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00282.html#ga2e991fe07f1b020a37523922bb421e92" title="Projects x a perpendicular axis of Normal.">perp</a>(
67 <a name="l00036"></a>00036 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
68 <a name="l00037"></a>00037 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; Normal);
69 <a name="l00038"></a>00038
70 <a name="l00041"></a>00041 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
71 <a name="l00042"></a>00042 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00282.html#ga2e991fe07f1b020a37523922bb421e92" title="Projects x a perpendicular axis of Normal.">perp</a>(
72 <a name="l00043"></a>00043 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
73 <a name="l00044"></a>00044 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; Normal);
74 <a name="l00045"></a>00045
75 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
76 <a name="l00049"></a>00049 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00282.html#ga2e991fe07f1b020a37523922bb421e92" title="Projects x a perpendicular axis of Normal.">perp</a>(
77 <a name="l00050"></a>00050 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
78 <a name="l00051"></a>00051 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; Normal);
79 <a name="l00052"></a>00052
80 <a name="l00054"></a>00054 }<span class="comment">//namespace perpendicular</span>
81 <a name="l00055"></a>00055 }<span class="comment">//namespace gtx</span>
82 <a name="l00056"></a>00056 }<span class="comment">//namespace glm</span>
83 <a name="l00057"></a>00057
84 <a name="l00058"></a>00058 <span class="preprocessor">#include &quot;perpendicular.inl&quot;</span>
8585 <a name="l00059"></a>00059
86 <a name="l00061"></a>00061
87 <a name="l00062"></a>00062 }<span class="comment">//namespace perpendicular</span>
88 <a name="l00063"></a>00063 }<span class="comment">//namespace gtx</span>
89 <a name="l00064"></a>00064 }<span class="comment">//namespace glm</span>
90 <a name="l00065"></a>00065
91 <a name="l00066"></a>00066 <span class="preprocessor">#include &quot;perpendicular.inl&quot;</span>
92 <a name="l00067"></a>00067
93 <a name="l00068"></a>00068 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::perpendicular;}
94 <a name="l00069"></a>00069
95 <a name="l00070"></a>00070 <span class="preprocessor">#endif//glm_gtx_perpendicular</span>
86 <a name="l00060"></a>00060 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::perpendicular;}
87 <a name="l00061"></a>00061
88 <a name="l00062"></a>00062 <span class="preprocessor">#endif//glm_gtx_perpendicular</span>
9689 </pre></div></div>
9790 </div>
9891 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_polar_coordinates extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtx{
61 <a name="l00027"></a><a class="code" href="a00207.html">00027</a> <span class="keyword">namespace </span>polar_coordinates
62 <a name="l00028"></a>00028 {
63 <a name="l00031"></a>00031
64 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
65 <a name="l00035"></a>00035 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00284.html#gab4f7bb55a54520917a592699bdb0b2f5" title="Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude...">polar</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; <a class="code" href="a00284.html#ga7c4788941d42c56c6ee2fd235765127e" title="Convert Polar to Euclidean coordinates.">euclidean</a>);
66 <a name="l00036"></a>00036
67 <a name="l00039"></a>00039 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
68 <a name="l00040"></a>00040 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00284.html#ga7c4788941d42c56c6ee2fd235765127e" title="Convert Polar to Euclidean coordinates.">euclidean</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; polar);
69 <a name="l00041"></a>00041
70 <a name="l00043"></a>00043
71 <a name="l00044"></a>00044 }<span class="comment">//namespace polar_coordinates</span>
72 <a name="l00045"></a>00045 }<span class="comment">//namespace gtx</span>
73 <a name="l00046"></a>00046 }<span class="comment">//namespace glm</span>
74 <a name="l00047"></a>00047
75 <a name="l00048"></a>00048 <span class="preprocessor">#include &quot;polar_coordinates.inl&quot;</span>
76 <a name="l00049"></a>00049
77 <a name="l00050"></a>00050 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::polar_coordinates;}
78 <a name="l00051"></a>00051
79 <a name="l00052"></a>00052 <span class="preprocessor">#endif//glm_gtx_polar_coordinates</span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00207.html">00025</a> <span class="keyword">namespace </span>polar_coordinates
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
64 <a name="l00033"></a>00033 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00283.html#gab4f7bb55a54520917a592699bdb0b2f5" title="Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude...">polar</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; <a class="code" href="a00283.html#ga7c4788941d42c56c6ee2fd235765127e" title="Convert Polar to Euclidean coordinates.">euclidean</a>);
65 <a name="l00034"></a>00034
66 <a name="l00037"></a>00037 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
67 <a name="l00038"></a>00038 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00283.html#ga7c4788941d42c56c6ee2fd235765127e" title="Convert Polar to Euclidean coordinates.">euclidean</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; polar);
68 <a name="l00039"></a>00039
69 <a name="l00041"></a>00041 }<span class="comment">//namespace polar_coordinates</span>
70 <a name="l00042"></a>00042 }<span class="comment">//namespace gtx</span>
71 <a name="l00043"></a>00043 }<span class="comment">//namespace glm</span>
72 <a name="l00044"></a>00044
73 <a name="l00045"></a>00045 <span class="preprocessor">#include &quot;polar_coordinates.inl&quot;</span>
74 <a name="l00046"></a>00046
75 <a name="l00047"></a>00047 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::polar_coordinates;}
76 <a name="l00048"></a>00048
77 <a name="l00049"></a>00049 <span class="preprocessor">#endif//glm_gtx_polar_coordinates</span>
8078 </pre></div></div>
8179 </div>
8280 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_projection extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">void</span> main_gtx_projection();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00208.html">00031</a> <span class="keyword">namespace </span>projection
66 <a name="l00032"></a>00032 {
67 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00039"></a>00039 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00285.html#ga2bf24fe9717e1711a4f454430c79d726" title="Projects x on Normal.">proj</a>(
70 <a name="l00040"></a>00040 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
71 <a name="l00041"></a>00041 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; Normal);
72 <a name="l00042"></a>00042
73 <a name="l00045"></a>00045 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
74 <a name="l00046"></a>00046 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00285.html#ga2bf24fe9717e1711a4f454430c79d726" title="Projects x on Normal.">proj</a>(
75 <a name="l00047"></a>00047 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
76 <a name="l00048"></a>00048 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; Normal);
77 <a name="l00049"></a>00049
78 <a name="l00052"></a>00052 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
79 <a name="l00053"></a>00053 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00285.html#ga2bf24fe9717e1711a4f454430c79d726" title="Projects x on Normal.">proj</a>(
80 <a name="l00054"></a>00054 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
81 <a name="l00055"></a>00055 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; Normal);
82 <a name="l00056"></a>00056
83 <a name="l00058"></a>00058
84 <a name="l00059"></a>00059 }<span class="comment">//namespace projection</span>
85 <a name="l00060"></a>00060 }<span class="comment">//namespace gtx</span>
86 <a name="l00061"></a>00061 }<span class="comment">//namespace glm</span>
87 <a name="l00062"></a>00062
88 <a name="l00063"></a>00063 <span class="preprocessor">#include &quot;projection.inl&quot;</span>
89 <a name="l00064"></a>00064
90 <a name="l00065"></a>00065 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::projection;}
91 <a name="l00066"></a>00066
92 <a name="l00067"></a>00067 <span class="preprocessor">#endif//glm_gtx_projection</span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00208.html">00025</a> <span class="keyword">namespace </span>projection
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
64 <a name="l00033"></a>00033 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00284.html#ga2bf24fe9717e1711a4f454430c79d726" title="Projects x on Normal.">proj</a>(
65 <a name="l00034"></a>00034 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
66 <a name="l00035"></a>00035 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; Normal);
67 <a name="l00036"></a>00036
68 <a name="l00039"></a>00039 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00040"></a>00040 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00284.html#ga2bf24fe9717e1711a4f454430c79d726" title="Projects x on Normal.">proj</a>(
70 <a name="l00041"></a>00041 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
71 <a name="l00042"></a>00042 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; Normal);
72 <a name="l00043"></a>00043
73 <a name="l00046"></a>00046 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
74 <a name="l00047"></a>00047 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00284.html#ga2bf24fe9717e1711a4f454430c79d726" title="Projects x on Normal.">proj</a>(
75 <a name="l00048"></a>00048 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
76 <a name="l00049"></a>00049 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; Normal);
77 <a name="l00050"></a>00050
78 <a name="l00052"></a>00052 }<span class="comment">//namespace projection</span>
79 <a name="l00053"></a>00053 }<span class="comment">//namespace gtx</span>
80 <a name="l00054"></a>00054 }<span class="comment">//namespace glm</span>
81 <a name="l00055"></a>00055
82 <a name="l00056"></a>00056 <span class="preprocessor">#include &quot;projection.inl&quot;</span>
83 <a name="l00057"></a>00057
84 <a name="l00058"></a>00058 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::projection;}
85 <a name="l00059"></a>00059
86 <a name="l00060"></a>00060 <span class="preprocessor">#endif//glm_gtx_projection</span>
9387 </pre></div></div>
9488 </div>
9589 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6060 <a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_quaternion extension included&quot;)</span>
6161 <a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
6262 <a name="l00028"></a>00028 <span class="preprocessor"></span>
63 <a name="l00029"></a>00029 <span class="keyword">namespace </span>glm
64 <a name="l00030"></a>00030 {
65 <a name="l00031"></a>00031 <span class="keyword">namespace </span>test{
66 <a name="l00032"></a>00032 <span class="keywordtype">bool</span> main_gtc_quaternion();
67 <a name="l00033"></a>00033 }<span class="comment">//namespace test</span>
68 <a name="l00034"></a>00034
69 <a name="l00035"></a>00035 <span class="keyword">namespace </span>detail
70 <a name="l00036"></a>00036 {
71 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
72 <a name="l00041"></a><a class="code" href="a00019.html">00041</a> <span class="keyword">struct </span><a class="code" href="a00019.html" title="Template for quaternion.">tquat</a><span class="comment">// : public genType&lt;T, tquat&gt;</span>
73 <a name="l00042"></a>00042 {
74 <a name="l00043"></a>00043 <span class="keyword">typedef</span> T value_type;
75 <a name="l00044"></a>00044
76 <a name="l00045"></a>00045 <span class="keyword">public</span>:
77 <a name="l00046"></a>00046 value_type x, y, z, w;
78 <a name="l00047"></a>00047
79 <a name="l00048"></a>00048 <span class="comment">// Constructors</span>
80 <a name="l00049"></a>00049 <a class="code" href="a00019.html" title="Template for quaternion.">tquat</a>();
81 <a name="l00050"></a>00050 <span class="keyword">explicit</span> <a class="code" href="a00019.html" title="Template for quaternion.">tquat</a>(
82 <a name="l00051"></a>00051 value_type <span class="keyword">const</span> &amp; s,
83 <a name="l00052"></a>00052 <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
84 <a name="l00053"></a>00053 <span class="keyword">explicit</span> <a class="code" href="a00019.html" title="Template for quaternion.">tquat</a>(
85 <a name="l00054"></a>00054 value_type <span class="keyword">const</span> &amp; w,
86 <a name="l00055"></a>00055 value_type <span class="keyword">const</span> &amp; x,
87 <a name="l00056"></a>00056 value_type <span class="keyword">const</span> &amp; y,
88 <a name="l00057"></a>00057 value_type <span class="keyword">const</span> &amp; z);
89 <a name="l00058"></a>00058
90 <a name="l00059"></a>00059 <span class="comment">// Convertions</span>
91 <a name="l00060"></a>00060 <span class="comment">//explicit tquat(valType const &amp; pitch, valType const &amp; yaw, valType const &amp; roll);</span>
92 <a name="l00062"></a>00062 <span class="comment"></span> <span class="keyword">explicit</span> <a class="code" href="a00019.html" title="Template for quaternion.">tquat</a>(
93 <a name="l00063"></a>00063 <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; eulerAngles);
94 <a name="l00064"></a>00064 <span class="keyword">explicit</span> <a class="code" href="a00019.html" title="Template for quaternion.">tquat</a>(
95 <a name="l00065"></a>00065 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
96 <a name="l00066"></a>00066 <span class="keyword">explicit</span> <a class="code" href="a00019.html" title="Template for quaternion.">tquat</a>(
97 <a name="l00067"></a>00067 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
98 <a name="l00068"></a>00068
99 <a name="l00069"></a>00069 <span class="comment">// Accesses</span>
100 <a name="l00070"></a>00070 value_type &amp; operator[](<span class="keywordtype">int</span> i);
101 <a name="l00071"></a>00071 value_type <span class="keyword">const</span> &amp; operator[](<span class="keywordtype">int</span> i) <span class="keyword">const</span>;
63 <a name="l00029"></a>00029 <span class="keyword">namespace </span>glm{
64 <a name="l00030"></a>00030 <span class="keyword">namespace </span>detail
65 <a name="l00031"></a>00031 {
66 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
67 <a name="l00036"></a><a class="code" href="a00019.html">00036</a> <span class="keyword">struct </span><a class="code" href="a00019.html" title="Template for quaternion.">tquat</a><span class="comment">// : public genType&lt;T, tquat&gt;</span>
68 <a name="l00037"></a>00037 {
69 <a name="l00038"></a>00038 <span class="keyword">typedef</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> value_type;
70 <a name="l00039"></a>00039
71 <a name="l00040"></a>00040 <span class="keyword">public</span>:
72 <a name="l00041"></a>00041 value_type x, y, z, w;
73 <a name="l00042"></a>00042
74 <a name="l00043"></a>00043 <span class="comment">// Constructors</span>
75 <a name="l00044"></a>00044 <a class="code" href="a00019.html" title="Template for quaternion.">tquat</a>();
76 <a name="l00045"></a>00045 <span class="keyword">explicit</span> <a class="code" href="a00019.html" title="Template for quaternion.">tquat</a>(
77 <a name="l00046"></a>00046 value_type <span class="keyword">const</span> &amp; s,
78 <a name="l00047"></a>00047 <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
79 <a name="l00048"></a>00048 <span class="keyword">explicit</span> <a class="code" href="a00019.html" title="Template for quaternion.">tquat</a>(
80 <a name="l00049"></a>00049 value_type <span class="keyword">const</span> &amp; w,
81 <a name="l00050"></a>00050 value_type <span class="keyword">const</span> &amp; x,
82 <a name="l00051"></a>00051 value_type <span class="keyword">const</span> &amp; y,
83 <a name="l00052"></a>00052 value_type <span class="keyword">const</span> &amp; z);
84 <a name="l00053"></a>00053
85 <a name="l00054"></a>00054 <span class="comment">// Convertions</span>
86 <a name="l00055"></a>00055 <span class="comment">//explicit tquat(valType const &amp; pitch, valType const &amp; yaw, valType const &amp; roll);</span>
87 <a name="l00057"></a>00057 <span class="comment"></span> <span class="keyword">explicit</span> <a class="code" href="a00019.html" title="Template for quaternion.">tquat</a>(
88 <a name="l00058"></a>00058 <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; <a class="code" href="a00285.html#ga39be27be43d9f80ce5bfc5e1adf21412" title="Returns euler angles, yitch as x, yaw as y, roll as z.">eulerAngles</a>);
89 <a name="l00059"></a>00059 <span class="keyword">explicit</span> <a class="code" href="a00019.html" title="Template for quaternion.">tquat</a>(
90 <a name="l00060"></a>00060 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
91 <a name="l00061"></a>00061 <span class="keyword">explicit</span> <a class="code" href="a00019.html" title="Template for quaternion.">tquat</a>(
92 <a name="l00062"></a>00062 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
93 <a name="l00063"></a>00063
94 <a name="l00064"></a>00064 <span class="comment">// Accesses</span>
95 <a name="l00065"></a>00065 value_type &amp; operator[](<span class="keywordtype">int</span> i);
96 <a name="l00066"></a>00066 value_type <span class="keyword">const</span> &amp; operator[](<span class="keywordtype">int</span> i) <span class="keyword">const</span>;
97 <a name="l00067"></a>00067
98 <a name="l00068"></a>00068 <span class="comment">// Operators</span>
99 <a name="l00069"></a>00069 <a class="code" href="a00019.html" title="Template for quaternion.">tquat&lt;T&gt;</a> &amp; operator*=(value_type <span class="keyword">const</span> &amp; s);
100 <a name="l00070"></a>00070 <a class="code" href="a00019.html" title="Template for quaternion.">tquat&lt;T&gt;</a> &amp; operator/=(value_type <span class="keyword">const</span> &amp; s);
101 <a name="l00071"></a>00071 };
102102 <a name="l00072"></a>00072
103 <a name="l00073"></a>00073 <span class="comment">// Operators</span>
104 <a name="l00074"></a>00074 <a class="code" href="a00019.html" title="Template for quaternion.">tquat&lt;T&gt;</a> &amp; operator*=(value_type <span class="keyword">const</span> &amp; s);
105 <a name="l00075"></a>00075 <a class="code" href="a00019.html" title="Template for quaternion.">tquat&lt;T&gt;</a> &amp; operator/=(value_type <span class="keyword">const</span> &amp; s);
106 <a name="l00076"></a>00076 };
107 <a name="l00077"></a>00077
108 <a name="l00078"></a>00078 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
109 <a name="l00079"></a>00079 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> operator- (
110 <a name="l00080"></a>00080 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q);
103 <a name="l00073"></a>00073 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
104 <a name="l00074"></a>00074 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> operator- (
105 <a name="l00075"></a>00075 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q);
106 <a name="l00076"></a>00076
107 <a name="l00077"></a>00077 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
108 <a name="l00078"></a>00078 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> operator+ (
109 <a name="l00079"></a>00079 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q,
110 <a name="l00080"></a>00080 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; p);
111111 <a name="l00081"></a>00081
112 <a name="l00082"></a>00082 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
113 <a name="l00083"></a>00083 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> operator* (
114 <a name="l00084"></a>00084 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q,
115 <a name="l00085"></a>00085 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; p);
112 <a name="l00082"></a>00082 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
113 <a name="l00083"></a>00083 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> operator* (
114 <a name="l00084"></a>00084 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q,
115 <a name="l00085"></a>00085 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; p);
116116 <a name="l00086"></a>00086
117 <a name="l00087"></a>00087 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
118 <a name="l00088"></a>00088 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> operator* (
119 <a name="l00089"></a>00089 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q,
120 <a name="l00090"></a>00090 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
117 <a name="l00087"></a>00087 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
118 <a name="l00088"></a>00088 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> operator* (
119 <a name="l00089"></a>00089 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q,
120 <a name="l00090"></a>00090 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
121121 <a name="l00091"></a>00091
122 <a name="l00092"></a>00092 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
123 <a name="l00093"></a>00093 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> operator* (
124 <a name="l00094"></a>00094 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v,
125 <a name="l00095"></a>00095 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q);
122 <a name="l00092"></a>00092 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
123 <a name="l00093"></a>00093 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> operator* (
124 <a name="l00094"></a>00094 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v,
125 <a name="l00095"></a>00095 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q);
126126 <a name="l00096"></a>00096
127 <a name="l00097"></a>00097 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
128 <a name="l00098"></a>00098 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> operator* (
129 <a name="l00099"></a>00099 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q,
130 <a name="l00100"></a>00100 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
127 <a name="l00097"></a>00097 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
128 <a name="l00098"></a>00098 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> operator* (
129 <a name="l00099"></a>00099 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q,
130 <a name="l00100"></a>00100 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
131131 <a name="l00101"></a>00101
132 <a name="l00102"></a>00102 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
133 <a name="l00103"></a>00103 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> operator* (
134 <a name="l00104"></a>00104 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; v,
135 <a name="l00105"></a>00105 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q);
132 <a name="l00102"></a>00102 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
133 <a name="l00103"></a>00103 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> operator* (
134 <a name="l00104"></a>00104 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; v,
135 <a name="l00105"></a>00105 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q);
136136 <a name="l00106"></a>00106
137 <a name="l00107"></a>00107 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
138 <a name="l00108"></a>00108 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> operator* (
139 <a name="l00109"></a>00109 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q,
140 <a name="l00110"></a>00110 <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
137 <a name="l00107"></a>00107 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
138 <a name="l00108"></a>00108 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> operator* (
139 <a name="l00109"></a>00109 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q,
140 <a name="l00110"></a>00110 <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
141141 <a name="l00111"></a>00111
142 <a name="l00112"></a>00112 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
143 <a name="l00113"></a>00113 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> operator* (
144 <a name="l00114"></a>00114 <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
145 <a name="l00115"></a>00115 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q);
142 <a name="l00112"></a>00112 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
143 <a name="l00113"></a>00113 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> operator* (
144 <a name="l00114"></a>00114 <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
145 <a name="l00115"></a>00115 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q);
146146 <a name="l00116"></a>00116
147 <a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
148 <a name="l00118"></a>00118 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> operator/ (
149 <a name="l00119"></a>00119 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q,
150 <a name="l00120"></a>00120 <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
147 <a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
148 <a name="l00118"></a>00118 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> operator/ (
149 <a name="l00119"></a>00119 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q,
150 <a name="l00120"></a>00120 <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
151151 <a name="l00121"></a>00121
152 <a name="l00122"></a>00122 } <span class="comment">//namespace detail</span>
152 <a name="l00122"></a>00122 } <span class="comment">//namespace detail</span>
153153 <a name="l00123"></a>00123
154 <a name="l00124"></a>00124 <span class="keyword">namespace </span>gtc{
155 <a name="l00126"></a><a class="code" href="a00164.html">00126</a> <span class="keyword">namespace </span>quaternion
156 <a name="l00127"></a>00127 {
157 <a name="l00130"></a>00130
158 <a name="l00133"></a>00133 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
159 <a name="l00134"></a>00134 <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <a class="code" href="a00245.html#gabb546279ee6acebe3fe64dce79e7e9f0" title="Returns the length of the quaternion x.">length</a>(
160 <a name="l00135"></a>00135 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q);
161 <a name="l00136"></a>00136
162 <a name="l00139"></a>00139 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
163 <a name="l00140"></a>00140 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00245.html#gacca9518d4cb79922ccbcd2d01e886421" title="Returns the normalized quaternion of from x.">normalize</a>(
164 <a name="l00141"></a>00141 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q);
165 <a name="l00142"></a>00142
166 <a name="l00145"></a>00145 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
167 <a name="l00146"></a>00146 <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <a class="code" href="a00245.html#gaae0285ab092999b98c4f4c8455eeee9f" title="Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ...">dot</a>(
168 <a name="l00147"></a>00147 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q1,
169 <a name="l00148"></a>00148 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q2);
170 <a name="l00149"></a>00149
171 <a name="l00152"></a>00152 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
172 <a name="l00153"></a>00153 GLM_DEPRECATED <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00245.html#ga6fe2d33aa0cdf188ab362355ad4108c4" title="Returns the cross product of q1 and q2.">cross</a>(
173 <a name="l00154"></a>00154 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q1,
174 <a name="l00155"></a>00155 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q2);
175 <a name="l00156"></a>00156
176 <a name="l00159"></a>00159 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
177 <a name="l00160"></a>00160 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00245.html#ga99e0097254662e3d4d5859fa329762ca" title="Returns a SLERP interpolated quaternion of x and y according a.">mix</a>(
178 <a name="l00161"></a>00161 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
179 <a name="l00162"></a>00162 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; y,
180 <a name="l00163"></a>00163 <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <span class="keyword">const</span> &amp; a);
181 <a name="l00164"></a>00164
182 <a name="l00167"></a>00167 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
183 <a name="l00168"></a>00168 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00245.html#gac66280c86e8efa619ad7dddb2d475aa7" title="Returns the q conjugate.">conjugate</a>(
184 <a name="l00169"></a>00169 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q);
185 <a name="l00170"></a>00170
186 <a name="l00173"></a>00173 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
187 <a name="l00174"></a>00174 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00245.html#ga12e7d58d287f181ec2ebf47bc6af6c5c" title="Returns the q inverse.">inverse</a>(
188 <a name="l00175"></a>00175 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q);
189 <a name="l00176"></a>00176
190 <a name="l00179"></a>00179 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
191 <a name="l00180"></a>00180 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00245.html#ga98c5928aefea9c200a285a5f1c3a0da5" title="Rotates a quaternion from an vector of 3 components axis and an angle expressed in degrees...">rotate</a>(
192 <a name="l00181"></a>00181 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q,
193 <a name="l00182"></a>00182 <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00286.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>,
194 <a name="l00183"></a>00183 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
195 <a name="l00184"></a>00184
196 <a name="l00187"></a>00187 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
197 <a name="l00188"></a>00188 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00245.html#ga38702707009c743e9f304aadc25aeeeb" title="Converts a quaternion to a 3 * 3 matrix.">mat3_cast</a>(
198 <a name="l00189"></a>00189 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
199 <a name="l00190"></a>00190
200 <a name="l00193"></a>00193 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
201 <a name="l00194"></a>00194 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00245.html#gae2d14d52f9fef3da00cf867f9e2e3dfa" title="Converts a quaternion to a 4 * 4 matrix.">mat4_cast</a>(
202 <a name="l00195"></a>00195 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
203 <a name="l00196"></a>00196
204 <a name="l00199"></a>00199 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
205 <a name="l00200"></a>00200 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00245.html#ga9a8fa3c0a776ce21fde307d94f5a5a52" title="Converts a 3 * 3 matrix to a quaternion.">quat_cast</a>(
206 <a name="l00201"></a>00201 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
207 <a name="l00202"></a>00202
208 <a name="l00205"></a>00205 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
209 <a name="l00206"></a>00206 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00245.html#ga9a8fa3c0a776ce21fde307d94f5a5a52" title="Converts a 3 * 3 matrix to a quaternion.">quat_cast</a>(
210 <a name="l00207"></a>00207 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
211 <a name="l00208"></a>00208
212 <a name="l00211"></a><a class="code" href="a00245.html#ga60408579db470456070a3336295625a7">00211</a> <span class="keyword">typedef</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;float&gt;</a> <a class="code" href="a00245.html#ga60408579db470456070a3336295625a7" title="Quaternion of floating-point numbers.">quat</a>;
213 <a name="l00212"></a>00212
214 <a name="l00215"></a><a class="code" href="a00245.html#ga552e75db1669a7a86b59070d4efd6941">00215</a> <span class="keyword">typedef</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;detail::thalf&gt;</a> <a class="code" href="a00245.html#ga552e75db1669a7a86b59070d4efd6941" title="Quaternion of half-precision floating-point numbers.">hquat</a>;
215 <a name="l00216"></a>00216
216 <a name="l00219"></a><a class="code" href="a00245.html#gaae07c293efbe1c530ff18044a15fe662">00219</a> <span class="keyword">typedef</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;float&gt;</a> <a class="code" href="a00245.html#gaae07c293efbe1c530ff18044a15fe662" title="Quaternion of single-precision floating-point numbers.">fquat</a>;
217 <a name="l00220"></a>00220
218 <a name="l00223"></a><a class="code" href="a00245.html#ga5428321324094c7170d6133c8139d255">00223</a> <span class="keyword">typedef</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;double&gt;</a> <a class="code" href="a00245.html#ga5428321324094c7170d6133c8139d255" title="Quaternion of double-precision floating-point numbers.">dquat</a>;
219 <a name="l00224"></a>00224
220 <a name="l00226"></a>00226
221 <a name="l00227"></a>00227 }<span class="comment">//namespace quaternion</span>
222 <a name="l00228"></a>00228 }<span class="comment">//namespace gtc</span>
223 <a name="l00229"></a>00229 } <span class="comment">//namespace glm</span>
224 <a name="l00230"></a>00230
225 <a name="l00231"></a>00231 <span class="preprocessor">#include &quot;quaternion.inl&quot;</span>
226 <a name="l00232"></a>00232
227 <a name="l00233"></a>00233 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::quaternion;}
228 <a name="l00234"></a>00234
229 <a name="l00235"></a>00235 <span class="preprocessor">#endif//glm_gtc_quaternion</span>
154 <a name="l00124"></a>00124 <span class="keyword">namespace </span>gtc{
155 <a name="l00125"></a><a class="code" href="a00164.html">00125</a> <span class="keyword">namespace </span>quaternion
156 <a name="l00126"></a>00126 {
157 <a name="l00129"></a>00129
158 <a name="l00132"></a>00132 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
159 <a name="l00133"></a>00133 <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <a class="code" href="a00244.html#gabb546279ee6acebe3fe64dce79e7e9f0" title="Returns the length of the quaternion.">length</a>(
160 <a name="l00134"></a>00134 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q);
161 <a name="l00135"></a>00135
162 <a name="l00138"></a>00138 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
163 <a name="l00139"></a>00139 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00244.html#gacca9518d4cb79922ccbcd2d01e886421" title="Returns the normalized quaternion.">normalize</a>(
164 <a name="l00140"></a>00140 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q);
165 <a name="l00141"></a>00141
166 <a name="l00144"></a>00144 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
167 <a name="l00145"></a>00145 <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <a class="code" href="a00244.html#gaae0285ab092999b98c4f4c8455eeee9f" title="Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ...">dot</a>(
168 <a name="l00146"></a>00146 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q1,
169 <a name="l00147"></a>00147 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q2);
170 <a name="l00148"></a>00148
171 <a name="l00151"></a>00151 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
172 <a name="l00152"></a>00152 GLM_DEPRECATED <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00244.html#ga6fe2d33aa0cdf188ab362355ad4108c4" title="Returns the cross product of q1 and q2.">cross</a>(
173 <a name="l00153"></a>00153 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q1,
174 <a name="l00154"></a>00154 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q2);
175 <a name="l00155"></a>00155
176 <a name="l00158"></a>00158 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
177 <a name="l00159"></a>00159 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00244.html#ga7cacada583bca8e51e9c67f9cd7e69cb" title="Returns a SLERP interpolated quaternion of x and y according a.">mix</a>(
178 <a name="l00160"></a>00160 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
179 <a name="l00161"></a>00161 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; y,
180 <a name="l00162"></a>00162 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; a);
181 <a name="l00163"></a>00163
182 <a name="l00166"></a>00166 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
183 <a name="l00167"></a>00167 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00244.html#gac66280c86e8efa619ad7dddb2d475aa7" title="Returns the q conjugate.">conjugate</a>(
184 <a name="l00168"></a>00168 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q);
185 <a name="l00169"></a>00169
186 <a name="l00172"></a>00172 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
187 <a name="l00173"></a>00173 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00244.html#ga12e7d58d287f181ec2ebf47bc6af6c5c" title="Returns the q inverse.">inverse</a>(
188 <a name="l00174"></a>00174 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q);
189 <a name="l00175"></a>00175
190 <a name="l00178"></a>00178 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
191 <a name="l00179"></a>00179 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00244.html#ga98c5928aefea9c200a285a5f1c3a0da5" title="Rotates a quaternion from an vector of 3 components axis and an angle expressed in degrees...">rotate</a>(
192 <a name="l00180"></a>00180 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; q,
193 <a name="l00181"></a>00181 <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00285.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>,
194 <a name="l00182"></a>00182 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
195 <a name="l00183"></a>00183
196 <a name="l00186"></a>00186 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
197 <a name="l00187"></a>00187 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00244.html#ga38702707009c743e9f304aadc25aeeeb" title="Converts a quaternion to a 3 * 3 matrix.">mat3_cast</a>(
198 <a name="l00188"></a>00188 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
199 <a name="l00189"></a>00189
200 <a name="l00192"></a>00192 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
201 <a name="l00193"></a>00193 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00244.html#gae2d14d52f9fef3da00cf867f9e2e3dfa" title="Converts a quaternion to a 4 * 4 matrix.">mat4_cast</a>(
202 <a name="l00194"></a>00194 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
203 <a name="l00195"></a>00195
204 <a name="l00198"></a>00198 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
205 <a name="l00199"></a>00199 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00244.html#ga9a8fa3c0a776ce21fde307d94f5a5a52" title="Converts a 3 * 3 matrix to a quaternion.">quat_cast</a>(
206 <a name="l00200"></a>00200 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
207 <a name="l00201"></a>00201
208 <a name="l00204"></a>00204 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
209 <a name="l00205"></a>00205 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00244.html#ga9a8fa3c0a776ce21fde307d94f5a5a52" title="Converts a 3 * 3 matrix to a quaternion.">quat_cast</a>(
210 <a name="l00206"></a>00206 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
211 <a name="l00207"></a>00207
212 <a name="l00210"></a><a class="code" href="a00244.html#ga60408579db470456070a3336295625a7">00210</a> <span class="keyword">typedef</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;float&gt;</a> <a class="code" href="a00244.html#ga60408579db470456070a3336295625a7" title="Quaternion of floating-point numbers.">quat</a>;
213 <a name="l00211"></a>00211
214 <a name="l00214"></a><a class="code" href="a00244.html#ga552e75db1669a7a86b59070d4efd6941">00214</a> <span class="keyword">typedef</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;detail::thalf&gt;</a> <a class="code" href="a00244.html#ga552e75db1669a7a86b59070d4efd6941" title="Quaternion of half-precision floating-point numbers.">hquat</a>;
215 <a name="l00215"></a>00215
216 <a name="l00218"></a><a class="code" href="a00244.html#gaae07c293efbe1c530ff18044a15fe662">00218</a> <span class="keyword">typedef</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;float&gt;</a> <a class="code" href="a00244.html#gaae07c293efbe1c530ff18044a15fe662" title="Quaternion of single-precision floating-point numbers.">fquat</a>;
217 <a name="l00219"></a>00219
218 <a name="l00222"></a><a class="code" href="a00244.html#ga5428321324094c7170d6133c8139d255">00222</a> <span class="keyword">typedef</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;double&gt;</a> <a class="code" href="a00244.html#ga5428321324094c7170d6133c8139d255" title="Quaternion of double-precision floating-point numbers.">dquat</a>;
219 <a name="l00223"></a>00223
220 <a name="l00226"></a><a class="code" href="a00244.html#ga5acd0f3e9f9e3c0e6577440443ec4594">00226</a> <span class="keyword">typedef</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;lowp_float&gt;</a> <a class="code" href="a00244.html#ga5acd0f3e9f9e3c0e6577440443ec4594" title="Quaternion of low precision floating-point numbers.">lowp_quat</a>;
221 <a name="l00227"></a>00227
222 <a name="l00230"></a><a class="code" href="a00244.html#gae93fe73ea5fe5e2150c2eb0641394dc8">00230</a> <span class="keyword">typedef</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;mediump_float&gt;</a> <a class="code" href="a00244.html#gae93fe73ea5fe5e2150c2eb0641394dc8" title="Quaternion of medium precision floating-point numbers.">mediump_quat</a>;
223 <a name="l00231"></a>00231
224 <a name="l00234"></a><a class="code" href="a00244.html#ga8a7c2c751ad30db9ec4268a6b7d99f6c">00234</a> <span class="keyword">typedef</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;highp_float&gt;</a> <a class="code" href="a00244.html#ga8a7c2c751ad30db9ec4268a6b7d99f6c" title="Quaternion of high precision floating-point numbers.">highp_quat</a>;
225 <a name="l00236"></a>00236
226 <a name="l00237"></a>00237 } <span class="comment">//namespace quaternion</span>
227 <a name="l00238"></a>00238 } <span class="comment">//namespace gtc</span>
228 <a name="l00239"></a>00239 } <span class="comment">//namespace glm</span>
229 <a name="l00240"></a>00240
230 <a name="l00241"></a>00241 <span class="preprocessor">#include &quot;quaternion.inl&quot;</span>
231 <a name="l00242"></a>00242
232 <a name="l00243"></a>00243 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::quaternion;}
233 <a name="l00244"></a>00244
234 <a name="l00245"></a>00245 <span class="preprocessor">#endif//glm_gtc_quaternion</span>
230235 </pre></div></div>
231236 </div>
232237 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5959 <a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_quaternion extension included&quot;)</span>
6060 <a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
6161 <a name="l00027"></a>00027 <span class="preprocessor"></span>
62 <a name="l00028"></a>00028 <span class="keyword">namespace </span>glm
63 <a name="l00029"></a>00029 {
64 <a name="l00030"></a>00030 <span class="keyword">namespace </span>gtx{
65 <a name="l00032"></a><a class="code" href="a00209.html">00032</a> <span class="keyword">namespace </span>quaternion
66 <a name="l00033"></a>00033 {
67 <a name="l00034"></a>00034 <span class="keyword">using namespace </span>gtc::quaternion;
68 <a name="l00035"></a>00035
69 <a name="l00038"></a>00038
70 <a name="l00041"></a>00041 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
71 <a name="l00042"></a>00042 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00286.html#ga2a222a07e879ab25de36d6b5a8f6610d" title="Compute a cross product between a quaternion and a vector.">cross</a>(
72 <a name="l00043"></a>00043 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q,
73 <a name="l00044"></a>00044 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
74 <a name="l00045"></a>00045
75 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
76 <a name="l00049"></a>00049 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00286.html#ga2a222a07e879ab25de36d6b5a8f6610d" title="Compute a cross product between a quaternion and a vector.">cross</a>(
77 <a name="l00050"></a>00050 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v,
78 <a name="l00051"></a>00051 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q);
79 <a name="l00052"></a>00052
80 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
81 <a name="l00057"></a>00057 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00286.html#ga203b736245b7519eb151ac46e0bf7f21" title="Compute a point on a path according squad equation.">squad</a>(
82 <a name="l00058"></a>00058 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q1,
83 <a name="l00059"></a>00059 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q2,
84 <a name="l00060"></a>00060 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; s1,
85 <a name="l00061"></a>00061 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; s2,
86 <a name="l00062"></a>00062 valType <span class="keyword">const</span> &amp; h);
87 <a name="l00063"></a>00063
88 <a name="l00066"></a>00066 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
89 <a name="l00067"></a>00067 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00286.html#gaa15c443e97ac7476d04627d868995891" title="Returns an intermediate control point for squad interpolation.">intermediate</a>(
90 <a name="l00068"></a>00068 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; prev,
91 <a name="l00069"></a>00069 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; curr,
92 <a name="l00070"></a>00070 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; next);
93 <a name="l00071"></a>00071
94 <a name="l00074"></a>00074 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
95 <a name="l00075"></a>00075 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00286.html#gaed2302270ec468d26de745516ccb5d4b" title="Returns a exp of a quaternion.">exp</a>(
96 <a name="l00076"></a>00076 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q,
97 <a name="l00077"></a>00077 valType <span class="keyword">const</span> &amp; exponent);
98 <a name="l00078"></a>00078
99 <a name="l00081"></a>00081 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
100 <a name="l00082"></a>00082 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00286.html#ga11af1897310ec8a09210fb7b4deb0027" title="Returns a log of a quaternion.">log</a>(
101 <a name="l00083"></a>00083 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q);
102 <a name="l00084"></a>00084
103 <a name="l00087"></a>00087 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
104 <a name="l00088"></a>00088 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00286.html#ga42873121534327c9e5238f3ca3d6cd03" title="Returns x raised to the y power.">pow</a>(
105 <a name="l00089"></a>00089 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x,
106 <a name="l00090"></a>00090 valType <span class="keyword">const</span> &amp; y);
107 <a name="l00091"></a>00091
108 <a name="l00094"></a>00094 <span class="comment">//template &lt;typename valType&gt; </span>
109 <a name="l00095"></a>00095 <span class="comment">//detail::tquat&lt;valType&gt; sqrt(</span>
110 <a name="l00096"></a>00096 <span class="comment">// detail::tquat&lt;valType&gt; const &amp; q);</span>
111 <a name="l00097"></a>00097
112 <a name="l00100"></a>00100 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
113 <a name="l00101"></a>00101 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00286.html#ga7f163c787898b76dc1d91eb48523ce87" title="Returns quarternion square root.">rotate</a>(
114 <a name="l00102"></a>00102 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q,
115 <a name="l00103"></a>00103 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
116 <a name="l00104"></a>00104
117 <a name="l00107"></a>00107 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
118 <a name="l00108"></a>00108 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;valType&gt;</a> <a class="code" href="a00286.html#ga7f163c787898b76dc1d91eb48523ce87" title="Returns quarternion square root.">rotate</a>(
119 <a name="l00109"></a>00109 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q,
120 <a name="l00110"></a>00110 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
121 <a name="l00111"></a>00111
122 <a name="l00114"></a>00114 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
123 <a name="l00115"></a>00115 valType <a class="code" href="a00286.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>(
124 <a name="l00116"></a>00116 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x);
125 <a name="l00117"></a>00117
126 <a name="l00120"></a>00120 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
127 <a name="l00121"></a>00121 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00286.html#ga6dd1904e2a6cc8e54bd324994094a6f9" title="Returns the q rotation axis.">axis</a>(
128 <a name="l00122"></a>00122 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x);
129 <a name="l00123"></a>00123
130 <a name="l00126"></a>00126 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
131 <a name="l00127"></a>00127 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00286.html#ga4412b01c376d9cfc9cc06b2d511d0f16" title="Build a quaternion from an angle and a normalized axis.">angleAxis</a>(
132 <a name="l00128"></a>00128 valType <span class="keyword">const</span> &amp; angle,
133 <a name="l00129"></a>00129 valType <span class="keyword">const</span> &amp; x,
134 <a name="l00130"></a>00130 valType <span class="keyword">const</span> &amp; y,
135 <a name="l00131"></a>00131 valType <span class="keyword">const</span> &amp; z);
136 <a name="l00132"></a>00132
137 <a name="l00135"></a>00135 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
138 <a name="l00136"></a>00136 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00286.html#ga4412b01c376d9cfc9cc06b2d511d0f16" title="Build a quaternion from an angle and a normalized axis.">angleAxis</a>(
139 <a name="l00137"></a>00137 valType <span class="keyword">const</span> &amp; angle,
140 <a name="l00138"></a>00138 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; axis);
141 <a name="l00139"></a>00139
142 <a name="l00142"></a>00142 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
143 <a name="l00143"></a>00143 valType <a class="code" href="a00286.html#ga23eb8e1aeaf751f7cc46fbaa291e223d" title="Extract the real component of a quaternion.">extractRealComponent</a>(
144 <a name="l00144"></a>00144 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q);
145 <a name="l00145"></a>00145
146 <a name="l00148"></a>00148 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
147 <a name="l00149"></a>00149 valType <a class="code" href="a00286.html#ga60a4f955b2836d85f3d21ded84879926" title="Returns roll value of euler angles.">roll</a>(
148 <a name="l00150"></a>00150 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x);
149 <a name="l00151"></a>00151
150 <a name="l00154"></a>00154 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
151 <a name="l00155"></a>00155 valType <a class="code" href="a00286.html#gafad23e37f1723bbbbd7f9498cd729126" title="Returns pitch value of euler angles.">pitch</a>(
152 <a name="l00156"></a>00156 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x);
153 <a name="l00157"></a>00157
154 <a name="l00160"></a>00160 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
155 <a name="l00161"></a>00161 valType <a class="code" href="a00286.html#ga4795f1cc522d82d672f7be9a405583c4" title="Returns yaw value of euler angles.">yaw</a>(
156 <a name="l00162"></a>00162 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x);
157 <a name="l00163"></a>00163
158 <a name="l00166"></a>00166 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
159 <a name="l00167"></a>00167 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00286.html#ga49d24e9d018f400ee11176b7e9433384" title="Returns euler angles, yitch as x, yaw as y, roll as z.">eularAngles</a>(
160 <a name="l00168"></a>00168 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x);
161 <a name="l00169"></a>00169
162 <a name="l00172"></a>00172 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
163 <a name="l00173"></a><a class="code" href="a00286.html#ga61ec971322157330116a3aefe5bae609">00173</a> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;valType&gt;</a> <a class="code" href="a00286.html#ga61ec971322157330116a3aefe5bae609" title="Converts a quaternion to a 3 * 3 matrix.">toMat3</a>(
164 <a name="l00174"></a>00174 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00245.html#ga38702707009c743e9f304aadc25aeeeb" title="Converts a quaternion to a 3 * 3 matrix.">gtc::quaternion::mat3_cast</a>(x);}
165 <a name="l00175"></a>00175
166 <a name="l00178"></a>00178 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
167 <a name="l00179"></a><a class="code" href="a00286.html#ga80622343bd7ccf43c9b4cb677ba3ce38">00179</a> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00286.html#ga80622343bd7ccf43c9b4cb677ba3ce38" title="Converts a quaternion to a 4 * 4 matrix.">toMat4</a>(
168 <a name="l00180"></a>00180 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00245.html#gae2d14d52f9fef3da00cf867f9e2e3dfa" title="Converts a quaternion to a 4 * 4 matrix.">gtc::quaternion::mat4_cast</a>(x);}
169 <a name="l00181"></a>00181
170 <a name="l00184"></a>00184 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
171 <a name="l00185"></a><a class="code" href="a00286.html#ga991e534718ab690ff21e201f27bfd43b">00185</a> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00286.html#ga991e534718ab690ff21e201f27bfd43b" title="Converts a 3 * 3 matrix to a quaternion.">toQuat</a>(
172 <a name="l00186"></a>00186 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00245.html#ga9a8fa3c0a776ce21fde307d94f5a5a52" title="Converts a 3 * 3 matrix to a quaternion.">gtc::quaternion::quat_cast</a>(x);}
173 <a name="l00187"></a>00187
174 <a name="l00190"></a>00190 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
175 <a name="l00191"></a><a class="code" href="a00286.html#ga2d9d1916258d13bd5f0373341400f18c">00191</a> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00286.html#ga991e534718ab690ff21e201f27bfd43b" title="Converts a 3 * 3 matrix to a quaternion.">toQuat</a>(
176 <a name="l00192"></a>00192 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00245.html#ga9a8fa3c0a776ce21fde307d94f5a5a52" title="Converts a 3 * 3 matrix to a quaternion.">gtc::quaternion::quat_cast</a>(x);}
177 <a name="l00193"></a>00193
178 <a name="l00196"></a>00196 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
179 <a name="l00197"></a>00197 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00286.html#ga22566896a998311431a0612e1c222002" title="Quaternion interpolation using the rotation short path.">shortMix</a>(
180 <a name="l00198"></a>00198 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
181 <a name="l00199"></a>00199 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; y,
182 <a name="l00200"></a>00200 T <span class="keyword">const</span> &amp; a);
183 <a name="l00201"></a>00201
184 <a name="l00204"></a>00204 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
185 <a name="l00205"></a>00205 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00286.html#ga65d5734ce29049d334992f6a59e27e58" title="Quaternion normalized linear interpolation.">fastMix</a>(
186 <a name="l00206"></a>00206 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
187 <a name="l00207"></a>00207 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; y,
188 <a name="l00208"></a>00208 T <span class="keyword">const</span> &amp; a);
189 <a name="l00209"></a>00209
190 <a name="l00211"></a>00211
191 <a name="l00212"></a>00212 }<span class="comment">//namespace quaternion</span>
192 <a name="l00213"></a>00213 }<span class="comment">//namespace gtx</span>
193 <a name="l00214"></a>00214 } <span class="comment">//namespace glm</span>
194 <a name="l00215"></a>00215
195 <a name="l00216"></a>00216 <span class="preprocessor">#include &quot;quaternion.inl&quot;</span>
196 <a name="l00217"></a>00217
197 <a name="l00218"></a>00218 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::quaternion;}
198 <a name="l00219"></a>00219
199 <a name="l00220"></a>00220 <span class="preprocessor">#endif//glm_gtx_quaternion</span>
62 <a name="l00028"></a>00028 <span class="keyword">namespace </span>glm{
63 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
64 <a name="l00030"></a><a class="code" href="a00209.html">00030</a> <span class="keyword">namespace </span>quaternion
65 <a name="l00031"></a>00031 {
66 <a name="l00032"></a>00032 <span class="keyword">using namespace </span>gtc::quaternion;
67 <a name="l00033"></a>00033
68 <a name="l00036"></a>00036
69 <a name="l00039"></a>00039 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
70 <a name="l00040"></a>00040 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00285.html#ga2a222a07e879ab25de36d6b5a8f6610d" title="Compute a cross product between a quaternion and a vector.">cross</a>(
71 <a name="l00041"></a>00041 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q,
72 <a name="l00042"></a>00042 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
73 <a name="l00043"></a>00043
74 <a name="l00046"></a>00046 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
75 <a name="l00047"></a>00047 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00285.html#ga2a222a07e879ab25de36d6b5a8f6610d" title="Compute a cross product between a quaternion and a vector.">cross</a>(
76 <a name="l00048"></a>00048 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v,
77 <a name="l00049"></a>00049 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q);
78 <a name="l00050"></a>00050
79 <a name="l00054"></a>00054 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
80 <a name="l00055"></a>00055 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00285.html#ga203b736245b7519eb151ac46e0bf7f21" title="Compute a point on a path according squad equation.">squad</a>(
81 <a name="l00056"></a>00056 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q1,
82 <a name="l00057"></a>00057 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q2,
83 <a name="l00058"></a>00058 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; s1,
84 <a name="l00059"></a>00059 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; s2,
85 <a name="l00060"></a>00060 valType <span class="keyword">const</span> &amp; h);
86 <a name="l00061"></a>00061
87 <a name="l00064"></a>00064 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
88 <a name="l00065"></a>00065 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00285.html#gaa15c443e97ac7476d04627d868995891" title="Returns an intermediate control point for squad interpolation.">intermediate</a>(
89 <a name="l00066"></a>00066 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; prev,
90 <a name="l00067"></a>00067 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; curr,
91 <a name="l00068"></a>00068 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; next);
92 <a name="l00069"></a>00069
93 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
94 <a name="l00073"></a>00073 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00285.html#gaed2302270ec468d26de745516ccb5d4b" title="Returns a exp of a quaternion.">exp</a>(
95 <a name="l00074"></a>00074 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q,
96 <a name="l00075"></a>00075 valType <span class="keyword">const</span> &amp; exponent);
97 <a name="l00076"></a>00076
98 <a name="l00079"></a>00079 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
99 <a name="l00080"></a>00080 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00285.html#ga11af1897310ec8a09210fb7b4deb0027" title="Returns a log of a quaternion.">log</a>(
100 <a name="l00081"></a>00081 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q);
101 <a name="l00082"></a>00082
102 <a name="l00085"></a>00085 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
103 <a name="l00086"></a>00086 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00285.html#ga42873121534327c9e5238f3ca3d6cd03" title="Returns x raised to the y power.">pow</a>(
104 <a name="l00087"></a>00087 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x,
105 <a name="l00088"></a>00088 valType <span class="keyword">const</span> &amp; y);
106 <a name="l00089"></a>00089
107 <a name="l00092"></a>00092 <span class="comment">//template &lt;typename valType&gt; </span>
108 <a name="l00093"></a>00093 <span class="comment">//detail::tquat&lt;valType&gt; sqrt(</span>
109 <a name="l00094"></a>00094 <span class="comment">// detail::tquat&lt;valType&gt; const &amp; q);</span>
110 <a name="l00095"></a>00095
111 <a name="l00098"></a>00098 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
112 <a name="l00099"></a>00099 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00285.html#ga7f163c787898b76dc1d91eb48523ce87" title="Returns quarternion square root.">rotate</a>(
113 <a name="l00100"></a>00100 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q,
114 <a name="l00101"></a>00101 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
115 <a name="l00102"></a>00102
116 <a name="l00105"></a>00105 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
117 <a name="l00106"></a>00106 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;valType&gt;</a> <a class="code" href="a00285.html#ga7f163c787898b76dc1d91eb48523ce87" title="Returns quarternion square root.">rotate</a>(
118 <a name="l00107"></a>00107 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q,
119 <a name="l00108"></a>00108 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;valType&gt;</a> <span class="keyword">const</span> &amp; v);
120 <a name="l00109"></a>00109
121 <a name="l00112"></a>00112 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
122 <a name="l00113"></a>00113 valType <a class="code" href="a00285.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>(
123 <a name="l00114"></a>00114 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x);
124 <a name="l00115"></a>00115
125 <a name="l00118"></a>00118 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
126 <a name="l00119"></a>00119 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00285.html#ga6dd1904e2a6cc8e54bd324994094a6f9" title="Returns the q rotation axis.">axis</a>(
127 <a name="l00120"></a>00120 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x);
128 <a name="l00121"></a>00121
129 <a name="l00124"></a>00124 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
130 <a name="l00125"></a>00125 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00285.html#ga4412b01c376d9cfc9cc06b2d511d0f16" title="Build a quaternion from an angle and a normalized axis.">angleAxis</a>(
131 <a name="l00126"></a>00126 valType <span class="keyword">const</span> &amp; angle,
132 <a name="l00127"></a>00127 valType <span class="keyword">const</span> &amp; x,
133 <a name="l00128"></a>00128 valType <span class="keyword">const</span> &amp; y,
134 <a name="l00129"></a>00129 valType <span class="keyword">const</span> &amp; z);
135 <a name="l00130"></a>00130
136 <a name="l00133"></a>00133 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
137 <a name="l00134"></a>00134 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00285.html#ga4412b01c376d9cfc9cc06b2d511d0f16" title="Build a quaternion from an angle and a normalized axis.">angleAxis</a>(
138 <a name="l00135"></a>00135 valType <span class="keyword">const</span> &amp; angle,
139 <a name="l00136"></a>00136 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; axis);
140 <a name="l00137"></a>00137
141 <a name="l00140"></a>00140 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
142 <a name="l00141"></a>00141 valType <a class="code" href="a00285.html#ga23eb8e1aeaf751f7cc46fbaa291e223d" title="Extract the real component of a quaternion.">extractRealComponent</a>(
143 <a name="l00142"></a>00142 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; q);
144 <a name="l00143"></a>00143
145 <a name="l00146"></a>00146 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
146 <a name="l00147"></a>00147 valType <a class="code" href="a00285.html#ga60a4f955b2836d85f3d21ded84879926" title="Returns roll value of euler angles in degrees.">roll</a>(
147 <a name="l00148"></a>00148 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x);
148 <a name="l00149"></a>00149
149 <a name="l00152"></a>00152 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
150 <a name="l00153"></a>00153 valType <a class="code" href="a00285.html#gafad23e37f1723bbbbd7f9498cd729126" title="Returns pitch value of euler angles in degrees.">pitch</a>(
151 <a name="l00154"></a>00154 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x);
152 <a name="l00155"></a>00155
153 <a name="l00158"></a>00158 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
154 <a name="l00159"></a>00159 valType <a class="code" href="a00285.html#ga4795f1cc522d82d672f7be9a405583c4" title="Returns yaw value of euler angles in degrees.">yaw</a>(
155 <a name="l00160"></a>00160 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x);
156 <a name="l00161"></a>00161
157 <a name="l00164"></a>00164 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
158 <a name="l00165"></a>00165 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> <a class="code" href="a00285.html#ga39be27be43d9f80ce5bfc5e1adf21412" title="Returns euler angles, yitch as x, yaw as y, roll as z.">eulerAngles</a>(
159 <a name="l00166"></a>00166 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x);
160 <a name="l00167"></a>00167
161 <a name="l00170"></a>00170 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
162 <a name="l00171"></a><a class="code" href="a00285.html#ga61ec971322157330116a3aefe5bae609">00171</a> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;valType&gt;</a> <a class="code" href="a00285.html#ga61ec971322157330116a3aefe5bae609" title="Converts a quaternion to a 3 * 3 matrix.">toMat3</a>(
163 <a name="l00172"></a>00172 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00244.html#ga38702707009c743e9f304aadc25aeeeb" title="Converts a quaternion to a 3 * 3 matrix.">gtc::quaternion::mat3_cast</a>(x);}
164 <a name="l00173"></a>00173
165 <a name="l00176"></a>00176 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
166 <a name="l00177"></a><a class="code" href="a00285.html#ga80622343bd7ccf43c9b4cb677ba3ce38">00177</a> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00285.html#ga80622343bd7ccf43c9b4cb677ba3ce38" title="Converts a quaternion to a 4 * 4 matrix.">toMat4</a>(
167 <a name="l00178"></a>00178 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00244.html#gae2d14d52f9fef3da00cf867f9e2e3dfa" title="Converts a quaternion to a 4 * 4 matrix.">gtc::quaternion::mat4_cast</a>(x);}
168 <a name="l00179"></a>00179
169 <a name="l00182"></a>00182 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
170 <a name="l00183"></a><a class="code" href="a00285.html#ga991e534718ab690ff21e201f27bfd43b">00183</a> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00285.html#ga991e534718ab690ff21e201f27bfd43b" title="Converts a 3 * 3 matrix to a quaternion.">toQuat</a>(
171 <a name="l00184"></a>00184 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00244.html#ga9a8fa3c0a776ce21fde307d94f5a5a52" title="Converts a 3 * 3 matrix to a quaternion.">gtc::quaternion::quat_cast</a>(x);}
172 <a name="l00185"></a>00185
173 <a name="l00188"></a>00188 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
174 <a name="l00189"></a><a class="code" href="a00285.html#ga2d9d1916258d13bd5f0373341400f18c">00189</a> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;valType&gt;</a> <a class="code" href="a00285.html#ga991e534718ab690ff21e201f27bfd43b" title="Converts a 3 * 3 matrix to a quaternion.">toQuat</a>(
175 <a name="l00190"></a>00190 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00244.html#ga9a8fa3c0a776ce21fde307d94f5a5a52" title="Converts a 3 * 3 matrix to a quaternion.">gtc::quaternion::quat_cast</a>(x);}
176 <a name="l00191"></a>00191
177 <a name="l00194"></a>00194 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
178 <a name="l00195"></a>00195 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00285.html#ga22566896a998311431a0612e1c222002" title="Quaternion interpolation using the rotation short path.">shortMix</a>(
179 <a name="l00196"></a>00196 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
180 <a name="l00197"></a>00197 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; y,
181 <a name="l00198"></a>00198 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; a);
182 <a name="l00199"></a>00199
183 <a name="l00202"></a>00202 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
184 <a name="l00203"></a>00203 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <a class="code" href="a00285.html#ga65d5734ce29049d334992f6a59e27e58" title="Quaternion normalized linear interpolation.">fastMix</a>(
185 <a name="l00204"></a>00204 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
186 <a name="l00205"></a>00205 <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;T&gt;</a> <span class="keyword">const</span> &amp; y,
187 <a name="l00206"></a>00206 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; a);
188 <a name="l00207"></a>00207
189 <a name="l00209"></a>00209 }<span class="comment">//namespace quaternion</span>
190 <a name="l00210"></a>00210 }<span class="comment">//namespace gtx</span>
191 <a name="l00211"></a>00211 } <span class="comment">//namespace glm</span>
192 <a name="l00212"></a>00212
193 <a name="l00213"></a>00213 <span class="preprocessor">#include &quot;quaternion.inl&quot;</span>
194 <a name="l00214"></a>00214
195 <a name="l00215"></a>00215 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::quaternion;}
196 <a name="l00216"></a>00216
197 <a name="l00217"></a>00217 <span class="preprocessor">#endif//glm_gtx_quaternion</span>
200198 </pre></div></div>
201199 </div>
202200 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6060 <a name="l00025"></a>00025 <span class="preprocessor"></span>
6161 <a name="l00026"></a>00026 <span class="keyword">namespace </span>glm{
6262 <a name="l00027"></a>00027 <span class="keyword">namespace </span>gtx{
63 <a name="l00029"></a><a class="code" href="a00210.html">00029</a> <span class="keyword">namespace </span>random
64 <a name="l00030"></a>00030 {
65 <a name="l00033"></a>00033
66 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; T <a class="code" href="a00287.html#ga8b6a21d90d07f7a655264009590ddcce" title="Generate a random number in the interval [-1, 1], according a linear distribution.">signedRand1</a>();
67 <a name="l00037"></a>00037
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;&gt; <span class="keywordtype">float</span> <a class="code" href="a00287.html#ga8b6a21d90d07f7a655264009590ddcce" title="Generate a random number in the interval [-1, 1], according a linear distribution.">signedRand1</a>();
69 <a name="l00039"></a>00039 <span class="keyword">template</span> &lt;&gt; <span class="keywordtype">double</span> <a class="code" href="a00287.html#ga8b6a21d90d07f7a655264009590ddcce" title="Generate a random number in the interval [-1, 1], according a linear distribution.">signedRand1</a>();
70 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00287.html#ga65f615e428d1e4009cdf872d434d5267" title="Generate 2 random numbers in the interval [-1, 1], according a linear distribution (From GLM_GTX_rand...">signedRand2</a>();
71 <a name="l00041"></a>00041 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00287.html#gab3a7fc45bf10792e96e5bbc6aa3ff30b" title="Generate 3 random numbers in the interval [-1, 1], according a linear distribution (From GLM_GTX_rand...">signedRand3</a>();
72 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00287.html#ga917ac879bf910263d7af720d03342e8a" title="Generate 4 random numbers in the interval [-1, 1], according a linear distribution (From GLM_GTX_rand...">signedRand4</a>();
73 <a name="l00043"></a>00043
74 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00287.html#ga5d05c63350546c1e7aa058bbf1b7f547" title="Generate a normalized 2D vector regulary distribute on a circle (From GLM_GTX_random extension)...">normalizedRand2</a>();
75 <a name="l00045"></a>00045 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00287.html#ga5d05c63350546c1e7aa058bbf1b7f547" title="Generate a normalized 2D vector regulary distribute on a circle (From GLM_GTX_random extension)...">normalizedRand2</a>(T Min, T Max);
76 <a name="l00046"></a>00046 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00287.html#ga4d7a132cc05433f7c4c8263797f9d5b4" title="Generate a normalized 3D vector regulary distribute on a sphere (From GLM_GTX_random extension)...">normalizedRand3</a>();
77 <a name="l00047"></a>00047 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00287.html#ga4d7a132cc05433f7c4c8263797f9d5b4" title="Generate a normalized 3D vector regulary distribute on a sphere (From GLM_GTX_random extension)...">normalizedRand3</a>(T Min, T Max);
78 <a name="l00048"></a>00048
79 <a name="l00049"></a>00049 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; T <a class="code" href="a00287.html#gaf7f3b54ec804a8eb627ec78f6d7eab2e" title="Generate a random number in the interval [0, 1], according a linear distribution (From GLM_GTX_random...">compRand1</a>();
80 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;&gt; <span class="keywordtype">float</span> <a class="code" href="a00287.html#gaf7f3b54ec804a8eb627ec78f6d7eab2e" title="Generate a random number in the interval [0, 1], according a linear distribution (From GLM_GTX_random...">compRand1</a>();
81 <a name="l00051"></a>00051 <span class="keyword">template</span> &lt;&gt; <span class="keywordtype">double</span> <a class="code" href="a00287.html#gaf7f3b54ec804a8eb627ec78f6d7eab2e" title="Generate a random number in the interval [0, 1], according a linear distribution (From GLM_GTX_random...">compRand1</a>();
82 <a name="l00052"></a>00052 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; T <a class="code" href="a00287.html#gaf7f3b54ec804a8eb627ec78f6d7eab2e" title="Generate a random number in the interval [0, 1], according a linear distribution (From GLM_GTX_random...">compRand1</a>(T Min, T Max);
83 <a name="l00053"></a>00053 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00287.html#ga5082aae274f3851014a8f1665661fc9a" title="Generate 2 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_r...">compRand2</a>(T Min, T Max);
84 <a name="l00054"></a>00054 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00287.html#ga25d17c98a74d5252c0d1f4070e0dce75" title="Generate 3 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_r...">compRand3</a>(T Min, T Max);
85 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00287.html#ga58863d5503a6c1aefaa5d01775a83267" title="Generate 4 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_r...">compRand4</a>(T Min, T Max);
86 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00287.html#ga5082aae274f3851014a8f1665661fc9a" title="Generate 2 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_r...">compRand2</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; Min, <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; Max);
87 <a name="l00057"></a>00057 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00287.html#ga25d17c98a74d5252c0d1f4070e0dce75" title="Generate 3 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_r...">compRand3</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; Min, <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; Max);
88 <a name="l00058"></a>00058 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00287.html#ga58863d5503a6c1aefaa5d01775a83267" title="Generate 4 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_r...">compRand4</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; Min, <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; Max);
89 <a name="l00059"></a>00059
90 <a name="l00060"></a>00060 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00287.html#ga12d03cc32f213b4173e58f05d74232b3" title="Generate a random normalized 2 component vector. It&amp;#39;s a spherical uniform distribution. (From GLM_GTX_random extension)">vecRand2</a>();
91 <a name="l00061"></a>00061 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00287.html#ga12d03cc32f213b4173e58f05d74232b3" title="Generate a random normalized 2 component vector. It&amp;#39;s a spherical uniform distribution. (From GLM_GTX_random extension)">vecRand2</a>(T MinRadius, T MaxRadius);
92 <a name="l00062"></a>00062 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00287.html#ga63249d58e1327a83638f1cf8b421a0de" title="Generate a random normalized 3 component vector. It&amp;#39;s a spherical uniform distribution. (From GLM_GTX_random extension)">vecRand3</a>();
93 <a name="l00063"></a>00063 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00287.html#ga63249d58e1327a83638f1cf8b421a0de" title="Generate a random normalized 3 component vector. It&amp;#39;s a spherical uniform distribution. (From GLM_GTX_random extension)">vecRand3</a>(T MinRadius, T MaxRadius);
94 <a name="l00064"></a>00064 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00287.html#gac2d7a76d889e0b5e9414791b9403c98c" title="Generate a random normalized 4 component vector. It&amp;#39;s a spherical uniform distribution. (From GLM_GTX_random extension)">vecRand4</a>();
95 <a name="l00065"></a>00065 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00287.html#gac2d7a76d889e0b5e9414791b9403c98c" title="Generate a random normalized 4 component vector. It&amp;#39;s a spherical uniform distribution. (From GLM_GTX_random extension)">vecRand4</a>(T MinRadius, T MaxRadius);
96 <a name="l00066"></a>00066
97 <a name="l00067"></a>00067 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; T <a class="code" href="a00287.html#gaea7fcb106b788c816db85cd1e3be6188" title="Gererate a random floating number according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand1</a>(T mean, T std_deviation);
98 <a name="l00068"></a>00068 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00287.html#gabe761c9b9cc6999fc91acf79a7007ddb" title="Gererate 2 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand2</a>(T mean, T std_deviation);
99 <a name="l00069"></a>00069 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00287.html#ga103cde6c382abea173da6b1800acd5c9" title="Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand3</a>(T mean, T std_deviation);
100 <a name="l00070"></a>00070 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00287.html#gab9f9cf1859278ad7f1ccc38cf3092cf2" title="Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand4</a>(T mean, T std_deviation);
101 <a name="l00071"></a>00071 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00287.html#gabe761c9b9cc6999fc91acf79a7007ddb" title="Gererate 2 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand2</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; mean, T std_deviation);
102 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00287.html#ga103cde6c382abea173da6b1800acd5c9" title="Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand3</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; mean, T std_deviation);
103 <a name="l00073"></a>00073 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00287.html#gab9f9cf1859278ad7f1ccc38cf3092cf2" title="Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand4</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; mean, T std_deviation);
104 <a name="l00074"></a>00074 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00287.html#gabe761c9b9cc6999fc91acf79a7007ddb" title="Gererate 2 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand2</a>(T mean, <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; std_deviation);
105 <a name="l00075"></a>00075 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00287.html#ga103cde6c382abea173da6b1800acd5c9" title="Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand3</a>(T mean, <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; std_deviation);
106 <a name="l00076"></a>00076 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00287.html#gab9f9cf1859278ad7f1ccc38cf3092cf2" title="Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand4</a>(T mean, <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; std_deviation);
107 <a name="l00077"></a>00077 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00287.html#gabe761c9b9cc6999fc91acf79a7007ddb" title="Gererate 2 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand2</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; mean, <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; std_deviation);
108 <a name="l00078"></a>00078 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00287.html#ga103cde6c382abea173da6b1800acd5c9" title="Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand3</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; mean, <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; std_deviation);
109 <a name="l00079"></a>00079 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00287.html#gab9f9cf1859278ad7f1ccc38cf3092cf2" title="Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand4</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; mean, <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; std_deviation);
110 <a name="l00080"></a>00080
111 <a name="l00082"></a>00082 }<span class="comment">//namespace random</span>
112 <a name="l00083"></a>00083 }<span class="comment">//namespace gtx</span>
113 <a name="l00084"></a>00084 }<span class="comment">//namespace glm</span>
114 <a name="l00085"></a>00085
115 <a name="l00086"></a>00086 <span class="preprocessor">#include &quot;random.inl&quot;</span>
116 <a name="l00087"></a>00087
117 <a name="l00088"></a>00088 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::random;}
118 <a name="l00089"></a>00089
119 <a name="l00090"></a>00090 <span class="preprocessor">#endif//glm_gtx_random</span>
63 <a name="l00028"></a><a class="code" href="a00210.html">00028</a> <span class="keyword">namespace </span>random
64 <a name="l00029"></a>00029 {
65 <a name="l00032"></a>00032
66 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00286.html#ga8b6a21d90d07f7a655264009590ddcce" title="Generate a random number in the interval [-1, 1], according a linear distribution.">signedRand1</a>();
67 <a name="l00036"></a>00036
68 <a name="l00037"></a>00037 <span class="keyword">template</span> &lt;&gt; <span class="keywordtype">float</span> <a class="code" href="a00286.html#ga8b6a21d90d07f7a655264009590ddcce" title="Generate a random number in the interval [-1, 1], according a linear distribution.">signedRand1</a>();
69 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;&gt; <span class="keywordtype">double</span> <a class="code" href="a00286.html#ga8b6a21d90d07f7a655264009590ddcce" title="Generate a random number in the interval [-1, 1], according a linear distribution.">signedRand1</a>();
70 <a name="l00039"></a>00039 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00286.html#ga65f615e428d1e4009cdf872d434d5267" title="Generate 2 random numbers in the interval [-1, 1], according a linear distribution (From GLM_GTX_rand...">signedRand2</a>();
71 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00286.html#gab3a7fc45bf10792e96e5bbc6aa3ff30b" title="Generate 3 random numbers in the interval [-1, 1], according a linear distribution (From GLM_GTX_rand...">signedRand3</a>();
72 <a name="l00041"></a>00041 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00286.html#ga917ac879bf910263d7af720d03342e8a" title="Generate 4 random numbers in the interval [-1, 1], according a linear distribution (From GLM_GTX_rand...">signedRand4</a>();
73 <a name="l00042"></a>00042
74 <a name="l00043"></a>00043 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00286.html#ga5d05c63350546c1e7aa058bbf1b7f547" title="Generate a normalized 2D vector regulary distribute on a circle (From GLM_GTX_random extension)...">normalizedRand2</a>();
75 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00286.html#ga5d05c63350546c1e7aa058bbf1b7f547" title="Generate a normalized 2D vector regulary distribute on a circle (From GLM_GTX_random extension)...">normalizedRand2</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Min, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Max);
76 <a name="l00045"></a>00045 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00286.html#ga4d7a132cc05433f7c4c8263797f9d5b4" title="Generate a normalized 3D vector regulary distribute on a sphere (From GLM_GTX_random extension)...">normalizedRand3</a>();
77 <a name="l00046"></a>00046 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00286.html#ga4d7a132cc05433f7c4c8263797f9d5b4" title="Generate a normalized 3D vector regulary distribute on a sphere (From GLM_GTX_random extension)...">normalizedRand3</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Min, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Max);
78 <a name="l00047"></a>00047
79 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00286.html#gaf7f3b54ec804a8eb627ec78f6d7eab2e" title="Generate a random number in the interval [0, 1], according a linear distribution (From GLM_GTX_random...">compRand1</a>();
80 <a name="l00049"></a>00049 <span class="keyword">template</span> &lt;&gt; <span class="keywordtype">float</span> <a class="code" href="a00286.html#gaf7f3b54ec804a8eb627ec78f6d7eab2e" title="Generate a random number in the interval [0, 1], according a linear distribution (From GLM_GTX_random...">compRand1</a>();
81 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;&gt; <span class="keywordtype">double</span> <a class="code" href="a00286.html#gaf7f3b54ec804a8eb627ec78f6d7eab2e" title="Generate a random number in the interval [0, 1], according a linear distribution (From GLM_GTX_random...">compRand1</a>();
82 <a name="l00051"></a>00051 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00286.html#gaf7f3b54ec804a8eb627ec78f6d7eab2e" title="Generate a random number in the interval [0, 1], according a linear distribution (From GLM_GTX_random...">compRand1</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Min, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Max);
83 <a name="l00052"></a>00052 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00286.html#ga5082aae274f3851014a8f1665661fc9a" title="Generate 2 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_r...">compRand2</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Min, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Max);
84 <a name="l00053"></a>00053 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00286.html#ga25d17c98a74d5252c0d1f4070e0dce75" title="Generate 3 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_r...">compRand3</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Min, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Max);
85 <a name="l00054"></a>00054 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00286.html#ga58863d5503a6c1aefaa5d01775a83267" title="Generate 4 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_r...">compRand4</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Min, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> Max);
86 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00286.html#ga5082aae274f3851014a8f1665661fc9a" title="Generate 2 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_r...">compRand2</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; Min, <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; Max);
87 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00286.html#ga25d17c98a74d5252c0d1f4070e0dce75" title="Generate 3 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_r...">compRand3</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; Min, <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; Max);
88 <a name="l00057"></a>00057 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00286.html#ga58863d5503a6c1aefaa5d01775a83267" title="Generate 4 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_r...">compRand4</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; Min, <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; Max);
89 <a name="l00058"></a>00058
90 <a name="l00059"></a>00059 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00286.html#ga12d03cc32f213b4173e58f05d74232b3" title="Generate a random normalized 2 component vector. It&amp;#39;s a spherical uniform distribution. (From GLM_GTX_random extension)">vecRand2</a>();
91 <a name="l00060"></a>00060 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00286.html#ga12d03cc32f213b4173e58f05d74232b3" title="Generate a random normalized 2 component vector. It&amp;#39;s a spherical uniform distribution. (From GLM_GTX_random extension)">vecRand2</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> MinRadius, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> MaxRadius);
92 <a name="l00061"></a>00061 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00286.html#ga63249d58e1327a83638f1cf8b421a0de" title="Generate a random normalized 3 component vector. It&amp;#39;s a spherical uniform distribution. (From GLM_GTX_random extension)">vecRand3</a>();
93 <a name="l00062"></a>00062 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00286.html#ga63249d58e1327a83638f1cf8b421a0de" title="Generate a random normalized 3 component vector. It&amp;#39;s a spherical uniform distribution. (From GLM_GTX_random extension)">vecRand3</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> MinRadius, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> MaxRadius);
94 <a name="l00063"></a>00063 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00286.html#gac2d7a76d889e0b5e9414791b9403c98c" title="Generate a random normalized 4 component vector. It&amp;#39;s a spherical uniform distribution. (From GLM_GTX_random extension)">vecRand4</a>();
95 <a name="l00064"></a>00064 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00286.html#gac2d7a76d889e0b5e9414791b9403c98c" title="Generate a random normalized 4 component vector. It&amp;#39;s a spherical uniform distribution. (From GLM_GTX_random extension)">vecRand4</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> MinRadius, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> MaxRadius);
96 <a name="l00065"></a>00065
97 <a name="l00066"></a>00066 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00286.html#gaea7fcb106b788c816db85cd1e3be6188" title="Gererate a random floating number according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand1</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> mean, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> std_deviation);
98 <a name="l00067"></a>00067 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00286.html#gabe761c9b9cc6999fc91acf79a7007ddb" title="Gererate 2 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand2</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> mean, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> std_deviation);
99 <a name="l00068"></a>00068 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00286.html#ga103cde6c382abea173da6b1800acd5c9" title="Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand3</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> mean, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> std_deviation);
100 <a name="l00069"></a>00069 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00286.html#gab9f9cf1859278ad7f1ccc38cf3092cf2" title="Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand4</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> mean, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> std_deviation);
101 <a name="l00070"></a>00070 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00286.html#gabe761c9b9cc6999fc91acf79a7007ddb" title="Gererate 2 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand2</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; mean, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> std_deviation);
102 <a name="l00071"></a>00071 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00286.html#ga103cde6c382abea173da6b1800acd5c9" title="Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand3</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; mean, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> std_deviation);
103 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00286.html#gab9f9cf1859278ad7f1ccc38cf3092cf2" title="Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand4</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; mean, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> std_deviation);
104 <a name="l00073"></a>00073 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00286.html#gabe761c9b9cc6999fc91acf79a7007ddb" title="Gererate 2 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand2</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> mean, <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; std_deviation);
105 <a name="l00074"></a>00074 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00286.html#ga103cde6c382abea173da6b1800acd5c9" title="Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand3</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> mean, <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; std_deviation);
106 <a name="l00075"></a>00075 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00286.html#gab9f9cf1859278ad7f1ccc38cf3092cf2" title="Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand4</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> mean, <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; std_deviation);
107 <a name="l00076"></a>00076 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00286.html#gabe761c9b9cc6999fc91acf79a7007ddb" title="Gererate 2 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand2</a>(<span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; mean, <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; std_deviation);
108 <a name="l00077"></a>00077 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00286.html#ga103cde6c382abea173da6b1800acd5c9" title="Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand3</a>(<span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; mean, <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; std_deviation);
109 <a name="l00078"></a>00078 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00286.html#gab9f9cf1859278ad7f1ccc38cf3092cf2" title="Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)...">gaussRand4</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; mean, <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; std_deviation);
110 <a name="l00079"></a>00079
111 <a name="l00081"></a>00081 }<span class="comment">//namespace random</span>
112 <a name="l00082"></a>00082 }<span class="comment">//namespace gtx</span>
113 <a name="l00083"></a>00083 }<span class="comment">//namespace glm</span>
114 <a name="l00084"></a>00084
115 <a name="l00085"></a>00085 <span class="preprocessor">#include &quot;random.inl&quot;</span>
116 <a name="l00086"></a>00086
117 <a name="l00087"></a>00087 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::random;}
118 <a name="l00088"></a>00088
119 <a name="l00089"></a>00089 <span class="preprocessor">#endif//glm_gtx_random</span>
120120 </pre></div></div>
121121 </div>
122122 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span>
5959 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm{
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtx
61 <a name="l00026"></a>00026 {
62 <a name="l00028"></a><a class="code" href="a00211.html">00028</a> <span class="keyword">namespace </span>raw_data
63 <a name="l00029"></a>00029 {
64 <a name="l00030"></a>00030 <span class="keyword">using namespace </span>gtc::type_precision;
65 <a name="l00031"></a>00031
66 <a name="l00034"></a>00034
67 <a name="l00037"></a><a class="code" href="a00288.html#ga4a5def5e5e8468de8e97132ddf5c72c5">00037</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">uint8</a> <a class="code" href="a00288.html#ga4a5def5e5e8468de8e97132ddf5c72c5" title="Type for byte numbers.">byte</a>;
68 <a name="l00038"></a>00038
69 <a name="l00041"></a><a class="code" href="a00288.html#ga9599d4794d33c5d5d07675b5250b74bd">00041</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">uint16</a> <a class="code" href="a00288.html#ga9599d4794d33c5d5d07675b5250b74bd" title="Type for word numbers.">word</a>;
70 <a name="l00042"></a>00042
71 <a name="l00045"></a><a class="code" href="a00288.html#ga162201f4386c2973e6ebd76ac0941de0">00045</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">uint32</a> <a class="code" href="a00288.html#ga162201f4386c2973e6ebd76ac0941de0" title="Type for dword numbers.">dword</a>;
72 <a name="l00046"></a>00046
73 <a name="l00049"></a><a class="code" href="a00288.html#gab7872fb6c3bcddc8658fe3209f04d275">00049</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">uint64</a> <a class="code" href="a00288.html#gab7872fb6c3bcddc8658fe3209f04d275" title="Type for qword numbers.">qword</a>;
74 <a name="l00050"></a>00050
75 <a name="l00052"></a>00052 }
76 <a name="l00053"></a>00053 }<span class="comment">//namespace gtx</span>
77 <a name="l00054"></a>00054 }<span class="comment">//namespace glm</span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtx{
61 <a name="l00026"></a><a class="code" href="a00211.html">00026</a> <span class="keyword">namespace </span>raw_data
62 <a name="l00027"></a>00027 {
63 <a name="l00028"></a>00028 <span class="keyword">using namespace </span>gtc::type_precision;
64 <a name="l00029"></a>00029
65 <a name="l00032"></a>00032
66 <a name="l00035"></a><a class="code" href="a00287.html#ga4a5def5e5e8468de8e97132ddf5c72c5">00035</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">uint8</a> <a class="code" href="a00287.html#ga4a5def5e5e8468de8e97132ddf5c72c5" title="Type for byte numbers.">byte</a>;
67 <a name="l00036"></a>00036
68 <a name="l00039"></a><a class="code" href="a00287.html#ga9599d4794d33c5d5d07675b5250b74bd">00039</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">uint16</a> <a class="code" href="a00287.html#ga9599d4794d33c5d5d07675b5250b74bd" title="Type for word numbers.">word</a>;
69 <a name="l00040"></a>00040
70 <a name="l00043"></a><a class="code" href="a00287.html#ga162201f4386c2973e6ebd76ac0941de0">00043</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">uint32</a> <a class="code" href="a00287.html#ga162201f4386c2973e6ebd76ac0941de0" title="Type for dword numbers.">dword</a>;
71 <a name="l00044"></a>00044
72 <a name="l00047"></a><a class="code" href="a00287.html#gab7872fb6c3bcddc8658fe3209f04d275">00047</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">uint64</a> <a class="code" href="a00287.html#gab7872fb6c3bcddc8658fe3209f04d275" title="Type for qword numbers.">qword</a>;
73 <a name="l00048"></a>00048
74 <a name="l00050"></a>00050 }<span class="comment">// namespace raw_data</span>
75 <a name="l00051"></a>00051 }<span class="comment">// namespace gtx</span>
76 <a name="l00052"></a>00052 }<span class="comment">// namespace glm</span>
77 <a name="l00053"></a>00053
78 <a name="l00054"></a>00054 <span class="preprocessor">#include &quot;raw_data.inl&quot;</span>
7879 <a name="l00055"></a>00055
79 <a name="l00056"></a>00056 <span class="preprocessor">#include &quot;raw_data.inl&quot;</span>
80 <a name="l00056"></a>00056 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::raw_data;}
8081 <a name="l00057"></a>00057
81 <a name="l00058"></a>00058 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::raw_data;}
82 <a name="l00059"></a>00059
83 <a name="l00060"></a>00060 <span class="preprocessor">#endif//glm_gtx_raw_data</span>
82 <a name="l00058"></a>00058 <span class="preprocessor">#endif//glm_gtx_raw_data</span>
8483 </pre></div></div>
8584 </div>
8685 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5353 <a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_reciprocal extension included&quot;)</span>
5454 <a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5555 <a name="l00019"></a>00019 <span class="preprocessor"></span>
56 <a name="l00020"></a>00020 <span class="keyword">namespace </span>glm
57 <a name="l00021"></a>00021 {
58 <a name="l00022"></a>00022 <span class="keyword">namespace </span>test{
59 <a name="l00023"></a>00023 <span class="keywordtype">void</span> main_gtx_reciprocal();
60 <a name="l00024"></a>00024 }<span class="comment">//namespace test</span>
61 <a name="l00025"></a>00025
62 <a name="l00026"></a>00026 <span class="keyword">namespace </span>gtx{
63 <a name="l00028"></a><a class="code" href="a00212.html">00028</a> <span class="keyword">namespace </span>reciprocal
64 <a name="l00029"></a>00029 {
56 <a name="l00020"></a>00020 <span class="keyword">namespace </span>glm{
57 <a name="l00021"></a>00021 <span class="keyword">namespace </span>gtx{
58 <a name="l00022"></a><a class="code" href="a00212.html">00022</a> <span class="keyword">namespace </span>reciprocal
59 <a name="l00023"></a>00023 {
60 <a name="l00026"></a>00026
61 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
62 <a name="l00031"></a>00031 genType <a class="code" href="a00288.html#gace10a38c1888d5fe0f77c08ba1775b41" title="Secant function.">sec</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00285.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>);
6563 <a name="l00032"></a>00032
66 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
67 <a name="l00037"></a>00037 genType <a class="code" href="a00289.html#gace10a38c1888d5fe0f77c08ba1775b41" title="Secant function.">sec</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00286.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>);
68 <a name="l00038"></a>00038
69 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
70 <a name="l00043"></a>00043 genType <a class="code" href="a00289.html#ga1f21e65ffedffde468d93a790f875637" title="Cosecant function.">csc</a>(genType <span class="keyword">const</span> &amp; angle);
71 <a name="l00044"></a>00044
72 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
73 <a name="l00049"></a>00049 genType <a class="code" href="a00289.html#ga6c2f14ab2a9148b461392b320259ac62" title="Cotangent function.">cot</a>(genType <span class="keyword">const</span> &amp; angle);
74 <a name="l00050"></a>00050
75 <a name="l00053"></a>00053 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
76 <a name="l00054"></a>00054 genType <a class="code" href="a00289.html#gadf3d5c2b777dd7f9ccb284919daeb15b" title="Inverse secant function.">asec</a>(genType <span class="keyword">const</span> &amp; x);
77 <a name="l00055"></a>00055
78 <a name="l00058"></a>00058 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
79 <a name="l00059"></a>00059 genType <a class="code" href="a00289.html#gacc31bf591741480d2cde587b598badf7" title="Inverse cosecant function.">acsc</a>(genType <span class="keyword">const</span> &amp; x);
80 <a name="l00060"></a>00060
81 <a name="l00063"></a>00063 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
82 <a name="l00064"></a>00064 genType <a class="code" href="a00289.html#gad8b3e1d0a99ffb209157baa47370e684" title="Inverse cotangent function.">acot</a>(genType <span class="keyword">const</span> &amp; x);
83 <a name="l00065"></a>00065
84 <a name="l00068"></a>00068 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
85 <a name="l00069"></a>00069 genType <a class="code" href="a00289.html#ga3d6f2c8efdefcf326be500a565d48a29" title="Secant hyperbolic function.">sech</a>(genType <span class="keyword">const</span> &amp; angle);
86 <a name="l00070"></a>00070
87 <a name="l00073"></a>00073 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
88 <a name="l00074"></a>00074 genType <a class="code" href="a00289.html#gad690383d8014e5c46a2d35a6a59ff053" title="Cosecant hyperbolic function.">csch</a>(genType <span class="keyword">const</span> &amp; angle);
89 <a name="l00075"></a>00075
90 <a name="l00078"></a>00078 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
91 <a name="l00079"></a>00079 genType <a class="code" href="a00289.html#gaf3c2cc20b634fcd623840ecc99a038ad" title="Cotangent hyperbolic function.">coth</a>(genType <span class="keyword">const</span> &amp; angle);
92 <a name="l00080"></a>00080
93 <a name="l00083"></a>00083 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
94 <a name="l00084"></a>00084 genType <a class="code" href="a00289.html#ga43313adedfb151b9d019fbda2388fa4b" title="Inverse secant hyperbolic function.">asech</a>(genType <span class="keyword">const</span> &amp; x);
95 <a name="l00085"></a>00085
96 <a name="l00088"></a>00088 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
97 <a name="l00089"></a>00089 genType <a class="code" href="a00289.html#ga33970e21bf86b28fcb1079a656a6aa97" title="Inverse cosecant hyperbolic function.">acsch</a>(genType <span class="keyword">const</span> &amp; x);
98 <a name="l00090"></a>00090
99 <a name="l00093"></a>00093 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
100 <a name="l00094"></a>00094 genType <a class="code" href="a00289.html#gabef15ad1a12c56d39cee1afb251d9086" title="Inverse cotangent hyperbolic function.">acoth</a>(genType <span class="keyword">const</span> &amp; x);
101 <a name="l00095"></a>00095
102 <a name="l00097"></a>00097
103 <a name="l00098"></a>00098 }<span class="comment">//namespace reciprocal</span>
104 <a name="l00099"></a>00099 }<span class="comment">//namespace gtx</span>
105 <a name="l00100"></a>00100 }<span class="comment">//namespace glm</span>
106 <a name="l00101"></a>00101
107 <a name="l00102"></a>00102 <span class="preprocessor">#include &quot;reciprocal.inl&quot;</span>
108 <a name="l00103"></a>00103
109 <a name="l00104"></a>00104 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::reciprocal;}
110 <a name="l00105"></a>00105
111 <a name="l00106"></a>00106 <span class="preprocessor">#endif//glm_gtx_reciprocal</span>
64 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
65 <a name="l00037"></a>00037 genType <a class="code" href="a00288.html#ga1f21e65ffedffde468d93a790f875637" title="Cosecant function.">csc</a>(genType <span class="keyword">const</span> &amp; angle);
66 <a name="l00038"></a>00038
67 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
68 <a name="l00043"></a>00043 genType <a class="code" href="a00288.html#ga6c2f14ab2a9148b461392b320259ac62" title="Cotangent function.">cot</a>(genType <span class="keyword">const</span> &amp; angle);
69 <a name="l00044"></a>00044
70 <a name="l00047"></a>00047 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
71 <a name="l00048"></a>00048 genType <a class="code" href="a00288.html#gadf3d5c2b777dd7f9ccb284919daeb15b" title="Inverse secant function.">asec</a>(genType <span class="keyword">const</span> &amp; x);
72 <a name="l00049"></a>00049
73 <a name="l00052"></a>00052 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
74 <a name="l00053"></a>00053 genType <a class="code" href="a00288.html#gacc31bf591741480d2cde587b598badf7" title="Inverse cosecant function.">acsc</a>(genType <span class="keyword">const</span> &amp; x);
75 <a name="l00054"></a>00054
76 <a name="l00057"></a>00057 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
77 <a name="l00058"></a>00058 genType <a class="code" href="a00288.html#gad8b3e1d0a99ffb209157baa47370e684" title="Inverse cotangent function.">acot</a>(genType <span class="keyword">const</span> &amp; x);
78 <a name="l00059"></a>00059
79 <a name="l00062"></a>00062 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
80 <a name="l00063"></a>00063 genType <a class="code" href="a00288.html#ga3d6f2c8efdefcf326be500a565d48a29" title="Secant hyperbolic function.">sech</a>(genType <span class="keyword">const</span> &amp; angle);
81 <a name="l00064"></a>00064
82 <a name="l00067"></a>00067 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
83 <a name="l00068"></a>00068 genType <a class="code" href="a00288.html#gad690383d8014e5c46a2d35a6a59ff053" title="Cosecant hyperbolic function.">csch</a>(genType <span class="keyword">const</span> &amp; angle);
84 <a name="l00069"></a>00069
85 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
86 <a name="l00073"></a>00073 genType <a class="code" href="a00288.html#gaf3c2cc20b634fcd623840ecc99a038ad" title="Cotangent hyperbolic function.">coth</a>(genType <span class="keyword">const</span> &amp; angle);
87 <a name="l00074"></a>00074
88 <a name="l00077"></a>00077 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
89 <a name="l00078"></a>00078 genType <a class="code" href="a00288.html#ga43313adedfb151b9d019fbda2388fa4b" title="Inverse secant hyperbolic function.">asech</a>(genType <span class="keyword">const</span> &amp; x);
90 <a name="l00079"></a>00079
91 <a name="l00082"></a>00082 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
92 <a name="l00083"></a>00083 genType <a class="code" href="a00288.html#ga33970e21bf86b28fcb1079a656a6aa97" title="Inverse cosecant hyperbolic function.">acsch</a>(genType <span class="keyword">const</span> &amp; x);
93 <a name="l00084"></a>00084
94 <a name="l00087"></a>00087 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
95 <a name="l00088"></a>00088 genType <a class="code" href="a00288.html#gabef15ad1a12c56d39cee1afb251d9086" title="Inverse cotangent hyperbolic function.">acoth</a>(genType <span class="keyword">const</span> &amp; x);
96 <a name="l00089"></a>00089
97 <a name="l00091"></a>00091 }<span class="comment">//namespace reciprocal</span>
98 <a name="l00092"></a>00092 }<span class="comment">//namespace gtx</span>
99 <a name="l00093"></a>00093 }<span class="comment">//namespace glm</span>
100 <a name="l00094"></a>00094
101 <a name="l00095"></a>00095 <span class="preprocessor">#include &quot;reciprocal.inl&quot;</span>
102 <a name="l00096"></a>00096
103 <a name="l00097"></a>00097 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::reciprocal;}
104 <a name="l00098"></a>00098
105 <a name="l00099"></a>00099 <span class="preprocessor">#endif//glm_gtx_reciprocal</span>
112106 </pre></div></div>
113107 </div>
114108 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_rotate_vector extension included&quot;)</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span>
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm
60 <a name="l00025"></a>00025 {
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>gtx{
62 <a name="l00028"></a><a class="code" href="a00213.html">00028</a> <span class="keyword">namespace </span>rotate_vector
63 <a name="l00029"></a>00029 {
64 <a name="l00030"></a>00030 <span class="keyword">using namespace </span>transform;
65 <a name="l00031"></a>00031
66 <a name="l00034"></a>00034
67 <a name="l00037"></a>00037 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
68 <a name="l00038"></a>00038 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00290.html#ga916271935bb670e1a75797860af56ae0" title="Rotate a two dimensional vector.">rotate</a>(
69 <a name="l00039"></a>00039 <span class="keyword">const</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>&amp; v,
70 <a name="l00040"></a>00040 T <a class="code" href="a00286.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>);
71 <a name="l00041"></a>00041
72 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
73 <a name="l00045"></a>00045 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00290.html#ga916271935bb670e1a75797860af56ae0" title="Rotate a two dimensional vector.">rotate</a>(
74 <a name="l00046"></a>00046 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v,
75 <a name="l00047"></a>00047 T angle,
76 <a name="l00048"></a>00048 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; normal);
77 <a name="l00049"></a>00049
78 <a name="l00052"></a>00052 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
79 <a name="l00053"></a>00053 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00290.html#ga916271935bb670e1a75797860af56ae0" title="Rotate a two dimensional vector.">rotate</a>(
80 <a name="l00054"></a>00054 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v, T angle,
81 <a name="l00055"></a>00055 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; normal);
82 <a name="l00056"></a>00056
83 <a name="l00059"></a>00059 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
84 <a name="l00060"></a>00060 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00290.html#ga1c732f02c6ac2ae68614baa28635be83" title="Rotate a three dimensional vector around the X axis.">rotateX</a>(
85 <a name="l00061"></a>00061 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v,
86 <a name="l00062"></a>00062 T angle);
87 <a name="l00063"></a>00063
88 <a name="l00066"></a>00066 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
89 <a name="l00067"></a>00067 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00290.html#ga6b8ce5c2c1896d3bc1c91dd5e9db96b5" title="Rotate a three dimensional vector around the Y axis.">rotateY</a>(
90 <a name="l00068"></a>00068 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v,
91 <a name="l00069"></a>00069 T angle);
92 <a name="l00070"></a>00070
93 <a name="l00073"></a>00073 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
94 <a name="l00074"></a>00074 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00290.html#ga22980e5be58ee40790e1e7ee1ad4e2fe" title="Rotate a three dimensional vector around the Z axis.">rotateZ</a>(
95 <a name="l00075"></a>00075 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; v,
96 <a name="l00076"></a>00076 T angle);
97 <a name="l00077"></a>00077
98 <a name="l00080"></a>00080 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
99 <a name="l00081"></a>00081 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00290.html#ga1c732f02c6ac2ae68614baa28635be83" title="Rotate a three dimensional vector around the X axis.">rotateX</a>(
100 <a name="l00082"></a>00082 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v,
101 <a name="l00083"></a>00083 T angle);
102 <a name="l00084"></a>00084
103 <a name="l00087"></a>00087 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
104 <a name="l00088"></a>00088 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00290.html#ga6b8ce5c2c1896d3bc1c91dd5e9db96b5" title="Rotate a three dimensional vector around the Y axis.">rotateY</a>(
105 <a name="l00089"></a>00089 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v,
106 <a name="l00090"></a>00090 T angle);
107 <a name="l00091"></a>00091
108 <a name="l00094"></a>00094 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
109 <a name="l00095"></a>00095 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00290.html#ga22980e5be58ee40790e1e7ee1ad4e2fe" title="Rotate a three dimensional vector around the Z axis.">rotateZ</a>(
110 <a name="l00096"></a>00096 <span class="keyword">const</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>&amp; v,
111 <a name="l00097"></a>00097 T angle);
112 <a name="l00098"></a>00098
113 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
114 <a name="l00102"></a>00102 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00290.html#ga98e847d33908bb6e38273214671dbc25" title="Build a rotation matrix from a normal and a up vector.">orientation</a>(
115 <a name="l00103"></a>00103 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; Normal,
116 <a name="l00104"></a>00104 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; Up);
117 <a name="l00105"></a>00105
118 <a name="l00107"></a>00107
119 <a name="l00108"></a>00108 }<span class="comment">//namespace rotate_vector</span>
120 <a name="l00109"></a>00109 }<span class="comment">//namespace gtx</span>
121 <a name="l00110"></a>00110 }<span class="comment">//namespace glm</span>
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm{
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtx{
61 <a name="l00026"></a><a class="code" href="a00213.html">00026</a> <span class="keyword">namespace </span>rotate_vector
62 <a name="l00027"></a>00027 {
63 <a name="l00028"></a>00028 <span class="keyword">using namespace </span>transform;
64 <a name="l00029"></a>00029
65 <a name="l00032"></a>00032
66 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
67 <a name="l00036"></a>00036 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00289.html#ga74ee9d3b702b3ddfc07478b86c89ce18" title="Rotate a two dimensional vector.">rotate</a>(
68 <a name="l00037"></a>00037 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; v,
69 <a name="l00038"></a>00038 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; <a class="code" href="a00285.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>);
70 <a name="l00039"></a>00039
71 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
72 <a name="l00043"></a>00043 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00289.html#ga74ee9d3b702b3ddfc07478b86c89ce18" title="Rotate a two dimensional vector.">rotate</a>(
73 <a name="l00044"></a>00044 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v,
74 <a name="l00045"></a>00045 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; angle,
75 <a name="l00046"></a>00046 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; normal);
76 <a name="l00047"></a>00047
77 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
78 <a name="l00051"></a>00051 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00289.html#ga74ee9d3b702b3ddfc07478b86c89ce18" title="Rotate a two dimensional vector.">rotate</a>(
79 <a name="l00052"></a>00052 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; v,
80 <a name="l00053"></a>00053 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; angle,
81 <a name="l00054"></a>00054 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; normal);
82 <a name="l00055"></a>00055
83 <a name="l00058"></a>00058 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
84 <a name="l00059"></a>00059 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00289.html#gabb24431b78204cb7852f0597f4514e6a" title="Rotate a three dimensional vector around the X axis.">rotateX</a>(
85 <a name="l00060"></a>00060 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v,
86 <a name="l00061"></a>00061 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; angle);
87 <a name="l00062"></a>00062
88 <a name="l00065"></a>00065 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
89 <a name="l00066"></a>00066 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00289.html#ga34f0e716fadf266f55945f18b3bc87e9" title="Rotate a three dimensional vector around the Y axis.">rotateY</a>(
90 <a name="l00067"></a>00067 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v,
91 <a name="l00068"></a>00068 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; angle);
92 <a name="l00069"></a>00069
93 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
94 <a name="l00073"></a>00073 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00289.html#gafb9ff0a66486f10ad1c4937bfa54d6e8" title="Rotate a three dimensional vector around the Z axis.">rotateZ</a>(
95 <a name="l00074"></a>00074 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v,
96 <a name="l00075"></a>00075 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; angle);
97 <a name="l00076"></a>00076
98 <a name="l00079"></a>00079 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
99 <a name="l00080"></a>00080 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00289.html#gabb24431b78204cb7852f0597f4514e6a" title="Rotate a three dimensional vector around the X axis.">rotateX</a>(
100 <a name="l00081"></a>00081 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; v,
101 <a name="l00082"></a>00082 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; angle);
102 <a name="l00083"></a>00083
103 <a name="l00086"></a>00086 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
104 <a name="l00087"></a>00087 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00289.html#ga34f0e716fadf266f55945f18b3bc87e9" title="Rotate a three dimensional vector around the Y axis.">rotateY</a>(
105 <a name="l00088"></a>00088 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; v,
106 <a name="l00089"></a>00089 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; angle);
107 <a name="l00090"></a>00090
108 <a name="l00093"></a>00093 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
109 <a name="l00094"></a>00094 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00289.html#gafb9ff0a66486f10ad1c4937bfa54d6e8" title="Rotate a three dimensional vector around the Z axis.">rotateZ</a>(
110 <a name="l00095"></a>00095 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; v,
111 <a name="l00096"></a>00096 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; angle);
112 <a name="l00097"></a>00097
113 <a name="l00100"></a>00100 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
114 <a name="l00101"></a>00101 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00289.html#gae3a2b116deb10aa573c9931c9ea3c258" title="Build a rotation matrix from a normal and a up vector.">orientation</a>(
115 <a name="l00102"></a>00102 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; Normal,
116 <a name="l00103"></a>00103 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; Up);
117 <a name="l00104"></a>00104
118 <a name="l00106"></a>00106 }<span class="comment">//namespace rotate_vector</span>
119 <a name="l00107"></a>00107 }<span class="comment">//namespace gtx</span>
120 <a name="l00108"></a>00108 }<span class="comment">//namespace glm</span>
121 <a name="l00109"></a>00109
122 <a name="l00110"></a>00110 <span class="preprocessor">#include &quot;rotate_vector.inl&quot;</span>
122123 <a name="l00111"></a>00111
123 <a name="l00112"></a>00112 <span class="preprocessor">#include &quot;rotate_vector.inl&quot;</span>
124 <a name="l00112"></a>00112 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::rotate_vector;}
124125 <a name="l00113"></a>00113
125 <a name="l00114"></a>00114 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::rotate_vector;}
126 <a name="l00115"></a>00115
127 <a name="l00116"></a>00116 <span class="preprocessor">#endif//glm_gtx_rotate_vector</span>
126 <a name="l00114"></a>00114 <span class="preprocessor">#endif//glm_gtx_rotate_vector</span>
128127 </pre></div></div>
129128 </div>
130129 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5252 <a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#define GLM_VERSION_MAJOR 0</span>
5353 <a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define GLM_VERSION_MINOR 9</span>
5454 <a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define GLM_VERSION_PATCH 2</span>
55 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define GLM_VERSION_REVISION 0</span>
55 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define GLM_VERSION_REVISION 3</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span>
57 <a name="l00022"></a>00022
58 <a name="l00024"></a>00024 <span class="comment">// Compiler</span>
59 <a name="l00025"></a>00025
60 <a name="l00026"></a>00026 <span class="comment">// User defines: GLM_FORCE_COMPILER_UNKNOWN</span>
57 <a name="l00023"></a>00023 <span class="comment">// Compiler</span>
58 <a name="l00024"></a>00024
59 <a name="l00025"></a>00025 <span class="comment">// User defines: GLM_FORCE_COMPILER_UNKNOWN</span>
60 <a name="l00026"></a>00026 <span class="comment">// TODO ? __llvm__ </span>
6161 <a name="l00027"></a>00027
6262 <a name="l00028"></a>00028 <span class="preprocessor">#define GLM_COMPILER_UNKNOWN 0x00000000</span>
6363 <a name="l00029"></a>00029 <span class="preprocessor"></span>
7676 <a name="l00042"></a>00042 <span class="preprocessor"></span>
7777 <a name="l00043"></a>00043 <span class="comment">// GCC defines</span>
7878 <a name="l00044"></a>00044 <span class="preprocessor">#define GLM_COMPILER_GCC 0x02000000</span>
79 <a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC30 0x02000010</span>
80 <a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC31 0x02000020</span>
81 <a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC32 0x02000030</span>
82 <a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC33 0x02000040</span>
83 <a name="l00049"></a>00049 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC34 0x02000050</span>
84 <a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC35 0x02000060</span>
85 <a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC40 0x02000070</span>
86 <a name="l00052"></a>00052 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC41 0x02000080</span>
87 <a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC42 0x02000090</span>
88 <a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC43 0x020000A0</span>
89 <a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC44 0x020000B0</span>
90 <a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC45 0x020000C0</span>
91 <a name="l00057"></a>00057 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC46 0x020000D0</span>
92 <a name="l00058"></a>00058 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC47 0x020000E0</span>
93 <a name="l00059"></a>00059 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC48 0x020000F0</span>
94 <a name="l00060"></a>00060 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC49 0x02000100</span>
95 <a name="l00061"></a>00061 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC50 0x02000200</span>
96 <a name="l00062"></a>00062 <span class="preprocessor"></span>
97 <a name="l00063"></a>00063 <span class="comment">// G++ command line to display defined</span>
98 <a name="l00064"></a>00064 <span class="comment">// echo &quot;&quot; | g++ -E -dM -x c++ - | sort</span>
99 <a name="l00065"></a>00065
100 <a name="l00066"></a>00066 <span class="comment">// Borland C++ defines. How to identify BC?</span>
101 <a name="l00067"></a>00067 <span class="preprocessor">#define GLM_COMPILER_BC 0x04000000</span>
102 <a name="l00068"></a>00068 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_BCB4 0x04000100</span>
103 <a name="l00069"></a>00069 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_BCB5 0x04000200</span>
104 <a name="l00070"></a>00070 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_BCB6 0x04000300</span>
105 <a name="l00071"></a>00071 <span class="preprocessor"></span><span class="comment">//#define GLM_COMPILER_BCBX 0x04000400 // What&#39;s the version value?</span>
106 <a name="l00072"></a>00072 <span class="preprocessor">#define GLM_COMPILER_BCB2009 0x04000500</span>
107 <a name="l00073"></a>00073 <span class="preprocessor"></span>
108 <a name="l00074"></a>00074 <span class="comment">// CodeWarrior</span>
109 <a name="l00075"></a>00075 <span class="preprocessor">#define GLM_COMPILER_CODEWARRIOR 0x08000000</span>
110 <a name="l00076"></a>00076 <span class="preprocessor"></span>
111 <a name="l00077"></a>00077 <span class="comment">// CUDA</span>
112 <a name="l00078"></a>00078 <span class="preprocessor">#define GLM_COMPILER_CUDA 0x10000000</span>
113 <a name="l00079"></a>00079 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_CUDA30 0x10000010</span>
114 <a name="l00080"></a>00080 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_CUDA31 0x10000020</span>
115 <a name="l00081"></a>00081 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_CUDA32 0x10000030</span>
116 <a name="l00082"></a>00082 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_CUDA40 0x10000040</span>
117 <a name="l00083"></a>00083 <span class="preprocessor"></span>
118 <a name="l00084"></a>00084 <span class="comment">// Build model</span>
119 <a name="l00085"></a>00085 <span class="preprocessor">#define GLM_MODEL_32 0x00000010</span>
120 <a name="l00086"></a>00086 <span class="preprocessor"></span><span class="preprocessor">#define GLM_MODEL_64 0x00000020</span>
121 <a name="l00087"></a>00087 <span class="preprocessor"></span>
122 <a name="l00088"></a>00088 <span class="comment">// Force generic C++ compiler</span>
123 <a name="l00089"></a>00089 <span class="preprocessor">#ifdef GLM_FORCE_COMPILER_UNKNOWN</span>
124 <a name="l00090"></a>00090 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_UNKNOWN</span>
125 <a name="l00091"></a>00091 <span class="preprocessor"></span><span class="comment">// Visual C++</span>
126 <a name="l00092"></a>00092 <span class="preprocessor">#elif defined(_MSC_VER)</span>
127 <a name="l00093"></a>00093 <span class="preprocessor"></span><span class="preprocessor"># if _MSC_VER == 900</span>
128 <a name="l00094"></a>00094 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2</span>
129 <a name="l00095"></a>00095 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1000</span>
130 <a name="l00096"></a>00096 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC4</span>
131 <a name="l00097"></a>00097 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1100</span>
132 <a name="l00098"></a>00098 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC5</span>
133 <a name="l00099"></a>00099 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1200</span>
134 <a name="l00100"></a>00100 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC6</span>
135 <a name="l00101"></a>00101 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1300</span>
136 <a name="l00102"></a>00102 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2002</span>
137 <a name="l00103"></a>00103 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1310</span>
138 <a name="l00104"></a>00104 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2003</span>
139 <a name="l00105"></a>00105 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1400</span>
140 <a name="l00106"></a>00106 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2005</span>
141 <a name="l00107"></a>00107 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1500</span>
142 <a name="l00108"></a>00108 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2008</span>
143 <a name="l00109"></a>00109 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1600</span>
144 <a name="l00110"></a>00110 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2010</span>
145 <a name="l00111"></a>00111 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1700</span>
146 <a name="l00112"></a>00112 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2011</span>
147 <a name="l00113"></a>00113 <span class="preprocessor"></span><span class="preprocessor"># else//_MSC_VER</span>
148 <a name="l00114"></a>00114 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC</span>
149 <a name="l00115"></a>00115 <span class="preprocessor"></span><span class="preprocessor"># endif//_MSC_VER</span>
150 <a name="l00116"></a>00116 <span class="preprocessor"></span>
151 <a name="l00117"></a>00117 <span class="comment">// G++</span>
152 <a name="l00118"></a>00118 <span class="preprocessor">#elif defined(__GNUC__)</span>
153 <a name="l00119"></a>00119 <span class="preprocessor"></span><span class="preprocessor"># if (__GNUC__ == 3) &amp;&amp; (__GNUC_MINOR__ == 2)</span>
154 <a name="l00120"></a>00120 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC32</span>
155 <a name="l00121"></a>00121 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 3) &amp;&amp; (__GNUC_MINOR__ == 3)</span>
156 <a name="l00122"></a>00122 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC33</span>
157 <a name="l00123"></a>00123 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 3) &amp;&amp; (__GNUC_MINOR__ == 4)</span>
158 <a name="l00124"></a>00124 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC34</span>
159 <a name="l00125"></a>00125 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 3) &amp;&amp; (__GNUC_MINOR__ == 5)</span>
160 <a name="l00126"></a>00126 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC35</span>
161 <a name="l00127"></a>00127 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 0)</span>
162 <a name="l00128"></a>00128 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC40</span>
163 <a name="l00129"></a>00129 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 1)</span>
164 <a name="l00130"></a>00130 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC41</span>
165 <a name="l00131"></a>00131 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 2)</span>
166 <a name="l00132"></a>00132 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC42</span>
167 <a name="l00133"></a>00133 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 3)</span>
168 <a name="l00134"></a>00134 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC43</span>
169 <a name="l00135"></a>00135 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 4)</span>
170 <a name="l00136"></a>00136 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC44</span>
171 <a name="l00137"></a>00137 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 5)</span>
172 <a name="l00138"></a>00138 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC45</span>
173 <a name="l00139"></a>00139 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 6)</span>
174 <a name="l00140"></a>00140 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC46</span>
175 <a name="l00141"></a>00141 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 7)</span>
176 <a name="l00142"></a>00142 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC47</span>
177 <a name="l00143"></a>00143 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 8)</span>
178 <a name="l00144"></a>00144 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC48</span>
179 <a name="l00145"></a>00145 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 9)</span>
180 <a name="l00146"></a>00146 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC49</span>
181 <a name="l00147"></a>00147 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 5) &amp;&amp; (__GNUC_MINOR__ == 0)</span>
182 <a name="l00148"></a>00148 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC50</span>
183 <a name="l00149"></a>00149 <span class="preprocessor"></span><span class="preprocessor"># else</span>
184 <a name="l00150"></a>00150 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC</span>
185 <a name="l00151"></a>00151 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
186 <a name="l00152"></a>00152 <span class="preprocessor"></span>
187 <a name="l00153"></a>00153 <span class="comment">// Borland C++</span>
188 <a name="l00154"></a>00154 <span class="preprocessor">#elif defined(_BORLANDC_)</span>
189 <a name="l00155"></a>00155 <span class="preprocessor"></span><span class="preprocessor"># if defined(VER125)</span>
190 <a name="l00156"></a>00156 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_BCB4</span>
191 <a name="l00157"></a>00157 <span class="preprocessor"></span><span class="preprocessor"># elif defined(VER130)</span>
192 <a name="l00158"></a>00158 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_BCB5</span>
193 <a name="l00159"></a>00159 <span class="preprocessor"></span><span class="preprocessor"># elif defined(VER140)</span>
194 <a name="l00160"></a>00160 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_BCB6</span>
195 <a name="l00161"></a>00161 <span class="preprocessor"></span><span class="preprocessor"># elif defined(VER200)</span>
196 <a name="l00162"></a>00162 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_BCB2009</span>
197 <a name="l00163"></a>00163 <span class="preprocessor"></span><span class="preprocessor"># else</span>
198 <a name="l00164"></a>00164 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_BC</span>
199 <a name="l00165"></a>00165 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
200 <a name="l00166"></a>00166 <span class="preprocessor"></span>
201 <a name="l00167"></a>00167 <span class="comment">// Codewarrior</span>
202 <a name="l00168"></a>00168 <span class="preprocessor">#elif defined(__MWERKS__)</span>
203 <a name="l00169"></a>00169 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_CODEWARRIOR</span>
204 <a name="l00170"></a>00170 <span class="preprocessor"></span>
205 <a name="l00171"></a>00171 <span class="comment">// CUDA</span>
206 <a name="l00172"></a>00172 <span class="comment">/*</span>
207 <a name="l00173"></a>00173 <span class="comment">#elif defined(__CUDACC__)</span>
208 <a name="l00174"></a>00174 <span class="comment"># if CUDA_VERSION &lt; 3000</span>
209 <a name="l00175"></a>00175 <span class="comment"># error &quot;GLM requires CUDA 3.0 or higher&quot;</span>
210 <a name="l00176"></a>00176 <span class="comment"># elif CUDA_VERSION == 3000</span>
211 <a name="l00177"></a>00177 <span class="comment"># define GLM_COMPILER GLM_COMPILER_CUDA30 </span>
212 <a name="l00178"></a>00178 <span class="comment"># elif CUDA_VERSION == 3010</span>
213 <a name="l00179"></a>00179 <span class="comment"># define GLM_COMPILER GLM_COMPILER_CUDA31 </span>
214 <a name="l00180"></a>00180 <span class="comment"># elif CUDA_VERSION == 3020</span>
215 <a name="l00181"></a>00181 <span class="comment"># define GLM_COMPILER GLM_COMPILER_CUDA32 </span>
216 <a name="l00182"></a>00182 <span class="comment"># elif CUDA_VERSION == 4000</span>
217 <a name="l00183"></a>00183 <span class="comment"># define GLM_COMPILER GLM_COMPILER_CUDA40 </span>
218 <a name="l00184"></a>00184 <span class="comment"># else</span>
219 <a name="l00185"></a>00185 <span class="comment"># define GLM_COMPILER GLM_COMPILER_CUDA</span>
220 <a name="l00186"></a>00186 <span class="comment"># endif</span>
221 <a name="l00187"></a>00187 <span class="comment">*/</span>
222 <a name="l00188"></a>00188
223 <a name="l00189"></a>00189 <span class="preprocessor">#else</span>
224 <a name="l00190"></a>00190 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_UNKNOWN</span>
225 <a name="l00191"></a>00191 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
226 <a name="l00192"></a>00192 <span class="preprocessor"></span>
227 <a name="l00193"></a>00193 <span class="preprocessor">#ifndef GLM_COMPILER</span>
228 <a name="l00194"></a>00194 <span class="preprocessor"></span><span class="preprocessor">#error &quot;GLM_COMPILER undefined, your compiler may not be supported by GLM. Add #define GLM_COMPILER 0 to ignore this message.&quot;</span>
229 <a name="l00195"></a>00195 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_COMPILER</span>
230 <a name="l00196"></a>00196 <span class="preprocessor"></span>
231 <a name="l00197"></a>00197 <span class="comment">// Report compiler detection</span>
232 <a name="l00198"></a>00198 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_COMPILER_DISPLAYED))</span>
233 <a name="l00199"></a>00199 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_COMPILER_DISPLAYED</span>
234 <a name="l00200"></a>00200 <span class="preprocessor"></span><span class="preprocessor"># if(GLM_COMPILER &amp; GLM_COMPILER_VC)</span>
235 <a name="l00201"></a>00201 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Visual C++ compiler detected&quot;)</span>
236 <a name="l00202"></a>00202 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPILER &amp; GLM_COMPILER_GCC)</span>
237 <a name="l00203"></a>00203 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GCC compiler detected&quot;)</span>
238 <a name="l00204"></a>00204 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPILER &amp; GLM_COMPILER_BC)</span>
239 <a name="l00205"></a>00205 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Borland compiler detected but not supported&quot;)</span>
240 <a name="l00206"></a>00206 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPILER &amp; GLM_COMPILER_CODEWARRIOR)</span>
241 <a name="l00207"></a>00207 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Codewarrior compiler detected but not supported&quot;)</span>
242 <a name="l00208"></a>00208 <span class="preprocessor"></span><span class="preprocessor"># else</span>
243 <a name="l00209"></a>00209 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Compiler not detected&quot;)</span>
244 <a name="l00210"></a>00210 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
245 <a name="l00211"></a>00211 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span>
246 <a name="l00212"></a>00212 <span class="preprocessor"></span>
247 <a name="l00214"></a>00214 <span class="comment">// Build model //</span>
248 <a name="l00215"></a>00215
249 <a name="l00216"></a>00216 <span class="preprocessor">#if(GLM_COMPILER &amp; GLM_COMPILER_VC)</span>
250 <a name="l00217"></a>00217 <span class="preprocessor"></span><span class="preprocessor"># if defined(_M_X64)</span>
251 <a name="l00218"></a>00218 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MODEL GLM_MODEL_64</span>
252 <a name="l00219"></a>00219 <span class="preprocessor"></span><span class="preprocessor"># else</span>
253 <a name="l00220"></a>00220 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MODEL GLM_MODEL_32</span>
254 <a name="l00221"></a>00221 <span class="preprocessor"></span><span class="preprocessor"># endif//_M_X64</span>
255 <a name="l00222"></a>00222 <span class="preprocessor"></span><span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_GCC)</span>
256 <a name="l00223"></a>00223 <span class="preprocessor"></span><span class="preprocessor"># if(defined(__WORDSIZE) &amp;&amp; (__WORDSIZE == 64)) || defined(__arch64__) || defined(__LP64__) || defined(__x86_64__)</span>
257 <a name="l00224"></a>00224 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MODEL GLM_MODEL_64</span>
258 <a name="l00225"></a>00225 <span class="preprocessor"></span><span class="preprocessor"># else</span>
259 <a name="l00226"></a>00226 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MODEL GLM_MODEL_32</span>
260 <a name="l00227"></a>00227 <span class="preprocessor"></span><span class="preprocessor"># endif//</span>
261 <a name="l00228"></a>00228 <span class="preprocessor"></span><span class="preprocessor">#else</span>
262 <a name="l00229"></a>00229 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MODEL GLM_MODEL_32</span>
263 <a name="l00230"></a>00230 <span class="preprocessor"></span><span class="preprocessor">#endif//</span>
79 <a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC_LLVM 0x02000001</span>
80 <a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC_CLANG 0x02000002</span>
81 <a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC30 0x02000010</span>
82 <a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC31 0x02000020</span>
83 <a name="l00049"></a>00049 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC32 0x02000030</span>
84 <a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC33 0x02000040</span>
85 <a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC34 0x02000050</span>
86 <a name="l00052"></a>00052 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC35 0x02000060</span>
87 <a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC40 0x02000070</span>
88 <a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC41 0x02000080</span>
89 <a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC42 0x02000090</span>
90 <a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC43 0x020000A0</span>
91 <a name="l00057"></a>00057 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC44 0x020000B0</span>
92 <a name="l00058"></a>00058 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC45 0x020000C0</span>
93 <a name="l00059"></a>00059 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC46 0x020000D0</span>
94 <a name="l00060"></a>00060 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC47 0x020000E0</span>
95 <a name="l00061"></a>00061 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC48 0x020000F0</span>
96 <a name="l00062"></a>00062 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC49 0x02000100</span>
97 <a name="l00063"></a>00063 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_GCC50 0x02000200</span>
98 <a name="l00064"></a>00064 <span class="preprocessor"></span>
99 <a name="l00065"></a>00065 <span class="comment">// G++ command line to display defined</span>
100 <a name="l00066"></a>00066 <span class="comment">// echo &quot;&quot; | g++ -E -dM -x c++ - | sort</span>
101 <a name="l00067"></a>00067
102 <a name="l00068"></a>00068 <span class="comment">// Borland C++ defines. How to identify BC?</span>
103 <a name="l00069"></a>00069 <span class="preprocessor">#define GLM_COMPILER_BC 0x04000000</span>
104 <a name="l00070"></a>00070 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_BCB4 0x04000100</span>
105 <a name="l00071"></a>00071 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_BCB5 0x04000200</span>
106 <a name="l00072"></a>00072 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_BCB6 0x04000300</span>
107 <a name="l00073"></a>00073 <span class="preprocessor"></span><span class="comment">//#define GLM_COMPILER_BCBX 0x04000400 // What&#39;s the version value?</span>
108 <a name="l00074"></a>00074 <span class="preprocessor">#define GLM_COMPILER_BCB2009 0x04000500</span>
109 <a name="l00075"></a>00075 <span class="preprocessor"></span>
110 <a name="l00076"></a>00076 <span class="comment">// CodeWarrior</span>
111 <a name="l00077"></a>00077 <span class="preprocessor">#define GLM_COMPILER_CODEWARRIOR 0x08000000</span>
112 <a name="l00078"></a>00078 <span class="preprocessor"></span>
113 <a name="l00079"></a>00079 <span class="comment">// CUDA</span>
114 <a name="l00080"></a>00080 <span class="preprocessor">#define GLM_COMPILER_CUDA 0x10000000</span>
115 <a name="l00081"></a>00081 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_CUDA30 0x10000010</span>
116 <a name="l00082"></a>00082 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_CUDA31 0x10000020</span>
117 <a name="l00083"></a>00083 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_CUDA32 0x10000030</span>
118 <a name="l00084"></a>00084 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_CUDA40 0x10000040</span>
119 <a name="l00085"></a>00085 <span class="preprocessor"></span>
120 <a name="l00086"></a>00086 <span class="comment">// Clang</span>
121 <a name="l00087"></a>00087 <span class="preprocessor">#define GLM_COMPILER_CLANG 0x20000000</span>
122 <a name="l00088"></a>00088 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_CLANG26 0x20000010</span>
123 <a name="l00089"></a>00089 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_CLANG27 0x20000020</span>
124 <a name="l00090"></a>00090 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_CLANG28 0x20000030</span>
125 <a name="l00091"></a>00091 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPILER_CLANG29 0x20000040</span>
126 <a name="l00092"></a>00092 <span class="preprocessor"></span>
127 <a name="l00093"></a>00093 <span class="comment">// LLVM GCC</span>
128 <a name="l00094"></a>00094 <span class="preprocessor">#define GLM_COMPILER_LLVM_GCC 0x40000000</span>
129 <a name="l00095"></a>00095 <span class="preprocessor"></span>
130 <a name="l00096"></a>00096 <span class="comment">// Build model</span>
131 <a name="l00097"></a>00097 <span class="preprocessor">#define GLM_MODEL_32 0x00000010</span>
132 <a name="l00098"></a>00098 <span class="preprocessor"></span><span class="preprocessor">#define GLM_MODEL_64 0x00000020</span>
133 <a name="l00099"></a>00099 <span class="preprocessor"></span>
134 <a name="l00100"></a>00100 <span class="comment">// Force generic C++ compiler</span>
135 <a name="l00101"></a>00101 <span class="preprocessor">#ifdef GLM_FORCE_COMPILER_UNKNOWN</span>
136 <a name="l00102"></a>00102 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_UNKNOWN</span>
137 <a name="l00103"></a>00103 <span class="preprocessor"></span>
138 <a name="l00104"></a>00104 <span class="comment">// CUDA</span>
139 <a name="l00105"></a>00105 <span class="preprocessor">#elif defined(__CUDACC__)</span>
140 <a name="l00106"></a>00106 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_CUDA</span>
141 <a name="l00107"></a>00107 <span class="preprocessor"></span>
142 <a name="l00108"></a>00108 <span class="comment">// Visual C++</span>
143 <a name="l00109"></a>00109 <span class="preprocessor">#elif defined(_MSC_VER)</span>
144 <a name="l00110"></a>00110 <span class="preprocessor"></span><span class="preprocessor"># if _MSC_VER == 900</span>
145 <a name="l00111"></a>00111 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2</span>
146 <a name="l00112"></a>00112 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1000</span>
147 <a name="l00113"></a>00113 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC4</span>
148 <a name="l00114"></a>00114 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1100</span>
149 <a name="l00115"></a>00115 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC5</span>
150 <a name="l00116"></a>00116 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1200</span>
151 <a name="l00117"></a>00117 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC6</span>
152 <a name="l00118"></a>00118 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1300</span>
153 <a name="l00119"></a>00119 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2002</span>
154 <a name="l00120"></a>00120 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1310</span>
155 <a name="l00121"></a>00121 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2003</span>
156 <a name="l00122"></a>00122 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1400</span>
157 <a name="l00123"></a>00123 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2005</span>
158 <a name="l00124"></a>00124 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1500</span>
159 <a name="l00125"></a>00125 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2008</span>
160 <a name="l00126"></a>00126 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1600</span>
161 <a name="l00127"></a>00127 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2010</span>
162 <a name="l00128"></a>00128 <span class="preprocessor"></span><span class="preprocessor"># elif _MSC_VER == 1700</span>
163 <a name="l00129"></a>00129 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2011</span>
164 <a name="l00130"></a>00130 <span class="preprocessor"></span><span class="preprocessor"># else//_MSC_VER</span>
165 <a name="l00131"></a>00131 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC</span>
166 <a name="l00132"></a>00132 <span class="preprocessor"></span><span class="preprocessor"># endif//_MSC_VER</span>
167 <a name="l00133"></a>00133 <span class="preprocessor"></span>
168 <a name="l00134"></a>00134 <span class="comment">// G++</span>
169 <a name="l00135"></a>00135 <span class="preprocessor">#elif defined(__GNUC__) || defined(__llvm__) || defined(__clang__)</span>
170 <a name="l00136"></a>00136 <span class="preprocessor"></span><span class="preprocessor"># if defined (__llvm__)</span>
171 <a name="l00137"></a>00137 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER_GCC_EXTRA GLM_COMPILER_GCC_LLVM</span>
172 <a name="l00138"></a>00138 <span class="preprocessor"></span><span class="preprocessor"># elif defined (__clang__)</span>
173 <a name="l00139"></a>00139 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER_GCC_EXTRA GLM_COMPILER_GCC_CLANG</span>
174 <a name="l00140"></a>00140 <span class="preprocessor"></span><span class="preprocessor"># else</span>
175 <a name="l00141"></a>00141 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER_GCC_EXTRA 0</span>
176 <a name="l00142"></a>00142 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
177 <a name="l00143"></a>00143 <span class="preprocessor"></span><span class="preprocessor">#</span>
178 <a name="l00144"></a>00144 <span class="preprocessor"></span><span class="preprocessor"># if (__GNUC__ == 3) &amp;&amp; (__GNUC_MINOR__ == 2)</span>
179 <a name="l00145"></a>00145 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC32</span>
180 <a name="l00146"></a>00146 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 3) &amp;&amp; (__GNUC_MINOR__ == 3)</span>
181 <a name="l00147"></a>00147 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC33</span>
182 <a name="l00148"></a>00148 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 3) &amp;&amp; (__GNUC_MINOR__ == 4)</span>
183 <a name="l00149"></a>00149 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC34</span>
184 <a name="l00150"></a>00150 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 3) &amp;&amp; (__GNUC_MINOR__ == 5)</span>
185 <a name="l00151"></a>00151 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_GCC35</span>
186 <a name="l00152"></a>00152 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 0)</span>
187 <a name="l00153"></a>00153 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC40 | GLM_COMPILER_GCC_EXTRA)</span>
188 <a name="l00154"></a>00154 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 1)</span>
189 <a name="l00155"></a>00155 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC41 | GLM_COMPILER_GCC_EXTRA)</span>
190 <a name="l00156"></a>00156 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 2)</span>
191 <a name="l00157"></a>00157 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC42 | GLM_COMPILER_GCC_EXTRA)</span>
192 <a name="l00158"></a>00158 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 3)</span>
193 <a name="l00159"></a>00159 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC43 | GLM_COMPILER_GCC_EXTRA)</span>
194 <a name="l00160"></a>00160 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 4)</span>
195 <a name="l00161"></a>00161 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC44 | GLM_COMPILER_GCC_EXTRA)</span>
196 <a name="l00162"></a>00162 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 5)</span>
197 <a name="l00163"></a>00163 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC45 | GLM_COMPILER_GCC_EXTRA)</span>
198 <a name="l00164"></a>00164 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 6)</span>
199 <a name="l00165"></a>00165 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC46 | GLM_COMPILER_GCC_EXTRA)</span>
200 <a name="l00166"></a>00166 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 7)</span>
201 <a name="l00167"></a>00167 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC47 | GLM_COMPILER_GCC_EXTRA)</span>
202 <a name="l00168"></a>00168 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 8)</span>
203 <a name="l00169"></a>00169 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC48 | GLM_COMPILER_GCC_EXTRA)</span>
204 <a name="l00170"></a>00170 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 9)</span>
205 <a name="l00171"></a>00171 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC49 | GLM_COMPILER_GCC_EXTRA)</span>
206 <a name="l00172"></a>00172 <span class="preprocessor"></span><span class="preprocessor"># elif (__GNUC__ == 5) &amp;&amp; (__GNUC_MINOR__ == 0)</span>
207 <a name="l00173"></a>00173 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC50 | GLM_COMPILER_GCC_EXTRA)</span>
208 <a name="l00174"></a>00174 <span class="preprocessor"></span><span class="preprocessor"># else</span>
209 <a name="l00175"></a>00175 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC | GLM_COMPILER_GCC_EXTRA)</span>
210 <a name="l00176"></a>00176 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
211 <a name="l00177"></a>00177 <span class="preprocessor"></span>
212 <a name="l00178"></a>00178 <span class="comment">// Borland C++</span>
213 <a name="l00179"></a>00179 <span class="preprocessor">#elif defined(_BORLANDC_)</span>
214 <a name="l00180"></a>00180 <span class="preprocessor"></span><span class="preprocessor"># if defined(VER125)</span>
215 <a name="l00181"></a>00181 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_BCB4</span>
216 <a name="l00182"></a>00182 <span class="preprocessor"></span><span class="preprocessor"># elif defined(VER130)</span>
217 <a name="l00183"></a>00183 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_BCB5</span>
218 <a name="l00184"></a>00184 <span class="preprocessor"></span><span class="preprocessor"># elif defined(VER140)</span>
219 <a name="l00185"></a>00185 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_BCB6</span>
220 <a name="l00186"></a>00186 <span class="preprocessor"></span><span class="preprocessor"># elif defined(VER200)</span>
221 <a name="l00187"></a>00187 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_BCB2009</span>
222 <a name="l00188"></a>00188 <span class="preprocessor"></span><span class="preprocessor"># else</span>
223 <a name="l00189"></a>00189 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_BC</span>
224 <a name="l00190"></a>00190 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
225 <a name="l00191"></a>00191 <span class="preprocessor"></span>
226 <a name="l00192"></a>00192 <span class="comment">// Codewarrior</span>
227 <a name="l00193"></a>00193 <span class="preprocessor">#elif defined(__MWERKS__)</span>
228 <a name="l00194"></a>00194 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_CODEWARRIOR</span>
229 <a name="l00195"></a>00195 <span class="preprocessor"></span>
230 <a name="l00196"></a>00196 <span class="preprocessor">#else</span>
231 <a name="l00197"></a>00197 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_UNKNOWN</span>
232 <a name="l00198"></a>00198 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
233 <a name="l00199"></a>00199 <span class="preprocessor"></span>
234 <a name="l00200"></a>00200 <span class="preprocessor">#ifndef GLM_COMPILER</span>
235 <a name="l00201"></a>00201 <span class="preprocessor"></span><span class="preprocessor">#error &quot;GLM_COMPILER undefined, your compiler may not be supported by GLM. Add #define GLM_COMPILER 0 to ignore this message.&quot;</span>
236 <a name="l00202"></a>00202 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_COMPILER</span>
237 <a name="l00203"></a>00203 <span class="preprocessor"></span>
238 <a name="l00204"></a>00204 <span class="comment">// Report compiler detection</span>
239 <a name="l00205"></a>00205 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_COMPILER_DISPLAYED))</span>
240 <a name="l00206"></a>00206 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_COMPILER_DISPLAYED</span>
241 <a name="l00207"></a>00207 <span class="preprocessor"></span><span class="preprocessor"># if(GLM_COMPILER &amp; GLM_COMPILER_CUDA)</span>
242 <a name="l00208"></a>00208 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: CUDA compiler detected&quot;)</span>
243 <a name="l00209"></a>00209 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPILER &amp; GLM_COMPILER_VC)</span>
244 <a name="l00210"></a>00210 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Visual C++ compiler detected&quot;)</span>
245 <a name="l00211"></a>00211 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPILER &amp; GLM_COMPILER_CLANG)</span>
246 <a name="l00212"></a>00212 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Clang compiler detected&quot;)</span>
247 <a name="l00213"></a>00213 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPILER &amp; GLM_COMPILER_LLVM_GCC)</span>
248 <a name="l00214"></a>00214 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: LLVM GCC compiler detected&quot;)</span>
249 <a name="l00215"></a>00215 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPILER &amp; GLM_COMPILER_GCC)</span>
250 <a name="l00216"></a>00216 <span class="preprocessor"></span><span class="preprocessor"># if(GLM_COMPILER == GLM_COMPILER_GCC_LLVM)</span>
251 <a name="l00217"></a>00217 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: LLVM GCC compiler detected&quot;)</span>
252 <a name="l00218"></a>00218 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPILER == GLM_COMPILER_GCC_CLANG)</span>
253 <a name="l00219"></a>00219 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: CLANG compiler detected&quot;)</span>
254 <a name="l00220"></a>00220 <span class="preprocessor"></span><span class="preprocessor"># else</span>
255 <a name="l00221"></a>00221 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GCC compiler detected&quot;)</span>
256 <a name="l00222"></a>00222 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
257 <a name="l00223"></a>00223 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPILER &amp; GLM_COMPILER_BC)</span>
258 <a name="l00224"></a>00224 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Borland compiler detected but not supported&quot;)</span>
259 <a name="l00225"></a>00225 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPILER &amp; GLM_COMPILER_CODEWARRIOR)</span>
260 <a name="l00226"></a>00226 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Codewarrior compiler detected but not supported&quot;)</span>
261 <a name="l00227"></a>00227 <span class="preprocessor"></span><span class="preprocessor"># else</span>
262 <a name="l00228"></a>00228 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Compiler not detected&quot;)</span>
263 <a name="l00229"></a>00229 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
264 <a name="l00230"></a>00230 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span>
264265 <a name="l00231"></a>00231 <span class="preprocessor"></span>
265 <a name="l00232"></a>00232 <span class="preprocessor">#if(!defined(GLM_MODEL) &amp;&amp; GLM_COMPILER != 0)</span>
266 <a name="l00233"></a>00233 <span class="preprocessor"></span><span class="preprocessor">#error &quot;GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message.&quot;</span>
267 <a name="l00234"></a>00234 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MODEL</span>
268 <a name="l00235"></a>00235 <span class="preprocessor"></span>
269 <a name="l00236"></a>00236 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_MODEL_DISPLAYED))</span>
270 <a name="l00237"></a>00237 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_MODEL_DISPLAYED</span>
271 <a name="l00238"></a>00238 <span class="preprocessor"></span><span class="preprocessor"># if(GLM_MODEL == GLM_MODEL_64)</span>
272 <a name="l00239"></a>00239 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: 64 bits model&quot;)</span>
273 <a name="l00240"></a>00240 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_MODEL == GLM_MODEL_32)</span>
274 <a name="l00241"></a>00241 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: 32 bits model&quot;)</span>
275 <a name="l00242"></a>00242 <span class="preprocessor"></span><span class="preprocessor"># endif//GLM_MODEL</span>
276 <a name="l00243"></a>00243 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span>
277 <a name="l00244"></a>00244 <span class="preprocessor"></span>
278 <a name="l00246"></a>00246 <span class="comment">// C++ Version //</span>
279 <a name="l00247"></a>00247
280 <a name="l00248"></a>00248 <span class="comment">// User defines: GLM_FORCE_CXX98</span>
281 <a name="l00249"></a>00249
282 <a name="l00250"></a>00250 <span class="preprocessor">#define GLM_LANG_CXX 0</span>
283 <a name="l00251"></a>00251 <span class="preprocessor"></span><span class="preprocessor">#define GLM_LANG_CXX98 1</span>
284 <a name="l00252"></a>00252 <span class="preprocessor"></span><span class="preprocessor">#define GLM_LANG_CXX0X 2</span>
285 <a name="l00253"></a>00253 <span class="preprocessor"></span><span class="preprocessor">#define GLM_LANG_CXXMS 3</span>
286 <a name="l00254"></a>00254 <span class="preprocessor"></span><span class="preprocessor">#define GLM_LANG_CXXGNU 4</span>
287 <a name="l00255"></a>00255 <span class="preprocessor"></span>
288 <a name="l00256"></a>00256 <span class="preprocessor">#if(defined(GLM_FORCE_CXX98))</span>
289 <a name="l00257"></a>00257 <span class="preprocessor"></span><span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span>
290 <a name="l00258"></a>00258 <span class="preprocessor"></span><span class="preprocessor">#elif(((GLM_COMPILER &amp; GLM_COMPILER_GCC) == GLM_COMPILER_GCC) &amp;&amp; defined(__GXX_EXPERIMENTAL_CXX0X__)) // -std=c++0x or -std=gnu++0x</span>
291 <a name="l00259"></a>00259 <span class="preprocessor"></span><span class="preprocessor"># define GLM_LANG GLM_LANG_CXX0X</span>
292 <a name="l00260"></a>00260 <span class="preprocessor"></span><span class="preprocessor">#elif(GLM_COMPILER == GLM_COMPILER_VC2010) //_MSC_EXTENSIONS for MS language extensions</span>
293 <a name="l00261"></a>00261 <span class="preprocessor"></span><span class="preprocessor"># define GLM_LANG GLM_LANG_CXX0X</span>
294 <a name="l00262"></a>00262 <span class="preprocessor"></span><span class="preprocessor">#elif(((GLM_COMPILER &amp; GLM_COMPILER_GCC) == GLM_COMPILER_GCC) &amp;&amp; defined(__STRICT_ANSI__))</span>
295 <a name="l00263"></a>00263 <span class="preprocessor"></span><span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span>
296 <a name="l00264"></a>00264 <span class="preprocessor"></span><span class="preprocessor">#elif(((GLM_COMPILER &amp; GLM_COMPILER_VC) == GLM_COMPILER_VC) &amp;&amp; !defined(_MSC_EXTENSIONS))</span>
297 <a name="l00265"></a>00265 <span class="preprocessor"></span><span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span>
298 <a name="l00266"></a>00266 <span class="preprocessor"></span><span class="preprocessor">#else</span>
299 <a name="l00267"></a>00267 <span class="preprocessor"></span><span class="preprocessor"># define GLM_LANG GLM_LANG_CXX</span>
300 <a name="l00268"></a>00268 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
301 <a name="l00269"></a>00269 <span class="preprocessor"></span>
302 <a name="l00270"></a>00270 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_LANG_DISPLAYED))</span>
303 <a name="l00271"></a>00271 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_LANG_DISPLAYED</span>
304 <a name="l00272"></a>00272 <span class="preprocessor"></span><span class="preprocessor"># if(GLM_LANG == GLM_LANG_CXX98)</span>
305 <a name="l00273"></a>00273 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: C++98&quot;)</span>
306 <a name="l00274"></a>00274 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_LANG == GLM_LANG_CXX0X)</span>
307 <a name="l00275"></a>00275 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: C++0x&quot;)</span>
308 <a name="l00276"></a>00276 <span class="preprocessor"></span><span class="preprocessor"># endif//GLM_MODEL</span>
309 <a name="l00277"></a>00277 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span>
310 <a name="l00278"></a>00278 <span class="preprocessor"></span>
311 <a name="l00280"></a>00280 <span class="comment">// Platform </span>
312 <a name="l00281"></a>00281
313 <a name="l00282"></a>00282 <span class="comment">// User defines: GLM_FORCE_PURE GLM_FORCE_SSE2 GLM_FORCE_AVX</span>
314 <a name="l00283"></a>00283
315 <a name="l00284"></a>00284 <span class="preprocessor">#define GLM_ARCH_PURE 0x0000 //(0x0000)</span>
316 <a name="l00285"></a>00285 <span class="preprocessor"></span><span class="preprocessor">#define GLM_ARCH_SSE2 0x0001 //(0x0001)</span>
317 <a name="l00286"></a>00286 <span class="preprocessor"></span><span class="preprocessor">#define GLM_ARCH_SSE3 0x0003 //(0x0002 | GLM_ARCH_SSE2)</span>
318 <a name="l00287"></a>00287 <span class="preprocessor"></span><span class="preprocessor">#define GLM_ARCH_AVX 0x0007 //(0x0004 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span>
266 <a name="l00233"></a>00233 <span class="comment">// Build model //</span>
267 <a name="l00234"></a>00234
268 <a name="l00235"></a>00235 <span class="preprocessor">#if(GLM_COMPILER &amp; GLM_COMPILER_VC)</span>
269 <a name="l00236"></a>00236 <span class="preprocessor"></span><span class="preprocessor"># if defined(_M_X64)</span>
270 <a name="l00237"></a>00237 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MODEL GLM_MODEL_64</span>
271 <a name="l00238"></a>00238 <span class="preprocessor"></span><span class="preprocessor"># else</span>
272 <a name="l00239"></a>00239 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MODEL GLM_MODEL_32</span>
273 <a name="l00240"></a>00240 <span class="preprocessor"></span><span class="preprocessor"># endif//_M_X64</span>
274 <a name="l00241"></a>00241 <span class="preprocessor"></span><span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_GCC)</span>
275 <a name="l00242"></a>00242 <span class="preprocessor"></span><span class="preprocessor"># if(defined(__WORDSIZE) &amp;&amp; (__WORDSIZE == 64)) || defined(__arch64__) || defined(__LP64__) || defined(__x86_64__)</span>
276 <a name="l00243"></a>00243 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MODEL GLM_MODEL_64</span>
277 <a name="l00244"></a>00244 <span class="preprocessor"></span><span class="preprocessor"># else</span>
278 <a name="l00245"></a>00245 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MODEL GLM_MODEL_32</span>
279 <a name="l00246"></a>00246 <span class="preprocessor"></span><span class="preprocessor"># endif//</span>
280 <a name="l00247"></a>00247 <span class="preprocessor"></span><span class="preprocessor">#else</span>
281 <a name="l00248"></a>00248 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MODEL GLM_MODEL_32</span>
282 <a name="l00249"></a>00249 <span class="preprocessor"></span><span class="preprocessor">#endif//</span>
283 <a name="l00250"></a>00250 <span class="preprocessor"></span>
284 <a name="l00251"></a>00251 <span class="preprocessor">#if(!defined(GLM_MODEL) &amp;&amp; GLM_COMPILER != 0)</span>
285 <a name="l00252"></a>00252 <span class="preprocessor"></span><span class="preprocessor">#error &quot;GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message.&quot;</span>
286 <a name="l00253"></a>00253 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MODEL</span>
287 <a name="l00254"></a>00254 <span class="preprocessor"></span>
288 <a name="l00255"></a>00255 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_MODEL_DISPLAYED))</span>
289 <a name="l00256"></a>00256 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_MODEL_DISPLAYED</span>
290 <a name="l00257"></a>00257 <span class="preprocessor"></span><span class="preprocessor"># if(GLM_MODEL == GLM_MODEL_64)</span>
291 <a name="l00258"></a>00258 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: 64 bits model&quot;)</span>
292 <a name="l00259"></a>00259 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_MODEL == GLM_MODEL_32)</span>
293 <a name="l00260"></a>00260 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: 32 bits model&quot;)</span>
294 <a name="l00261"></a>00261 <span class="preprocessor"></span><span class="preprocessor"># endif//GLM_MODEL</span>
295 <a name="l00262"></a>00262 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span>
296 <a name="l00263"></a>00263 <span class="preprocessor"></span>
297 <a name="l00265"></a>00265 <span class="comment">// C++ Version //</span>
298 <a name="l00266"></a>00266
299 <a name="l00267"></a>00267 <span class="comment">// User defines: GLM_FORCE_CXX98</span>
300 <a name="l00268"></a>00268
301 <a name="l00269"></a>00269 <span class="preprocessor">#define GLM_LANG_CXX 0</span>
302 <a name="l00270"></a>00270 <span class="preprocessor"></span><span class="preprocessor">#define GLM_LANG_CXX98 1</span>
303 <a name="l00271"></a>00271 <span class="preprocessor"></span><span class="preprocessor">#define GLM_LANG_CXX0X 2</span>
304 <a name="l00272"></a>00272 <span class="preprocessor"></span><span class="preprocessor">#define GLM_LANG_CXXMS 3</span>
305 <a name="l00273"></a>00273 <span class="preprocessor"></span><span class="preprocessor">#define GLM_LANG_CXXGNU 4</span>
306 <a name="l00274"></a>00274 <span class="preprocessor"></span>
307 <a name="l00275"></a>00275 <span class="preprocessor">#if(defined(GLM_FORCE_CXX98))</span>
308 <a name="l00276"></a>00276 <span class="preprocessor"></span><span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span>
309 <a name="l00277"></a>00277 <span class="preprocessor"></span><span class="preprocessor">#elif(((GLM_COMPILER &amp; GLM_COMPILER_GCC) == GLM_COMPILER_GCC) &amp;&amp; defined(__GXX_EXPERIMENTAL_CXX0X__)) // -std=c++0x or -std=gnu++0x</span>
310 <a name="l00278"></a>00278 <span class="preprocessor"></span><span class="preprocessor"># define GLM_LANG GLM_LANG_CXX0X</span>
311 <a name="l00279"></a>00279 <span class="preprocessor"></span><span class="preprocessor">#elif(GLM_COMPILER == GLM_COMPILER_VC2010) //_MSC_EXTENSIONS for MS language extensions</span>
312 <a name="l00280"></a>00280 <span class="preprocessor"></span><span class="preprocessor"># define GLM_LANG GLM_LANG_CXX0X</span>
313 <a name="l00281"></a>00281 <span class="preprocessor"></span><span class="preprocessor">#elif(((GLM_COMPILER &amp; GLM_COMPILER_GCC) == GLM_COMPILER_GCC) &amp;&amp; defined(__STRICT_ANSI__))</span>
314 <a name="l00282"></a>00282 <span class="preprocessor"></span><span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span>
315 <a name="l00283"></a>00283 <span class="preprocessor"></span><span class="preprocessor">#elif(((GLM_COMPILER &amp; GLM_COMPILER_VC) == GLM_COMPILER_VC) &amp;&amp; !defined(_MSC_EXTENSIONS))</span>
316 <a name="l00284"></a>00284 <span class="preprocessor"></span><span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span>
317 <a name="l00285"></a>00285 <span class="preprocessor"></span><span class="preprocessor">#else</span>
318 <a name="l00286"></a>00286 <span class="preprocessor"></span><span class="preprocessor"># define GLM_LANG GLM_LANG_CXX</span>
319 <a name="l00287"></a>00287 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
319320 <a name="l00288"></a>00288 <span class="preprocessor"></span>
320 <a name="l00289"></a>00289 <span class="preprocessor">#if(defined(GLM_FORCE_PURE))</span>
321 <a name="l00290"></a>00290 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span>
322 <a name="l00291"></a>00291 <span class="preprocessor"></span><span class="preprocessor">#elif(defined(GLM_FORCE_AVX))</span>
323 <a name="l00292"></a>00292 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_AVX</span>
324 <a name="l00293"></a>00293 <span class="preprocessor"></span><span class="preprocessor">#elif(defined(GLM_FORCE_SSE3))</span>
325 <a name="l00294"></a>00294 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_SSE3</span>
326 <a name="l00295"></a>00295 <span class="preprocessor"></span><span class="preprocessor">#elif(defined(GLM_FORCE_SSE2))</span>
327 <a name="l00296"></a>00296 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_SSE2</span>
328 <a name="l00297"></a>00297 <span class="preprocessor"></span><span class="preprocessor">#elif((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (defined(_M_IX86) || defined(_M_X64)))</span>
329 <a name="l00298"></a>00298 <span class="preprocessor"></span><span class="preprocessor"># if(defined(_M_CEE_PURE))</span>
330 <a name="l00299"></a>00299 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span>
331 <a name="l00300"></a>00300 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPILER &gt;= GLM_COMPILER_VC2010)</span>
332 <a name="l00301"></a>00301 <span class="preprocessor"></span><span class="preprocessor"># if(_MSC_FULL_VER &gt;= 160031118) //160031118: VC2010 SP1 beta full version</span>
333 <a name="l00302"></a>00302 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_AVX //GLM_ARCH_AVX (Require SP1)</span>
334 <a name="l00303"></a>00303 <span class="preprocessor"></span><span class="preprocessor"># else</span>
335 <a name="l00304"></a>00304 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_SSE3</span>
336 <a name="l00305"></a>00305 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
337 <a name="l00306"></a>00306 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPILER &gt;= GLM_COMPILER_VC2008) </span>
338 <a name="l00307"></a>00307 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_SSE3</span>
339 <a name="l00308"></a>00308 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPILER &gt;= GLM_COMPILER_VC2005)</span>
340 <a name="l00309"></a>00309 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_SSE2</span>
341 <a name="l00310"></a>00310 <span class="preprocessor"></span><span class="preprocessor"># else</span>
342 <a name="l00311"></a>00311 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span>
343 <a name="l00312"></a>00312 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
344 <a name="l00313"></a>00313 <span class="preprocessor"></span><span class="preprocessor">#elif((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (defined(__i386__) || defined(__x86_64__)))</span>
345 <a name="l00314"></a>00314 <span class="preprocessor"></span><span class="preprocessor"># if(defined(__AVX__))</span>
346 <a name="l00315"></a>00315 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_AVX</span>
347 <a name="l00316"></a>00316 <span class="preprocessor"></span><span class="preprocessor"># elif(defined(__SSE3__))</span>
348 <a name="l00317"></a>00317 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_SSE3</span>
349 <a name="l00318"></a>00318 <span class="preprocessor"></span><span class="preprocessor"># elif(defined(__SSE2__))</span>
350 <a name="l00319"></a>00319 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_SSE2</span>
351 <a name="l00320"></a>00320 <span class="preprocessor"></span><span class="preprocessor"># else</span>
352 <a name="l00321"></a>00321 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span>
353 <a name="l00322"></a>00322 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
354 <a name="l00323"></a>00323 <span class="preprocessor"></span><span class="preprocessor">#else</span>
355 <a name="l00324"></a>00324 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span>
356 <a name="l00325"></a>00325 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
357 <a name="l00326"></a>00326 <span class="preprocessor"></span>
358 <a name="l00327"></a>00327 <span class="preprocessor">#if(GLM_ARCH != GLM_ARCH_PURE)</span>
359 <a name="l00328"></a>00328 <span class="preprocessor"></span><span class="preprocessor">#if((GLM_ARCH &amp; GLM_ARCH_AVX) == GLM_ARCH_AVX)</span>
360 <a name="l00329"></a>00329 <span class="preprocessor"></span><span class="preprocessor"># include &lt;immintrin.h&gt;</span>
361 <a name="l00330"></a>00330 <span class="preprocessor">#endif//GLM_ARCH</span>
362 <a name="l00331"></a>00331 <span class="preprocessor"></span><span class="preprocessor">#if((GLM_ARCH &amp; GLM_ARCH_SSE3) == GLM_ARCH_SSE3)</span>
363 <a name="l00332"></a>00332 <span class="preprocessor"></span><span class="preprocessor"># include &lt;pmmintrin.h&gt;</span>
364 <a name="l00333"></a>00333 <span class="preprocessor">#endif//GLM_ARCH</span>
365 <a name="l00334"></a>00334 <span class="preprocessor"></span><span class="preprocessor">#if((GLM_ARCH &amp; GLM_ARCH_SSE2) == GLM_ARCH_SSE2)</span>
366 <a name="l00335"></a>00335 <span class="preprocessor"></span><span class="preprocessor"># include &lt;emmintrin.h&gt;</span>
367 <a name="l00336"></a>00336 <span class="preprocessor">#endif//GLM_ARCH</span>
368 <a name="l00337"></a>00337 <span class="preprocessor"></span><span class="preprocessor">#endif//(GLM_ARCH != GLM_ARCH_PURE)</span>
369 <a name="l00338"></a>00338 <span class="preprocessor"></span>
370 <a name="l00339"></a>00339 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_ARCH_DISPLAYED))</span>
371 <a name="l00340"></a>00340 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_ARCH_DISPLAYED</span>
372 <a name="l00341"></a>00341 <span class="preprocessor"></span><span class="preprocessor"># if(GLM_ARCH == GLM_ARCH_PURE)</span>
373 <a name="l00342"></a>00342 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Platform independent&quot;)</span>
374 <a name="l00343"></a>00343 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_SSE2)</span>
375 <a name="l00344"></a>00344 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: SSE2 build platform&quot;)</span>
376 <a name="l00345"></a>00345 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_SSE3)</span>
377 <a name="l00346"></a>00346 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: SSE3 build platform&quot;)</span>
378 <a name="l00347"></a>00347 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_AVX)</span>
379 <a name="l00348"></a>00348 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: AVX build platform&quot;)</span>
380 <a name="l00349"></a>00349 <span class="preprocessor"></span><span class="preprocessor"># endif//GLM_ARCH</span>
381 <a name="l00350"></a>00350 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span>
382 <a name="l00351"></a>00351 <span class="preprocessor"></span>
383 <a name="l00353"></a>00353 <span class="comment">// Components</span>
384 <a name="l00354"></a>00354
385 <a name="l00355"></a>00355 <span class="comment">//#define GLM_FORCE_ONLY_XYZW</span>
386 <a name="l00356"></a>00356 <span class="preprocessor">#define GLM_COMPONENT_GLSL_NAMES 0 </span>
387 <a name="l00357"></a>00357 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPONENT_ONLY_XYZW 1 // To disable multiple vector component names access.</span>
388 <a name="l00358"></a>00358 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPONENT_MS_EXT 2 // To use anonymous union to provide multiple component names access for class valType. Visual C++ only.</span>
389 <a name="l00359"></a>00359 <span class="preprocessor"></span>
390 <a name="l00360"></a>00360 <span class="preprocessor">#ifndef GLM_FORCE_ONLY_XYZW</span>
391 <a name="l00361"></a>00361 <span class="preprocessor"></span><span class="preprocessor"># if((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; defined(_MSC_EXTENSIONS))</span>
392 <a name="l00362"></a>00362 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPONENT GLM_COMPONENT_MS_EXT</span>
393 <a name="l00363"></a>00363 <span class="preprocessor"></span><span class="preprocessor"># else</span>
394 <a name="l00364"></a>00364 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPONENT GLM_COMPONENT_GLSL_NAMES</span>
395 <a name="l00365"></a>00365 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
396 <a name="l00366"></a>00366 <span class="preprocessor"></span><span class="preprocessor">#else</span>
397 <a name="l00367"></a>00367 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPONENT GLM_COMPONENT_ONLY_XYZW</span>
398 <a name="l00368"></a>00368 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
399 <a name="l00369"></a>00369 <span class="preprocessor"></span>
400 <a name="l00370"></a>00370 <span class="preprocessor">#if((GLM_COMPONENT == GLM_COMPONENT_MS_EXT) &amp;&amp; !(GLM_COMPILER &amp; GLM_COMPILER_VC))</span>
401 <a name="l00371"></a>00371 <span class="preprocessor"></span><span class="preprocessor"># error &quot;GLM_COMPONENT value is GLM_COMPONENT_MS_EXT but this is not allowed with the current compiler.&quot;</span>
402 <a name="l00372"></a>00372 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
403 <a name="l00373"></a>00373 <span class="preprocessor"></span>
404 <a name="l00374"></a>00374 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_COMPONENT_DISPLAYED))</span>
405 <a name="l00375"></a>00375 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_COMPONENT_DISPLAYED</span>
406 <a name="l00376"></a>00376 <span class="preprocessor"></span><span class="preprocessor"># if(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)</span>
407 <a name="l00377"></a>00377 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLSL multiple vector component names&quot;)</span>
408 <a name="l00378"></a>00378 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)</span>
409 <a name="l00379"></a>00379 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: x,y,z,w vector component names only&quot;)</span>
410 <a name="l00380"></a>00380 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)</span>
411 <a name="l00381"></a>00381 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Multiple vector component names through Visual C++ language extensions&quot;)</span>
412 <a name="l00382"></a>00382 <span class="preprocessor"></span><span class="preprocessor"># else</span>
413 <a name="l00383"></a>00383 <span class="preprocessor"></span><span class="preprocessor"># error &quot;GLM_COMPONENT value unknown&quot;</span>
414 <a name="l00384"></a>00384 <span class="preprocessor"></span><span class="preprocessor"># endif//GLM_MESSAGE_COMPONENT_DISPLAYED</span>
415 <a name="l00385"></a>00385 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span>
416 <a name="l00386"></a>00386 <span class="preprocessor"></span>
417 <a name="l00388"></a>00388 <span class="comment">// Static assert</span>
418 <a name="l00389"></a>00389
419 <a name="l00390"></a>00390 <span class="preprocessor">#if(GLM_LANG == GLM_LANG_CXX0X)</span>
420 <a name="l00391"></a>00391 <span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) static_assert(x, message)</span>
421 <a name="l00392"></a>00392 <span class="preprocessor"></span><span class="preprocessor">#elif(defined(BOOST_STATIC_ASSERT))</span>
422 <a name="l00393"></a>00393 <span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) BOOST_STATIC_ASSERT(x)</span>
423 <a name="l00394"></a>00394 <span class="preprocessor"></span><span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_VC)</span>
424 <a name="l00395"></a>00395 <span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]</span>
425 <a name="l00396"></a>00396 <span class="preprocessor"></span><span class="preprocessor">#else</span>
426 <a name="l00397"></a>00397 <span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT(x, message)</span>
427 <a name="l00398"></a>00398 <span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT_NULL</span>
428 <a name="l00399"></a>00399 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_LANG</span>
429 <a name="l00400"></a>00400 <span class="preprocessor"></span>
430 <a name="l00402"></a>00402 <span class="comment">// Qualifiers </span>
431 <a name="l00403"></a>00403
432 <a name="l00404"></a>00404 <span class="comment">// User defines: GLM_FORCE_INLINE GLM_FORCE_CUDA</span>
433 <a name="l00405"></a>00405
434 <a name="l00406"></a>00406 <span class="preprocessor">#if(defined(GLM_FORCE_CUDA) || (defined(GLM_COMPILER) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_CUDA30)))</span>
435 <a name="l00407"></a>00407 <span class="preprocessor"></span><span class="preprocessor"># define GLM_CUDA_FUNC_DEF __device__ __host__ </span>
436 <a name="l00408"></a>00408 <span class="preprocessor"></span><span class="preprocessor"># define GLM_CUDA_FUNC_DECL __device__ __host__ </span>
437 <a name="l00409"></a>00409 <span class="preprocessor"></span><span class="preprocessor">#else</span>
438 <a name="l00410"></a>00410 <span class="preprocessor"></span><span class="preprocessor"># define GLM_CUDA_FUNC_DEF</span>
439 <a name="l00411"></a>00411 <span class="preprocessor"></span><span class="preprocessor"># define GLM_CUDA_FUNC_DECL</span>
440 <a name="l00412"></a>00412 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
441 <a name="l00413"></a>00413 <span class="preprocessor"></span>
442 <a name="l00414"></a>00414 <span class="preprocessor">#if(defined(GLM_FORCE_INLINE))</span>
443 <a name="l00415"></a>00415 <span class="preprocessor"></span><span class="preprocessor"># if((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2005))</span>
444 <a name="l00416"></a>00416 <span class="preprocessor"></span><span class="preprocessor"># define GLM_INLINE __forceinline</span>
445 <a name="l00417"></a>00417 <span class="preprocessor"></span><span class="preprocessor"># elif((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC34))</span>
446 <a name="l00418"></a>00418 <span class="preprocessor"></span><span class="preprocessor"># define GLM_INLINE __attribute__((always_inline))</span>
447 <a name="l00419"></a>00419 <span class="preprocessor"></span><span class="preprocessor"># else</span>
448 <a name="l00420"></a>00420 <span class="preprocessor"></span><span class="preprocessor"># define GLM_INLINE inline</span>
449 <a name="l00421"></a>00421 <span class="preprocessor"></span><span class="preprocessor"># endif//GLM_COMPILER</span>
450 <a name="l00422"></a>00422 <span class="preprocessor"></span><span class="preprocessor">#else</span>
451 <a name="l00423"></a>00423 <span class="preprocessor"></span><span class="preprocessor"># define GLM_INLINE inline</span>
452 <a name="l00424"></a>00424 <span class="preprocessor"></span><span class="preprocessor">#endif//defined(GLM_FORCE_INLINE)</span>
453 <a name="l00425"></a>00425 <span class="preprocessor"></span>
454 <a name="l00426"></a>00426 <span class="preprocessor">#define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL</span>
455 <a name="l00427"></a>00427 <span class="preprocessor"></span><span class="preprocessor">#define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE</span>
456 <a name="l00428"></a>00428 <span class="preprocessor"></span>
457 <a name="l00430"></a>00430 <span class="comment">// Swizzle operators</span>
458 <a name="l00431"></a>00431
459 <a name="l00432"></a>00432 <span class="comment">// User defines: GLM_SWIZZLE_XYZW GLM_SWIZZLE_RGBA GLM_SWIZZLE_STQP GLM_SWIZZLE</span>
460 <a name="l00433"></a>00433
461 <a name="l00434"></a>00434 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED))</span>
462 <a name="l00435"></a>00435 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_SWIZZLE_DISPLAYED</span>
463 <a name="l00436"></a>00436 <span class="preprocessor"></span><span class="preprocessor"># if(defined(GLM_SWIZZLE))</span>
464 <a name="l00437"></a>00437 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Full swizzling operator enabled&quot;)</span>
465 <a name="l00438"></a>00438 <span class="preprocessor"></span><span class="preprocessor"># elif(!defined(GLM_SWIZZLE_XYZW) &amp;&amp; !defined(GLM_SWIZZLE_RGBA) &amp;&amp; !defined(GLM_SWIZZLE_STQP) &amp;&amp; !defined(GLM_SWIZZLE))</span>
466 <a name="l00439"></a>00439 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: No swizzling operator enabled&quot;)</span>
467 <a name="l00440"></a>00440 <span class="preprocessor"></span><span class="preprocessor"># else</span>
468 <a name="l00441"></a>00441 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Partial swizzling operator enabled&quot;)</span>
469 <a name="l00442"></a>00442 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
470 <a name="l00443"></a>00443 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span>
471 <a name="l00444"></a>00444 <span class="preprocessor"></span>
472 <a name="l00445"></a>00445 <span class="preprocessor">#endif//glm_setup</span>
321 <a name="l00289"></a>00289 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_LANG_DISPLAYED))</span>
322 <a name="l00290"></a>00290 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_LANG_DISPLAYED</span>
323 <a name="l00291"></a>00291 <span class="preprocessor"></span><span class="preprocessor"># if(GLM_LANG == GLM_LANG_CXX98)</span>
324 <a name="l00292"></a>00292 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: C++98&quot;)</span>
325 <a name="l00293"></a>00293 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_LANG == GLM_LANG_CXX0X)</span>
326 <a name="l00294"></a>00294 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: C++0x&quot;)</span>
327 <a name="l00295"></a>00295 <span class="preprocessor"></span><span class="preprocessor"># endif//GLM_MODEL</span>
328 <a name="l00296"></a>00296 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span>
329 <a name="l00297"></a>00297 <span class="preprocessor"></span>
330 <a name="l00299"></a>00299 <span class="comment">// Platform </span>
331 <a name="l00300"></a>00300
332 <a name="l00301"></a>00301 <span class="comment">// User defines: GLM_FORCE_PURE GLM_FORCE_SSE2 GLM_FORCE_AVX</span>
333 <a name="l00302"></a>00302
334 <a name="l00303"></a>00303 <span class="preprocessor">#define GLM_ARCH_PURE 0x0000 //(0x0000)</span>
335 <a name="l00304"></a>00304 <span class="preprocessor"></span><span class="preprocessor">#define GLM_ARCH_SSE2 0x0001 //(0x0001)</span>
336 <a name="l00305"></a>00305 <span class="preprocessor"></span><span class="preprocessor">#define GLM_ARCH_SSE3 0x0003 //(0x0002 | GLM_ARCH_SSE2)</span>
337 <a name="l00306"></a>00306 <span class="preprocessor"></span><span class="preprocessor">#define GLM_ARCH_AVX 0x0007 //(0x0004 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span>
338 <a name="l00307"></a>00307 <span class="preprocessor"></span>
339 <a name="l00308"></a>00308 <span class="preprocessor">#if(defined(GLM_FORCE_PURE))</span>
340 <a name="l00309"></a>00309 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span>
341 <a name="l00310"></a>00310 <span class="preprocessor"></span><span class="preprocessor">#elif(defined(GLM_FORCE_AVX))</span>
342 <a name="l00311"></a>00311 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_AVX</span>
343 <a name="l00312"></a>00312 <span class="preprocessor"></span><span class="preprocessor">#elif(defined(GLM_FORCE_SSE3))</span>
344 <a name="l00313"></a>00313 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_SSE3</span>
345 <a name="l00314"></a>00314 <span class="preprocessor"></span><span class="preprocessor">#elif(defined(GLM_FORCE_SSE2))</span>
346 <a name="l00315"></a>00315 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_SSE2</span>
347 <a name="l00316"></a>00316 <span class="preprocessor"></span><span class="preprocessor">#elif((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (defined(_M_IX86) || defined(_M_X64)))</span>
348 <a name="l00317"></a>00317 <span class="preprocessor"></span><span class="preprocessor"># if(defined(_M_CEE_PURE))</span>
349 <a name="l00318"></a>00318 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span>
350 <a name="l00319"></a>00319 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPILER &gt;= GLM_COMPILER_VC2010)</span>
351 <a name="l00320"></a>00320 <span class="preprocessor"></span><span class="preprocessor"># if(_MSC_FULL_VER &gt;= 160031118) //160031118: VC2010 SP1 beta full version</span>
352 <a name="l00321"></a>00321 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_AVX //GLM_ARCH_AVX (Require SP1)</span>
353 <a name="l00322"></a>00322 <span class="preprocessor"></span><span class="preprocessor"># else</span>
354 <a name="l00323"></a>00323 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_SSE3</span>
355 <a name="l00324"></a>00324 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
356 <a name="l00325"></a>00325 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPILER &gt;= GLM_COMPILER_VC2008) </span>
357 <a name="l00326"></a>00326 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_SSE3</span>
358 <a name="l00327"></a>00327 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPILER &gt;= GLM_COMPILER_VC2005)</span>
359 <a name="l00328"></a>00328 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_SSE2</span>
360 <a name="l00329"></a>00329 <span class="preprocessor"></span><span class="preprocessor"># else</span>
361 <a name="l00330"></a>00330 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span>
362 <a name="l00331"></a>00331 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
363 <a name="l00332"></a>00332 <span class="preprocessor"></span><span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_LLVM_GCC)</span>
364 <a name="l00333"></a>00333 <span class="preprocessor"></span><span class="preprocessor"># if(defined(__AVX__))</span>
365 <a name="l00334"></a>00334 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_AVX</span>
366 <a name="l00335"></a>00335 <span class="preprocessor"></span><span class="preprocessor"># elif(defined(__SSE3__))</span>
367 <a name="l00336"></a>00336 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_SSE3</span>
368 <a name="l00337"></a>00337 <span class="preprocessor"></span><span class="preprocessor"># elif(defined(__SSE2__))</span>
369 <a name="l00338"></a>00338 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_SSE2</span>
370 <a name="l00339"></a>00339 <span class="preprocessor"></span><span class="preprocessor"># else</span>
371 <a name="l00340"></a>00340 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span>
372 <a name="l00341"></a>00341 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
373 <a name="l00342"></a>00342 <span class="preprocessor"></span><span class="preprocessor">#elif((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (defined(__i386__) || defined(__x86_64__)))</span>
374 <a name="l00343"></a>00343 <span class="preprocessor"></span><span class="preprocessor"># if(defined(__AVX__))</span>
375 <a name="l00344"></a>00344 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_AVX</span>
376 <a name="l00345"></a>00345 <span class="preprocessor"></span><span class="preprocessor"># elif(defined(__SSE3__))</span>
377 <a name="l00346"></a>00346 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_SSE3</span>
378 <a name="l00347"></a>00347 <span class="preprocessor"></span><span class="preprocessor"># elif(defined(__SSE2__))</span>
379 <a name="l00348"></a>00348 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_SSE2</span>
380 <a name="l00349"></a>00349 <span class="preprocessor"></span><span class="preprocessor"># else</span>
381 <a name="l00350"></a>00350 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span>
382 <a name="l00351"></a>00351 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
383 <a name="l00352"></a>00352 <span class="preprocessor"></span><span class="preprocessor">#else</span>
384 <a name="l00353"></a>00353 <span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span>
385 <a name="l00354"></a>00354 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
386 <a name="l00355"></a>00355 <span class="preprocessor"></span>
387 <a name="l00356"></a>00356 <span class="preprocessor">#if(GLM_ARCH != GLM_ARCH_PURE)</span>
388 <a name="l00357"></a>00357 <span class="preprocessor"></span><span class="preprocessor">#if((GLM_ARCH &amp; GLM_ARCH_AVX) == GLM_ARCH_AVX)</span>
389 <a name="l00358"></a>00358 <span class="preprocessor"></span><span class="preprocessor"># include &lt;immintrin.h&gt;</span>
390 <a name="l00359"></a>00359 <span class="preprocessor">#endif//GLM_ARCH</span>
391 <a name="l00360"></a>00360 <span class="preprocessor"></span><span class="preprocessor">#if((GLM_ARCH &amp; GLM_ARCH_SSE3) == GLM_ARCH_SSE3)</span>
392 <a name="l00361"></a>00361 <span class="preprocessor"></span><span class="preprocessor"># include &lt;pmmintrin.h&gt;</span>
393 <a name="l00362"></a>00362 <span class="preprocessor">#endif//GLM_ARCH</span>
394 <a name="l00363"></a>00363 <span class="preprocessor"></span><span class="preprocessor">#if((GLM_ARCH &amp; GLM_ARCH_SSE2) == GLM_ARCH_SSE2)</span>
395 <a name="l00364"></a>00364 <span class="preprocessor"></span><span class="preprocessor"># include &lt;emmintrin.h&gt;</span>
396 <a name="l00365"></a>00365 <span class="preprocessor">#endif//GLM_ARCH</span>
397 <a name="l00366"></a>00366 <span class="preprocessor"></span><span class="preprocessor">#endif//(GLM_ARCH != GLM_ARCH_PURE)</span>
398 <a name="l00367"></a>00367 <span class="preprocessor"></span>
399 <a name="l00368"></a>00368 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_ARCH_DISPLAYED))</span>
400 <a name="l00369"></a>00369 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_ARCH_DISPLAYED</span>
401 <a name="l00370"></a>00370 <span class="preprocessor"></span><span class="preprocessor"># if(GLM_ARCH == GLM_ARCH_PURE)</span>
402 <a name="l00371"></a>00371 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Platform independent&quot;)</span>
403 <a name="l00372"></a>00372 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_SSE2)</span>
404 <a name="l00373"></a>00373 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: SSE2 build platform&quot;)</span>
405 <a name="l00374"></a>00374 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_SSE3)</span>
406 <a name="l00375"></a>00375 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: SSE3 build platform&quot;)</span>
407 <a name="l00376"></a>00376 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_AVX)</span>
408 <a name="l00377"></a>00377 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: AVX build platform&quot;)</span>
409 <a name="l00378"></a>00378 <span class="preprocessor"></span><span class="preprocessor"># endif//GLM_ARCH</span>
410 <a name="l00379"></a>00379 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span>
411 <a name="l00380"></a>00380 <span class="preprocessor"></span>
412 <a name="l00382"></a>00382 <span class="comment">// Components</span>
413 <a name="l00383"></a>00383
414 <a name="l00384"></a>00384 <span class="comment">//#define GLM_FORCE_ONLY_XYZW</span>
415 <a name="l00385"></a>00385 <span class="preprocessor">#define GLM_COMPONENT_GLSL_NAMES 0 </span>
416 <a name="l00386"></a>00386 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPONENT_ONLY_XYZW 1 // To disable multiple vector component names access.</span>
417 <a name="l00387"></a>00387 <span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPONENT_MS_EXT 2 // To use anonymous union to provide multiple component names access for class valType. Visual C++ only.</span>
418 <a name="l00388"></a>00388 <span class="preprocessor"></span>
419 <a name="l00389"></a>00389 <span class="preprocessor">#ifndef GLM_FORCE_ONLY_XYZW</span>
420 <a name="l00390"></a>00390 <span class="preprocessor"></span><span class="preprocessor"># if((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; defined(_MSC_EXTENSIONS))</span>
421 <a name="l00391"></a>00391 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPONENT GLM_COMPONENT_MS_EXT</span>
422 <a name="l00392"></a>00392 <span class="preprocessor"></span><span class="preprocessor"># else</span>
423 <a name="l00393"></a>00393 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPONENT GLM_COMPONENT_GLSL_NAMES</span>
424 <a name="l00394"></a>00394 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
425 <a name="l00395"></a>00395 <span class="preprocessor"></span><span class="preprocessor">#else</span>
426 <a name="l00396"></a>00396 <span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPONENT GLM_COMPONENT_ONLY_XYZW</span>
427 <a name="l00397"></a>00397 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
428 <a name="l00398"></a>00398 <span class="preprocessor"></span>
429 <a name="l00399"></a>00399 <span class="preprocessor">#if((GLM_COMPONENT == GLM_COMPONENT_MS_EXT) &amp;&amp; !(GLM_COMPILER &amp; GLM_COMPILER_VC))</span>
430 <a name="l00400"></a>00400 <span class="preprocessor"></span><span class="preprocessor"># error &quot;GLM_COMPONENT value is GLM_COMPONENT_MS_EXT but this is not allowed with the current compiler.&quot;</span>
431 <a name="l00401"></a>00401 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
432 <a name="l00402"></a>00402 <span class="preprocessor"></span>
433 <a name="l00403"></a>00403 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_COMPONENT_DISPLAYED))</span>
434 <a name="l00404"></a>00404 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_COMPONENT_DISPLAYED</span>
435 <a name="l00405"></a>00405 <span class="preprocessor"></span><span class="preprocessor"># if(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)</span>
436 <a name="l00406"></a>00406 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLSL multiple vector component names&quot;)</span>
437 <a name="l00407"></a>00407 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)</span>
438 <a name="l00408"></a>00408 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: x,y,z,w vector component names only&quot;)</span>
439 <a name="l00409"></a>00409 <span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)</span>
440 <a name="l00410"></a>00410 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Multiple vector component names through Visual C++ language extensions&quot;)</span>
441 <a name="l00411"></a>00411 <span class="preprocessor"></span><span class="preprocessor"># else</span>
442 <a name="l00412"></a>00412 <span class="preprocessor"></span><span class="preprocessor"># error &quot;GLM_COMPONENT value unknown&quot;</span>
443 <a name="l00413"></a>00413 <span class="preprocessor"></span><span class="preprocessor"># endif//GLM_MESSAGE_COMPONENT_DISPLAYED</span>
444 <a name="l00414"></a>00414 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span>
445 <a name="l00415"></a>00415 <span class="preprocessor"></span>
446 <a name="l00417"></a>00417 <span class="comment">// Static assert</span>
447 <a name="l00418"></a>00418
448 <a name="l00419"></a>00419 <span class="preprocessor">#if(GLM_LANG == GLM_LANG_CXX0X)</span>
449 <a name="l00420"></a>00420 <span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) static_assert(x, message)</span>
450 <a name="l00421"></a>00421 <span class="preprocessor"></span><span class="preprocessor">#elif(defined(BOOST_STATIC_ASSERT))</span>
451 <a name="l00422"></a>00422 <span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) BOOST_STATIC_ASSERT(x)</span>
452 <a name="l00423"></a>00423 <span class="preprocessor"></span><span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_VC)</span>
453 <a name="l00424"></a>00424 <span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]</span>
454 <a name="l00425"></a>00425 <span class="preprocessor"></span><span class="preprocessor">#else</span>
455 <a name="l00426"></a>00426 <span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT(x, message)</span>
456 <a name="l00427"></a>00427 <span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT_NULL</span>
457 <a name="l00428"></a>00428 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_LANG</span>
458 <a name="l00429"></a>00429 <span class="preprocessor"></span>
459 <a name="l00431"></a>00431 <span class="comment">// Qualifiers </span>
460 <a name="l00432"></a>00432
461 <a name="l00433"></a>00433 <span class="comment">// User defines: GLM_FORCE_INLINE GLM_FORCE_CUDA</span>
462 <a name="l00434"></a>00434
463 <a name="l00435"></a>00435 <span class="preprocessor">#if(defined(GLM_FORCE_CUDA) || (GLM_COMPILER &amp; GLM_COMPILER_CUDA))</span>
464 <a name="l00436"></a>00436 <span class="preprocessor"></span><span class="preprocessor"># define GLM_CUDA_FUNC_DEF __device__ __host__ </span>
465 <a name="l00437"></a>00437 <span class="preprocessor"></span><span class="preprocessor"># define GLM_CUDA_FUNC_DECL __device__ __host__ </span>
466 <a name="l00438"></a>00438 <span class="preprocessor"></span><span class="preprocessor">#else</span>
467 <a name="l00439"></a>00439 <span class="preprocessor"></span><span class="preprocessor"># define GLM_CUDA_FUNC_DEF</span>
468 <a name="l00440"></a>00440 <span class="preprocessor"></span><span class="preprocessor"># define GLM_CUDA_FUNC_DECL</span>
469 <a name="l00441"></a>00441 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
470 <a name="l00442"></a>00442 <span class="preprocessor"></span>
471 <a name="l00443"></a>00443 <span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_GCC</span>
472 <a name="l00444"></a>00444 <span class="preprocessor"></span><span class="preprocessor">#define GLM_VAR_USED __attribute__ ((unused))</span>
473 <a name="l00445"></a>00445 <span class="preprocessor"></span><span class="preprocessor">#else</span>
474 <a name="l00446"></a>00446 <span class="preprocessor"></span><span class="preprocessor">#define GLM_VAR_USED</span>
475 <a name="l00447"></a>00447 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
476 <a name="l00448"></a>00448 <span class="preprocessor"></span>
477 <a name="l00449"></a>00449 <span class="preprocessor">#if(defined(GLM_FORCE_INLINE))</span>
478 <a name="l00450"></a>00450 <span class="preprocessor"></span><span class="preprocessor"># if((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2005))</span>
479 <a name="l00451"></a>00451 <span class="preprocessor"></span><span class="preprocessor"># define GLM_INLINE __forceinline</span>
480 <a name="l00452"></a>00452 <span class="preprocessor"></span><span class="preprocessor"># elif((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC34))</span>
481 <a name="l00453"></a>00453 <span class="preprocessor"></span><span class="preprocessor"># define GLM_INLINE __attribute__((always_inline))</span>
482 <a name="l00454"></a>00454 <span class="preprocessor"></span><span class="preprocessor"># else</span>
483 <a name="l00455"></a>00455 <span class="preprocessor"></span><span class="preprocessor"># define GLM_INLINE inline</span>
484 <a name="l00456"></a>00456 <span class="preprocessor"></span><span class="preprocessor"># endif//GLM_COMPILER</span>
485 <a name="l00457"></a>00457 <span class="preprocessor"></span><span class="preprocessor">#else</span>
486 <a name="l00458"></a>00458 <span class="preprocessor"></span><span class="preprocessor"># define GLM_INLINE inline</span>
487 <a name="l00459"></a>00459 <span class="preprocessor"></span><span class="preprocessor">#endif//defined(GLM_FORCE_INLINE)</span>
488 <a name="l00460"></a>00460 <span class="preprocessor"></span>
489 <a name="l00461"></a>00461 <span class="preprocessor">#define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL</span>
490 <a name="l00462"></a>00462 <span class="preprocessor"></span><span class="preprocessor">#define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE</span>
491 <a name="l00463"></a>00463 <span class="preprocessor"></span>
492 <a name="l00465"></a>00465 <span class="comment">// Swizzle operators</span>
493 <a name="l00466"></a>00466
494 <a name="l00467"></a>00467 <span class="comment">// User defines: GLM_SWIZZLE_XYZW GLM_SWIZZLE_RGBA GLM_SWIZZLE_STQP GLM_SWIZZLE</span>
495 <a name="l00468"></a>00468
496 <a name="l00469"></a>00469 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED))</span>
497 <a name="l00470"></a>00470 <span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_SWIZZLE_DISPLAYED</span>
498 <a name="l00471"></a>00471 <span class="preprocessor"></span><span class="preprocessor"># if(defined(GLM_SWIZZLE))</span>
499 <a name="l00472"></a>00472 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Full swizzling operator enabled&quot;)</span>
500 <a name="l00473"></a>00473 <span class="preprocessor"></span><span class="preprocessor"># elif(!defined(GLM_SWIZZLE_XYZW) &amp;&amp; !defined(GLM_SWIZZLE_RGBA) &amp;&amp; !defined(GLM_SWIZZLE_STQP) &amp;&amp; !defined(GLM_SWIZZLE))</span>
501 <a name="l00474"></a>00474 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: No swizzling operator enabled&quot;)</span>
502 <a name="l00475"></a>00475 <span class="preprocessor"></span><span class="preprocessor"># else</span>
503 <a name="l00476"></a>00476 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Partial swizzling operator enabled&quot;)</span>
504 <a name="l00477"></a>00477 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
505 <a name="l00478"></a>00478 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span>
506 <a name="l00479"></a>00479 <span class="preprocessor"></span>
507 <a name="l00480"></a>00480 <span class="preprocessor">#endif//glm_setup</span>
473508 </pre></div></div>
474509 </div>
475510 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6363 <a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_simd_mat4 extension included&quot;)</span>
6464 <a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
6565 <a name="l00030"></a>00030 <span class="preprocessor"></span>
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>glm
67 <a name="l00032"></a>00032 {
68 <a name="l00033"></a>00033 <span class="keyword">namespace </span>detail
69 <a name="l00034"></a>00034 {
70 <a name="l00037"></a><a class="code" href="a00291.html#gac10c19d68b9f99a089ff3cfde58760a7">00037</a> <a class="code" href="a00291.html#gac10c19d68b9f99a089ff3cfde58760a7" title="4x4 Matrix implemented using SIMD SEE intrinsics.">GLM_ALIGNED_STRUCT</a>(16) fmat4x4SIMD
71 <a name="l00038"></a>00038 {
72 <a name="l00039"></a>00039 <span class="keyword">enum</span> ctor{null};
73 <a name="l00040"></a>00040
74 <a name="l00041"></a>00041 <span class="keyword">typedef</span> <span class="keywordtype">float</span> value_type;
75 <a name="l00042"></a>00042 <span class="keyword">typedef</span> fvec4SIMD col_type;
76 <a name="l00043"></a>00043 <span class="keyword">typedef</span> fvec4SIMD row_type;
77 <a name="l00044"></a>00044 <span class="keyword">typedef</span> std::size_t size_type;
78 <a name="l00045"></a>00045 <span class="keyword">static</span> size_type value_size();
79 <a name="l00046"></a>00046 <span class="keyword">static</span> size_type col_size();
80 <a name="l00047"></a>00047 <span class="keyword">static</span> size_type row_size();
81 <a name="l00048"></a>00048 <span class="keyword">static</span> <span class="keywordtype">bool</span> is_matrix();
82 <a name="l00049"></a>00049
83 <a name="l00050"></a>00050 fvec4SIMD Data[4];
84 <a name="l00051"></a>00051
85 <a name="l00053"></a>00053 <span class="comment">// Constructors</span>
86 <a name="l00054"></a>00054
87 <a name="l00055"></a>00055 fmat4x4SIMD();
88 <a name="l00056"></a>00056 <span class="keyword">explicit</span> fmat4x4SIMD(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
89 <a name="l00057"></a>00057 <span class="keyword">explicit</span> fmat4x4SIMD(
90 <a name="l00058"></a>00058 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; x0, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y0, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; z0, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; w0,
91 <a name="l00059"></a>00059 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; x1, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y1, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; z1, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; w1,
92 <a name="l00060"></a>00060 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; x2, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y2, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; z2, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; w2,
93 <a name="l00061"></a>00061 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; x3, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y3, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; z3, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; w3);
94 <a name="l00062"></a>00062 <span class="keyword">explicit</span> fmat4x4SIMD(
95 <a name="l00063"></a>00063 fvec4SIMD <span class="keyword">const</span> &amp; v0,
96 <a name="l00064"></a>00064 fvec4SIMD <span class="keyword">const</span> &amp; v1,
97 <a name="l00065"></a>00065 fvec4SIMD <span class="keyword">const</span> &amp; v2,
98 <a name="l00066"></a>00066 fvec4SIMD <span class="keyword">const</span> &amp; v3);
99 <a name="l00067"></a>00067 <span class="keyword">explicit</span> fmat4x4SIMD(
100 <a name="l00068"></a>00068 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;float&gt;</a> <span class="keyword">const</span> &amp; m);
101 <a name="l00069"></a>00069
102 <a name="l00070"></a>00070 <span class="comment">// Conversions</span>
103 <a name="l00071"></a>00071 <span class="comment">//template &lt;typename U&gt; </span>
104 <a name="l00072"></a>00072 <span class="comment">//explicit tmat4x4(tmat4x4&lt;U&gt; const &amp; m);</span>
105 <a name="l00073"></a>00073
106 <a name="l00074"></a>00074 <span class="comment">//explicit tmat4x4(tmat2x2&lt;T&gt; const &amp; x);</span>
107 <a name="l00075"></a>00075 <span class="comment">//explicit tmat4x4(tmat3x3&lt;T&gt; const &amp; x);</span>
108 <a name="l00076"></a>00076 <span class="comment">//explicit tmat4x4(tmat2x3&lt;T&gt; const &amp; x);</span>
109 <a name="l00077"></a>00077 <span class="comment">//explicit tmat4x4(tmat3x2&lt;T&gt; const &amp; x);</span>
110 <a name="l00078"></a>00078 <span class="comment">//explicit tmat4x4(tmat2x4&lt;T&gt; const &amp; x);</span>
111 <a name="l00079"></a>00079 <span class="comment">//explicit tmat4x4(tmat4x2&lt;T&gt; const &amp; x);</span>
112 <a name="l00080"></a>00080 <span class="comment">//explicit tmat4x4(tmat3x4&lt;T&gt; const &amp; x);</span>
113 <a name="l00081"></a>00081 <span class="comment">//explicit tmat4x4(tmat4x3&lt;T&gt; const &amp; x);</span>
114 <a name="l00082"></a>00082
115 <a name="l00083"></a>00083 <span class="comment">// Accesses</span>
116 <a name="l00084"></a>00084 fvec4SIMD &amp; operator[](size_type i);
117 <a name="l00085"></a>00085 fvec4SIMD <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
118 <a name="l00086"></a>00086
119 <a name="l00087"></a>00087 <span class="comment">// Unary updatable operators</span>
120 <a name="l00088"></a>00088 fmat4x4SIMD &amp; operator= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);
121 <a name="l00089"></a>00089 fmat4x4SIMD &amp; operator+= (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
122 <a name="l00090"></a>00090 fmat4x4SIMD &amp; operator+= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);
123 <a name="l00091"></a>00091 fmat4x4SIMD &amp; operator-= (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
124 <a name="l00092"></a>00092 fmat4x4SIMD &amp; operator-= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);
125 <a name="l00093"></a>00093 fmat4x4SIMD &amp; operator*= (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
126 <a name="l00094"></a>00094 fmat4x4SIMD &amp; operator*= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);
127 <a name="l00095"></a>00095 fmat4x4SIMD &amp; operator/= (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
128 <a name="l00096"></a>00096 fmat4x4SIMD &amp; operator/= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);
129 <a name="l00097"></a>00097 fmat4x4SIMD &amp; operator++ ();
130 <a name="l00098"></a>00098 fmat4x4SIMD &amp; operator-- ();
131 <a name="l00099"></a>00099 };
132 <a name="l00100"></a>00100
133 <a name="l00101"></a>00101 <span class="comment">// Binary operators</span>
134 <a name="l00102"></a>00102 fmat4x4SIMD operator+ (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
135 <a name="l00103"></a>00103 fmat4x4SIMD operator+ (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, fmat4x4SIMD <span class="keyword">const</span> &amp; m);
136 <a name="l00104"></a>00104 fmat4x4SIMD operator+ (fmat4x4SIMD <span class="keyword">const</span> &amp; m1, fmat4x4SIMD <span class="keyword">const</span> &amp; m2);
137 <a name="l00105"></a>00105
138 <a name="l00106"></a>00106 fmat4x4SIMD operator- (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
139 <a name="l00107"></a>00107 fmat4x4SIMD operator- (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, fmat4x4SIMD <span class="keyword">const</span> &amp; m);
140 <a name="l00108"></a>00108 fmat4x4SIMD operator- (fmat4x4SIMD <span class="keyword">const</span> &amp; m1, fmat4x4SIMD <span class="keyword">const</span> &amp; m2);
141 <a name="l00109"></a>00109
142 <a name="l00110"></a>00110 fmat4x4SIMD operator* (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
143 <a name="l00111"></a>00111 fmat4x4SIMD operator* (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, fmat4x4SIMD <span class="keyword">const</span> &amp; m);
144 <a name="l00112"></a>00112
145 <a name="l00113"></a>00113 fvec4SIMD operator* (fmat4x4SIMD <span class="keyword">const</span> &amp; m, fvec4SIMD <span class="keyword">const</span> &amp; v);
146 <a name="l00114"></a>00114 fvec4SIMD operator* (fvec4SIMD <span class="keyword">const</span> &amp; v, fmat4x4SIMD <span class="keyword">const</span> &amp; m);
147 <a name="l00115"></a>00115
148 <a name="l00116"></a>00116 fmat4x4SIMD operator* (fmat4x4SIMD <span class="keyword">const</span> &amp; m1, fmat4x4SIMD <span class="keyword">const</span> &amp; m2);
149 <a name="l00117"></a>00117
150 <a name="l00118"></a>00118 fmat4x4SIMD operator/ (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
151 <a name="l00119"></a>00119 fmat4x4SIMD operator/ (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, fmat4x4SIMD <span class="keyword">const</span> &amp; m);
152 <a name="l00120"></a>00120
153 <a name="l00121"></a>00121 fvec4SIMD operator/ (fmat4x4SIMD <span class="keyword">const</span> &amp; m, fvec4SIMD <span class="keyword">const</span> &amp; v);
154 <a name="l00122"></a>00122 fvec4SIMD operator/ (fvec4SIMD <span class="keyword">const</span> &amp; v, fmat4x4SIMD <span class="keyword">const</span> &amp; m);
155 <a name="l00123"></a>00123
156 <a name="l00124"></a>00124 fmat4x4SIMD operator/ (fmat4x4SIMD <span class="keyword">const</span> &amp; m1, fmat4x4SIMD <span class="keyword">const</span> &amp; m2);
157 <a name="l00125"></a>00125
158 <a name="l00126"></a>00126 <span class="comment">// Unary constant operators</span>
159 <a name="l00127"></a>00127 fmat4x4SIMD <span class="keyword">const</span> operator- (fmat4x4SIMD <span class="keyword">const</span> &amp; m);
160 <a name="l00128"></a>00128 fmat4x4SIMD <span class="keyword">const</span> operator-- (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">int</span>);
161 <a name="l00129"></a>00129 fmat4x4SIMD <span class="keyword">const</span> operator++ (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">int</span>);
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>glm{
67 <a name="l00032"></a>00032 <span class="keyword">namespace </span>detail
68 <a name="l00033"></a>00033 {
69 <a name="l00036"></a><a class="code" href="a00290.html#ga7210a12f9861ab5585662dc1bf5a8221">00036</a> <a class="code" href="a00290.html#ga7210a12f9861ab5585662dc1bf5a8221" title="4x4 Matrix implemented using SIMD SEE intrinsics.">GLM_ALIGNED_STRUCT</a>(16) fmat4x4SIMD
70 <a name="l00037"></a>00037 {
71 <a name="l00038"></a>00038 <span class="keyword">enum</span> ctor{null};
72 <a name="l00039"></a>00039
73 <a name="l00040"></a>00040 <span class="keyword">typedef</span> <span class="keywordtype">float</span> value_type;
74 <a name="l00041"></a>00041 <span class="keyword">typedef</span> fvec4SIMD col_type;
75 <a name="l00042"></a>00042 <span class="keyword">typedef</span> fvec4SIMD row_type;
76 <a name="l00043"></a>00043 <span class="keyword">typedef</span> std::size_t size_type;
77 <a name="l00044"></a>00044 <span class="keyword">static</span> size_type value_size();
78 <a name="l00045"></a>00045 <span class="keyword">static</span> size_type col_size();
79 <a name="l00046"></a>00046 <span class="keyword">static</span> size_type row_size();
80 <a name="l00047"></a>00047 <span class="keyword">static</span> <span class="keywordtype">bool</span> is_matrix();
81 <a name="l00048"></a>00048
82 <a name="l00049"></a>00049 fvec4SIMD Data[4];
83 <a name="l00050"></a>00050
84 <a name="l00052"></a>00052 <span class="comment">// Constructors</span>
85 <a name="l00053"></a>00053
86 <a name="l00054"></a>00054 fmat4x4SIMD();
87 <a name="l00055"></a>00055 <span class="keyword">explicit</span> fmat4x4SIMD(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
88 <a name="l00056"></a>00056 <span class="keyword">explicit</span> fmat4x4SIMD(
89 <a name="l00057"></a>00057 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; x0, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y0, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; z0, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; w0,
90 <a name="l00058"></a>00058 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; x1, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y1, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; z1, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; w1,
91 <a name="l00059"></a>00059 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; x2, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y2, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; z2, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; w2,
92 <a name="l00060"></a>00060 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; x3, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y3, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; z3, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; w3);
93 <a name="l00061"></a>00061 <span class="keyword">explicit</span> fmat4x4SIMD(
94 <a name="l00062"></a>00062 fvec4SIMD <span class="keyword">const</span> &amp; v0,
95 <a name="l00063"></a>00063 fvec4SIMD <span class="keyword">const</span> &amp; v1,
96 <a name="l00064"></a>00064 fvec4SIMD <span class="keyword">const</span> &amp; v2,
97 <a name="l00065"></a>00065 fvec4SIMD <span class="keyword">const</span> &amp; v3);
98 <a name="l00066"></a>00066 <span class="keyword">explicit</span> fmat4x4SIMD(
99 <a name="l00067"></a>00067 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;float&gt;</a> <span class="keyword">const</span> &amp; m);
100 <a name="l00068"></a>00068
101 <a name="l00069"></a>00069 <span class="comment">// Conversions</span>
102 <a name="l00070"></a>00070 <span class="comment">//template &lt;typename U&gt; </span>
103 <a name="l00071"></a>00071 <span class="comment">//explicit tmat4x4(tmat4x4&lt;U&gt; const &amp; m);</span>
104 <a name="l00072"></a>00072
105 <a name="l00073"></a>00073 <span class="comment">//explicit tmat4x4(tmat2x2&lt;T&gt; const &amp; x);</span>
106 <a name="l00074"></a>00074 <span class="comment">//explicit tmat4x4(tmat3x3&lt;T&gt; const &amp; x);</span>
107 <a name="l00075"></a>00075 <span class="comment">//explicit tmat4x4(tmat2x3&lt;T&gt; const &amp; x);</span>
108 <a name="l00076"></a>00076 <span class="comment">//explicit tmat4x4(tmat3x2&lt;T&gt; const &amp; x);</span>
109 <a name="l00077"></a>00077 <span class="comment">//explicit tmat4x4(tmat2x4&lt;T&gt; const &amp; x);</span>
110 <a name="l00078"></a>00078 <span class="comment">//explicit tmat4x4(tmat4x2&lt;T&gt; const &amp; x);</span>
111 <a name="l00079"></a>00079 <span class="comment">//explicit tmat4x4(tmat3x4&lt;T&gt; const &amp; x);</span>
112 <a name="l00080"></a>00080 <span class="comment">//explicit tmat4x4(tmat4x3&lt;T&gt; const &amp; x);</span>
113 <a name="l00081"></a>00081
114 <a name="l00082"></a>00082 <span class="comment">// Accesses</span>
115 <a name="l00083"></a>00083 fvec4SIMD &amp; operator[](size_type i);
116 <a name="l00084"></a>00084 fvec4SIMD <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
117 <a name="l00085"></a>00085
118 <a name="l00086"></a>00086 <span class="comment">// Unary updatable operators</span>
119 <a name="l00087"></a>00087 fmat4x4SIMD &amp; operator= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);
120 <a name="l00088"></a>00088 fmat4x4SIMD &amp; operator+= (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
121 <a name="l00089"></a>00089 fmat4x4SIMD &amp; operator+= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);
122 <a name="l00090"></a>00090 fmat4x4SIMD &amp; operator-= (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
123 <a name="l00091"></a>00091 fmat4x4SIMD &amp; operator-= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);
124 <a name="l00092"></a>00092 fmat4x4SIMD &amp; operator*= (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
125 <a name="l00093"></a>00093 fmat4x4SIMD &amp; operator*= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);
126 <a name="l00094"></a>00094 fmat4x4SIMD &amp; operator/= (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
127 <a name="l00095"></a>00095 fmat4x4SIMD &amp; operator/= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);
128 <a name="l00096"></a>00096 fmat4x4SIMD &amp; operator++ ();
129 <a name="l00097"></a>00097 fmat4x4SIMD &amp; operator-- ();
130 <a name="l00098"></a>00098 };
131 <a name="l00099"></a>00099
132 <a name="l00100"></a>00100 <span class="comment">// Binary operators</span>
133 <a name="l00101"></a>00101 fmat4x4SIMD operator+ (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
134 <a name="l00102"></a>00102 fmat4x4SIMD operator+ (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, fmat4x4SIMD <span class="keyword">const</span> &amp; m);
135 <a name="l00103"></a>00103 fmat4x4SIMD operator+ (fmat4x4SIMD <span class="keyword">const</span> &amp; m1, fmat4x4SIMD <span class="keyword">const</span> &amp; m2);
136 <a name="l00104"></a>00104
137 <a name="l00105"></a>00105 fmat4x4SIMD operator- (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
138 <a name="l00106"></a>00106 fmat4x4SIMD operator- (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, fmat4x4SIMD <span class="keyword">const</span> &amp; m);
139 <a name="l00107"></a>00107 fmat4x4SIMD operator- (fmat4x4SIMD <span class="keyword">const</span> &amp; m1, fmat4x4SIMD <span class="keyword">const</span> &amp; m2);
140 <a name="l00108"></a>00108
141 <a name="l00109"></a>00109 fmat4x4SIMD operator* (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
142 <a name="l00110"></a>00110 fmat4x4SIMD operator* (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, fmat4x4SIMD <span class="keyword">const</span> &amp; m);
143 <a name="l00111"></a>00111
144 <a name="l00112"></a>00112 fvec4SIMD operator* (fmat4x4SIMD <span class="keyword">const</span> &amp; m, fvec4SIMD <span class="keyword">const</span> &amp; v);
145 <a name="l00113"></a>00113 fvec4SIMD operator* (fvec4SIMD <span class="keyword">const</span> &amp; v, fmat4x4SIMD <span class="keyword">const</span> &amp; m);
146 <a name="l00114"></a>00114
147 <a name="l00115"></a>00115 fmat4x4SIMD operator* (fmat4x4SIMD <span class="keyword">const</span> &amp; m1, fmat4x4SIMD <span class="keyword">const</span> &amp; m2);
148 <a name="l00116"></a>00116
149 <a name="l00117"></a>00117 fmat4x4SIMD operator/ (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
150 <a name="l00118"></a>00118 fmat4x4SIMD operator/ (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, fmat4x4SIMD <span class="keyword">const</span> &amp; m);
151 <a name="l00119"></a>00119
152 <a name="l00120"></a>00120 fvec4SIMD operator/ (fmat4x4SIMD <span class="keyword">const</span> &amp; m, fvec4SIMD <span class="keyword">const</span> &amp; v);
153 <a name="l00121"></a>00121 fvec4SIMD operator/ (fvec4SIMD <span class="keyword">const</span> &amp; v, fmat4x4SIMD <span class="keyword">const</span> &amp; m);
154 <a name="l00122"></a>00122
155 <a name="l00123"></a>00123 fmat4x4SIMD operator/ (fmat4x4SIMD <span class="keyword">const</span> &amp; m1, fmat4x4SIMD <span class="keyword">const</span> &amp; m2);
156 <a name="l00124"></a>00124
157 <a name="l00125"></a>00125 <span class="comment">// Unary constant operators</span>
158 <a name="l00126"></a>00126 fmat4x4SIMD <span class="keyword">const</span> operator- (fmat4x4SIMD <span class="keyword">const</span> &amp; m);
159 <a name="l00127"></a>00127 fmat4x4SIMD <span class="keyword">const</span> operator-- (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">int</span>);
160 <a name="l00128"></a>00128 fmat4x4SIMD <span class="keyword">const</span> operator++ (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">int</span>);
161 <a name="l00129"></a>00129 }<span class="comment">//namespace detail</span>
162162 <a name="l00130"></a>00130
163 <a name="l00131"></a>00131 }<span class="comment">//namespace detail</span>
164 <a name="l00132"></a>00132
165 <a name="l00133"></a>00133 <span class="keyword">namespace </span>gtx{
166 <a name="l00135"></a><a class="code" href="a00214.html">00135</a> <span class="keyword">namespace </span>simd_mat4
167 <a name="l00136"></a>00136 {
168 <a name="l00137"></a>00137 <span class="keyword">typedef</span> detail::fmat4x4SIMD simdMat4;
163 <a name="l00131"></a>00131 <span class="keyword">namespace </span>gtx{
164 <a name="l00132"></a><a class="code" href="a00214.html">00132</a> <span class="keyword">namespace </span>simd_mat4
165 <a name="l00133"></a>00133 {
166 <a name="l00134"></a>00134 <span class="keyword">typedef</span> detail::fmat4x4SIMD simdMat4;
167 <a name="l00135"></a>00135
169168 <a name="l00138"></a>00138
170 <a name="l00141"></a>00141
171 <a name="l00144"></a>00144 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;float&gt;</a> <a class="code" href="a00291.html#ga8759e2cf163948c9c7ff138c1f56d501" title="Convert a simdMat4 to a mat4.">mat4_cast</a>(
172 <a name="l00145"></a>00145 detail::fmat4x4SIMD <span class="keyword">const</span> &amp; x);
173 <a name="l00146"></a>00146
174 <a name="l00150"></a>00150 detail::fmat4x4SIMD <a class="code" href="a00291.html#ga5ae5a4950d3e354236390edfaa25301a" title="Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and...">matrixCompMult</a>(
175 <a name="l00151"></a>00151 detail::fmat4x4SIMD <span class="keyword">const</span> &amp; x,
176 <a name="l00152"></a>00152 detail::fmat4x4SIMD <span class="keyword">const</span> &amp; y);
177 <a name="l00153"></a>00153
178 <a name="l00158"></a>00158 detail::fmat4x4SIMD <a class="code" href="a00291.html#gafed2233ac30495621c2bdd4d121f9ced" title="Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...">outerProduct</a>(
179 <a name="l00159"></a>00159 detail::fvec4SIMD <span class="keyword">const</span> &amp; c,
180 <a name="l00160"></a>00160 detail::fvec4SIMD <span class="keyword">const</span> &amp; r);
181 <a name="l00161"></a>00161
182 <a name="l00164"></a>00164 detail::fmat4x4SIMD <a class="code" href="a00291.html#ga5da402c7d42808dfc8c8d51e0ac9c868" title="Returns the transposed matrix of x (From GLM_GTX_simd_mat4 extension).">transpose</a>(
183 <a name="l00165"></a>00165 detail::fmat4x4SIMD <span class="keyword">const</span> &amp; x);
184 <a name="l00166"></a>00166
185 <a name="l00169"></a>00169 <span class="keywordtype">float</span> <a class="code" href="a00291.html#ga9be926c258e64bf2413671d104b393e8" title="Return the determinant of a mat4 matrix.">determinant</a>(
186 <a name="l00170"></a>00170 detail::fmat4x4SIMD <span class="keyword">const</span> &amp; m);
187 <a name="l00171"></a>00171
188 <a name="l00174"></a>00174 detail::fmat4x4SIMD <a class="code" href="a00291.html#gace9ca056446fc614a846bac6a3ee1a1e" title="Return the inverse of a mat4 matrix.">inverse</a>(
189 <a name="l00175"></a>00175 detail::fmat4x4SIMD <span class="keyword">const</span> &amp; m);
190 <a name="l00176"></a>00176
169 <a name="l00141"></a>00141 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;float&gt;</a> <a class="code" href="a00290.html#ga8759e2cf163948c9c7ff138c1f56d501" title="Convert a simdMat4 to a mat4.">mat4_cast</a>(
170 <a name="l00142"></a>00142 detail::fmat4x4SIMD <span class="keyword">const</span> &amp; x);
171 <a name="l00143"></a>00143
172 <a name="l00147"></a>00147 detail::fmat4x4SIMD <a class="code" href="a00290.html#ga5ae5a4950d3e354236390edfaa25301a" title="Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and...">matrixCompMult</a>(
173 <a name="l00148"></a>00148 detail::fmat4x4SIMD <span class="keyword">const</span> &amp; x,
174 <a name="l00149"></a>00149 detail::fmat4x4SIMD <span class="keyword">const</span> &amp; y);
175 <a name="l00150"></a>00150
176 <a name="l00155"></a>00155 detail::fmat4x4SIMD <a class="code" href="a00290.html#gafed2233ac30495621c2bdd4d121f9ced" title="Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...">outerProduct</a>(
177 <a name="l00156"></a>00156 detail::fvec4SIMD <span class="keyword">const</span> &amp; c,
178 <a name="l00157"></a>00157 detail::fvec4SIMD <span class="keyword">const</span> &amp; r);
179 <a name="l00158"></a>00158
180 <a name="l00161"></a>00161 detail::fmat4x4SIMD <a class="code" href="a00290.html#ga5da402c7d42808dfc8c8d51e0ac9c868" title="Returns the transposed matrix of x (From GLM_GTX_simd_mat4 extension).">transpose</a>(
181 <a name="l00162"></a>00162 detail::fmat4x4SIMD <span class="keyword">const</span> &amp; x);
182 <a name="l00163"></a>00163
183 <a name="l00166"></a>00166 <span class="keywordtype">float</span> <a class="code" href="a00290.html#ga9be926c258e64bf2413671d104b393e8" title="Return the determinant of a mat4 matrix.">determinant</a>(
184 <a name="l00167"></a>00167 detail::fmat4x4SIMD <span class="keyword">const</span> &amp; m);
185 <a name="l00168"></a>00168
186 <a name="l00171"></a>00171 detail::fmat4x4SIMD <a class="code" href="a00290.html#gace9ca056446fc614a846bac6a3ee1a1e" title="Return the inverse of a mat4 matrix.">inverse</a>(
187 <a name="l00172"></a>00172 detail::fmat4x4SIMD <span class="keyword">const</span> &amp; m);
188 <a name="l00173"></a>00173
189 <a name="l00175"></a>00175 }<span class="comment">// namespace simd_mat4</span>
190 <a name="l00176"></a>00176 }<span class="comment">// namespace gtx</span>
191 <a name="l00177"></a>00177 }<span class="comment">// namespace glm</span>
191192 <a name="l00178"></a>00178
192 <a name="l00179"></a>00179 }<span class="comment">//namespace simd_mat4</span>
193 <a name="l00180"></a>00180 }<span class="comment">//namespace gtx</span>
194 <a name="l00181"></a>00181 }<span class="comment">//namespace glm</span>
193 <a name="l00179"></a>00179 <span class="preprocessor">#include &quot;simd_mat4.inl&quot;</span>
194 <a name="l00180"></a>00180
195 <a name="l00181"></a>00181 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::simd_mat4;}
195196 <a name="l00182"></a>00182
196 <a name="l00183"></a>00183 <span class="preprocessor">#include &quot;simd_mat4.inl&quot;</span>
197 <a name="l00184"></a>00184
198 <a name="l00185"></a>00185 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::simd_mat4;}
199 <a name="l00186"></a>00186
200 <a name="l00187"></a>00187 <span class="preprocessor">#endif//glm_gtx_simd_mat4</span>
197 <a name="l00183"></a>00183 <span class="preprocessor">#endif//glm_gtx_simd_mat4</span>
201198 </pre></div></div>
202199 </div>
203200 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6363 <a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_simd_vec4 extension included&quot;)</span>
6464 <a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
6565 <a name="l00030"></a>00030 <span class="preprocessor"></span>
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>glm
67 <a name="l00032"></a>00032 {
68 <a name="l00033"></a>00033 <span class="keyword">namespace </span>detail
69 <a name="l00034"></a>00034 {
70 <a name="l00037"></a><a class="code" href="a00292.html#gaeda6f1f188c8e15cb4ad041bdbcbc22b">00037</a> <a class="code" href="a00291.html#gac10c19d68b9f99a089ff3cfde58760a7" title="4x4 Matrix implemented using SIMD SEE intrinsics.">GLM_ALIGNED_STRUCT</a>(4) fvec4SIMD
71 <a name="l00038"></a>00038 {
72 <a name="l00039"></a>00039 <span class="keyword">enum</span> ctor{null};
73 <a name="l00040"></a>00040 <span class="keyword">typedef</span> __m128 value_type;
74 <a name="l00041"></a>00041 <span class="keyword">typedef</span> std::size_t size_type;
75 <a name="l00042"></a>00042 <span class="keyword">static</span> size_type value_size();
76 <a name="l00043"></a>00043
77 <a name="l00044"></a>00044 <span class="keyword">typedef</span> fvec4SIMD type;
78 <a name="l00045"></a>00045 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;bool&gt;</a> bool_type;
79 <a name="l00046"></a>00046
80 <a name="l00047"></a>00047 __m128 Data;
81 <a name="l00048"></a>00048
82 <a name="l00050"></a>00050 <span class="comment">// Implicit basic constructors</span>
83 <a name="l00051"></a>00051
84 <a name="l00052"></a>00052 fvec4SIMD();
85 <a name="l00053"></a>00053 fvec4SIMD(__m128 <span class="keyword">const</span> &amp; Data);
86 <a name="l00054"></a>00054 fvec4SIMD(fvec4SIMD <span class="keyword">const</span> &amp; v);
87 <a name="l00055"></a>00055
88 <a name="l00057"></a>00057 <span class="comment">// Explicit basic constructors</span>
89 <a name="l00058"></a>00058
90 <a name="l00059"></a>00059 <span class="keyword">explicit</span> fvec4SIMD(
91 <a name="l00060"></a>00060 ctor);
92 <a name="l00061"></a>00061 <span class="keyword">explicit</span> fvec4SIMD(
93 <a name="l00062"></a>00062 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
94 <a name="l00063"></a>00063 <span class="keyword">explicit</span> fvec4SIMD(
95 <a name="l00064"></a>00064 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; x,
96 <a name="l00065"></a>00065 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y,
97 <a name="l00066"></a>00066 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; z,
98 <a name="l00067"></a>00067 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; w);
99 <a name="l00068"></a>00068 <span class="keyword">explicit</span> fvec4SIMD(
100 <a name="l00069"></a>00069 <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;float&gt;</a> <span class="keyword">const</span> &amp; v);
101 <a name="l00070"></a>00070
102 <a name="l00073"></a>00073
103 <a name="l00074"></a>00074 fvec4SIMD(vec2 <span class="keyword">const</span> &amp; v, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s1, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s2);
104 <a name="l00075"></a>00075 fvec4SIMD(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s1, vec2 <span class="keyword">const</span> &amp; v, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s2);
105 <a name="l00076"></a>00076 fvec4SIMD(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s1, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s2, vec2 <span class="keyword">const</span> &amp; v);
106 <a name="l00077"></a>00077 fvec4SIMD(<a class="code" href="a00021.html" title="Basic 3D vector type.">vec3</a> <span class="keyword">const</span> &amp; v, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
107 <a name="l00078"></a>00078 fvec4SIMD(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, <a class="code" href="a00021.html" title="Basic 3D vector type.">vec3</a> <span class="keyword">const</span> &amp; v);
108 <a name="l00079"></a>00079 fvec4SIMD(vec2 <span class="keyword">const</span> &amp; v1, vec2 <span class="keyword">const</span> &amp; v2);
109 <a name="l00080"></a>00080 <span class="comment">//fvec4SIMD(ivec4SIMD const &amp; v);</span>
110 <a name="l00081"></a>00081
111 <a name="l00083"></a>00083 <span class="comment">// Unary arithmetic operators</span>
112 <a name="l00084"></a>00084
113 <a name="l00085"></a>00085 fvec4SIMD&amp; operator= (fvec4SIMD <span class="keyword">const</span> &amp; v);
114 <a name="l00086"></a>00086 fvec4SIMD&amp; operator+=(fvec4SIMD <span class="keyword">const</span> &amp; v);
115 <a name="l00087"></a>00087 fvec4SIMD&amp; operator-=(fvec4SIMD <span class="keyword">const</span> &amp; v);
116 <a name="l00088"></a>00088 fvec4SIMD&amp; operator*=(fvec4SIMD <span class="keyword">const</span> &amp; v);
117 <a name="l00089"></a>00089 fvec4SIMD&amp; operator/=(fvec4SIMD <span class="keyword">const</span> &amp; v);
118 <a name="l00090"></a>00090
119 <a name="l00091"></a>00091 fvec4SIMD&amp; operator+=(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
120 <a name="l00092"></a>00092 fvec4SIMD&amp; operator-=(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
121 <a name="l00093"></a>00093 fvec4SIMD&amp; operator*=(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
122 <a name="l00094"></a>00094 fvec4SIMD&amp; operator/=(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
123 <a name="l00095"></a>00095
124 <a name="l00096"></a>00096 fvec4SIMD&amp; operator++();
125 <a name="l00097"></a>00097 fvec4SIMD&amp; operator--();
126 <a name="l00098"></a>00098
127 <a name="l00100"></a>00100 <span class="comment">// Swizzle operators</span>
128 <a name="l00101"></a>00101
129 <a name="l00102"></a>00102 <span class="keyword">template</span> &lt;comp X, comp Y, comp Z, comp W&gt;
130 <a name="l00103"></a>00103 fvec4SIMD&amp; swizzle();
131 <a name="l00104"></a>00104 <span class="keyword">template</span> &lt;comp X, comp Y, comp Z, comp W&gt;
132 <a name="l00105"></a>00105 fvec4SIMD swizzle() <span class="keyword">const</span>;
133 <a name="l00106"></a>00106 <span class="keyword">template</span> &lt;comp X, comp Y, comp Z&gt;
134 <a name="l00107"></a>00107 fvec4SIMD swizzle() <span class="keyword">const</span>;
135 <a name="l00108"></a>00108 <span class="keyword">template</span> &lt;comp X, comp Y&gt;
136 <a name="l00109"></a>00109 fvec4SIMD swizzle() <span class="keyword">const</span>;
137 <a name="l00110"></a>00110 <span class="keyword">template</span> &lt;comp X&gt;
138 <a name="l00111"></a>00111 fvec4SIMD swizzle() <span class="keyword">const</span>;
139 <a name="l00112"></a>00112 };
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>glm{
67 <a name="l00032"></a>00032 <span class="keyword">namespace </span>detail
68 <a name="l00033"></a>00033 {
69 <a name="l00036"></a>00036 <a class="code" href="a00290.html#ga7210a12f9861ab5585662dc1bf5a8221" title="4x4 Matrix implemented using SIMD SEE intrinsics.">GLM_ALIGNED_STRUCT</a>(16) fvec4SIMD
70 <a name="l00037"></a>00037 {
71 <a name="l00038"></a>00038 <span class="keyword">enum</span> ctor{null};
72 <a name="l00039"></a>00039 <span class="keyword">typedef</span> __m128 value_type;
73 <a name="l00040"></a>00040 <span class="keyword">typedef</span> std::size_t size_type;
74 <a name="l00041"></a>00041 <span class="keyword">static</span> size_type value_size();
75 <a name="l00042"></a>00042
76 <a name="l00043"></a>00043 <span class="keyword">typedef</span> fvec4SIMD type;
77 <a name="l00044"></a>00044 <span class="keyword">typedef</span> tvec4&lt;bool&gt; bool_type;
78 <a name="l00045"></a>00045
79 <a name="l00046"></a>00046 __m128 Data;
80 <a name="l00047"></a>00047
81 <a name="l00049"></a>00049 <span class="comment">// Implicit basic constructors</span>
82 <a name="l00050"></a>00050
83 <a name="l00051"></a>00051 fvec4SIMD();
84 <a name="l00052"></a>00052 fvec4SIMD(__m128 <span class="keyword">const</span> &amp; Data);
85 <a name="l00053"></a>00053 fvec4SIMD(fvec4SIMD <span class="keyword">const</span> &amp; v);
86 <a name="l00054"></a>00054
87 <a name="l00056"></a>00056 <span class="comment">// Explicit basic constructors</span>
88 <a name="l00057"></a>00057
89 <a name="l00058"></a>00058 <span class="keyword">explicit</span> fvec4SIMD(
90 <a name="l00059"></a>00059 ctor);
91 <a name="l00060"></a>00060 <span class="keyword">explicit</span> fvec4SIMD(
92 <a name="l00061"></a>00061 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
93 <a name="l00062"></a>00062 <span class="keyword">explicit</span> fvec4SIMD(
94 <a name="l00063"></a>00063 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; x,
95 <a name="l00064"></a>00064 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y,
96 <a name="l00065"></a>00065 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; z,
97 <a name="l00066"></a>00066 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; w);
98 <a name="l00067"></a>00067 <span class="keyword">explicit</span> fvec4SIMD(
99 <a name="l00068"></a>00068 tvec4&lt;float&gt; <span class="keyword">const</span> &amp; v);
100 <a name="l00069"></a>00069
101 <a name="l00072"></a>00072
102 <a name="l00073"></a>00073 fvec4SIMD(vec2 <span class="keyword">const</span> &amp; v, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s1, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s2);
103 <a name="l00074"></a>00074 fvec4SIMD(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s1, vec2 <span class="keyword">const</span> &amp; v, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s2);
104 <a name="l00075"></a>00075 fvec4SIMD(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s1, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s2, vec2 <span class="keyword">const</span> &amp; v);
105 <a name="l00076"></a>00076 fvec4SIMD(<a class="code" href="a00234.html#gac422c7058a7c9963b55ad70764c62752" title="3 components vector of floating-point numbers.">vec3</a> <span class="keyword">const</span> &amp; v, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
106 <a name="l00077"></a>00077 fvec4SIMD(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, <a class="code" href="a00234.html#gac422c7058a7c9963b55ad70764c62752" title="3 components vector of floating-point numbers.">vec3</a> <span class="keyword">const</span> &amp; v);
107 <a name="l00078"></a>00078 fvec4SIMD(vec2 <span class="keyword">const</span> &amp; v1, vec2 <span class="keyword">const</span> &amp; v2);
108 <a name="l00079"></a>00079 <span class="comment">//fvec4SIMD(ivec4SIMD const &amp; v);</span>
109 <a name="l00080"></a>00080
110 <a name="l00082"></a>00082 <span class="comment">// Unary arithmetic operators</span>
111 <a name="l00083"></a>00083
112 <a name="l00084"></a>00084 fvec4SIMD&amp; operator= (fvec4SIMD <span class="keyword">const</span> &amp; v);
113 <a name="l00085"></a>00085 fvec4SIMD&amp; operator+=(fvec4SIMD <span class="keyword">const</span> &amp; v);
114 <a name="l00086"></a>00086 fvec4SIMD&amp; operator-=(fvec4SIMD <span class="keyword">const</span> &amp; v);
115 <a name="l00087"></a>00087 fvec4SIMD&amp; operator*=(fvec4SIMD <span class="keyword">const</span> &amp; v);
116 <a name="l00088"></a>00088 fvec4SIMD&amp; operator/=(fvec4SIMD <span class="keyword">const</span> &amp; v);
117 <a name="l00089"></a>00089
118 <a name="l00090"></a>00090 fvec4SIMD&amp; operator+=(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
119 <a name="l00091"></a>00091 fvec4SIMD&amp; operator-=(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
120 <a name="l00092"></a>00092 fvec4SIMD&amp; operator*=(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
121 <a name="l00093"></a>00093 fvec4SIMD&amp; operator/=(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);
122 <a name="l00094"></a>00094
123 <a name="l00095"></a>00095 fvec4SIMD&amp; operator++();
124 <a name="l00096"></a>00096 fvec4SIMD&amp; operator--();
125 <a name="l00097"></a>00097
126 <a name="l00099"></a>00099 <span class="comment">// Swizzle operators</span>
127 <a name="l00100"></a>00100
128 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;comp X, comp Y, comp Z, comp W&gt;
129 <a name="l00102"></a>00102 fvec4SIMD&amp; swizzle();
130 <a name="l00103"></a>00103 <span class="keyword">template</span> &lt;comp X, comp Y, comp Z, comp W&gt;
131 <a name="l00104"></a>00104 fvec4SIMD swizzle() <span class="keyword">const</span>;
132 <a name="l00105"></a>00105 <span class="keyword">template</span> &lt;comp X, comp Y, comp Z&gt;
133 <a name="l00106"></a>00106 fvec4SIMD swizzle() <span class="keyword">const</span>;
134 <a name="l00107"></a>00107 <span class="keyword">template</span> &lt;comp X, comp Y&gt;
135 <a name="l00108"></a>00108 fvec4SIMD swizzle() <span class="keyword">const</span>;
136 <a name="l00109"></a>00109 <span class="keyword">template</span> &lt;comp X&gt;
137 <a name="l00110"></a>00110 fvec4SIMD swizzle() <span class="keyword">const</span>;
138 <a name="l00111"></a>00111 };
139 <a name="l00112"></a>00112 }<span class="comment">//namespace detail</span>
140140 <a name="l00113"></a>00113
141 <a name="l00114"></a>00114 }<span class="comment">//namespace detail</span>
142 <a name="l00115"></a>00115
143 <a name="l00116"></a>00116 <span class="keyword">namespace </span>gtx{
144 <a name="l00118"></a><a class="code" href="a00215.html">00118</a> <span class="keyword">namespace </span>simd_vec4
145 <a name="l00119"></a>00119 {
146 <a name="l00120"></a>00120 <span class="keyword">typedef</span> detail::fvec4SIMD simdVec4;
141 <a name="l00114"></a>00114 <span class="keyword">namespace </span>gtx{
142 <a name="l00115"></a><a class="code" href="a00215.html">00115</a> <span class="keyword">namespace </span>simd_vec4
143 <a name="l00116"></a>00116 {
144 <a name="l00117"></a>00117 <span class="keyword">typedef</span> glm::detail::fvec4SIMD simdVec4;
145 <a name="l00118"></a>00118
147146 <a name="l00121"></a>00121
148 <a name="l00124"></a>00124
149 <a name="l00127"></a>00127 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;float&gt;</a> <a class="code" href="a00292.html#gaf44c64b2f9e70746b8a83571812670fc" title="Convert a simdVec4 to a vec4.">vec4_cast</a>(
150 <a name="l00128"></a>00128 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
151 <a name="l00129"></a>00129
152 <a name="l00132"></a>00132 detail::fvec4SIMD <a class="code" href="a00292.html#ga427e341830f94e41ece21ea4ebc854c3" title="Returns x if x &amp;gt;= 0; otherwise, it returns -x.">abs</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
153 <a name="l00133"></a>00133
154 <a name="l00136"></a>00136 detail::fvec4SIMD <a class="code" href="a00292.html#ga5a32ecd67af075293c5c8278f2938d4d" title="Returns 1.0 if x &amp;gt; 0, 0.0 if x = 0, or -1.0 if x &amp;lt; 0.">sign</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
155 <a name="l00137"></a>00137
156 <a name="l00140"></a>00140 detail::fvec4SIMD <a class="code" href="a00292.html#gab7b1e6c9349aec87e1d3346e867588d6" title="Returns a value equal to the nearest integer that is less then or equal to x.">floor</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
157 <a name="l00141"></a>00141
158 <a name="l00145"></a>00145 detail::fvec4SIMD <a class="code" href="a00292.html#ga4733720fa96ed2125f15e4b96578f486" title="Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...">trunc</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
159 <a name="l00146"></a>00146
160 <a name="l00153"></a>00153 detail::fvec4SIMD <a class="code" href="a00292.html#gad17e750a691edfe51fd1f60d8cac2329" title="Returns a value equal to the nearest integer to x.">round</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
161 <a name="l00154"></a>00154
162 <a name="l00159"></a>00159 <span class="comment">//detail::fvec4SIMD roundEven(detail::fvec4SIMD const &amp; x);</span>
163 <a name="l00160"></a>00160
164 <a name="l00164"></a>00164 detail::fvec4SIMD <a class="code" href="a00292.html#ga3ce76f0bb739c0d5f04e7bfa4251993d" title="Returns a value equal to the nearest integer to x.">ceil</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
165 <a name="l00165"></a>00165
166 <a name="l00168"></a>00168 detail::fvec4SIMD <a class="code" href="a00292.html#ga0a98f9d76fee0ca46c1f97861e3e366c" title="Return x - floor(x).">fract</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
167 <a name="l00169"></a>00169
168 <a name="l00173"></a>00173 detail::fvec4SIMD <a class="code" href="a00292.html#gaf95a2c5c60a6f2a36911d32901e44aba" title="Modulus.">mod</a>(
169 <a name="l00174"></a>00174 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
170 <a name="l00175"></a>00175 detail::fvec4SIMD <span class="keyword">const</span> &amp; y);
171 <a name="l00176"></a>00176
172 <a name="l00180"></a>00180 detail::fvec4SIMD <a class="code" href="a00292.html#gaf95a2c5c60a6f2a36911d32901e44aba" title="Modulus.">mod</a>(
173 <a name="l00181"></a>00181 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
174 <a name="l00182"></a>00182 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y);
175 <a name="l00183"></a>00183
176 <a name="l00189"></a>00189 <span class="comment">//detail::fvec4SIMD modf(</span>
177 <a name="l00190"></a>00190 <span class="comment">// detail::fvec4SIMD const &amp; x, </span>
178 <a name="l00191"></a>00191 <span class="comment">// detail::fvec4SIMD &amp; i);</span>
179 <a name="l00192"></a>00192
180 <a name="l00195"></a>00195 detail::fvec4SIMD <a class="code" href="a00292.html#gac8850ebd4ae655de76f375105cf7b3d8" title="Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...">min</a>(
181 <a name="l00196"></a>00196 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
182 <a name="l00197"></a>00197 detail::fvec4SIMD <span class="keyword">const</span> &amp; y);
183 <a name="l00198"></a>00198
184 <a name="l00199"></a>00199 detail::fvec4SIMD <a class="code" href="a00292.html#gac8850ebd4ae655de76f375105cf7b3d8" title="Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...">min</a>(
185 <a name="l00200"></a>00200 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
186 <a name="l00201"></a>00201 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y);
187 <a name="l00202"></a>00202
188 <a name="l00205"></a>00205 detail::fvec4SIMD <a class="code" href="a00292.html#ga10dbe289232abf23c8d668c646ff05d6" title="Returns y if x &amp;lt; y; otherwise, it returns x.">max</a>(
189 <a name="l00206"></a>00206 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
190 <a name="l00207"></a>00207 detail::fvec4SIMD <span class="keyword">const</span> &amp; y);
191 <a name="l00208"></a>00208
192 <a name="l00209"></a>00209 detail::fvec4SIMD <a class="code" href="a00292.html#ga10dbe289232abf23c8d668c646ff05d6" title="Returns y if x &amp;lt; y; otherwise, it returns x.">max</a>(
193 <a name="l00210"></a>00210 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
194 <a name="l00211"></a>00211 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y);
195 <a name="l00212"></a>00212
196 <a name="l00216"></a>00216 detail::fvec4SIMD <a class="code" href="a00292.html#ga73e895d1fdba2b620e84383517c552b0" title="Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...">clamp</a>(
197 <a name="l00217"></a>00217 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
198 <a name="l00218"></a>00218 detail::fvec4SIMD <span class="keyword">const</span> &amp; minVal,
199 <a name="l00219"></a>00219 detail::fvec4SIMD <span class="keyword">const</span> &amp; maxVal);
200 <a name="l00220"></a>00220
201 <a name="l00221"></a>00221 detail::fvec4SIMD <a class="code" href="a00292.html#ga73e895d1fdba2b620e84383517c552b0" title="Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...">clamp</a>(
202 <a name="l00222"></a>00222 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
203 <a name="l00223"></a>00223 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; minVal,
204 <a name="l00224"></a>00224 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; maxVal);
205 <a name="l00225"></a>00225
206 <a name="l00249"></a>00249 <span class="comment">// \todo Test when &#39;a&#39; is a boolean.</span>
207 <a name="l00251"></a>00251 <span class="comment"></span> detail::fvec4SIMD <a class="code" href="a00292.html#gafb120dd721c6b87f5f23c3edd159cfaa" title="(From GLM_GTX_simd_vec4 extension, common function)">mix</a>(
208 <a name="l00252"></a>00252 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
209 <a name="l00253"></a>00253 detail::fvec4SIMD <span class="keyword">const</span> &amp; y,
210 <a name="l00254"></a>00254 detail::fvec4SIMD <span class="keyword">const</span> &amp; a);
211 <a name="l00255"></a>00255
212 <a name="l00258"></a>00258 detail::fvec4SIMD <a class="code" href="a00292.html#ga459647604ac2aa0a97c4eb739a7302cb" title="Returns 0.0 if x &amp;lt; edge, otherwise it returns 1.0.">step</a>(
213 <a name="l00259"></a>00259 detail::fvec4SIMD <span class="keyword">const</span> &amp; edge,
214 <a name="l00260"></a>00260 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
215 <a name="l00261"></a>00261
216 <a name="l00262"></a>00262 detail::fvec4SIMD <a class="code" href="a00292.html#ga459647604ac2aa0a97c4eb739a7302cb" title="Returns 0.0 if x &amp;lt; edge, otherwise it returns 1.0.">step</a>(
217 <a name="l00263"></a>00263 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; edge,
218 <a name="l00264"></a>00264 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
219 <a name="l00265"></a>00265
220 <a name="l00276"></a>00276 detail::fvec4SIMD <a class="code" href="a00292.html#gaeadaacf6c87b0699292de98b7140a278" title="Returns 0.0 if x &amp;lt;= edge0 and 1.0 if x &amp;gt;= edge1 and performs smooth Hermite interpolation betwe...">smoothstep</a>(
221 <a name="l00277"></a>00277 detail::fvec4SIMD <span class="keyword">const</span> &amp; edge0,
222 <a name="l00278"></a>00278 detail::fvec4SIMD <span class="keyword">const</span> &amp; edge1,
223 <a name="l00279"></a>00279 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
224 <a name="l00280"></a>00280
225 <a name="l00281"></a>00281 detail::fvec4SIMD <a class="code" href="a00292.html#gaeadaacf6c87b0699292de98b7140a278" title="Returns 0.0 if x &amp;lt;= edge0 and 1.0 if x &amp;gt;= edge1 and performs smooth Hermite interpolation betwe...">smoothstep</a>(
226 <a name="l00282"></a>00282 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; edge0,
227 <a name="l00283"></a>00283 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; edge1,
228 <a name="l00284"></a>00284 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
229 <a name="l00285"></a>00285
230 <a name="l00292"></a>00292 <span class="comment">//bvec4 isnan(detail::fvec4SIMD const &amp; x);</span>
231 <a name="l00293"></a>00293
232 <a name="l00300"></a>00300 <span class="comment">//bvec4 isinf(detail::fvec4SIMD const &amp; x);</span>
233 <a name="l00301"></a>00301
234 <a name="l00306"></a>00306 <span class="comment">//detail::ivec4SIMD floatBitsToInt(detail::fvec4SIMD const &amp; value);</span>
235 <a name="l00307"></a>00307
236 <a name="l00314"></a>00314 <span class="comment">//detail::fvec4SIMD intBitsToFloat(detail::ivec4SIMD const &amp; value);</span>
237 <a name="l00315"></a>00315
238 <a name="l00318"></a>00318 detail::fvec4SIMD <a class="code" href="a00292.html#ga4b9f36f4524482b43324f4631944569d" title="Returns true if x holds a NaN (not a number) representation in the underlying implementation&amp;#39;s se...">fma</a>(
239 <a name="l00319"></a>00319 detail::fvec4SIMD <span class="keyword">const</span> &amp; a,
240 <a name="l00320"></a>00320 detail::fvec4SIMD <span class="keyword">const</span> &amp; b,
241 <a name="l00321"></a>00321 detail::fvec4SIMD <span class="keyword">const</span> &amp; c);
242 <a name="l00322"></a>00322
243 <a name="l00332"></a>00332 <span class="comment">//detail::fvec4SIMD frexp(detail::fvec4SIMD const &amp; x, detail::ivec4SIMD &amp; exp);</span>
244 <a name="l00333"></a>00333
245 <a name="l00340"></a>00340 <span class="comment">//detail::fvec4SIMD ldexp(detail::fvec4SIMD const &amp; x, detail::ivec4SIMD const &amp; exp);</span>
246 <a name="l00341"></a>00341
247 <a name="l00344"></a>00344 <span class="keywordtype">float</span> <a class="code" href="a00292.html#gaf76a38ce8c466c9b0bc4c1b5db1a6faa" title="Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two...">length</a>(
248 <a name="l00345"></a>00345 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
249 <a name="l00346"></a>00346
250 <a name="l00350"></a>00350 <span class="keywordtype">float</span> <a class="code" href="a00292.html#ga0d4469acfe98c8b2eab8696bf25a3dde" title="Returns the length of x, i.e., sqrt(x * x).">fastLength</a>(
251 <a name="l00351"></a>00351 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
252 <a name="l00352"></a>00352
253 <a name="l00356"></a>00356 <span class="keywordtype">float</span> <a class="code" href="a00292.html#ga97a71f5eed0feb541ea1131a46e4422e" title="Returns the length of x, i.e., sqrt(x * x).">niceLength</a>(
254 <a name="l00357"></a>00357 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
255 <a name="l00358"></a>00358
256 <a name="l00361"></a>00361 detail::fvec4SIMD <a class="code" href="a00292.html#ga6c7fffeb58db66f602585b24a8e4f2db" title="Returns the length of x, i.e., sqrt(x * x).">length4</a>(
257 <a name="l00362"></a>00362 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
258 <a name="l00363"></a>00363
259 <a name="l00367"></a>00367 detail::fvec4SIMD <a class="code" href="a00292.html#ga1c85830900d5d3f29902b12d46c60dd3" title="Returns the length of x, i.e., sqrt(x * x).">fastLength4</a>(
260 <a name="l00368"></a>00368 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
261 <a name="l00369"></a>00369
262 <a name="l00373"></a>00373 detail::fvec4SIMD <a class="code" href="a00292.html#ga159f5857abf0df4250bae94f95b9d015" title="Returns the length of x, i.e., sqrt(x * x).">niceLength4</a>(
263 <a name="l00374"></a>00374 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
264 <a name="l00375"></a>00375
265 <a name="l00378"></a>00378 <span class="keywordtype">float</span> <a class="code" href="a00292.html#gac514ca90bcc5a17bd7162ea32a220580" title="Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).">distance</a>(
266 <a name="l00379"></a>00379 detail::fvec4SIMD <span class="keyword">const</span> &amp; p0,
267 <a name="l00380"></a>00380 detail::fvec4SIMD <span class="keyword">const</span> &amp; p1);
268 <a name="l00381"></a>00381
269 <a name="l00384"></a>00384 detail::fvec4SIMD <a class="code" href="a00292.html#gae9238f5011fd124d44dad7b39f0d5a0f" title="Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).">distance4</a>(
270 <a name="l00385"></a>00385 detail::fvec4SIMD <span class="keyword">const</span> &amp; p0,
271 <a name="l00386"></a>00386 detail::fvec4SIMD <span class="keyword">const</span> &amp; p1);
272 <a name="l00387"></a>00387
273 <a name="l00390"></a>00390 <span class="keywordtype">float</span> <a class="code" href="a00292.html#ga44faf22be31f5809ed97bf611a56f3e9" title="Returns the dot product of x and y, i.e., result = x * y.">simdDot</a>(
274 <a name="l00391"></a>00391 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
275 <a name="l00392"></a>00392 detail::fvec4SIMD <span class="keyword">const</span> &amp; y);
276 <a name="l00393"></a>00393
277 <a name="l00396"></a>00396 detail::fvec4SIMD <a class="code" href="a00292.html#gaa50f94e3de246ea1a1914266aef2f74b" title="Returns the dot product of x and y, i.e., result = x * y.">dot4</a>(
278 <a name="l00397"></a>00397 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
279 <a name="l00398"></a>00398 detail::fvec4SIMD <span class="keyword">const</span> &amp; y);
280 <a name="l00399"></a>00399
281 <a name="l00402"></a>00402 detail::fvec4SIMD <a class="code" href="a00292.html#gabe4bd036ccfd0e1d53ea828d478cdd2c" title="Returns the cross product of x and y.">cross</a>(
282 <a name="l00403"></a>00403 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
283 <a name="l00404"></a>00404 detail::fvec4SIMD <span class="keyword">const</span> &amp; y);
284 <a name="l00405"></a>00405
285 <a name="l00408"></a>00408 detail::fvec4SIMD <a class="code" href="a00292.html#ga4e5cbc78bdd522b61ecd2154b50251af" title="Returns a vector in the same direction as x but with length of 1.">normalize</a>(
286 <a name="l00409"></a>00409 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
287 <a name="l00410"></a>00410
288 <a name="l00414"></a>00414 detail::fvec4SIMD <a class="code" href="a00292.html#ga58eeeead0d2b381f7d461dac26381125" title="Returns a vector in the same direction as x but with length of 1.">fastNormalize</a>(
289 <a name="l00415"></a>00415 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
290 <a name="l00416"></a>00416
291 <a name="l00419"></a>00419 detail::fvec4SIMD <a class="code" href="a00292.html#gac11cb08f6ba68f761b7146a60e72da55" title="If dot(Nref, I) &amp;lt; 0.0, return N, otherwise, return -N.">simdFaceforward</a>(
292 <a name="l00420"></a>00420 detail::fvec4SIMD <span class="keyword">const</span> &amp; N,
293 <a name="l00421"></a>00421 detail::fvec4SIMD <span class="keyword">const</span> &amp; I,
294 <a name="l00422"></a>00422 detail::fvec4SIMD <span class="keyword">const</span> &amp; Nref);
295 <a name="l00423"></a>00423
296 <a name="l00427"></a>00427 detail::fvec4SIMD <a class="code" href="a00292.html#ga42f1073cf493e7c299c72ae95180265d" title="For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...">reflect</a>(
297 <a name="l00428"></a>00428 detail::fvec4SIMD <span class="keyword">const</span> &amp; I,
298 <a name="l00429"></a>00429 detail::fvec4SIMD <span class="keyword">const</span> &amp; N);
299 <a name="l00430"></a>00430
300 <a name="l00435"></a>00435 detail::fvec4SIMD <a class="code" href="a00292.html#ga894c3ec0524d03313dc9c72d36290c00" title="For the incident vector I and surface normal N, and the ratio of indices of refraction eta...">refract</a>(
301 <a name="l00436"></a>00436 detail::fvec4SIMD <span class="keyword">const</span> &amp; I,
302 <a name="l00437"></a>00437 detail::fvec4SIMD <span class="keyword">const</span> &amp; N,
303 <a name="l00438"></a>00438 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; eta);
304 <a name="l00439"></a>00439
305 <a name="l00442"></a>00442 detail::fvec4SIMD <a class="code" href="a00292.html#ga28dbd1d165fc4301de4fb16a049fcfb2" title="Returns the positive square root of x.">sqrt</a>(
306 <a name="l00443"></a>00443 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
307 <a name="l00444"></a>00444
308 <a name="l00448"></a>00448 detail::fvec4SIMD <a class="code" href="a00292.html#ga163877845325804cda05e8b5142822d5" title="Returns the positive square root of x with the nicest quality but very slow.">niceSqrt</a>(
309 <a name="l00449"></a>00449 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
310 <a name="l00450"></a>00450
311 <a name="l00454"></a>00454 detail::fvec4SIMD <a class="code" href="a00292.html#ga56465ed17cafbff1e225f82eeb7184e5" title="Returns the positive square root of x Less accurate but much faster than sqrt.">fastSqrt</a>(
312 <a name="l00455"></a>00455 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
313 <a name="l00456"></a>00456
314 <a name="l00459"></a>00459 detail::fvec4SIMD <a class="code" href="a00292.html#gaa4e215b72e48012a6388a1477c84e2ad" title="Returns the reciprocal of the positive square root of x.">inversesqrt</a>(
315 <a name="l00460"></a>00460 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
316 <a name="l00461"></a>00461
317 <a name="l00465"></a>00465 detail::fvec4SIMD <a class="code" href="a00292.html#gab299477526abc9646263950bfbe32b3f" title="Returns the reciprocal of the positive square root of x.">fastInversesqrt</a>(
318 <a name="l00466"></a>00466 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
319 <a name="l00467"></a>00467
320 <a name="l00469"></a>00469 }<span class="comment">//namespace simd_vec4</span>
321 <a name="l00470"></a>00470 }<span class="comment">//namespace gtx</span>
322 <a name="l00471"></a>00471 }<span class="comment">//namespace glm</span>
323 <a name="l00472"></a>00472
324 <a name="l00473"></a>00473 <span class="preprocessor">#include &quot;simd_vec4.inl&quot;</span>
325 <a name="l00474"></a>00474
326 <a name="l00475"></a>00475 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::simd_vec4;}
327 <a name="l00476"></a>00476
328 <a name="l00477"></a>00477 <span class="preprocessor">#endif//glm_gtx_simd_vec4</span>
147 <a name="l00124"></a>00124 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;float&gt;</a> <a class="code" href="a00291.html#gaf44c64b2f9e70746b8a83571812670fc" title="Convert a simdVec4 to a vec4.">vec4_cast</a>(
148 <a name="l00125"></a>00125 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
149 <a name="l00126"></a>00126
150 <a name="l00129"></a>00129 detail::fvec4SIMD <a class="code" href="a00291.html#ga427e341830f94e41ece21ea4ebc854c3" title="Returns x if x &amp;gt;= 0; otherwise, it returns -x.">abs</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
151 <a name="l00130"></a>00130
152 <a name="l00133"></a>00133 detail::fvec4SIMD <a class="code" href="a00291.html#ga5a32ecd67af075293c5c8278f2938d4d" title="Returns 1.0 if x &amp;gt; 0, 0.0 if x = 0, or -1.0 if x &amp;lt; 0.">sign</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
153 <a name="l00134"></a>00134
154 <a name="l00137"></a>00137 detail::fvec4SIMD <a class="code" href="a00291.html#gab7b1e6c9349aec87e1d3346e867588d6" title="Returns a value equal to the nearest integer that is less then or equal to x.">floor</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
155 <a name="l00138"></a>00138
156 <a name="l00142"></a>00142 detail::fvec4SIMD <a class="code" href="a00291.html#ga4733720fa96ed2125f15e4b96578f486" title="Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...">trunc</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
157 <a name="l00143"></a>00143
158 <a name="l00150"></a>00150 detail::fvec4SIMD <a class="code" href="a00291.html#gad17e750a691edfe51fd1f60d8cac2329" title="Returns a value equal to the nearest integer to x.">round</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
159 <a name="l00151"></a>00151
160 <a name="l00156"></a>00156 <span class="comment">//detail::fvec4SIMD roundEven(detail::fvec4SIMD const &amp; x);</span>
161 <a name="l00157"></a>00157
162 <a name="l00161"></a>00161 detail::fvec4SIMD <a class="code" href="a00291.html#ga3ce76f0bb739c0d5f04e7bfa4251993d" title="Returns a value equal to the nearest integer to x.">ceil</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
163 <a name="l00162"></a>00162
164 <a name="l00165"></a>00165 detail::fvec4SIMD <a class="code" href="a00291.html#ga0a98f9d76fee0ca46c1f97861e3e366c" title="Return x - floor(x).">fract</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
165 <a name="l00166"></a>00166
166 <a name="l00170"></a>00170 detail::fvec4SIMD <a class="code" href="a00291.html#gaf95a2c5c60a6f2a36911d32901e44aba" title="Modulus.">mod</a>(
167 <a name="l00171"></a>00171 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
168 <a name="l00172"></a>00172 detail::fvec4SIMD <span class="keyword">const</span> &amp; y);
169 <a name="l00173"></a>00173
170 <a name="l00177"></a>00177 detail::fvec4SIMD <a class="code" href="a00291.html#gaf95a2c5c60a6f2a36911d32901e44aba" title="Modulus.">mod</a>(
171 <a name="l00178"></a>00178 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
172 <a name="l00179"></a>00179 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y);
173 <a name="l00180"></a>00180
174 <a name="l00186"></a>00186 <span class="comment">//detail::fvec4SIMD modf(</span>
175 <a name="l00187"></a>00187 <span class="comment">// detail::fvec4SIMD const &amp; x, </span>
176 <a name="l00188"></a>00188 <span class="comment">// detail::fvec4SIMD &amp; i);</span>
177 <a name="l00189"></a>00189
178 <a name="l00192"></a>00192 detail::fvec4SIMD <a class="code" href="a00291.html#gac8850ebd4ae655de76f375105cf7b3d8" title="Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...">min</a>(
179 <a name="l00193"></a>00193 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
180 <a name="l00194"></a>00194 detail::fvec4SIMD <span class="keyword">const</span> &amp; y);
181 <a name="l00195"></a>00195
182 <a name="l00196"></a>00196 detail::fvec4SIMD <a class="code" href="a00291.html#gac8850ebd4ae655de76f375105cf7b3d8" title="Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...">min</a>(
183 <a name="l00197"></a>00197 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
184 <a name="l00198"></a>00198 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y);
185 <a name="l00199"></a>00199
186 <a name="l00202"></a>00202 detail::fvec4SIMD <a class="code" href="a00291.html#ga10dbe289232abf23c8d668c646ff05d6" title="Returns y if x &amp;lt; y; otherwise, it returns x.">max</a>(
187 <a name="l00203"></a>00203 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
188 <a name="l00204"></a>00204 detail::fvec4SIMD <span class="keyword">const</span> &amp; y);
189 <a name="l00205"></a>00205
190 <a name="l00206"></a>00206 detail::fvec4SIMD <a class="code" href="a00291.html#ga10dbe289232abf23c8d668c646ff05d6" title="Returns y if x &amp;lt; y; otherwise, it returns x.">max</a>(
191 <a name="l00207"></a>00207 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
192 <a name="l00208"></a>00208 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y);
193 <a name="l00209"></a>00209
194 <a name="l00213"></a>00213 detail::fvec4SIMD <a class="code" href="a00291.html#ga73e895d1fdba2b620e84383517c552b0" title="Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...">clamp</a>(
195 <a name="l00214"></a>00214 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
196 <a name="l00215"></a>00215 detail::fvec4SIMD <span class="keyword">const</span> &amp; minVal,
197 <a name="l00216"></a>00216 detail::fvec4SIMD <span class="keyword">const</span> &amp; maxVal);
198 <a name="l00217"></a>00217
199 <a name="l00218"></a>00218 detail::fvec4SIMD <a class="code" href="a00291.html#ga73e895d1fdba2b620e84383517c552b0" title="Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...">clamp</a>(
200 <a name="l00219"></a>00219 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
201 <a name="l00220"></a>00220 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; minVal,
202 <a name="l00221"></a>00221 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; maxVal);
203 <a name="l00222"></a>00222
204 <a name="l00246"></a>00246 <span class="comment">// \todo Test when &#39;a&#39; is a boolean.</span>
205 <a name="l00248"></a>00248 <span class="comment"></span> detail::fvec4SIMD <a class="code" href="a00291.html#gafb120dd721c6b87f5f23c3edd159cfaa" title="(From GLM_GTX_simd_vec4 extension, common function)">mix</a>(
206 <a name="l00249"></a>00249 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
207 <a name="l00250"></a>00250 detail::fvec4SIMD <span class="keyword">const</span> &amp; y,
208 <a name="l00251"></a>00251 detail::fvec4SIMD <span class="keyword">const</span> &amp; a);
209 <a name="l00252"></a>00252
210 <a name="l00255"></a>00255 detail::fvec4SIMD <a class="code" href="a00291.html#ga459647604ac2aa0a97c4eb739a7302cb" title="Returns 0.0 if x &amp;lt; edge, otherwise it returns 1.0.">step</a>(
211 <a name="l00256"></a>00256 detail::fvec4SIMD <span class="keyword">const</span> &amp; edge,
212 <a name="l00257"></a>00257 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
213 <a name="l00258"></a>00258
214 <a name="l00259"></a>00259 detail::fvec4SIMD <a class="code" href="a00291.html#ga459647604ac2aa0a97c4eb739a7302cb" title="Returns 0.0 if x &amp;lt; edge, otherwise it returns 1.0.">step</a>(
215 <a name="l00260"></a>00260 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; edge,
216 <a name="l00261"></a>00261 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
217 <a name="l00262"></a>00262
218 <a name="l00273"></a>00273 detail::fvec4SIMD <a class="code" href="a00291.html#gaeadaacf6c87b0699292de98b7140a278" title="Returns 0.0 if x &amp;lt;= edge0 and 1.0 if x &amp;gt;= edge1 and performs smooth Hermite interpolation betwe...">smoothstep</a>(
219 <a name="l00274"></a>00274 detail::fvec4SIMD <span class="keyword">const</span> &amp; edge0,
220 <a name="l00275"></a>00275 detail::fvec4SIMD <span class="keyword">const</span> &amp; edge1,
221 <a name="l00276"></a>00276 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
222 <a name="l00277"></a>00277
223 <a name="l00278"></a>00278 detail::fvec4SIMD <a class="code" href="a00291.html#gaeadaacf6c87b0699292de98b7140a278" title="Returns 0.0 if x &amp;lt;= edge0 and 1.0 if x &amp;gt;= edge1 and performs smooth Hermite interpolation betwe...">smoothstep</a>(
224 <a name="l00279"></a>00279 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; edge0,
225 <a name="l00280"></a>00280 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; edge1,
226 <a name="l00281"></a>00281 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
227 <a name="l00282"></a>00282
228 <a name="l00289"></a>00289 <span class="comment">//bvec4 isnan(detail::fvec4SIMD const &amp; x);</span>
229 <a name="l00290"></a>00290
230 <a name="l00297"></a>00297 <span class="comment">//bvec4 isinf(detail::fvec4SIMD const &amp; x);</span>
231 <a name="l00298"></a>00298
232 <a name="l00303"></a>00303 <span class="comment">//detail::ivec4SIMD floatBitsToInt(detail::fvec4SIMD const &amp; value);</span>
233 <a name="l00304"></a>00304
234 <a name="l00311"></a>00311 <span class="comment">//detail::fvec4SIMD intBitsToFloat(detail::ivec4SIMD const &amp; value);</span>
235 <a name="l00312"></a>00312
236 <a name="l00315"></a>00315 detail::fvec4SIMD <a class="code" href="a00291.html#ga4b9f36f4524482b43324f4631944569d" title="Returns true if x holds a NaN (not a number) representation in the underlying implementation&amp;#39;s se...">fma</a>(
237 <a name="l00316"></a>00316 detail::fvec4SIMD <span class="keyword">const</span> &amp; a,
238 <a name="l00317"></a>00317 detail::fvec4SIMD <span class="keyword">const</span> &amp; b,
239 <a name="l00318"></a>00318 detail::fvec4SIMD <span class="keyword">const</span> &amp; c);
240 <a name="l00319"></a>00319
241 <a name="l00329"></a>00329 <span class="comment">//detail::fvec4SIMD frexp(detail::fvec4SIMD const &amp; x, detail::ivec4SIMD &amp; exp);</span>
242 <a name="l00330"></a>00330
243 <a name="l00337"></a>00337 <span class="comment">//detail::fvec4SIMD ldexp(detail::fvec4SIMD const &amp; x, detail::ivec4SIMD const &amp; exp);</span>
244 <a name="l00338"></a>00338
245 <a name="l00341"></a>00341 <span class="keywordtype">float</span> <a class="code" href="a00291.html#gaf76a38ce8c466c9b0bc4c1b5db1a6faa" title="Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two...">length</a>(
246 <a name="l00342"></a>00342 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
247 <a name="l00343"></a>00343
248 <a name="l00347"></a>00347 <span class="keywordtype">float</span> <a class="code" href="a00291.html#ga0d4469acfe98c8b2eab8696bf25a3dde" title="Returns the length of x, i.e., sqrt(x * x).">fastLength</a>(
249 <a name="l00348"></a>00348 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
250 <a name="l00349"></a>00349
251 <a name="l00353"></a>00353 <span class="keywordtype">float</span> <a class="code" href="a00291.html#ga97a71f5eed0feb541ea1131a46e4422e" title="Returns the length of x, i.e., sqrt(x * x).">niceLength</a>(
252 <a name="l00354"></a>00354 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
253 <a name="l00355"></a>00355
254 <a name="l00358"></a>00358 detail::fvec4SIMD <a class="code" href="a00291.html#ga6c7fffeb58db66f602585b24a8e4f2db" title="Returns the length of x, i.e., sqrt(x * x).">length4</a>(
255 <a name="l00359"></a>00359 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
256 <a name="l00360"></a>00360
257 <a name="l00364"></a>00364 detail::fvec4SIMD <a class="code" href="a00291.html#ga1c85830900d5d3f29902b12d46c60dd3" title="Returns the length of x, i.e., sqrt(x * x).">fastLength4</a>(
258 <a name="l00365"></a>00365 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
259 <a name="l00366"></a>00366
260 <a name="l00370"></a>00370 detail::fvec4SIMD <a class="code" href="a00291.html#ga159f5857abf0df4250bae94f95b9d015" title="Returns the length of x, i.e., sqrt(x * x).">niceLength4</a>(
261 <a name="l00371"></a>00371 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
262 <a name="l00372"></a>00372
263 <a name="l00375"></a>00375 <span class="keywordtype">float</span> <a class="code" href="a00291.html#gac514ca90bcc5a17bd7162ea32a220580" title="Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).">distance</a>(
264 <a name="l00376"></a>00376 detail::fvec4SIMD <span class="keyword">const</span> &amp; p0,
265 <a name="l00377"></a>00377 detail::fvec4SIMD <span class="keyword">const</span> &amp; p1);
266 <a name="l00378"></a>00378
267 <a name="l00381"></a>00381 detail::fvec4SIMD <a class="code" href="a00291.html#gae9238f5011fd124d44dad7b39f0d5a0f" title="Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).">distance4</a>(
268 <a name="l00382"></a>00382 detail::fvec4SIMD <span class="keyword">const</span> &amp; p0,
269 <a name="l00383"></a>00383 detail::fvec4SIMD <span class="keyword">const</span> &amp; p1);
270 <a name="l00384"></a>00384
271 <a name="l00387"></a>00387 <span class="keywordtype">float</span> <a class="code" href="a00291.html#ga44faf22be31f5809ed97bf611a56f3e9" title="Returns the dot product of x and y, i.e., result = x * y.">simdDot</a>(
272 <a name="l00388"></a>00388 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
273 <a name="l00389"></a>00389 detail::fvec4SIMD <span class="keyword">const</span> &amp; y);
274 <a name="l00390"></a>00390
275 <a name="l00393"></a>00393 detail::fvec4SIMD <a class="code" href="a00291.html#gaa50f94e3de246ea1a1914266aef2f74b" title="Returns the dot product of x and y, i.e., result = x * y.">dot4</a>(
276 <a name="l00394"></a>00394 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
277 <a name="l00395"></a>00395 detail::fvec4SIMD <span class="keyword">const</span> &amp; y);
278 <a name="l00396"></a>00396
279 <a name="l00399"></a>00399 detail::fvec4SIMD <a class="code" href="a00291.html#gabe4bd036ccfd0e1d53ea828d478cdd2c" title="Returns the cross product of x and y.">cross</a>(
280 <a name="l00400"></a>00400 detail::fvec4SIMD <span class="keyword">const</span> &amp; x,
281 <a name="l00401"></a>00401 detail::fvec4SIMD <span class="keyword">const</span> &amp; y);
282 <a name="l00402"></a>00402
283 <a name="l00405"></a>00405 detail::fvec4SIMD <a class="code" href="a00291.html#ga4e5cbc78bdd522b61ecd2154b50251af" title="Returns a vector in the same direction as x but with length of 1.">normalize</a>(
284 <a name="l00406"></a>00406 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
285 <a name="l00407"></a>00407
286 <a name="l00411"></a>00411 detail::fvec4SIMD <a class="code" href="a00291.html#ga58eeeead0d2b381f7d461dac26381125" title="Returns a vector in the same direction as x but with length of 1.">fastNormalize</a>(
287 <a name="l00412"></a>00412 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
288 <a name="l00413"></a>00413
289 <a name="l00416"></a>00416 detail::fvec4SIMD <a class="code" href="a00291.html#gac11cb08f6ba68f761b7146a60e72da55" title="If dot(Nref, I) &amp;lt; 0.0, return N, otherwise, return -N.">simdFaceforward</a>(
290 <a name="l00417"></a>00417 detail::fvec4SIMD <span class="keyword">const</span> &amp; N,
291 <a name="l00418"></a>00418 detail::fvec4SIMD <span class="keyword">const</span> &amp; I,
292 <a name="l00419"></a>00419 detail::fvec4SIMD <span class="keyword">const</span> &amp; Nref);
293 <a name="l00420"></a>00420
294 <a name="l00424"></a>00424 detail::fvec4SIMD <a class="code" href="a00291.html#ga42f1073cf493e7c299c72ae95180265d" title="For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...">reflect</a>(
295 <a name="l00425"></a>00425 detail::fvec4SIMD <span class="keyword">const</span> &amp; I,
296 <a name="l00426"></a>00426 detail::fvec4SIMD <span class="keyword">const</span> &amp; N);
297 <a name="l00427"></a>00427
298 <a name="l00432"></a>00432 detail::fvec4SIMD <a class="code" href="a00291.html#ga894c3ec0524d03313dc9c72d36290c00" title="For the incident vector I and surface normal N, and the ratio of indices of refraction eta...">refract</a>(
299 <a name="l00433"></a>00433 detail::fvec4SIMD <span class="keyword">const</span> &amp; I,
300 <a name="l00434"></a>00434 detail::fvec4SIMD <span class="keyword">const</span> &amp; N,
301 <a name="l00435"></a>00435 <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; eta);
302 <a name="l00436"></a>00436
303 <a name="l00439"></a>00439 detail::fvec4SIMD <a class="code" href="a00291.html#ga28dbd1d165fc4301de4fb16a049fcfb2" title="Returns the positive square root of x.">sqrt</a>(
304 <a name="l00440"></a>00440 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
305 <a name="l00441"></a>00441
306 <a name="l00445"></a>00445 detail::fvec4SIMD <a class="code" href="a00291.html#ga163877845325804cda05e8b5142822d5" title="Returns the positive square root of x with the nicest quality but very slow.">niceSqrt</a>(
307 <a name="l00446"></a>00446 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
308 <a name="l00447"></a>00447
309 <a name="l00451"></a>00451 detail::fvec4SIMD <a class="code" href="a00291.html#ga56465ed17cafbff1e225f82eeb7184e5" title="Returns the positive square root of x Less accurate but much faster than sqrt.">fastSqrt</a>(
310 <a name="l00452"></a>00452 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
311 <a name="l00453"></a>00453
312 <a name="l00456"></a>00456 detail::fvec4SIMD <a class="code" href="a00291.html#gaa4e215b72e48012a6388a1477c84e2ad" title="Returns the reciprocal of the positive square root of x.">inversesqrt</a>(
313 <a name="l00457"></a>00457 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
314 <a name="l00458"></a>00458
315 <a name="l00462"></a>00462 detail::fvec4SIMD <a class="code" href="a00291.html#gab299477526abc9646263950bfbe32b3f" title="Returns the reciprocal of the positive square root of x.">fastInversesqrt</a>(
316 <a name="l00463"></a>00463 detail::fvec4SIMD <span class="keyword">const</span> &amp; x);
317 <a name="l00464"></a>00464
318 <a name="l00466"></a>00466 }<span class="comment">//namespace simd_vec4</span>
319 <a name="l00467"></a>00467 }<span class="comment">//namespace gtx</span>
320 <a name="l00468"></a>00468 }<span class="comment">//namespace glm</span>
321 <a name="l00469"></a>00469
322 <a name="l00470"></a>00470 <span class="preprocessor">#include &quot;simd_vec4.inl&quot;</span>
323 <a name="l00471"></a>00471
324 <a name="l00472"></a>00472 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::simd_vec4;}
325 <a name="l00473"></a>00473
326 <a name="l00474"></a>00474 <span class="preprocessor">#endif//glm_gtx_simd_vec4</span>
329327 </pre></div></div>
330328 </div>
331329 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_simplex extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtx{
61 <a name="l00027"></a><a class="code" href="a00216.html">00027</a> <span class="keyword">namespace </span>spline
62 <a name="l00028"></a>00028 {
63 <a name="l00031"></a>00031
64 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
65 <a name="l00035"></a>00035 genType <a class="code" href="a00293.html#gaecb37259be4b2370eab845c6d531f55b" title="Return a point from a catmull rom curve.">catmullRom</a>(
66 <a name="l00036"></a>00036 genType <span class="keyword">const</span> &amp; v1,
67 <a name="l00037"></a>00037 genType <span class="keyword">const</span> &amp; v2,
68 <a name="l00038"></a>00038 genType <span class="keyword">const</span> &amp; v3,
69 <a name="l00039"></a>00039 genType <span class="keyword">const</span> &amp; v4,
70 <a name="l00040"></a>00040 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);
71 <a name="l00041"></a>00041
72 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
73 <a name="l00045"></a>00045 genType <a class="code" href="a00293.html#ga3ea772a4bdf8b3514ef12b47944c844c" title="Return a point from a hermite curve.">hermite</a>(
74 <a name="l00046"></a>00046 genType <span class="keyword">const</span> &amp; v1,
75 <a name="l00047"></a>00047 genType <span class="keyword">const</span> &amp; t1,
76 <a name="l00048"></a>00048 genType <span class="keyword">const</span> &amp; v2,
77 <a name="l00049"></a>00049 genType <span class="keyword">const</span> &amp; t2,
78 <a name="l00050"></a>00050 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);
79 <a name="l00051"></a>00051
80 <a name="l00054"></a>00054 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
81 <a name="l00055"></a>00055 genType <a class="code" href="a00293.html#gaae38edb178e0256e966955b19b61f617" title="Return a point from a cubic curve.">cubic</a>(
82 <a name="l00056"></a>00056 genType <span class="keyword">const</span> &amp; v1,
83 <a name="l00057"></a>00057 genType <span class="keyword">const</span> &amp; v2,
84 <a name="l00058"></a>00058 genType <span class="keyword">const</span> &amp; v3,
85 <a name="l00059"></a>00059 genType <span class="keyword">const</span> &amp; v4,
86 <a name="l00060"></a>00060 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);
87 <a name="l00061"></a>00061
88 <a name="l00063"></a>00063
89 <a name="l00064"></a>00064 }<span class="comment">//namespace simplex</span>
90 <a name="l00065"></a>00065 }<span class="comment">//namespace gtx</span>
91 <a name="l00066"></a>00066 }<span class="comment">//namespace glm</span>
92 <a name="l00067"></a>00067
93 <a name="l00068"></a>00068 <span class="preprocessor">#include &quot;simplex.inl&quot;</span>
94 <a name="l00069"></a>00069
95 <a name="l00070"></a>00070 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span><a class="code" href="a00306.html#gaab96cbe99e3757bb55c7d830462fab94" title="Simplex noise.">gtx::simplex</a>;}
96 <a name="l00071"></a>00071
97 <a name="l00072"></a>00072 <span class="preprocessor">#endif//glm_gtx_spline</span>
98 <a name="l00073"></a>00073 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00216.html">00025</a> <span class="keyword">namespace </span>spline
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
64 <a name="l00033"></a>00033 genType <a class="code" href="a00292.html#gaecb37259be4b2370eab845c6d531f55b" title="Return a point from a catmull rom curve.">catmullRom</a>(
65 <a name="l00034"></a>00034 genType <span class="keyword">const</span> &amp; v1,
66 <a name="l00035"></a>00035 genType <span class="keyword">const</span> &amp; v2,
67 <a name="l00036"></a>00036 genType <span class="keyword">const</span> &amp; v3,
68 <a name="l00037"></a>00037 genType <span class="keyword">const</span> &amp; v4,
69 <a name="l00038"></a>00038 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);
70 <a name="l00039"></a>00039
71 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
72 <a name="l00043"></a>00043 genType <a class="code" href="a00292.html#ga3ea772a4bdf8b3514ef12b47944c844c" title="Return a point from a hermite curve.">hermite</a>(
73 <a name="l00044"></a>00044 genType <span class="keyword">const</span> &amp; v1,
74 <a name="l00045"></a>00045 genType <span class="keyword">const</span> &amp; t1,
75 <a name="l00046"></a>00046 genType <span class="keyword">const</span> &amp; v2,
76 <a name="l00047"></a>00047 genType <span class="keyword">const</span> &amp; t2,
77 <a name="l00048"></a>00048 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);
78 <a name="l00049"></a>00049
79 <a name="l00052"></a>00052 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
80 <a name="l00053"></a>00053 genType <a class="code" href="a00292.html#gaae38edb178e0256e966955b19b61f617" title="Return a point from a cubic curve.">cubic</a>(
81 <a name="l00054"></a>00054 genType <span class="keyword">const</span> &amp; v1,
82 <a name="l00055"></a>00055 genType <span class="keyword">const</span> &amp; v2,
83 <a name="l00056"></a>00056 genType <span class="keyword">const</span> &amp; v3,
84 <a name="l00057"></a>00057 genType <span class="keyword">const</span> &amp; v4,
85 <a name="l00058"></a>00058 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);
86 <a name="l00059"></a>00059
87 <a name="l00061"></a>00061 }<span class="comment">// namespace simplex</span>
88 <a name="l00062"></a>00062 }<span class="comment">// namespace gtx</span>
89 <a name="l00063"></a>00063 }<span class="comment">// namespace glm</span>
90 <a name="l00064"></a>00064
91 <a name="l00065"></a>00065 <span class="preprocessor">#include &quot;simplex.inl&quot;</span>
92 <a name="l00066"></a>00066
93 <a name="l00067"></a>00067 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span><a class="code" href="a00306.html#gaab96cbe99e3757bb55c7d830462fab94" title="Simplex noise.">gtx::simplex</a>;}
94 <a name="l00068"></a>00068
95 <a name="l00069"></a>00069 <span class="preprocessor">#endif//glm_gtx_spline</span>
96 <a name="l00070"></a>00070 <span class="preprocessor"></span>
9997 </pre></div></div>
10098 </div>
10199 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_spline extension included&quot;)</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span>
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm
60 <a name="l00025"></a>00025 {
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>gtx{
62 <a name="l00028"></a>00028 <span class="keyword">namespace </span>spline
63 <a name="l00029"></a>00029 {
64 <a name="l00030"></a>00030 <span class="keyword">using namespace </span>gtx::optimum_pow;
65 <a name="l00031"></a>00031
66 <a name="l00034"></a>00034
67 <a name="l00037"></a>00037 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
68 <a name="l00038"></a>00038 genType <a class="code" href="a00293.html#gaecb37259be4b2370eab845c6d531f55b" title="Return a point from a catmull rom curve.">catmullRom</a>(
69 <a name="l00039"></a>00039 genType <span class="keyword">const</span> &amp; v1,
70 <a name="l00040"></a>00040 genType <span class="keyword">const</span> &amp; v2,
71 <a name="l00041"></a>00041 genType <span class="keyword">const</span> &amp; v3,
72 <a name="l00042"></a>00042 genType <span class="keyword">const</span> &amp; v4,
73 <a name="l00043"></a>00043 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);
74 <a name="l00044"></a>00044
75 <a name="l00047"></a>00047 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
76 <a name="l00048"></a>00048 genType <a class="code" href="a00293.html#ga3ea772a4bdf8b3514ef12b47944c844c" title="Return a point from a hermite curve.">hermite</a>(
77 <a name="l00049"></a>00049 genType <span class="keyword">const</span> &amp; v1,
78 <a name="l00050"></a>00050 genType <span class="keyword">const</span> &amp; t1,
79 <a name="l00051"></a>00051 genType <span class="keyword">const</span> &amp; v2,
80 <a name="l00052"></a>00052 genType <span class="keyword">const</span> &amp; t2,
81 <a name="l00053"></a>00053 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);
82 <a name="l00054"></a>00054
83 <a name="l00057"></a>00057 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
84 <a name="l00058"></a>00058 genType <a class="code" href="a00293.html#gaae38edb178e0256e966955b19b61f617" title="Return a point from a cubic curve.">cubic</a>(
85 <a name="l00059"></a>00059 genType <span class="keyword">const</span> &amp; v1,
86 <a name="l00060"></a>00060 genType <span class="keyword">const</span> &amp; v2,
87 <a name="l00061"></a>00061 genType <span class="keyword">const</span> &amp; v3,
88 <a name="l00062"></a>00062 genType <span class="keyword">const</span> &amp; v4,
89 <a name="l00063"></a>00063 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);
90 <a name="l00064"></a>00064
91 <a name="l00066"></a>00066
92 <a name="l00067"></a>00067 }<span class="comment">//namespace spline</span>
93 <a name="l00068"></a>00068 }<span class="comment">//namespace gtx</span>
94 <a name="l00069"></a>00069 }<span class="comment">//namespace glm</span>
95 <a name="l00070"></a>00070
96 <a name="l00071"></a>00071 <span class="preprocessor">#include &quot;spline.inl&quot;</span>
97 <a name="l00072"></a>00072
98 <a name="l00073"></a>00073 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::spline;}
99 <a name="l00074"></a>00074
100 <a name="l00075"></a>00075 <span class="preprocessor">#endif//glm_gtx_spline</span>
101 <a name="l00076"></a>00076 <span class="preprocessor"></span>
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm{
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtx{
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>spline
62 <a name="l00027"></a>00027 {
63 <a name="l00028"></a>00028 <span class="keyword">using namespace </span>gtx::optimum_pow;
64 <a name="l00029"></a>00029
65 <a name="l00032"></a>00032
66 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
67 <a name="l00036"></a>00036 genType <a class="code" href="a00292.html#gaecb37259be4b2370eab845c6d531f55b" title="Return a point from a catmull rom curve.">catmullRom</a>(
68 <a name="l00037"></a>00037 genType <span class="keyword">const</span> &amp; v1,
69 <a name="l00038"></a>00038 genType <span class="keyword">const</span> &amp; v2,
70 <a name="l00039"></a>00039 genType <span class="keyword">const</span> &amp; v3,
71 <a name="l00040"></a>00040 genType <span class="keyword">const</span> &amp; v4,
72 <a name="l00041"></a>00041 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);
73 <a name="l00042"></a>00042
74 <a name="l00045"></a>00045 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
75 <a name="l00046"></a>00046 genType <a class="code" href="a00292.html#ga3ea772a4bdf8b3514ef12b47944c844c" title="Return a point from a hermite curve.">hermite</a>(
76 <a name="l00047"></a>00047 genType <span class="keyword">const</span> &amp; v1,
77 <a name="l00048"></a>00048 genType <span class="keyword">const</span> &amp; t1,
78 <a name="l00049"></a>00049 genType <span class="keyword">const</span> &amp; v2,
79 <a name="l00050"></a>00050 genType <span class="keyword">const</span> &amp; t2,
80 <a name="l00051"></a>00051 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);
81 <a name="l00052"></a>00052
82 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
83 <a name="l00056"></a>00056 genType <a class="code" href="a00292.html#gaae38edb178e0256e966955b19b61f617" title="Return a point from a cubic curve.">cubic</a>(
84 <a name="l00057"></a>00057 genType <span class="keyword">const</span> &amp; v1,
85 <a name="l00058"></a>00058 genType <span class="keyword">const</span> &amp; v2,
86 <a name="l00059"></a>00059 genType <span class="keyword">const</span> &amp; v3,
87 <a name="l00060"></a>00060 genType <span class="keyword">const</span> &amp; v4,
88 <a name="l00061"></a>00061 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);
89 <a name="l00062"></a>00062
90 <a name="l00064"></a>00064 }<span class="comment">//namespace spline</span>
91 <a name="l00065"></a>00065 }<span class="comment">//namespace gtx</span>
92 <a name="l00066"></a>00066 }<span class="comment">//namespace glm</span>
93 <a name="l00067"></a>00067
94 <a name="l00068"></a>00068 <span class="preprocessor">#include &quot;spline.inl&quot;</span>
95 <a name="l00069"></a>00069
96 <a name="l00070"></a>00070 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::spline;}
97 <a name="l00071"></a>00071
98 <a name="l00072"></a>00072 <span class="preprocessor">#endif//glm_gtx_spline</span>
99 <a name="l00073"></a>00073 <span class="preprocessor"></span>
102100 </pre></div></div>
103101 </div>
104102 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_std_based_type extension included&quot;)</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span>
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm
60 <a name="l00025"></a>00025 {
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>test{
62 <a name="l00027"></a>00027 <span class="keywordtype">void</span> main_gtx_std_based_type();
63 <a name="l00028"></a>00028 }<span class="comment">//namespace test</span>
64 <a name="l00029"></a>00029
65 <a name="l00030"></a>00030 <span class="keyword">namespace </span>gtx{
66 <a name="l00032"></a><a class="code" href="a00217.html">00032</a> <span class="keyword">namespace </span>std_based_type
67 <a name="l00033"></a>00033 {
68 <a name="l00034"></a>00034 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;std::size_t&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">size2</a>;
69 <a name="l00035"></a>00035 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;std::size_t&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">size3</a>;
70 <a name="l00036"></a>00036 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;std::size_t&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">size4</a>;
71 <a name="l00037"></a>00037
72 <a name="l00038"></a>00038 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;signed char&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">scvec2</a>;
73 <a name="l00039"></a>00039 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;signed char&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">scvec3</a>;
74 <a name="l00040"></a>00040 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;signed char&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">scvec4</a>;
75 <a name="l00041"></a>00041
76 <a name="l00042"></a>00042 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;unsigned char&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">ucvec2</a>;
77 <a name="l00043"></a>00043 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;unsigned char&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">ucvec3</a>;
78 <a name="l00044"></a>00044 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;unsigned char&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">ucvec4</a>;
79 <a name="l00045"></a>00045
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;signed short&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">ssvec2</a>;
81 <a name="l00047"></a>00047 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;signed short&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">ssvec3</a>;
82 <a name="l00048"></a>00048 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;signed short&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">ssvec4</a>;
83 <a name="l00049"></a>00049
84 <a name="l00050"></a>00050 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;unsigned short&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">usvec2</a>;
85 <a name="l00051"></a>00051 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;unsigned short&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">usvec3</a>;
86 <a name="l00052"></a>00052 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;unsigned short&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">usvec4</a>;
87 <a name="l00053"></a>00053
88 <a name="l00054"></a>00054 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;signed int&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">sivec2</a>;
89 <a name="l00055"></a>00055 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;signed int&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">sivec3</a>;
90 <a name="l00056"></a>00056 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;signed int&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">sivec4</a>;
91 <a name="l00057"></a>00057
92 <a name="l00058"></a>00058 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;unsigned int&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">uivec2</a>;
93 <a name="l00059"></a>00059 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;unsigned int&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">uivec3</a>;
94 <a name="l00060"></a>00060 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;unsigned int&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">uivec4</a>;
95 <a name="l00061"></a>00061
96 <a name="l00062"></a>00062 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;signed long&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">slvec2</a>;
97 <a name="l00063"></a>00063 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;signed long&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">slvec3</a>;
98 <a name="l00064"></a>00064 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;signed long&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">slvec4</a>;
99 <a name="l00065"></a>00065
100 <a name="l00066"></a>00066 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;unsigned long&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">ulvec2</a>;
101 <a name="l00067"></a>00067 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;unsigned long&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">ulvec3</a>;
102 <a name="l00068"></a>00068 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;unsigned long&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">ulvec4</a>;
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm{
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtx{
61 <a name="l00026"></a><a class="code" href="a00217.html">00026</a> <span class="keyword">namespace </span>std_based_type
62 <a name="l00027"></a>00027 {
63 <a name="l00028"></a>00028 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;std::size_t&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">size2</a>;
64 <a name="l00029"></a>00029 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;std::size_t&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">size3</a>;
65 <a name="l00030"></a>00030 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;std::size_t&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">size4</a>;
66 <a name="l00031"></a>00031
67 <a name="l00032"></a>00032 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;signed char&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">scvec2</a>;
68 <a name="l00033"></a>00033 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;signed char&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">scvec3</a>;
69 <a name="l00034"></a>00034 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;signed char&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">scvec4</a>;
70 <a name="l00035"></a>00035
71 <a name="l00036"></a>00036 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;unsigned char&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">ucvec2</a>;
72 <a name="l00037"></a>00037 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;unsigned char&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">ucvec3</a>;
73 <a name="l00038"></a>00038 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;unsigned char&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">ucvec4</a>;
74 <a name="l00039"></a>00039
75 <a name="l00040"></a>00040 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;signed short&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">ssvec2</a>;
76 <a name="l00041"></a>00041 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;signed short&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">ssvec3</a>;
77 <a name="l00042"></a>00042 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;signed short&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">ssvec4</a>;
78 <a name="l00043"></a>00043
79 <a name="l00044"></a>00044 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;unsigned short&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">usvec2</a>;
80 <a name="l00045"></a>00045 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;unsigned short&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">usvec3</a>;
81 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;unsigned short&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">usvec4</a>;
82 <a name="l00047"></a>00047
83 <a name="l00048"></a>00048 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;signed int&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">sivec2</a>;
84 <a name="l00049"></a>00049 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;signed int&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">sivec3</a>;
85 <a name="l00050"></a>00050 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;signed int&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">sivec4</a>;
86 <a name="l00051"></a>00051
87 <a name="l00052"></a>00052 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;unsigned int&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">uivec2</a>;
88 <a name="l00053"></a>00053 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;unsigned int&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">uivec3</a>;
89 <a name="l00054"></a>00054 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;unsigned int&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">uivec4</a>;
90 <a name="l00055"></a>00055
91 <a name="l00056"></a>00056 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;signed long&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">slvec2</a>;
92 <a name="l00057"></a>00057 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;signed long&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">slvec3</a>;
93 <a name="l00058"></a>00058 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;signed long&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">slvec4</a>;
94 <a name="l00059"></a>00059
95 <a name="l00060"></a>00060 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;unsigned long&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">ulvec2</a>;
96 <a name="l00061"></a>00061 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;unsigned long&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">ulvec3</a>;
97 <a name="l00062"></a>00062 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;unsigned long&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">ulvec4</a>;
98 <a name="l00063"></a>00063
99 <a name="l00064"></a>00064 }<span class="comment">//namespace std_based_type</span>
100 <a name="l00065"></a>00065 }<span class="comment">//namespace gtx</span>
101 <a name="l00066"></a>00066 }<span class="comment">//namespace glm</span>
102 <a name="l00067"></a>00067
103 <a name="l00068"></a>00068 <span class="preprocessor">#include &quot;std_based_type.inl&quot;</span>
103104 <a name="l00069"></a>00069
104 <a name="l00070"></a>00070 }<span class="comment">//namespace std_based_type</span>
105 <a name="l00071"></a>00071 }<span class="comment">//namespace gtx</span>
106 <a name="l00072"></a>00072 }<span class="comment">//namespace glm</span>
107 <a name="l00073"></a>00073
108 <a name="l00074"></a>00074 <span class="preprocessor">#include &quot;std_based_type.inl&quot;</span>
109 <a name="l00075"></a>00075
110 <a name="l00076"></a>00076 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::std_based_type;}
111 <a name="l00077"></a>00077
112 <a name="l00078"></a>00078 <span class="preprocessor">#endif//glm_gtx_std_based_type</span>
105 <a name="l00070"></a>00070 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::std_based_type;}
106 <a name="l00071"></a>00071
107 <a name="l00072"></a>00072 <span class="preprocessor">#endif//glm_gtx_std_based_type</span>
113108 </pre></div></div>
114109 </div>
115110 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6363 <a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_string_cast extension included&quot;)</span>
6464 <a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
6565 <a name="l00030"></a>00030 <span class="preprocessor"></span>
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>glm
67 <a name="l00032"></a>00032 {
68 <a name="l00033"></a>00033 <span class="keyword">namespace </span>test{
69 <a name="l00034"></a>00034 <span class="keywordtype">void</span> main_gtx_string_cast();
70 <a name="l00035"></a>00035 }<span class="comment">//namespace test</span>
71 <a name="l00036"></a>00036
72 <a name="l00037"></a>00037 <span class="keyword">namespace </span>gtx{
73 <a name="l00039"></a><a class="code" href="a00218.html">00039</a> <span class="keyword">namespace </span>string_cast
74 <a name="l00040"></a>00040 {
75 <a name="l00041"></a>00041 <span class="keyword">using namespace </span>gtc::half_float;
76 <a name="l00042"></a>00042 <span class="keyword">using namespace </span>gtx::integer;
77 <a name="l00043"></a>00043 <span class="keyword">using namespace </span>gtx::unsigned_int;
78 <a name="l00044"></a>00044 <span class="keyword">using namespace </span>gtx::quaternion;
79 <a name="l00045"></a>00045
80 <a name="l00048"></a>00048
81 <a name="l00051"></a>00051 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
82 <a name="l00052"></a>00052 std::string <a class="code" href="a00294.html#ga9ab4dfc4ab5f29591638fb56d7752fff" title="Create a string from a GLM type value.">to_string</a>(genType <span class="keyword">const</span> &amp; x);
83 <a name="l00053"></a>00053
84 <a name="l00055"></a>00055
85 <a name="l00056"></a>00056 }<span class="comment">//namespace string_cast</span>
86 <a name="l00057"></a>00057 }<span class="comment">//namespace gtx</span>
87 <a name="l00058"></a>00058 }<span class="comment">//namespace glm</span>
88 <a name="l00059"></a>00059
89 <a name="l00060"></a>00060 <span class="preprocessor">#include &quot;string_cast.inl&quot;</span>
90 <a name="l00061"></a>00061
91 <a name="l00062"></a>00062 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::string_cast;}
92 <a name="l00063"></a>00063
93 <a name="l00064"></a>00064 <span class="preprocessor">#endif//glm_gtx_string_cast</span>
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>glm{
67 <a name="l00032"></a>00032 <span class="keyword">namespace </span>gtx{
68 <a name="l00033"></a><a class="code" href="a00218.html">00033</a> <span class="keyword">namespace </span>string_cast
69 <a name="l00034"></a>00034 {
70 <a name="l00035"></a>00035 <span class="keyword">using namespace </span>gtc::half_float;
71 <a name="l00036"></a>00036 <span class="keyword">using namespace </span>gtx::integer;
72 <a name="l00037"></a>00037 <span class="keyword">using namespace </span>gtx::unsigned_int;
73 <a name="l00038"></a>00038 <span class="keyword">using namespace </span>gtx::quaternion;
74 <a name="l00039"></a>00039
75 <a name="l00042"></a>00042
76 <a name="l00045"></a>00045 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
77 <a name="l00046"></a>00046 std::string <a class="code" href="a00293.html#ga9ab4dfc4ab5f29591638fb56d7752fff" title="Create a string from a GLM type value.">to_string</a>(genType <span class="keyword">const</span> &amp; x);
78 <a name="l00047"></a>00047
79 <a name="l00049"></a>00049 }<span class="comment">//namespace string_cast</span>
80 <a name="l00050"></a>00050 }<span class="comment">//namespace gtx</span>
81 <a name="l00051"></a>00051 }<span class="comment">//namespace glm</span>
82 <a name="l00052"></a>00052
83 <a name="l00053"></a>00053 <span class="preprocessor">#include &quot;string_cast.inl&quot;</span>
84 <a name="l00054"></a>00054
85 <a name="l00055"></a>00055 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::string_cast;}
86 <a name="l00056"></a>00056
87 <a name="l00057"></a>00057 <span class="preprocessor">#endif//glm_gtx_string_cast</span>
9488 </pre></div></div>
9589 </div>
9690 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_swizzle extension included&quot;)</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span>
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm
60 <a name="l00025"></a>00025 {
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>test{
62 <a name="l00027"></a>00027 <span class="keywordtype">void</span> main_gtc_swizzle();
63 <a name="l00028"></a>00028 }<span class="comment">//namespace test</span>
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm{
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtc{
61 <a name="l00026"></a><a class="code" href="a00165.html">00026</a> <span class="keyword">namespace </span>swizzle
62 <a name="l00027"></a>00027 {
63 <a name="l00028"></a>00028 <span class="keyword">using namespace </span>gtc::half_float;
6464 <a name="l00029"></a>00029
65 <a name="l00030"></a>00030 <span class="keyword">namespace </span>gtc{
66 <a name="l00032"></a><a class="code" href="a00165.html">00032</a> <span class="keyword">namespace </span>swizzle
67 <a name="l00033"></a>00033 {
68 <a name="l00034"></a>00034 <span class="keyword">using namespace </span>gtc::half_float;
69 <a name="l00035"></a>00035
70 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
71 <a name="l00037"></a>00037 T <span class="keyword">const</span> &amp; swizzle(
72 <a name="l00038"></a>00038 vecType&lt;T&gt; <span class="keyword">const</span> &amp; v,
73 <a name="l00039"></a>00039 comp x);
74 <a name="l00040"></a>00040
75 <a name="l00041"></a>00041 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
76 <a name="l00042"></a>00042 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; swizzle(
77 <a name="l00043"></a>00043 vecType&lt;T&gt; <span class="keyword">const</span> &amp; v,
78 <a name="l00044"></a>00044 comp x, comp y);
79 <a name="l00045"></a>00045
80 <a name="l00046"></a>00046 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
81 <a name="l00047"></a>00047 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; swizzle(
82 <a name="l00048"></a>00048 vecType&lt;T&gt; <span class="keyword">const</span> &amp; v,
83 <a name="l00049"></a>00049 comp x, comp y, comp z);
84 <a name="l00050"></a>00050
85 <a name="l00051"></a>00051 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
86 <a name="l00052"></a>00052 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; swizzle(
87 <a name="l00053"></a>00053 vecType&lt;T&gt; <span class="keyword">const</span> &amp; v,
88 <a name="l00054"></a>00054 comp x, comp y, comp z, comp w);
89 <a name="l00055"></a>00055
90 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
91 <a name="l00057"></a>00057 T &amp; swizzle(
92 <a name="l00058"></a>00058 vecType&lt;T&gt; &amp; v,
93 <a name="l00059"></a>00059 comp x);
94 <a name="l00060"></a>00060
95 <a name="l00061"></a>00061 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
96 <a name="l00062"></a>00062 detail::tref2&lt;T&gt; swizzle(
97 <a name="l00063"></a>00063 vecType&lt;T&gt; &amp; v,
98 <a name="l00064"></a>00064 comp x, comp y);
99 <a name="l00065"></a>00065
100 <a name="l00066"></a>00066 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
101 <a name="l00067"></a>00067 detail::tref3&lt;T&gt; swizzle(
102 <a name="l00068"></a>00068 vecType&lt;T&gt; &amp; v,
103 <a name="l00069"></a>00069 comp x, comp y, comp z);
104 <a name="l00070"></a>00070
105 <a name="l00071"></a>00071 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
106 <a name="l00072"></a>00072 detail::tref4&lt;T&gt; swizzle(
107 <a name="l00073"></a>00073 vecType&lt;T&gt; &amp; v,
108 <a name="l00074"></a>00074 comp x, comp y, comp z, comp w);
109 <a name="l00075"></a>00075
110 <a name="l00076"></a>00076 <span class="preprocessor"># define static_swizzle1(TYPE, SIZE) \</span>
111 <a name="l00077"></a>00077 <span class="preprocessor"> template &lt;comp x&gt; \</span>
112 <a name="l00078"></a>00078 <span class="preprocessor"> GLM_FUNC_QUALIFIER TYPE swizzle(detail::tvec##SIZE&lt;TYPE&gt; const &amp; v) \</span>
113 <a name="l00079"></a>00079 <span class="preprocessor"> {return v[x];} \</span>
114 <a name="l00080"></a>00080 <span class="preprocessor"> \</span>
115 <a name="l00081"></a>00081 <span class="preprocessor"> template &lt;comp x&gt; \</span>
116 <a name="l00082"></a>00082 <span class="preprocessor"> GLM_FUNC_QUALIFIER TYPE&amp; swizzle(detail::tvec##SIZE&lt;TYPE&gt; &amp; v) \</span>
117 <a name="l00083"></a>00083 <span class="preprocessor"> {return v[x];}</span>
118 <a name="l00084"></a>00084 <span class="preprocessor"></span>
119 <a name="l00085"></a>00085 static_swizzle1(<a class="code" href="a00246.html#ga19287ee46bd37d1459731d7191bc2f66" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float16</a>, 2)
120 <a name="l00086"></a>00086 static_swizzle1(<a class="code" href="a00246.html#ga19287ee46bd37d1459731d7191bc2f66" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float16</a>, 3)
121 <a name="l00087"></a>00087 static_swizzle1(<a class="code" href="a00246.html#ga19287ee46bd37d1459731d7191bc2f66" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float16</a>, 4)
122 <a name="l00088"></a>00088 static_swizzle1(<a class="code" href="a00246.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float32</a>, 2)
123 <a name="l00089"></a>00089 static_swizzle1(<a class="code" href="a00246.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float32</a>, 3)
124 <a name="l00090"></a>00090 static_swizzle1(<a class="code" href="a00246.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float32</a>, 4)
125 <a name="l00091"></a>00091 static_swizzle1(<a class="code" href="a00246.html#gab5596d48586414c91ccb270962dc14d3" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float64</a>, 2)
126 <a name="l00092"></a>00092 static_swizzle1(<a class="code" href="a00246.html#gab5596d48586414c91ccb270962dc14d3" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float64</a>, 3)
127 <a name="l00093"></a>00093 static_swizzle1(<a class="code" href="a00246.html#gab5596d48586414c91ccb270962dc14d3" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float64</a>, 4)
128 <a name="l00094"></a>00094
129 <a name="l00095"></a>00095 static_swizzle1(<a class="code" href="a00246.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">detail::int8</a>, 2)
130 <a name="l00096"></a>00096 static_swizzle1(<a class="code" href="a00246.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">detail::int8</a>, 3)
131 <a name="l00097"></a>00097 static_swizzle1(<a class="code" href="a00246.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">detail::int8</a>, 4)
132 <a name="l00098"></a>00098 static_swizzle1(<a class="code" href="a00246.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">detail::int16</a>, 2)
133 <a name="l00099"></a>00099 static_swizzle1(<a class="code" href="a00246.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">detail::int16</a>, 3)
134 <a name="l00100"></a>00100 static_swizzle1(<a class="code" href="a00246.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">detail::int16</a>, 4)
135 <a name="l00101"></a>00101 static_swizzle1(<a class="code" href="a00246.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">detail::int32</a>, 2)
136 <a name="l00102"></a>00102 static_swizzle1(<a class="code" href="a00246.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">detail::int32</a>, 3)
137 <a name="l00103"></a>00103 static_swizzle1(<a class="code" href="a00246.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">detail::int32</a>, 4)
138 <a name="l00104"></a>00104 static_swizzle1(<a class="code" href="a00246.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">detail::int64</a>, 2)
139 <a name="l00105"></a>00105 static_swizzle1(<a class="code" href="a00246.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">detail::int64</a>, 3)
140 <a name="l00106"></a>00106 static_swizzle1(<a class="code" href="a00246.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">detail::int64</a>, 4)
141 <a name="l00107"></a>00107
142 <a name="l00108"></a>00108 static_swizzle1(<a class="code" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint8</a>, 2)
143 <a name="l00109"></a>00109 static_swizzle1(<a class="code" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint8</a>, 3)
144 <a name="l00110"></a>00110 static_swizzle1(<a class="code" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint8</a>, 4)
145 <a name="l00111"></a>00111 static_swizzle1(<a class="code" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint16</a>, 2)
146 <a name="l00112"></a>00112 static_swizzle1(<a class="code" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint16</a>, 3)
147 <a name="l00113"></a>00113 static_swizzle1(<a class="code" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint16</a>, 4)
148 <a name="l00114"></a>00114 static_swizzle1(<a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a>, 2)
149 <a name="l00115"></a>00115 static_swizzle1(<a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a>, 3)
150 <a name="l00116"></a>00116 static_swizzle1(<a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a>, 4)
151 <a name="l00117"></a>00117 static_swizzle1(<a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint64</a>, 2)
152 <a name="l00118"></a>00118 static_swizzle1(<a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint64</a>, 3)
153 <a name="l00119"></a>00119 static_swizzle1(<a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint64</a>, 4)
154 <a name="l00120"></a>00120
155 <a name="l00121"></a>00121 <span class="preprocessor"># define static_swizzle2_const(TYPE) \</span>
156 <a name="l00122"></a>00122 <span class="preprocessor"> template &lt;comp x, comp y&gt; \</span>
157 <a name="l00123"></a>00123 <span class="preprocessor"> GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const &amp; v) \</span>
158 <a name="l00124"></a>00124 <span class="preprocessor"> {return TYPE(v[x], v[y]);}</span>
159 <a name="l00125"></a>00125 <span class="preprocessor"></span>
160 <a name="l00126"></a>00126 <span class="preprocessor"># define static_swizzle3_const(TYPE) \</span>
161 <a name="l00127"></a>00127 <span class="preprocessor"> template &lt;comp x, comp y, comp z&gt; \</span>
162 <a name="l00128"></a>00128 <span class="preprocessor"> GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const &amp; v) \</span>
163 <a name="l00129"></a>00129 <span class="preprocessor"> {return TYPE(v[x], v[y], v[z]);}</span>
164 <a name="l00130"></a>00130 <span class="preprocessor"></span>
165 <a name="l00131"></a>00131 <span class="preprocessor"># define static_swizzle4_const(TYPE) \</span>
166 <a name="l00132"></a>00132 <span class="preprocessor"> template &lt;comp x, comp y, comp z, comp w&gt; \</span>
167 <a name="l00133"></a>00133 <span class="preprocessor"> GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const &amp; v) \</span>
168 <a name="l00134"></a>00134 <span class="preprocessor"> {return TYPE(v[x], v[y], v[z], v[w]);}</span>
169 <a name="l00135"></a>00135 <span class="preprocessor"></span><span class="comment">/*</span>
170 <a name="l00136"></a>00136 <span class="comment"># define static_swizzle2_const(TYPE, SIZE) \</span>
171 <a name="l00137"></a>00137 <span class="comment"> template &lt;comp x, comp y&gt; \</span>
172 <a name="l00138"></a>00138 <span class="comment"> GLM_FUNC_QUALIFIER detail::tvec2&lt;TYPE&gt; swizzle(detail::tvec##SIZE&lt;TYPE&gt; const &amp; v) \</span>
173 <a name="l00139"></a>00139 <span class="comment"> {return detail::tvec2&lt;TYPE&gt;(v[x], v[y]);}</span>
174 <a name="l00140"></a>00140 <span class="comment"></span>
175 <a name="l00141"></a>00141 <span class="comment"># define static_swizzle3_const(TYPE, SIZE) \</span>
176 <a name="l00142"></a>00142 <span class="comment"> template &lt;comp x, comp y, comp z&gt; \</span>
177 <a name="l00143"></a>00143 <span class="comment"> GLM_FUNC_QUALIFIER detail::tvec3&lt;TYPE&gt; swizzle(detail::tvec##SIZE&lt;TYPE&gt; const &amp; v) \</span>
178 <a name="l00144"></a>00144 <span class="comment"> {return detail::tvec3&lt;TYPE&gt;(v[x], v[y], v[z]);}</span>
179 <a name="l00145"></a>00145 <span class="comment"></span>
180 <a name="l00146"></a>00146 <span class="comment"># define static_swizzle4_const(TYPE, SIZE) \</span>
181 <a name="l00147"></a>00147 <span class="comment"> template &lt;comp x, comp y, comp z, comp w&gt; \</span>
182 <a name="l00148"></a>00148 <span class="comment"> GLM_FUNC_QUALIFIER detail::tvec4&lt;TYPE&gt; swizzle(detail::tvec##SIZE&lt;TYPE&gt; const &amp; v) \</span>
183 <a name="l00149"></a>00149 <span class="comment"> {return detail::tvec4&lt;TYPE&gt;(v[x], v[y], v[z], v[w]);}</span>
184 <a name="l00150"></a>00150 <span class="comment">*/</span>
185 <a name="l00151"></a>00151 static_swizzle2_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::f16vec2</a>)
186 <a name="l00152"></a>00152 static_swizzle2_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::f16vec3</a>)
187 <a name="l00153"></a>00153 static_swizzle2_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f16vec4</a>)
188 <a name="l00154"></a>00154 static_swizzle2_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::f32vec2</a>)
189 <a name="l00155"></a>00155 static_swizzle2_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::f32vec3</a>)
190 <a name="l00156"></a>00156 static_swizzle2_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f32vec4</a>)
191 <a name="l00157"></a>00157 static_swizzle2_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::f64vec2</a>)
192 <a name="l00158"></a>00158 static_swizzle2_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::f64vec3</a>)
193 <a name="l00159"></a>00159 static_swizzle2_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f64vec4</a>)
194 <a name="l00160"></a>00160
195 <a name="l00161"></a>00161 static_swizzle2_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i8vec2</a>)
196 <a name="l00162"></a>00162 static_swizzle2_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i8vec3</a>)
197 <a name="l00163"></a>00163 static_swizzle2_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i8vec4</a>)
198 <a name="l00164"></a>00164 static_swizzle2_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i16vec2</a>)
199 <a name="l00165"></a>00165 static_swizzle2_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i16vec3</a>)
200 <a name="l00166"></a>00166 static_swizzle2_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i16vec4</a>)
201 <a name="l00167"></a>00167 static_swizzle2_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i32vec2</a>)
202 <a name="l00168"></a>00168 static_swizzle2_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i32vec3</a>)
203 <a name="l00169"></a>00169 static_swizzle2_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i32vec4</a>)
204 <a name="l00170"></a>00170 static_swizzle2_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i64vec2</a>)
205 <a name="l00171"></a>00171 static_swizzle2_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i64vec3</a>)
206 <a name="l00172"></a>00172 static_swizzle2_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i64vec4</a>)
207 <a name="l00173"></a>00173
208 <a name="l00174"></a>00174 static_swizzle2_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::u8vec2</a>)
209 <a name="l00175"></a>00175 static_swizzle2_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u8vec3</a>)
210 <a name="l00176"></a>00176 static_swizzle2_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u8vec4</a>)
211 <a name="l00177"></a>00177 static_swizzle2_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::u16vec2</a>)
212 <a name="l00178"></a>00178 static_swizzle2_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u16vec3</a>)
213 <a name="l00179"></a>00179 static_swizzle2_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u16vec4</a>)
214 <a name="l00180"></a>00180 static_swizzle2_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::u32vec2</a>)
215 <a name="l00181"></a>00181 static_swizzle2_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u32vec3</a>)
216 <a name="l00182"></a>00182 static_swizzle2_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u32vec4</a>)
217 <a name="l00183"></a>00183 static_swizzle2_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::u64vec2</a>)
218 <a name="l00184"></a>00184 static_swizzle2_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u64vec3</a>)
219 <a name="l00185"></a>00185 static_swizzle2_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u64vec4</a>)
220 <a name="l00186"></a>00186
221 <a name="l00187"></a>00187 static_swizzle3_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::f16vec2</a>)
222 <a name="l00188"></a>00188 static_swizzle3_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::f16vec3</a>)
223 <a name="l00189"></a>00189 static_swizzle3_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f16vec4</a>)
224 <a name="l00190"></a>00190 static_swizzle3_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::f32vec2</a>)
225 <a name="l00191"></a>00191 static_swizzle3_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::f32vec3</a>)
226 <a name="l00192"></a>00192 static_swizzle3_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f32vec4</a>)
227 <a name="l00193"></a>00193 static_swizzle3_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::f64vec2</a>)
228 <a name="l00194"></a>00194 static_swizzle3_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::f64vec3</a>)
229 <a name="l00195"></a>00195 static_swizzle3_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f64vec4</a>)
230 <a name="l00196"></a>00196
231 <a name="l00197"></a>00197 static_swizzle3_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i8vec2</a>)
232 <a name="l00198"></a>00198 static_swizzle3_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i8vec3</a>)
233 <a name="l00199"></a>00199 static_swizzle3_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i8vec4</a>)
234 <a name="l00200"></a>00200 static_swizzle3_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i16vec2</a>)
235 <a name="l00201"></a>00201 static_swizzle3_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i16vec3</a>)
236 <a name="l00202"></a>00202 static_swizzle3_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i16vec4</a>)
237 <a name="l00203"></a>00203 static_swizzle3_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i32vec2</a>)
238 <a name="l00204"></a>00204 static_swizzle3_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i32vec3</a>)
239 <a name="l00205"></a>00205 static_swizzle3_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i32vec4</a>)
240 <a name="l00206"></a>00206 static_swizzle3_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i64vec2</a>)
241 <a name="l00207"></a>00207 static_swizzle3_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i64vec3</a>)
242 <a name="l00208"></a>00208 static_swizzle3_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i64vec4</a>)
243 <a name="l00209"></a>00209
244 <a name="l00210"></a>00210 static_swizzle3_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::u8vec2</a>)
245 <a name="l00211"></a>00211 static_swizzle3_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u8vec3</a>)
246 <a name="l00212"></a>00212 static_swizzle3_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u8vec4</a>)
247 <a name="l00213"></a>00213 static_swizzle3_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::u16vec2</a>)
248 <a name="l00214"></a>00214 static_swizzle3_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u16vec3</a>)
249 <a name="l00215"></a>00215 static_swizzle3_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u16vec4</a>)
250 <a name="l00216"></a>00216 static_swizzle3_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::u32vec2</a>)
251 <a name="l00217"></a>00217 static_swizzle3_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u32vec3</a>)
252 <a name="l00218"></a>00218 static_swizzle3_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u32vec4</a>)
253 <a name="l00219"></a>00219 static_swizzle3_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::u64vec2</a>)
254 <a name="l00220"></a>00220 static_swizzle3_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u64vec3</a>)
255 <a name="l00221"></a>00221 static_swizzle3_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u64vec4</a>)
256 <a name="l00222"></a>00222
257 <a name="l00223"></a>00223 static_swizzle4_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::f16vec2</a>)
258 <a name="l00224"></a>00224 static_swizzle4_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::f16vec3</a>)
259 <a name="l00225"></a>00225 static_swizzle4_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f16vec4</a>)
260 <a name="l00226"></a>00226 static_swizzle4_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::f32vec2</a>)
261 <a name="l00227"></a>00227 static_swizzle4_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::f32vec3</a>)
262 <a name="l00228"></a>00228 static_swizzle4_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f32vec4</a>)
263 <a name="l00229"></a>00229 static_swizzle4_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::f64vec2</a>)
264 <a name="l00230"></a>00230 static_swizzle4_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::f64vec3</a>)
265 <a name="l00231"></a>00231 static_swizzle4_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f64vec4</a>)
266 <a name="l00232"></a>00232
267 <a name="l00233"></a>00233 static_swizzle4_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i8vec2</a>)
268 <a name="l00234"></a>00234 static_swizzle4_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i8vec3</a>)
269 <a name="l00235"></a>00235 static_swizzle4_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i8vec4</a>)
270 <a name="l00236"></a>00236 static_swizzle4_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i16vec2</a>)
271 <a name="l00237"></a>00237 static_swizzle4_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i16vec3</a>)
272 <a name="l00238"></a>00238 static_swizzle4_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i16vec4</a>)
273 <a name="l00239"></a>00239 static_swizzle4_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i32vec2</a>)
274 <a name="l00240"></a>00240 static_swizzle4_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i32vec3</a>)
275 <a name="l00241"></a>00241 static_swizzle4_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i32vec4</a>)
276 <a name="l00242"></a>00242 static_swizzle4_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i64vec2</a>)
277 <a name="l00243"></a>00243 static_swizzle4_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i64vec3</a>)
278 <a name="l00244"></a>00244 static_swizzle4_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i64vec4</a>)
279 <a name="l00245"></a>00245
280 <a name="l00246"></a>00246 static_swizzle4_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::u8vec2</a>)
281 <a name="l00247"></a>00247 static_swizzle4_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u8vec3</a>)
282 <a name="l00248"></a>00248 static_swizzle4_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u8vec4</a>)
283 <a name="l00249"></a>00249 static_swizzle4_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::u16vec2</a>)
284 <a name="l00250"></a>00250 static_swizzle4_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u16vec3</a>)
285 <a name="l00251"></a>00251 static_swizzle4_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u16vec4</a>)
286 <a name="l00252"></a>00252 static_swizzle4_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::u32vec2</a>)
287 <a name="l00253"></a>00253 static_swizzle4_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u32vec3</a>)
288 <a name="l00254"></a>00254 static_swizzle4_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u32vec4</a>)
289 <a name="l00255"></a>00255 static_swizzle4_const(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::u64vec2</a>)
290 <a name="l00256"></a>00256 static_swizzle4_const(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u64vec3</a>)
291 <a name="l00257"></a>00257 static_swizzle4_const(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u64vec4</a>)
292 <a name="l00258"></a>00258
293 <a name="l00259"></a>00259 <span class="preprocessor"># define static_swizzle2_ref(TYPE) \</span>
294 <a name="l00260"></a>00260 <span class="preprocessor"> template &lt;glm::comp x, glm::comp y&gt; \</span>
295 <a name="l00261"></a>00261 <span class="preprocessor"> GLM_FUNC_QUALIFIER glm::detail::tref2&lt;typename TYPE::value_type&gt; swizzle(TYPE &amp; v) \</span>
296 <a name="l00262"></a>00262 <span class="preprocessor"> {return glm::detail::tref2&lt;typename TYPE::value_type&gt;(v[x], v[y]);} </span>
297 <a name="l00263"></a>00263 <span class="preprocessor"></span>
298 <a name="l00264"></a>00264 <span class="preprocessor"># define static_swizzle3_ref(TYPE) \</span>
299 <a name="l00265"></a>00265 <span class="preprocessor"> template &lt;glm::comp x, glm::comp y, glm::comp z&gt; \</span>
300 <a name="l00266"></a>00266 <span class="preprocessor"> GLM_FUNC_QUALIFIER glm::detail::tref3&lt;typename TYPE::value_type&gt; swizzle(TYPE &amp; v) \</span>
301 <a name="l00267"></a>00267 <span class="preprocessor"> {return glm::detail::tref3&lt;typename TYPE::value_type&gt;(v[x], v[y], v[z]);} </span>
302 <a name="l00268"></a>00268 <span class="preprocessor"></span>
303 <a name="l00269"></a>00269 <span class="preprocessor"># define static_swizzle4_ref(TYPE) \</span>
304 <a name="l00270"></a>00270 <span class="preprocessor"> template &lt;glm::comp x, glm::comp y, glm::comp z, glm::comp w&gt; \</span>
305 <a name="l00271"></a>00271 <span class="preprocessor"> GLM_FUNC_QUALIFIER glm::detail::tref4&lt;typename TYPE::value_type&gt; swizzle(TYPE &amp; v) \</span>
306 <a name="l00272"></a>00272 <span class="preprocessor"> {return glm::detail::tref4&lt;typename TYPE::value_type&gt;(v[x], v[y], v[z], v[w]);} </span>
307 <a name="l00273"></a>00273 <span class="preprocessor"></span>
308 <a name="l00274"></a>00274 static_swizzle2_ref(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::f16vec2</a>)
309 <a name="l00275"></a>00275 static_swizzle2_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::f16vec3</a>)
310 <a name="l00276"></a>00276 static_swizzle2_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f16vec4</a>)
311 <a name="l00277"></a>00277 static_swizzle2_ref(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::f32vec2</a>)
312 <a name="l00278"></a>00278 static_swizzle2_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::f32vec3</a>)
313 <a name="l00279"></a>00279 static_swizzle2_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f32vec4</a>)
314 <a name="l00280"></a>00280 static_swizzle2_ref(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::f64vec2</a>)
315 <a name="l00281"></a>00281 static_swizzle2_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::f64vec3</a>)
316 <a name="l00282"></a>00282 static_swizzle2_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f64vec4</a>)
317 <a name="l00283"></a>00283
318 <a name="l00284"></a>00284 static_swizzle2_ref(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i8vec2</a>)
319 <a name="l00285"></a>00285 static_swizzle2_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i8vec3</a>)
320 <a name="l00286"></a>00286 static_swizzle2_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i8vec4</a>)
321 <a name="l00287"></a>00287 static_swizzle2_ref(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i16vec2</a>)
322 <a name="l00288"></a>00288 static_swizzle2_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i16vec3</a>)
323 <a name="l00289"></a>00289 static_swizzle2_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i16vec4</a>)
324 <a name="l00290"></a>00290 static_swizzle2_ref(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i32vec2</a>)
325 <a name="l00291"></a>00291 static_swizzle2_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i32vec3</a>)
326 <a name="l00292"></a>00292 static_swizzle2_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i32vec4</a>)
327 <a name="l00293"></a>00293 static_swizzle2_ref(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::i64vec2</a>)
328 <a name="l00294"></a>00294 static_swizzle2_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i64vec3</a>)
329 <a name="l00295"></a>00295 static_swizzle2_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i64vec4</a>)
330 <a name="l00296"></a>00296
331 <a name="l00297"></a>00297 static_swizzle2_ref(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::u8vec2</a>)
332 <a name="l00298"></a>00298 static_swizzle2_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u8vec3</a>)
333 <a name="l00299"></a>00299 static_swizzle2_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u8vec4</a>)
334 <a name="l00300"></a>00300 static_swizzle2_ref(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::u16vec2</a>)
335 <a name="l00301"></a>00301 static_swizzle2_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u16vec3</a>)
336 <a name="l00302"></a>00302 static_swizzle2_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u16vec4</a>)
337 <a name="l00303"></a>00303 static_swizzle2_ref(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::u32vec2</a>)
338 <a name="l00304"></a>00304 static_swizzle2_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u32vec3</a>)
339 <a name="l00305"></a>00305 static_swizzle2_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u32vec4</a>)
340 <a name="l00306"></a>00306 static_swizzle2_ref(<a class="code" href="a00020.html" title="The basic 2D vector type.">glm::u64vec2</a>)
341 <a name="l00307"></a>00307 static_swizzle2_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u64vec3</a>)
342 <a name="l00308"></a>00308 static_swizzle2_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u64vec4</a>)
343 <a name="l00309"></a>00309
344 <a name="l00310"></a>00310 static_swizzle3_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::f16vec3</a>)
345 <a name="l00311"></a>00311 static_swizzle3_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f16vec4</a>)
346 <a name="l00312"></a>00312 static_swizzle3_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::f32vec3</a>)
347 <a name="l00313"></a>00313 static_swizzle3_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f32vec4</a>)
348 <a name="l00314"></a>00314 static_swizzle3_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::f64vec3</a>)
349 <a name="l00315"></a>00315 static_swizzle3_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f64vec4</a>)
350 <a name="l00316"></a>00316
351 <a name="l00317"></a>00317 static_swizzle3_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i8vec3</a>)
352 <a name="l00318"></a>00318 static_swizzle3_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i8vec4</a>)
353 <a name="l00319"></a>00319 static_swizzle3_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i16vec3</a>)
354 <a name="l00320"></a>00320 static_swizzle3_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i16vec4</a>)
355 <a name="l00321"></a>00321 static_swizzle3_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i32vec3</a>)
356 <a name="l00322"></a>00322 static_swizzle3_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i32vec4</a>)
357 <a name="l00323"></a>00323 static_swizzle3_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::i64vec3</a>)
358 <a name="l00324"></a>00324 static_swizzle3_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i64vec4</a>)
359 <a name="l00325"></a>00325
360 <a name="l00326"></a>00326 static_swizzle3_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u8vec3</a>)
361 <a name="l00327"></a>00327 static_swizzle3_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u8vec4</a>)
362 <a name="l00328"></a>00328 static_swizzle3_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u16vec3</a>)
363 <a name="l00329"></a>00329 static_swizzle3_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u16vec4</a>)
364 <a name="l00330"></a>00330 static_swizzle3_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u32vec3</a>)
365 <a name="l00331"></a>00331 static_swizzle3_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u32vec4</a>)
366 <a name="l00332"></a>00332 static_swizzle3_ref(<a class="code" href="a00021.html" title="Basic 3D vector type.">glm::u64vec3</a>)
367 <a name="l00333"></a>00333 static_swizzle3_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u64vec4</a>)
368 <a name="l00334"></a>00334
369 <a name="l00335"></a>00335 static_swizzle4_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f16vec4</a>)
370 <a name="l00336"></a>00336 static_swizzle4_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f32vec4</a>)
371 <a name="l00337"></a>00337 static_swizzle4_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::f64vec4</a>)
372 <a name="l00338"></a>00338
373 <a name="l00339"></a>00339 static_swizzle4_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i8vec4</a>)
374 <a name="l00340"></a>00340 static_swizzle4_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i16vec4</a>)
375 <a name="l00341"></a>00341 static_swizzle4_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i32vec4</a>)
376 <a name="l00342"></a>00342 static_swizzle4_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::i64vec4</a>)
377 <a name="l00343"></a>00343
378 <a name="l00344"></a>00344 static_swizzle4_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u8vec4</a>)
379 <a name="l00345"></a>00345 static_swizzle4_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u16vec4</a>)
380 <a name="l00346"></a>00346 static_swizzle4_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u32vec4</a>)
381 <a name="l00347"></a>00347 static_swizzle4_ref(<a class="code" href="a00022.html" title="Basic 4D vector type.">glm::u64vec4</a>)
382 <a name="l00348"></a>00348
383 <a name="l00349"></a>00349 }<span class="comment">//namespace swizzle</span>
384 <a name="l00350"></a>00350 }<span class="comment">//namespace gtc</span>
385 <a name="l00351"></a>00351 }<span class="comment">//namespace glm</span>
386 <a name="l00352"></a>00352
387 <a name="l00353"></a>00353 <span class="preprocessor">#include &quot;swizzle.inl&quot;</span>
388 <a name="l00354"></a>00354
389 <a name="l00355"></a>00355 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::swizzle;}
390 <a name="l00356"></a>00356
391 <a name="l00357"></a>00357 <span class="preprocessor">#endif//glm_gtc_swizzle</span>
65 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
66 <a name="l00031"></a>00031 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; swizzle(
67 <a name="l00032"></a>00032 vecType&lt;T&gt; <span class="keyword">const</span> &amp; v,
68 <a name="l00033"></a>00033 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> x);
69 <a name="l00034"></a>00034
70 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
71 <a name="l00036"></a>00036 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; swizzle(
72 <a name="l00037"></a>00037 vecType&lt;T&gt; <span class="keyword">const</span> &amp; v,
73 <a name="l00038"></a>00038 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> y);
74 <a name="l00039"></a>00039
75 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
76 <a name="l00041"></a>00041 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; swizzle(
77 <a name="l00042"></a>00042 vecType&lt;T&gt; <span class="keyword">const</span> &amp; v,
78 <a name="l00043"></a>00043 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> z);
79 <a name="l00044"></a>00044
80 <a name="l00045"></a>00045 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
81 <a name="l00046"></a>00046 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; swizzle(
82 <a name="l00047"></a>00047 vecType&lt;T&gt; <span class="keyword">const</span> &amp; v,
83 <a name="l00048"></a>00048 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> z, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> w);
84 <a name="l00049"></a>00049
85 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
86 <a name="l00051"></a>00051 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; swizzle(
87 <a name="l00052"></a>00052 vecType&lt;T&gt; &amp; v,
88 <a name="l00053"></a>00053 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> x);
89 <a name="l00054"></a>00054
90 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
91 <a name="l00056"></a>00056 detail::tref2&lt;T&gt; swizzle(
92 <a name="l00057"></a>00057 vecType&lt;T&gt; &amp; v,
93 <a name="l00058"></a>00058 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> y);
94 <a name="l00059"></a>00059
95 <a name="l00060"></a>00060 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
96 <a name="l00061"></a>00061 detail::tref3&lt;T&gt; swizzle(
97 <a name="l00062"></a>00062 vecType&lt;T&gt; &amp; v,
98 <a name="l00063"></a>00063 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> z);
99 <a name="l00064"></a>00064
100 <a name="l00065"></a>00065 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
101 <a name="l00066"></a>00066 detail::tref4&lt;T&gt; swizzle(
102 <a name="l00067"></a>00067 vecType&lt;T&gt; &amp; v,
103 <a name="l00068"></a>00068 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> z, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> w);
104 <a name="l00069"></a>00069
105 <a name="l00070"></a>00070 <span class="preprocessor"># define static_swizzle1_const(TYPE, SIZE) \</span>
106 <a name="l00071"></a>00071 <span class="preprocessor"> template &lt;comp x&gt; \</span>
107 <a name="l00072"></a>00072 <span class="preprocessor"> GLM_FUNC_QUALIFIER TYPE swizzle(detail::tvec##SIZE&lt;TYPE&gt; const &amp; v) \</span>
108 <a name="l00073"></a>00073 <span class="preprocessor"> {return v[x];} </span>
109 <a name="l00074"></a>00074 <span class="preprocessor"></span>
110 <a name="l00075"></a>00075 <span class="preprocessor"># define static_swizzle1_ref(TYPE, SIZE) \</span>
111 <a name="l00076"></a>00076 <span class="preprocessor"> template &lt;comp x&gt; \</span>
112 <a name="l00077"></a>00077 <span class="preprocessor"> GLM_FUNC_QUALIFIER TYPE&amp; swizzle(detail::tvec##SIZE&lt;TYPE&gt; &amp; v) \</span>
113 <a name="l00078"></a>00078 <span class="preprocessor"> {return v[x];}</span>
114 <a name="l00079"></a>00079 <span class="preprocessor"></span>
115 <a name="l00080"></a>00080 static_swizzle1_ref(<a class="code" href="a00245.html#ga19287ee46bd37d1459731d7191bc2f66" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float16</a>, 2)
116 <a name="l00081"></a>00081 static_swizzle1_ref(<a class="code" href="a00245.html#ga19287ee46bd37d1459731d7191bc2f66" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float16</a>, 3)
117 <a name="l00082"></a>00082 static_swizzle1_ref(<a class="code" href="a00245.html#ga19287ee46bd37d1459731d7191bc2f66" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float16</a>, 4)
118 <a name="l00083"></a>00083 static_swizzle1_ref(<a class="code" href="a00245.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float32</a>, 2)
119 <a name="l00084"></a>00084 static_swizzle1_ref(<a class="code" href="a00245.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float32</a>, 3)
120 <a name="l00085"></a>00085 static_swizzle1_ref(<a class="code" href="a00245.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float32</a>, 4)
121 <a name="l00086"></a>00086 static_swizzle1_ref(<a class="code" href="a00245.html#gab5596d48586414c91ccb270962dc14d3" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float64</a>, 2)
122 <a name="l00087"></a>00087 static_swizzle1_ref(<a class="code" href="a00245.html#gab5596d48586414c91ccb270962dc14d3" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float64</a>, 3)
123 <a name="l00088"></a>00088 static_swizzle1_ref(<a class="code" href="a00245.html#gab5596d48586414c91ccb270962dc14d3" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float64</a>, 4)
124 <a name="l00089"></a>00089
125 <a name="l00090"></a>00090 static_swizzle1_ref(<a class="code" href="a00245.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">detail::int8</a>, 2)
126 <a name="l00091"></a>00091 static_swizzle1_ref(<a class="code" href="a00245.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">detail::int8</a>, 3)
127 <a name="l00092"></a>00092 static_swizzle1_ref(<a class="code" href="a00245.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">detail::int8</a>, 4)
128 <a name="l00093"></a>00093 static_swizzle1_ref(<a class="code" href="a00245.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">detail::int16</a>, 2)
129 <a name="l00094"></a>00094 static_swizzle1_ref(<a class="code" href="a00245.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">detail::int16</a>, 3)
130 <a name="l00095"></a>00095 static_swizzle1_ref(<a class="code" href="a00245.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">detail::int16</a>, 4)
131 <a name="l00096"></a>00096 static_swizzle1_ref(<a class="code" href="a00245.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">detail::int32</a>, 2)
132 <a name="l00097"></a>00097 static_swizzle1_ref(<a class="code" href="a00245.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">detail::int32</a>, 3)
133 <a name="l00098"></a>00098 static_swizzle1_ref(<a class="code" href="a00245.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">detail::int32</a>, 4)
134 <a name="l00099"></a>00099 static_swizzle1_ref(<a class="code" href="a00245.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">detail::int64</a>, 2)
135 <a name="l00100"></a>00100 static_swizzle1_ref(<a class="code" href="a00245.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">detail::int64</a>, 3)
136 <a name="l00101"></a>00101 static_swizzle1_ref(<a class="code" href="a00245.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">detail::int64</a>, 4)
137 <a name="l00102"></a>00102
138 <a name="l00103"></a>00103 static_swizzle1_ref(<a class="code" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint8</a>, 2)
139 <a name="l00104"></a>00104 static_swizzle1_ref(<a class="code" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint8</a>, 3)
140 <a name="l00105"></a>00105 static_swizzle1_ref(<a class="code" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint8</a>, 4)
141 <a name="l00106"></a>00106 static_swizzle1_ref(<a class="code" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint16</a>, 2)
142 <a name="l00107"></a>00107 static_swizzle1_ref(<a class="code" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint16</a>, 3)
143 <a name="l00108"></a>00108 static_swizzle1_ref(<a class="code" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint16</a>, 4)
144 <a name="l00109"></a>00109 static_swizzle1_ref(<a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a>, 2)
145 <a name="l00110"></a>00110 static_swizzle1_ref(<a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a>, 3)
146 <a name="l00111"></a>00111 static_swizzle1_ref(<a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a>, 4)
147 <a name="l00112"></a>00112 static_swizzle1_ref(<a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint64</a>, 2)
148 <a name="l00113"></a>00113 static_swizzle1_ref(<a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint64</a>, 3)
149 <a name="l00114"></a>00114 static_swizzle1_ref(<a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint64</a>, 4)
150 <a name="l00115"></a>00115 <span class="comment">/*</span>
151 <a name="l00116"></a>00116 <span class="comment"># define static_swizzle2_const(TYPE) \</span>
152 <a name="l00117"></a>00117 <span class="comment"> template &lt;comp x, comp y&gt; \</span>
153 <a name="l00118"></a>00118 <span class="comment"> GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const &amp; v) \</span>
154 <a name="l00119"></a>00119 <span class="comment"> {return TYPE(v[x], v[y]);}</span>
155 <a name="l00120"></a>00120 <span class="comment"></span>
156 <a name="l00121"></a>00121 <span class="comment"># define static_swizzle3_const(TYPE) \</span>
157 <a name="l00122"></a>00122 <span class="comment"> template &lt;comp x, comp y, comp z&gt; \</span>
158 <a name="l00123"></a>00123 <span class="comment"> GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const &amp; v) \</span>
159 <a name="l00124"></a>00124 <span class="comment"> {return TYPE(v[x], v[y], v[z]);}</span>
160 <a name="l00125"></a>00125 <span class="comment"></span>
161 <a name="l00126"></a>00126 <span class="comment"># define static_swizzle4_const(TYPE) \</span>
162 <a name="l00127"></a>00127 <span class="comment"> template &lt;comp x, comp y, comp z, comp w&gt; \</span>
163 <a name="l00128"></a>00128 <span class="comment"> GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const &amp; v) \</span>
164 <a name="l00129"></a>00129 <span class="comment"> {return TYPE(v[x], v[y], v[z], v[w]);}</span>
165 <a name="l00130"></a>00130 <span class="comment">*/</span>
166 <a name="l00131"></a>00131
167 <a name="l00132"></a>00132 <span class="preprocessor"># define static_swizzle2_const(TYPE, SIZE) \</span>
168 <a name="l00133"></a>00133 <span class="preprocessor"> template &lt;comp x, comp y&gt; \</span>
169 <a name="l00134"></a>00134 <span class="preprocessor"> GLM_FUNC_QUALIFIER detail::tvec2&lt;TYPE&gt; swizzle(detail::tvec##SIZE&lt;TYPE&gt; const &amp; v) \</span>
170 <a name="l00135"></a>00135 <span class="preprocessor"> {return detail::tvec2&lt;TYPE&gt;(v[x], v[y]);}</span>
171 <a name="l00136"></a>00136 <span class="preprocessor"></span>
172 <a name="l00137"></a>00137 <span class="preprocessor"># define static_swizzle3_const(TYPE, SIZE) \</span>
173 <a name="l00138"></a>00138 <span class="preprocessor"> template &lt;comp x, comp y, comp z&gt; \</span>
174 <a name="l00139"></a>00139 <span class="preprocessor"> GLM_FUNC_QUALIFIER detail::tvec3&lt;TYPE&gt; swizzle(detail::tvec##SIZE&lt;TYPE&gt; const &amp; v) \</span>
175 <a name="l00140"></a>00140 <span class="preprocessor"> {return detail::tvec3&lt;TYPE&gt;(v[x], v[y], v[z]);}</span>
176 <a name="l00141"></a>00141 <span class="preprocessor"></span>
177 <a name="l00142"></a>00142 <span class="preprocessor"># define static_swizzle4_const(TYPE, SIZE) \</span>
178 <a name="l00143"></a>00143 <span class="preprocessor"> template &lt;comp x, comp y, comp z, comp w&gt; \</span>
179 <a name="l00144"></a>00144 <span class="preprocessor"> GLM_FUNC_QUALIFIER detail::tvec4&lt;TYPE&gt; swizzle(detail::tvec##SIZE&lt;TYPE&gt; const &amp; v) \</span>
180 <a name="l00145"></a>00145 <span class="preprocessor"> {return detail::tvec4&lt;TYPE&gt;(v[x], v[y], v[z], v[w]);}</span>
181 <a name="l00146"></a>00146 <span class="preprocessor"></span>
182 <a name="l00147"></a>00147
183 <a name="l00148"></a>00148 static_swizzle2_const(<a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f16</a>, 2)
184 <a name="l00149"></a>00149 static_swizzle2_const(<a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f16</a>, 3)
185 <a name="l00150"></a>00150 static_swizzle2_const(<a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f16</a>, 4)
186 <a name="l00151"></a>00151 static_swizzle2_const(<a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f32</a>, 2)
187 <a name="l00152"></a>00152 static_swizzle2_const(<a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f32</a>, 3)
188 <a name="l00153"></a>00153 static_swizzle2_const(<a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f32</a>, 4)
189 <a name="l00154"></a>00154 static_swizzle2_const(<a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f64</a>, 2)
190 <a name="l00155"></a>00155 static_swizzle2_const(<a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f64</a>, 3)
191 <a name="l00156"></a>00156 static_swizzle2_const(<a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f64</a>, 4)
192 <a name="l00157"></a>00157
193 <a name="l00158"></a>00158 static_swizzle2_const(<a class="code" href="a00245.html#ga112f99168645b5338136b72eddd12895" title="8bit signed integer. (from GLM_GTC_type_precision extension)">glm::i8</a>, 2)
194 <a name="l00159"></a>00159 static_swizzle2_const(<a class="code" href="a00245.html#ga112f99168645b5338136b72eddd12895" title="8bit signed integer. (from GLM_GTC_type_precision extension)">glm::i8</a>, 3)
195 <a name="l00160"></a>00160 static_swizzle2_const(<a class="code" href="a00245.html#ga112f99168645b5338136b72eddd12895" title="8bit signed integer. (from GLM_GTC_type_precision extension)">glm::i8</a>, 4)
196 <a name="l00161"></a>00161 static_swizzle2_const(<a class="code" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d" title="16bit signed integer. (from GLM_GTC_type_precision extension)">glm::i16</a>, 2)
197 <a name="l00162"></a>00162 static_swizzle2_const(<a class="code" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d" title="16bit signed integer. (from GLM_GTC_type_precision extension)">glm::i16</a>, 3)
198 <a name="l00163"></a>00163 static_swizzle2_const(<a class="code" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d" title="16bit signed integer. (from GLM_GTC_type_precision extension)">glm::i16</a>, 4)
199 <a name="l00164"></a>00164 static_swizzle2_const(<a class="code" href="a00245.html#ga324db08ffb2a193f9a10864288b94523" title="32bit signed integer. (from GLM_GTC_type_precision extension)">glm::i32</a>, 2)
200 <a name="l00165"></a>00165 static_swizzle2_const(<a class="code" href="a00245.html#ga324db08ffb2a193f9a10864288b94523" title="32bit signed integer. (from GLM_GTC_type_precision extension)">glm::i32</a>, 3)
201 <a name="l00166"></a>00166 static_swizzle2_const(<a class="code" href="a00245.html#ga324db08ffb2a193f9a10864288b94523" title="32bit signed integer. (from GLM_GTC_type_precision extension)">glm::i32</a>, 4)
202 <a name="l00167"></a>00167 static_swizzle2_const(<a class="code" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753" title="64bit signed integer. (from GLM_GTC_type_precision extension)">glm::i64</a>, 2)
203 <a name="l00168"></a>00168 static_swizzle2_const(<a class="code" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753" title="64bit signed integer. (from GLM_GTC_type_precision extension)">glm::i64</a>, 3)
204 <a name="l00169"></a>00169 static_swizzle2_const(<a class="code" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753" title="64bit signed integer. (from GLM_GTC_type_precision extension)">glm::i64</a>, 4)
205 <a name="l00170"></a>00170
206 <a name="l00171"></a>00171 static_swizzle2_const(<a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u8</a>, 2)
207 <a name="l00172"></a>00172 static_swizzle2_const(<a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u8</a>, 3)
208 <a name="l00173"></a>00173 static_swizzle2_const(<a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u8</a>, 4)
209 <a name="l00174"></a>00174 static_swizzle2_const(<a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u16</a>, 2)
210 <a name="l00175"></a>00175 static_swizzle2_const(<a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u16</a>, 3)
211 <a name="l00176"></a>00176 static_swizzle2_const(<a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u16</a>, 4)
212 <a name="l00177"></a>00177 static_swizzle2_const(<a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u32</a>, 2)
213 <a name="l00178"></a>00178 static_swizzle2_const(<a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u32</a>, 3)
214 <a name="l00179"></a>00179 static_swizzle2_const(<a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u32</a>, 4)
215 <a name="l00180"></a>00180 static_swizzle2_const(<a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u64</a>, 2)
216 <a name="l00181"></a>00181 static_swizzle2_const(<a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u64</a>, 3)
217 <a name="l00182"></a>00182 static_swizzle2_const(<a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u64</a>, 4)
218 <a name="l00183"></a>00183
219 <a name="l00184"></a>00184 static_swizzle3_const(<a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f16</a>, 2)
220 <a name="l00185"></a>00185 static_swizzle3_const(<a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f16</a>, 3)
221 <a name="l00186"></a>00186 static_swizzle3_const(<a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f16</a>, 4)
222 <a name="l00187"></a>00187 static_swizzle3_const(<a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f32</a>, 2)
223 <a name="l00188"></a>00188 static_swizzle3_const(<a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f32</a>, 3)
224 <a name="l00189"></a>00189 static_swizzle3_const(<a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f32</a>, 4)
225 <a name="l00190"></a>00190 static_swizzle3_const(<a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f64</a>, 2)
226 <a name="l00191"></a>00191 static_swizzle3_const(<a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f64</a>, 3)
227 <a name="l00192"></a>00192 static_swizzle3_const(<a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f64</a>, 4)
228 <a name="l00193"></a>00193
229 <a name="l00194"></a>00194 static_swizzle3_const(<a class="code" href="a00245.html#ga112f99168645b5338136b72eddd12895" title="8bit signed integer. (from GLM_GTC_type_precision extension)">glm::i8</a>, 2)
230 <a name="l00195"></a>00195 static_swizzle3_const(<a class="code" href="a00245.html#ga112f99168645b5338136b72eddd12895" title="8bit signed integer. (from GLM_GTC_type_precision extension)">glm::i8</a>, 3)
231 <a name="l00196"></a>00196 static_swizzle3_const(<a class="code" href="a00245.html#ga112f99168645b5338136b72eddd12895" title="8bit signed integer. (from GLM_GTC_type_precision extension)">glm::i8</a>, 4)
232 <a name="l00197"></a>00197 static_swizzle3_const(<a class="code" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d" title="16bit signed integer. (from GLM_GTC_type_precision extension)">glm::i16</a>, 2)
233 <a name="l00198"></a>00198 static_swizzle3_const(<a class="code" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d" title="16bit signed integer. (from GLM_GTC_type_precision extension)">glm::i16</a>, 3)
234 <a name="l00199"></a>00199 static_swizzle3_const(<a class="code" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d" title="16bit signed integer. (from GLM_GTC_type_precision extension)">glm::i16</a>, 4)
235 <a name="l00200"></a>00200 static_swizzle3_const(<a class="code" href="a00245.html#ga324db08ffb2a193f9a10864288b94523" title="32bit signed integer. (from GLM_GTC_type_precision extension)">glm::i32</a>, 2)
236 <a name="l00201"></a>00201 static_swizzle3_const(<a class="code" href="a00245.html#ga324db08ffb2a193f9a10864288b94523" title="32bit signed integer. (from GLM_GTC_type_precision extension)">glm::i32</a>, 3)
237 <a name="l00202"></a>00202 static_swizzle3_const(<a class="code" href="a00245.html#ga324db08ffb2a193f9a10864288b94523" title="32bit signed integer. (from GLM_GTC_type_precision extension)">glm::i32</a>, 4)
238 <a name="l00203"></a>00203 static_swizzle3_const(<a class="code" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753" title="64bit signed integer. (from GLM_GTC_type_precision extension)">glm::i64</a>, 2)
239 <a name="l00204"></a>00204 static_swizzle3_const(<a class="code" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753" title="64bit signed integer. (from GLM_GTC_type_precision extension)">glm::i64</a>, 3)
240 <a name="l00205"></a>00205 static_swizzle3_const(<a class="code" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753" title="64bit signed integer. (from GLM_GTC_type_precision extension)">glm::i64</a>, 4)
241 <a name="l00206"></a>00206
242 <a name="l00207"></a>00207 static_swizzle3_const(<a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u8</a>, 2)
243 <a name="l00208"></a>00208 static_swizzle3_const(<a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u8</a>, 3)
244 <a name="l00209"></a>00209 static_swizzle3_const(<a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u8</a>, 4)
245 <a name="l00210"></a>00210 static_swizzle3_const(<a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u16</a>, 2)
246 <a name="l00211"></a>00211 static_swizzle3_const(<a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u16</a>, 3)
247 <a name="l00212"></a>00212 static_swizzle3_const(<a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u16</a>, 4)
248 <a name="l00213"></a>00213 static_swizzle3_const(<a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u32</a>, 2)
249 <a name="l00214"></a>00214 static_swizzle3_const(<a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u32</a>, 3)
250 <a name="l00215"></a>00215 static_swizzle3_const(<a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u32</a>, 4)
251 <a name="l00216"></a>00216 static_swizzle3_const(<a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u64</a>, 2)
252 <a name="l00217"></a>00217 static_swizzle3_const(<a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u64</a>, 3)
253 <a name="l00218"></a>00218 static_swizzle3_const(<a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u64</a>, 4)
254 <a name="l00219"></a>00219
255 <a name="l00220"></a>00220 static_swizzle4_const(<a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f16</a>, 2)
256 <a name="l00221"></a>00221 static_swizzle4_const(<a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f16</a>, 3)
257 <a name="l00222"></a>00222 static_swizzle4_const(<a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f16</a>, 4)
258 <a name="l00223"></a>00223 static_swizzle4_const(<a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f32</a>, 2)
259 <a name="l00224"></a>00224 static_swizzle4_const(<a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f32</a>, 3)
260 <a name="l00225"></a>00225 static_swizzle4_const(<a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f32</a>, 4)
261 <a name="l00226"></a>00226 static_swizzle4_const(<a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f64</a>, 2)
262 <a name="l00227"></a>00227 static_swizzle4_const(<a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f64</a>, 3)
263 <a name="l00228"></a>00228 static_swizzle4_const(<a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f64</a>, 4)
264 <a name="l00229"></a>00229
265 <a name="l00230"></a>00230 static_swizzle4_const(<a class="code" href="a00245.html#ga112f99168645b5338136b72eddd12895" title="8bit signed integer. (from GLM_GTC_type_precision extension)">glm::i8</a>, 2)
266 <a name="l00231"></a>00231 static_swizzle4_const(<a class="code" href="a00245.html#ga112f99168645b5338136b72eddd12895" title="8bit signed integer. (from GLM_GTC_type_precision extension)">glm::i8</a>, 3)
267 <a name="l00232"></a>00232 static_swizzle4_const(<a class="code" href="a00245.html#ga112f99168645b5338136b72eddd12895" title="8bit signed integer. (from GLM_GTC_type_precision extension)">glm::i8</a>, 4)
268 <a name="l00233"></a>00233 static_swizzle4_const(<a class="code" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d" title="16bit signed integer. (from GLM_GTC_type_precision extension)">glm::i16</a>, 2)
269 <a name="l00234"></a>00234 static_swizzle4_const(<a class="code" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d" title="16bit signed integer. (from GLM_GTC_type_precision extension)">glm::i16</a>, 3)
270 <a name="l00235"></a>00235 static_swizzle4_const(<a class="code" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d" title="16bit signed integer. (from GLM_GTC_type_precision extension)">glm::i16</a>, 4)
271 <a name="l00236"></a>00236 static_swizzle4_const(<a class="code" href="a00245.html#ga324db08ffb2a193f9a10864288b94523" title="32bit signed integer. (from GLM_GTC_type_precision extension)">glm::i32</a>, 2)
272 <a name="l00237"></a>00237 static_swizzle4_const(<a class="code" href="a00245.html#ga324db08ffb2a193f9a10864288b94523" title="32bit signed integer. (from GLM_GTC_type_precision extension)">glm::i32</a>, 3)
273 <a name="l00238"></a>00238 static_swizzle4_const(<a class="code" href="a00245.html#ga324db08ffb2a193f9a10864288b94523" title="32bit signed integer. (from GLM_GTC_type_precision extension)">glm::i32</a>, 4)
274 <a name="l00239"></a>00239 static_swizzle4_const(<a class="code" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753" title="64bit signed integer. (from GLM_GTC_type_precision extension)">glm::i64</a>, 2)
275 <a name="l00240"></a>00240 static_swizzle4_const(<a class="code" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753" title="64bit signed integer. (from GLM_GTC_type_precision extension)">glm::i64</a>, 3)
276 <a name="l00241"></a>00241 static_swizzle4_const(<a class="code" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753" title="64bit signed integer. (from GLM_GTC_type_precision extension)">glm::i64</a>, 4)
277 <a name="l00242"></a>00242
278 <a name="l00243"></a>00243 static_swizzle4_const(<a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u8</a>, 2)
279 <a name="l00244"></a>00244 static_swizzle4_const(<a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u8</a>, 3)
280 <a name="l00245"></a>00245 static_swizzle4_const(<a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u8</a>, 4)
281 <a name="l00246"></a>00246 static_swizzle4_const(<a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u16</a>, 2)
282 <a name="l00247"></a>00247 static_swizzle4_const(<a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u16</a>, 3)
283 <a name="l00248"></a>00248 static_swizzle4_const(<a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u16</a>, 4)
284 <a name="l00249"></a>00249 static_swizzle4_const(<a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u32</a>, 2)
285 <a name="l00250"></a>00250 static_swizzle4_const(<a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u32</a>, 3)
286 <a name="l00251"></a>00251 static_swizzle4_const(<a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u32</a>, 4)
287 <a name="l00252"></a>00252 static_swizzle4_const(<a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u64</a>, 2)
288 <a name="l00253"></a>00253 static_swizzle4_const(<a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u64</a>, 3)
289 <a name="l00254"></a>00254 static_swizzle4_const(<a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u64</a>, 4)
290 <a name="l00255"></a>00255
291 <a name="l00256"></a>00256 <span class="preprocessor"># define static_swizzle2_ref(TYPE, SIZE) \</span>
292 <a name="l00257"></a>00257 <span class="preprocessor"> template &lt;glm::comp x, glm::comp y&gt; \</span>
293 <a name="l00258"></a>00258 <span class="preprocessor"> GLM_FUNC_QUALIFIER glm::detail::tref2&lt;TYPE&gt; swizzle(detail::tvec##SIZE&lt;TYPE&gt; &amp; v) \</span>
294 <a name="l00259"></a>00259 <span class="preprocessor"> {return glm::detail::tref2&lt;TYPE&gt;(v[x], v[y]);} </span>
295 <a name="l00260"></a>00260 <span class="preprocessor"></span>
296 <a name="l00261"></a>00261 <span class="preprocessor"># define static_swizzle3_ref(TYPE, SIZE) \</span>
297 <a name="l00262"></a>00262 <span class="preprocessor"> template &lt;glm::comp x, glm::comp y, glm::comp z&gt; \</span>
298 <a name="l00263"></a>00263 <span class="preprocessor"> GLM_FUNC_QUALIFIER glm::detail::tref3&lt;TYPE&gt; swizzle(detail::tvec##SIZE&lt;TYPE&gt; &amp; v) \</span>
299 <a name="l00264"></a>00264 <span class="preprocessor"> {return glm::detail::tref3&lt;TYPE&gt;(v[x], v[y], v[z]);} </span>
300 <a name="l00265"></a>00265 <span class="preprocessor"></span>
301 <a name="l00266"></a>00266 <span class="preprocessor"># define static_swizzle4_ref(TYPE, SIZE) \</span>
302 <a name="l00267"></a>00267 <span class="preprocessor"> template &lt;glm::comp x, glm::comp y, glm::comp z, glm::comp w&gt; \</span>
303 <a name="l00268"></a>00268 <span class="preprocessor"> GLM_FUNC_QUALIFIER glm::detail::tref4&lt;TYPE&gt; swizzle(detail::tvec##SIZE&lt;TYPE&gt; &amp; v) \</span>
304 <a name="l00269"></a>00269 <span class="preprocessor"> {return glm::detail::tref4&lt;TYPE&gt;(v[x], v[y], v[z], v[w]);} </span>
305 <a name="l00270"></a>00270 <span class="preprocessor"></span>
306 <a name="l00271"></a>00271 static_swizzle2_ref(<a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f16</a>, 2)
307 <a name="l00272"></a>00272 static_swizzle2_ref(<a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f16</a>, 3)
308 <a name="l00273"></a>00273 static_swizzle2_ref(<a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f16</a>, 4)
309 <a name="l00274"></a>00274 static_swizzle2_ref(<a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f32</a>, 2)
310 <a name="l00275"></a>00275 static_swizzle2_ref(<a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f32</a>, 3)
311 <a name="l00276"></a>00276 static_swizzle2_ref(<a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f32</a>, 4)
312 <a name="l00277"></a>00277 static_swizzle2_ref(<a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f64</a>, 2)
313 <a name="l00278"></a>00278 static_swizzle2_ref(<a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f64</a>, 3)
314 <a name="l00279"></a>00279 static_swizzle2_ref(<a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f64</a>, 4)
315 <a name="l00280"></a>00280
316 <a name="l00281"></a>00281 static_swizzle2_ref(<a class="code" href="a00245.html#ga112f99168645b5338136b72eddd12895" title="8bit signed integer. (from GLM_GTC_type_precision extension)">glm::i8</a>, 2)
317 <a name="l00282"></a>00282 static_swizzle2_ref(<a class="code" href="a00245.html#ga112f99168645b5338136b72eddd12895" title="8bit signed integer. (from GLM_GTC_type_precision extension)">glm::i8</a>, 3)
318 <a name="l00283"></a>00283 static_swizzle2_ref(<a class="code" href="a00245.html#ga112f99168645b5338136b72eddd12895" title="8bit signed integer. (from GLM_GTC_type_precision extension)">glm::i8</a>, 4)
319 <a name="l00284"></a>00284 static_swizzle2_ref(<a class="code" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d" title="16bit signed integer. (from GLM_GTC_type_precision extension)">glm::i16</a>, 2)
320 <a name="l00285"></a>00285 static_swizzle2_ref(<a class="code" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d" title="16bit signed integer. (from GLM_GTC_type_precision extension)">glm::i16</a>, 3)
321 <a name="l00286"></a>00286 static_swizzle2_ref(<a class="code" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d" title="16bit signed integer. (from GLM_GTC_type_precision extension)">glm::i16</a>, 4)
322 <a name="l00287"></a>00287 static_swizzle2_ref(<a class="code" href="a00245.html#ga324db08ffb2a193f9a10864288b94523" title="32bit signed integer. (from GLM_GTC_type_precision extension)">glm::i32</a>, 2)
323 <a name="l00288"></a>00288 static_swizzle2_ref(<a class="code" href="a00245.html#ga324db08ffb2a193f9a10864288b94523" title="32bit signed integer. (from GLM_GTC_type_precision extension)">glm::i32</a>, 3)
324 <a name="l00289"></a>00289 static_swizzle2_ref(<a class="code" href="a00245.html#ga324db08ffb2a193f9a10864288b94523" title="32bit signed integer. (from GLM_GTC_type_precision extension)">glm::i32</a>, 4)
325 <a name="l00290"></a>00290 static_swizzle2_ref(<a class="code" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753" title="64bit signed integer. (from GLM_GTC_type_precision extension)">glm::i64</a>, 2)
326 <a name="l00291"></a>00291 static_swizzle2_ref(<a class="code" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753" title="64bit signed integer. (from GLM_GTC_type_precision extension)">glm::i64</a>, 3)
327 <a name="l00292"></a>00292 static_swizzle2_ref(<a class="code" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753" title="64bit signed integer. (from GLM_GTC_type_precision extension)">glm::i64</a>, 4)
328 <a name="l00293"></a>00293
329 <a name="l00294"></a>00294 static_swizzle2_ref(<a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u8</a>, 2)
330 <a name="l00295"></a>00295 static_swizzle2_ref(<a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u8</a>, 3)
331 <a name="l00296"></a>00296 static_swizzle2_ref(<a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u8</a>, 4)
332 <a name="l00297"></a>00297 static_swizzle2_ref(<a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u16</a>, 2)
333 <a name="l00298"></a>00298 static_swizzle2_ref(<a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u16</a>, 3)
334 <a name="l00299"></a>00299 static_swizzle2_ref(<a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u16</a>, 4)
335 <a name="l00300"></a>00300 static_swizzle2_ref(<a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u32</a>, 2)
336 <a name="l00301"></a>00301 static_swizzle2_ref(<a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u32</a>, 3)
337 <a name="l00302"></a>00302 static_swizzle2_ref(<a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u32</a>, 4)
338 <a name="l00303"></a>00303 static_swizzle2_ref(<a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u64</a>, 2)
339 <a name="l00304"></a>00304 static_swizzle2_ref(<a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u64</a>, 3)
340 <a name="l00305"></a>00305 static_swizzle2_ref(<a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u64</a>, 4)
341 <a name="l00306"></a>00306
342 <a name="l00307"></a>00307 static_swizzle3_ref(<a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f16</a>, 3)
343 <a name="l00308"></a>00308 static_swizzle3_ref(<a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f16</a>, 4)
344 <a name="l00309"></a>00309 static_swizzle3_ref(<a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f32</a>, 3)
345 <a name="l00310"></a>00310 static_swizzle3_ref(<a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f32</a>, 4)
346 <a name="l00311"></a>00311 static_swizzle3_ref(<a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f64</a>, 3)
347 <a name="l00312"></a>00312 static_swizzle3_ref(<a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f64</a>, 4)
348 <a name="l00313"></a>00313
349 <a name="l00314"></a>00314 static_swizzle3_ref(<a class="code" href="a00245.html#ga112f99168645b5338136b72eddd12895" title="8bit signed integer. (from GLM_GTC_type_precision extension)">glm::i8</a>, 3)
350 <a name="l00315"></a>00315 static_swizzle3_ref(<a class="code" href="a00245.html#ga112f99168645b5338136b72eddd12895" title="8bit signed integer. (from GLM_GTC_type_precision extension)">glm::i8</a>, 4)
351 <a name="l00316"></a>00316 static_swizzle3_ref(<a class="code" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d" title="16bit signed integer. (from GLM_GTC_type_precision extension)">glm::i16</a>, 3)
352 <a name="l00317"></a>00317 static_swizzle3_ref(<a class="code" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d" title="16bit signed integer. (from GLM_GTC_type_precision extension)">glm::i16</a>, 4)
353 <a name="l00318"></a>00318 static_swizzle3_ref(<a class="code" href="a00245.html#ga324db08ffb2a193f9a10864288b94523" title="32bit signed integer. (from GLM_GTC_type_precision extension)">glm::i32</a>, 3)
354 <a name="l00319"></a>00319 static_swizzle3_ref(<a class="code" href="a00245.html#ga324db08ffb2a193f9a10864288b94523" title="32bit signed integer. (from GLM_GTC_type_precision extension)">glm::i32</a>, 4)
355 <a name="l00320"></a>00320 static_swizzle3_ref(<a class="code" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753" title="64bit signed integer. (from GLM_GTC_type_precision extension)">glm::i64</a>, 3)
356 <a name="l00321"></a>00321 static_swizzle3_ref(<a class="code" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753" title="64bit signed integer. (from GLM_GTC_type_precision extension)">glm::i64</a>, 4)
357 <a name="l00322"></a>00322
358 <a name="l00323"></a>00323 static_swizzle3_ref(<a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u8</a>, 3)
359 <a name="l00324"></a>00324 static_swizzle3_ref(<a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u8</a>, 4)
360 <a name="l00325"></a>00325 static_swizzle3_ref(<a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u16</a>, 3)
361 <a name="l00326"></a>00326 static_swizzle3_ref(<a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u16</a>, 4)
362 <a name="l00327"></a>00327 static_swizzle3_ref(<a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u32</a>, 3)
363 <a name="l00328"></a>00328 static_swizzle3_ref(<a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u32</a>, 4)
364 <a name="l00329"></a>00329 static_swizzle3_ref(<a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u64</a>, 3)
365 <a name="l00330"></a>00330 static_swizzle3_ref(<a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u64</a>, 4)
366 <a name="l00331"></a>00331
367 <a name="l00332"></a>00332 static_swizzle4_ref(<a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f16</a>, 4)
368 <a name="l00333"></a>00333 static_swizzle4_ref(<a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f32</a>, 4)
369 <a name="l00334"></a>00334 static_swizzle4_ref(<a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">glm::f64</a>, 4)
370 <a name="l00335"></a>00335
371 <a name="l00336"></a>00336 static_swizzle4_ref(<a class="code" href="a00245.html#ga112f99168645b5338136b72eddd12895" title="8bit signed integer. (from GLM_GTC_type_precision extension)">glm::i8</a>, 4)
372 <a name="l00337"></a>00337 static_swizzle4_ref(<a class="code" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d" title="16bit signed integer. (from GLM_GTC_type_precision extension)">glm::i16</a>, 4)
373 <a name="l00338"></a>00338 static_swizzle4_ref(<a class="code" href="a00245.html#ga324db08ffb2a193f9a10864288b94523" title="32bit signed integer. (from GLM_GTC_type_precision extension)">glm::i32</a>, 4)
374 <a name="l00339"></a>00339 static_swizzle4_ref(<a class="code" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753" title="64bit signed integer. (from GLM_GTC_type_precision extension)">glm::i64</a>, 4)
375 <a name="l00340"></a>00340
376 <a name="l00341"></a>00341 static_swizzle4_ref(<a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u8</a>, 4)
377 <a name="l00342"></a>00342 static_swizzle4_ref(<a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u16</a>, 4)
378 <a name="l00343"></a>00343 static_swizzle4_ref(<a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u32</a>, 4)
379 <a name="l00344"></a>00344 static_swizzle4_ref(<a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">glm::u64</a>, 4)
380 <a name="l00345"></a>00345
381 <a name="l00346"></a>00346 }<span class="comment">//namespace swizzle</span>
382 <a name="l00347"></a>00347 }<span class="comment">//namespace gtc</span>
383 <a name="l00348"></a>00348 }<span class="comment">//namespace glm</span>
384 <a name="l00349"></a>00349
385 <a name="l00350"></a>00350 <span class="preprocessor">#include &quot;swizzle.inl&quot;</span>
386 <a name="l00351"></a>00351
387 <a name="l00352"></a>00352 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::swizzle;}
388 <a name="l00353"></a>00353
389 <a name="l00354"></a>00354 <span class="preprocessor">#endif//glm_gtc_swizzle</span>
392390 </pre></div></div>
393391 </div>
394392 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_transform extension included&quot;)</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5959 <a name="l00024"></a>00024 <span class="preprocessor"></span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm
61 <a name="l00026"></a>00026 {
62 <a name="l00027"></a>00027 <span class="keyword">namespace </span>test{
63 <a name="l00028"></a>00028 <span class="keywordtype">void</span> main_gtx_transform();
64 <a name="l00029"></a>00029 }<span class="comment">//namespace test</span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm{
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>gtx{
62 <a name="l00027"></a><a class="code" href="a00219.html">00027</a> <span class="keyword">namespace </span>transform
63 <a name="l00028"></a>00028 {
64 <a name="l00029"></a>00029 <span class="keyword">using namespace </span>gtc::matrix_transform;
6565 <a name="l00030"></a>00030
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>gtx{
67 <a name="l00033"></a><a class="code" href="a00219.html">00033</a> <span class="keyword">namespace </span>transform
68 <a name="l00034"></a>00034 {
69 <a name="l00035"></a>00035 <span class="keyword">using namespace </span>gtc::matrix_transform;
70 <a name="l00036"></a>00036
71 <a name="l00039"></a>00039
72 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
73 <a name="l00043"></a>00043 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00295.html#ga982331dbdf3a14d1ed6601e67178cff3" title="Builds a translation 4 * 4 matrix created from 3 scalars.">translate</a>(
74 <a name="l00044"></a>00044 T x, T y, T z);
75 <a name="l00045"></a>00045
76 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
77 <a name="l00049"></a>00049 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00295.html#ga982331dbdf3a14d1ed6601e67178cff3" title="Builds a translation 4 * 4 matrix created from 3 scalars.">translate</a>(
78 <a name="l00050"></a>00050 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
79 <a name="l00051"></a>00051 T x, T y, T z);
80 <a name="l00052"></a>00052
81 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
82 <a name="l00056"></a>00056 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00295.html#ga982331dbdf3a14d1ed6601e67178cff3" title="Builds a translation 4 * 4 matrix created from 3 scalars.">translate</a>(
83 <a name="l00057"></a>00057 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
84 <a name="l00058"></a>00058
85 <a name="l00061"></a>00061 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
86 <a name="l00062"></a>00062 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00295.html#ga6051e4c2205da027f721331b22f70d9d" title="Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees...">rotate</a>(
87 <a name="l00063"></a>00063 T <a class="code" href="a00286.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>,
88 <a name="l00064"></a>00064 T x, T y, T z);
89 <a name="l00065"></a>00065
90 <a name="l00068"></a>00068 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
91 <a name="l00069"></a>00069 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00295.html#ga6051e4c2205da027f721331b22f70d9d" title="Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees...">rotate</a>(
92 <a name="l00070"></a>00070 T angle,
93 <a name="l00071"></a>00071 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
94 <a name="l00072"></a>00072
95 <a name="l00075"></a>00075 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
96 <a name="l00076"></a>00076 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00295.html#ga6051e4c2205da027f721331b22f70d9d" title="Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees...">rotate</a>(
97 <a name="l00077"></a>00077 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
98 <a name="l00078"></a>00078 T angle,
99 <a name="l00079"></a>00079 T x, T y, T z);
66 <a name="l00033"></a>00033
67 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
68 <a name="l00037"></a>00037 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00294.html#ga982331dbdf3a14d1ed6601e67178cff3" title="Builds a translation 4 * 4 matrix created from 3 scalars.">translate</a>(
69 <a name="l00038"></a>00038 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> z);
70 <a name="l00039"></a>00039
71 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
72 <a name="l00043"></a>00043 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00294.html#ga982331dbdf3a14d1ed6601e67178cff3" title="Builds a translation 4 * 4 matrix created from 3 scalars.">translate</a>(
73 <a name="l00044"></a>00044 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
74 <a name="l00045"></a>00045 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> z);
75 <a name="l00046"></a>00046
76 <a name="l00049"></a>00049 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
77 <a name="l00050"></a>00050 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00294.html#ga982331dbdf3a14d1ed6601e67178cff3" title="Builds a translation 4 * 4 matrix created from 3 scalars.">translate</a>(
78 <a name="l00051"></a>00051 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
79 <a name="l00052"></a>00052
80 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
81 <a name="l00056"></a>00056 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00294.html#ga6051e4c2205da027f721331b22f70d9d" title="Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees...">rotate</a>(
82 <a name="l00057"></a>00057 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00285.html#ga6a3387a7d60728f60d86546b2f4d4d30" title="Returns the quaternion rotation angle.">angle</a>,
83 <a name="l00058"></a>00058 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> z);
84 <a name="l00059"></a>00059
85 <a name="l00062"></a>00062 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
86 <a name="l00063"></a>00063 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00294.html#ga6051e4c2205da027f721331b22f70d9d" title="Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees...">rotate</a>(
87 <a name="l00064"></a>00064 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> angle,
88 <a name="l00065"></a>00065 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
89 <a name="l00066"></a>00066
90 <a name="l00069"></a>00069 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
91 <a name="l00070"></a>00070 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00294.html#ga6051e4c2205da027f721331b22f70d9d" title="Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees...">rotate</a>(
92 <a name="l00071"></a>00071 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
93 <a name="l00072"></a>00072 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> angle,
94 <a name="l00073"></a>00073 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> z);
95 <a name="l00074"></a>00074
96 <a name="l00077"></a>00077 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
97 <a name="l00078"></a>00078 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00294.html#ga491ec926cfd56184de78ce4594e004a0" title="Builds a scale 4 * 4 matrix created from 3 scalars.">scale</a>(
98 <a name="l00079"></a>00079 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> z);
10099 <a name="l00080"></a>00080
101 <a name="l00083"></a>00083 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
102 <a name="l00084"></a>00084 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00295.html#ga491ec926cfd56184de78ce4594e004a0" title="Builds a scale 4 * 4 matrix created from 3 scalars.">scale</a>(
103 <a name="l00085"></a>00085 T x, T y, T z);
104 <a name="l00086"></a>00086
105 <a name="l00089"></a>00089 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
106 <a name="l00090"></a>00090 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00295.html#ga491ec926cfd56184de78ce4594e004a0" title="Builds a scale 4 * 4 matrix created from 3 scalars.">scale</a>(
107 <a name="l00091"></a>00091 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
108 <a name="l00092"></a>00092 T x, T y, T z);
100 <a name="l00083"></a>00083 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
101 <a name="l00084"></a>00084 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00294.html#ga491ec926cfd56184de78ce4594e004a0" title="Builds a scale 4 * 4 matrix created from 3 scalars.">scale</a>(
102 <a name="l00085"></a>00085 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
103 <a name="l00086"></a>00086 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> z);
104 <a name="l00087"></a>00087
105 <a name="l00090"></a>00090 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
106 <a name="l00091"></a>00091 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00294.html#ga491ec926cfd56184de78ce4594e004a0" title="Builds a scale 4 * 4 matrix created from 3 scalars.">scale</a>(
107 <a name="l00092"></a>00092 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
109108 <a name="l00093"></a>00093
110 <a name="l00096"></a>00096 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
111 <a name="l00097"></a>00097 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00295.html#ga491ec926cfd56184de78ce4594e004a0" title="Builds a scale 4 * 4 matrix created from 3 scalars.">scale</a>(
112 <a name="l00098"></a>00098 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
113 <a name="l00099"></a>00099
114 <a name="l00101"></a>00101
115 <a name="l00102"></a>00102 }<span class="comment">//namespace transform</span>
116 <a name="l00103"></a>00103 }<span class="comment">//namespace gtx</span>
117 <a name="l00104"></a>00104 }<span class="comment">//namespace glm</span>
118 <a name="l00105"></a>00105
119 <a name="l00106"></a>00106 <span class="preprocessor">#include &quot;transform.inl&quot;</span>
120 <a name="l00107"></a>00107
121 <a name="l00108"></a>00108 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::transform;}
122 <a name="l00109"></a>00109
123 <a name="l00110"></a>00110 <span class="preprocessor">#endif//glm_gtx_transform</span>
109 <a name="l00095"></a>00095 }<span class="comment">//namespace transform</span>
110 <a name="l00096"></a>00096 }<span class="comment">//namespace gtx</span>
111 <a name="l00097"></a>00097 }<span class="comment">//namespace glm</span>
112 <a name="l00098"></a>00098
113 <a name="l00099"></a>00099 <span class="preprocessor">#include &quot;transform.inl&quot;</span>
114 <a name="l00100"></a>00100
115 <a name="l00101"></a>00101 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::transform;}
116 <a name="l00102"></a>00102
117 <a name="l00103"></a>00103 <span class="preprocessor">#endif//glm_gtx_transform</span>
124118 </pre></div></div>
125119 </div>
126120 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_transform2 extension included&quot;)</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5959 <a name="l00024"></a>00024 <span class="preprocessor"></span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm
61 <a name="l00026"></a>00026 {
62 <a name="l00027"></a>00027 <span class="keyword">namespace </span>test{
63 <a name="l00028"></a>00028 <span class="keywordtype">void</span> main_gtx_transform2();
64 <a name="l00029"></a>00029 }<span class="comment">//namespace test</span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm{
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>gtx{
62 <a name="l00027"></a><a class="code" href="a00220.html">00027</a> <span class="keyword">namespace </span>transform2
63 <a name="l00028"></a>00028 {
64 <a name="l00029"></a>00029 <span class="keyword">using namespace </span>gtx::transform;
6565 <a name="l00030"></a>00030
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>gtx{
67 <a name="l00033"></a><a class="code" href="a00220.html">00033</a> <span class="keyword">namespace </span>transform2
68 <a name="l00034"></a>00034 {
69 <a name="l00035"></a>00035 <span class="keyword">using namespace </span>gtx::transform;
70 <a name="l00036"></a>00036
71 <a name="l00039"></a>00039
72 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
73 <a name="l00043"></a>00043 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00296.html#gaf9900000ffffcb4e50f0f97101a35a27" title="Transforms a matrix with a shearing on X axis.">shearX2D</a>(
74 <a name="l00044"></a>00044 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
75 <a name="l00045"></a>00045 T y);
76 <a name="l00046"></a>00046
77 <a name="l00049"></a>00049 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
78 <a name="l00050"></a>00050 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00296.html#ga73d1c5572f57bc69cd8296fa6411370a" title="Transforms a matrix with a shearing on Y axis.">shearY2D</a>(
79 <a name="l00051"></a>00051 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
80 <a name="l00052"></a>00052 T x);
81 <a name="l00053"></a>00053
82 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
83 <a name="l00057"></a>00057 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00296.html#ga8b165c7be525526861e19675cca6e192" title="Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension.">shearX3D</a>(
84 <a name="l00058"></a>00058 <span class="keyword">const</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> &amp; m,
85 <a name="l00059"></a>00059 T y,
86 <a name="l00060"></a>00060 T z);
87 <a name="l00061"></a>00061
88 <a name="l00064"></a>00064 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
89 <a name="l00065"></a>00065 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00296.html#gab059e40261cbfe782efb81aa866f1399" title="Transforms a matrix with a shearing on Y axis.">shearY3D</a>(
90 <a name="l00066"></a>00066 <span class="keyword">const</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> &amp; m,
91 <a name="l00067"></a>00067 T x,
92 <a name="l00068"></a>00068 T z);
93 <a name="l00069"></a>00069
94 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
95 <a name="l00073"></a>00073 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00296.html#ga3fbd91d387fea4c3f2d74e0ef2250996" title="Transforms a matrix with a shearing on Z axis.">shearZ3D</a>(
96 <a name="l00074"></a>00074 <span class="keyword">const</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> &amp; m,
97 <a name="l00075"></a>00075 T x,
98 <a name="l00076"></a>00076 T y);
99 <a name="l00077"></a>00077
100 <a name="l00078"></a>00078 <span class="comment">//template &lt;typename T&gt; GLM_FUNC_QUALIFIER detail::tmat4x4&lt;T&gt; shear(const detail::tmat4x4&lt;T&gt; &amp; m, shearPlane, planePoint, angle)</span>
101 <a name="l00079"></a>00079 <span class="comment">// Identity + tan(angle) * cross(Normal, OnPlaneVector) 0</span>
102 <a name="l00080"></a>00080 <span class="comment">// - dot(PointOnPlane, normal) * OnPlaneVector 1</span>
103 <a name="l00081"></a>00081
104 <a name="l00082"></a>00082 <span class="comment">// Reflect functions seem to don&#39;t work</span>
105 <a name="l00083"></a>00083 <span class="comment">//template &lt;typename T&gt; detail::tmat3x3&lt;T&gt; reflect2D(const detail::tmat3x3&lt;T&gt; &amp; m, const detail::tvec3&lt;T&gt;&amp; normal){return reflect2DGTX(m, normal);} //!&lt; \brief Build a reflection matrix (from GLM_GTX_transform2 extension)</span>
106 <a name="l00084"></a>00084 <span class="comment">//template &lt;typename T&gt; detail::tmat4x4&lt;T&gt; reflect3D(const detail::tmat4x4&lt;T&gt; &amp; m, const detail::tvec3&lt;T&gt;&amp; normal){return reflect3DGTX(m, normal);} //!&lt; \brief Build a reflection matrix (from GLM_GTX_transform2 extension)</span>
107 <a name="l00085"></a>00085
108 <a name="l00088"></a>00088 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
109 <a name="l00089"></a>00089 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00296.html#gad67f97fe49fb1709d6d8b6810c7c52fb" title="Build planar projection matrix along normal axis.">proj2D</a>(
110 <a name="l00090"></a>00090 <span class="keyword">const</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> &amp; m,
111 <a name="l00091"></a>00091 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; normal);
112 <a name="l00092"></a>00092
113 <a name="l00095"></a>00095 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
114 <a name="l00096"></a>00096 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00296.html#gabc160967cd323027f973976457590482" title="Build planar projection matrix along normal axis.">proj3D</a>(
115 <a name="l00097"></a>00097 <span class="keyword">const</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> &amp; m,
116 <a name="l00098"></a>00098 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; normal);
117 <a name="l00099"></a>00099
118 <a name="l00102"></a>00102 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
119 <a name="l00103"></a>00103 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00296.html#gae193c4807264f8454b1786ceeac02455" title="Build a scale bias matrix.">scaleBias</a>(
120 <a name="l00104"></a>00104 valType <a class="code" href="a00244.html#ga6da77ee2c33d0d33de557a37ff35b197" title="Builds a scale 4 * 4 matrix created from 3 scalars.">scale</a>,
121 <a name="l00105"></a>00105 valType bias);
122 <a name="l00106"></a>00106
123 <a name="l00109"></a>00109 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
124 <a name="l00110"></a>00110 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00296.html#gae193c4807264f8454b1786ceeac02455" title="Build a scale bias matrix.">scaleBias</a>(
125 <a name="l00111"></a>00111 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <span class="keyword">const</span> &amp; m,
126 <a name="l00112"></a>00112 valType scale,
127 <a name="l00113"></a>00113 valType bias);
128 <a name="l00114"></a>00114
129 <a name="l00116"></a>00116
130 <a name="l00117"></a>00117 }<span class="comment">//namespace transform2</span>
131 <a name="l00118"></a>00118 }<span class="comment">//namespace gtx</span>
132 <a name="l00119"></a>00119 }<span class="comment">//namespace glm</span>
133 <a name="l00120"></a>00120
134 <a name="l00121"></a>00121 <span class="preprocessor">#include &quot;transform2.inl&quot;</span>
135 <a name="l00122"></a>00122
136 <a name="l00123"></a>00123 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::transform2;}
137 <a name="l00124"></a>00124
138 <a name="l00125"></a>00125 <span class="preprocessor">#endif//glm_gtx_transform2</span>
66 <a name="l00033"></a>00033
67 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
68 <a name="l00037"></a>00037 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00295.html#gaf9900000ffffcb4e50f0f97101a35a27" title="Transforms a matrix with a shearing on X axis.">shearX2D</a>(
69 <a name="l00038"></a>00038 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
70 <a name="l00039"></a>00039 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> y);
71 <a name="l00040"></a>00040
72 <a name="l00043"></a>00043 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
73 <a name="l00044"></a>00044 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00295.html#ga73d1c5572f57bc69cd8296fa6411370a" title="Transforms a matrix with a shearing on Y axis.">shearY2D</a>(
74 <a name="l00045"></a>00045 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
75 <a name="l00046"></a>00046 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> x);
76 <a name="l00047"></a>00047
77 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
78 <a name="l00051"></a>00051 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00295.html#ga8b165c7be525526861e19675cca6e192" title="Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension.">shearX3D</a>(
79 <a name="l00052"></a>00052 <span class="keyword">const</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> &amp; m,
80 <a name="l00053"></a>00053 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> y,
81 <a name="l00054"></a>00054 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> z);
82 <a name="l00055"></a>00055
83 <a name="l00058"></a>00058 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
84 <a name="l00059"></a>00059 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00295.html#gab059e40261cbfe782efb81aa866f1399" title="Transforms a matrix with a shearing on Y axis.">shearY3D</a>(
85 <a name="l00060"></a>00060 <span class="keyword">const</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> &amp; m,
86 <a name="l00061"></a>00061 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> x,
87 <a name="l00062"></a>00062 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> z);
88 <a name="l00063"></a>00063
89 <a name="l00066"></a>00066 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
90 <a name="l00067"></a>00067 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00295.html#ga3fbd91d387fea4c3f2d74e0ef2250996" title="Transforms a matrix with a shearing on Z axis.">shearZ3D</a>(
91 <a name="l00068"></a>00068 <span class="keyword">const</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> &amp; m,
92 <a name="l00069"></a>00069 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> x,
93 <a name="l00070"></a>00070 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> y);
94 <a name="l00071"></a>00071
95 <a name="l00072"></a>00072 <span class="comment">//template &lt;typename T&gt; GLM_FUNC_QUALIFIER detail::tmat4x4&lt;T&gt; shear(const detail::tmat4x4&lt;T&gt; &amp; m, shearPlane, planePoint, angle)</span>
96 <a name="l00073"></a>00073 <span class="comment">// Identity + tan(angle) * cross(Normal, OnPlaneVector) 0</span>
97 <a name="l00074"></a>00074 <span class="comment">// - dot(PointOnPlane, normal) * OnPlaneVector 1</span>
98 <a name="l00075"></a>00075
99 <a name="l00076"></a>00076 <span class="comment">// Reflect functions seem to don&#39;t work</span>
100 <a name="l00077"></a>00077 <span class="comment">//template &lt;typename T&gt; detail::tmat3x3&lt;T&gt; reflect2D(const detail::tmat3x3&lt;T&gt; &amp; m, const detail::tvec3&lt;T&gt;&amp; normal){return reflect2DGTX(m, normal);} //!&lt; \brief Build a reflection matrix (from GLM_GTX_transform2 extension)</span>
101 <a name="l00078"></a>00078 <span class="comment">//template &lt;typename T&gt; detail::tmat4x4&lt;T&gt; reflect3D(const detail::tmat4x4&lt;T&gt; &amp; m, const detail::tvec3&lt;T&gt;&amp; normal){return reflect3DGTX(m, normal);} //!&lt; \brief Build a reflection matrix (from GLM_GTX_transform2 extension)</span>
102 <a name="l00079"></a>00079
103 <a name="l00082"></a>00082 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
104 <a name="l00083"></a>00083 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00295.html#gad67f97fe49fb1709d6d8b6810c7c52fb" title="Build planar projection matrix along normal axis.">proj2D</a>(
105 <a name="l00084"></a>00084 <span class="keyword">const</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> &amp; m,
106 <a name="l00085"></a>00085 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; normal);
107 <a name="l00086"></a>00086
108 <a name="l00089"></a>00089 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
109 <a name="l00090"></a>00090 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00295.html#gabc160967cd323027f973976457590482" title="Build planar projection matrix along normal axis.">proj3D</a>(
110 <a name="l00091"></a>00091 <span class="keyword">const</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> &amp; m,
111 <a name="l00092"></a>00092 <span class="keyword">const</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>&amp; normal);
112 <a name="l00093"></a>00093
113 <a name="l00096"></a>00096 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
114 <a name="l00097"></a>00097 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00295.html#gae193c4807264f8454b1786ceeac02455" title="Build a scale bias matrix.">scaleBias</a>(
115 <a name="l00098"></a>00098 valType <a class="code" href="a00243.html#ga6da77ee2c33d0d33de557a37ff35b197" title="Builds a scale 4 * 4 matrix created from 3 scalars.">scale</a>,
116 <a name="l00099"></a>00099 valType bias);
117 <a name="l00100"></a>00100
118 <a name="l00103"></a>00103 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
119 <a name="l00104"></a>00104 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <a class="code" href="a00295.html#gae193c4807264f8454b1786ceeac02455" title="Build a scale bias matrix.">scaleBias</a>(
120 <a name="l00105"></a>00105 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;valType&gt;</a> <span class="keyword">const</span> &amp; m,
121 <a name="l00106"></a>00106 valType scale,
122 <a name="l00107"></a>00107 valType bias);
123 <a name="l00108"></a>00108
124 <a name="l00110"></a>00110 }<span class="comment">// namespace transform2</span>
125 <a name="l00111"></a>00111 }<span class="comment">// namespace gtx</span>
126 <a name="l00112"></a>00112 }<span class="comment">// namespace glm</span>
127 <a name="l00113"></a>00113
128 <a name="l00114"></a>00114 <span class="preprocessor">#include &quot;transform2.inl&quot;</span>
129 <a name="l00115"></a>00115
130 <a name="l00116"></a>00116 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::transform2;}
131 <a name="l00117"></a>00117
132 <a name="l00118"></a>00118 <span class="preprocessor">#endif//glm_gtx_transform2</span>
139133 </pre></div></div>
140134 </div>
141135 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7474 <a name="l00039"></a>00039 <span class="comment">// Float definition</span>
7575 <a name="l00040"></a>00040
7676 <a name="l00041"></a>00041 <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_FLOAT))</span>
77 <a name="l00042"></a>00042 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga9b65d7afd0783a02f5b3d1b75d1d872e" title="2 components vector of high precision floating-point numbers.">precision::highp_vec2</a> vec2;
78 <a name="l00043"></a>00043 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga0d3129f5f6644cb7552f520ff0dfa789" title="3 components vector of high precision floating-point numbers.">precision::highp_vec3</a> <a class="code" href="a00235.html#gac422c7058a7c9963b55ad70764c62752" title="3 components vector of floating-point numbers.">vec3</a>;
79 <a name="l00044"></a>00044 <span class="keyword">typedef</span> <a class="code" href="a00236.html#gaaef692a5e2eae7dad32ca2f8ed0d16d8" title="4 components vector of high precision floating-point numbers.">precision::highp_vec4</a> <a class="code" href="a00235.html#ga8fad5ffc01ba6dea689f2a38bf30bda4" title="4 components vector of floating-point numbers.">vec4</a>;
80 <a name="l00045"></a>00045 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga9aa0c5dce81439aa15a0d5b5e5006d81" title="2 columns of 2 components matrix of high precision floating-point numbers.">precision::highp_mat2x2</a> <a class="code" href="a00235.html#gac0430f4e1a8747774bcfbd0ea7c7df7b" title="2 columns of 2 components matrix of floating-point numbers.">mat2x2</a>;
81 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga895ba4ec32bd7cfb0d07572556572069" title="2 columns of 3 components matrix of high precision floating-point numbers.">precision::highp_mat2x3</a> <a class="code" href="a00235.html#ga166bc1c922bedbb7f655bd348ff2f97b" title="2 columns of 3 components matrix of floating-point numbers.">mat2x3</a>;
82 <a name="l00047"></a>00047 <span class="keyword">typedef</span> <a class="code" href="a00156.html#af8816ff880fbae96a59c543904333109" title="2 columns of 4 components matrix of high precision floating-point numbers.">precision::highp_mat2x4</a> <a class="code" href="a00235.html#ga0c9a783f321486534bd3a2fd3701a374" title="2 columns of 4 components matrix of floating-point numbers.">mat2x4</a>;
83 <a name="l00048"></a>00048 <span class="keyword">typedef</span> <a class="code" href="a00156.html#ae5e017b25e88ff5c61f4538a2dd5647a" title="3 columns of 2 components matrix of high precision floating-point numbers.">precision::highp_mat3x2</a> <a class="code" href="a00235.html#ga839dac056fcbc087c6c161eb0d7fbe1b" title="3 columns of 2 components matrix of floating-point numbers.">mat3x2</a>;
84 <a name="l00049"></a>00049 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga20aa8e5c6061576079c10e86cd743c8d" title="3 columns of 3 components matrix of high precision floating-point numbers.">precision::highp_mat3x3</a> <a class="code" href="a00235.html#gaf188822f2db83067facc9fa922416ad9" title="3 columns of 3 components matrix of floating-point numbers.">mat3x3</a>;
85 <a name="l00050"></a>00050 <span class="keyword">typedef</span> <a class="code" href="a00156.html#a8efc769b3edb7a3f420d6344e2308c72" title="3 columns of 4 components matrix of high precision floating-point numbers.">precision::highp_mat3x4</a> <a class="code" href="a00235.html#ga70f8918f1c21ead733c8f089c09d353a" title="3 columns of 4 components matrix of floating-point numbers.">mat3x4</a>;
86 <a name="l00051"></a>00051 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga3178de2c189bfdda4c73d6af8017f5d3" title="4 columns of 2 components matrix of high precision floating-point numbers.">precision::highp_mat4x2</a> <a class="code" href="a00235.html#ga2c797007acc18027b65dad6e1f2d7b77" title="4 columns of 2 components matrix of floating-point numbers.">mat4x2</a>;
87 <a name="l00052"></a>00052 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga00d8bf8ebaab7d6647a3b7f73ae324af" title="4 columns of 3 components matrix of high precision floating-point numbers.">precision::highp_mat4x3</a> <a class="code" href="a00235.html#ga73f97cdfb274c84ac7115b8e03c6b54a" title="4 columns of 3 components matrix of floating-point numbers.">mat4x3</a>;
88 <a name="l00053"></a>00053 <span class="keyword">typedef</span> <a class="code" href="a00236.html#gadd2ef277f86f6fa29804a22d1eb7d662" title="4 columns of 4 components matrix of high precision floating-point numbers.">precision::highp_mat4x4</a> <a class="code" href="a00235.html#ga214f3d771188cb5b9ec6b5485ac082dc" title="4 columns of 4 components matrix of floating-point numbers.">mat4x4</a>;
77 <a name="l00042"></a>00042 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga9b65d7afd0783a02f5b3d1b75d1d872e" title="2 components vector of high precision floating-point numbers.">precision::highp_vec2</a> vec2;
78 <a name="l00043"></a>00043 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga0d3129f5f6644cb7552f520ff0dfa789" title="3 components vector of high precision floating-point numbers.">precision::highp_vec3</a> <a class="code" href="a00234.html#gac422c7058a7c9963b55ad70764c62752" title="3 components vector of floating-point numbers.">vec3</a>;
79 <a name="l00044"></a>00044 <span class="keyword">typedef</span> <a class="code" href="a00235.html#gaaef692a5e2eae7dad32ca2f8ed0d16d8" title="4 components vector of high precision floating-point numbers.">precision::highp_vec4</a> <a class="code" href="a00234.html#ga8fad5ffc01ba6dea689f2a38bf30bda4" title="4 components vector of floating-point numbers.">vec4</a>;
80 <a name="l00045"></a>00045 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga9aa0c5dce81439aa15a0d5b5e5006d81" title="2 columns of 2 components matrix of high precision floating-point numbers.">precision::highp_mat2x2</a> <a class="code" href="a00234.html#gac0430f4e1a8747774bcfbd0ea7c7df7b" title="2 columns of 2 components matrix of floating-point numbers.">mat2x2</a>;
81 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga895ba4ec32bd7cfb0d07572556572069" title="2 columns of 3 components matrix of high precision floating-point numbers.">precision::highp_mat2x3</a> <a class="code" href="a00234.html#ga166bc1c922bedbb7f655bd348ff2f97b" title="2 columns of 3 components matrix of floating-point numbers.">mat2x3</a>;
82 <a name="l00047"></a>00047 <span class="keyword">typedef</span> <a class="code" href="a00156.html#af8816ff880fbae96a59c543904333109" title="2 columns of 4 components matrix of high precision floating-point numbers.">precision::highp_mat2x4</a> <a class="code" href="a00234.html#ga0c9a783f321486534bd3a2fd3701a374" title="2 columns of 4 components matrix of floating-point numbers.">mat2x4</a>;
83 <a name="l00048"></a>00048 <span class="keyword">typedef</span> <a class="code" href="a00156.html#ae5e017b25e88ff5c61f4538a2dd5647a" title="3 columns of 2 components matrix of high precision floating-point numbers.">precision::highp_mat3x2</a> <a class="code" href="a00234.html#ga839dac056fcbc087c6c161eb0d7fbe1b" title="3 columns of 2 components matrix of floating-point numbers.">mat3x2</a>;
84 <a name="l00049"></a>00049 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga20aa8e5c6061576079c10e86cd743c8d" title="3 columns of 3 components matrix of high precision floating-point numbers.">precision::highp_mat3x3</a> <a class="code" href="a00234.html#gaf188822f2db83067facc9fa922416ad9" title="3 columns of 3 components matrix of floating-point numbers.">mat3x3</a>;
85 <a name="l00050"></a>00050 <span class="keyword">typedef</span> <a class="code" href="a00156.html#a8efc769b3edb7a3f420d6344e2308c72" title="3 columns of 4 components matrix of high precision floating-point numbers.">precision::highp_mat3x4</a> <a class="code" href="a00234.html#ga70f8918f1c21ead733c8f089c09d353a" title="3 columns of 4 components matrix of floating-point numbers.">mat3x4</a>;
86 <a name="l00051"></a>00051 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga3178de2c189bfdda4c73d6af8017f5d3" title="4 columns of 2 components matrix of high precision floating-point numbers.">precision::highp_mat4x2</a> <a class="code" href="a00234.html#ga2c797007acc18027b65dad6e1f2d7b77" title="4 columns of 2 components matrix of floating-point numbers.">mat4x2</a>;
87 <a name="l00052"></a>00052 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga00d8bf8ebaab7d6647a3b7f73ae324af" title="4 columns of 3 components matrix of high precision floating-point numbers.">precision::highp_mat4x3</a> <a class="code" href="a00234.html#ga73f97cdfb274c84ac7115b8e03c6b54a" title="4 columns of 3 components matrix of floating-point numbers.">mat4x3</a>;
88 <a name="l00053"></a>00053 <span class="keyword">typedef</span> <a class="code" href="a00235.html#gadd2ef277f86f6fa29804a22d1eb7d662" title="4 columns of 4 components matrix of high precision floating-point numbers.">precision::highp_mat4x4</a> <a class="code" href="a00234.html#ga214f3d771188cb5b9ec6b5485ac082dc" title="4 columns of 4 components matrix of floating-point numbers.">mat4x4</a>;
8989 <a name="l00054"></a>00054 <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span>
90 <a name="l00055"></a>00055 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga9a8a10fce5852b088dd631b34e942b7d" title="2 components vector of medium precision floating-point numbers.">precision::mediump_vec2</a> vec2;
91 <a name="l00056"></a>00056 <span class="keyword">typedef</span> <a class="code" href="a00236.html#gaf6aa71f085a150f42929a4b77458143e" title="3 components vector of medium precision floating-point numbers.">precision::mediump_vec3</a> <a class="code" href="a00235.html#gac422c7058a7c9963b55ad70764c62752" title="3 components vector of floating-point numbers.">vec3</a>;
92 <a name="l00057"></a>00057 <span class="keyword">typedef</span> <a class="code" href="a00236.html#gafddaa69a1d46a27e2767b780e0e6b4b0" title="4 components vector of medium precision floating-point numbers.">precision::mediump_vec4</a> <a class="code" href="a00235.html#ga8fad5ffc01ba6dea689f2a38bf30bda4" title="4 components vector of floating-point numbers.">vec4</a>;
93 <a name="l00058"></a>00058 <span class="keyword">typedef</span> <a class="code" href="a00236.html#gaa5970a6f98990c15b7a3be7cc7b79f4f" title="2 columns of 2 components matrix of medium precision floating-point numbers.">precision::mediump_mat2x2</a> <a class="code" href="a00235.html#gac0430f4e1a8747774bcfbd0ea7c7df7b" title="2 columns of 2 components matrix of floating-point numbers.">mat2x2</a>;
94 <a name="l00059"></a>00059 <span class="keyword">typedef</span> <a class="code" href="a00236.html#gacceeb5355767eb306c12ea961b31e808" title="2 columns of 3 components matrix of medium precision floating-point numbers.">precision::mediump_mat2x3</a> <a class="code" href="a00235.html#ga166bc1c922bedbb7f655bd348ff2f97b" title="2 columns of 3 components matrix of floating-point numbers.">mat2x3</a>;
95 <a name="l00060"></a>00060 <span class="keyword">typedef</span> <a class="code" href="a00156.html#abbec32a495b527df1796bb46f8cce516" title="2 columns of 4 components matrix of medium precision floating-point numbers.">precision::mediump_mat2x4</a> <a class="code" href="a00235.html#ga0c9a783f321486534bd3a2fd3701a374" title="2 columns of 4 components matrix of floating-point numbers.">mat2x4</a>;
96 <a name="l00061"></a>00061 <span class="keyword">typedef</span> <a class="code" href="a00156.html#a08c1cebbdb2cdfa0a62b23981db1c059" title="3 columns of 2 components matrix of medium precision floating-point numbers.">precision::mediump_mat3x2</a> <a class="code" href="a00235.html#ga839dac056fcbc087c6c161eb0d7fbe1b" title="3 columns of 2 components matrix of floating-point numbers.">mat3x2</a>;
97 <a name="l00062"></a>00062 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga76c68d8cad333d1f5ba1b20a40415cda" title="3 columns of 3 components matrix of medium precision floating-point numbers.">precision::mediump_mat3x3</a> <a class="code" href="a00235.html#gaf188822f2db83067facc9fa922416ad9" title="3 columns of 3 components matrix of floating-point numbers.">mat3x3</a>;
98 <a name="l00063"></a>00063 <span class="keyword">typedef</span> <a class="code" href="a00156.html#a167125bb484e539a3c56f7b7aa0409f8" title="3 columns of 4 components matrix of medium precision floating-point numbers.">precision::mediump_mat3x4</a> <a class="code" href="a00235.html#ga70f8918f1c21ead733c8f089c09d353a" title="3 columns of 4 components matrix of floating-point numbers.">mat3x4</a>;
99 <a name="l00064"></a>00064 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga31b1d523c1dc83c0ef9cded942950666" title="4 columns of 2 components matrix of medium precision floating-point numbers.">precision::mediump_mat4x2</a> <a class="code" href="a00235.html#ga2c797007acc18027b65dad6e1f2d7b77" title="4 columns of 2 components matrix of floating-point numbers.">mat4x2</a>;
100 <a name="l00065"></a>00065 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga236d4c1060c1ce9908d3de61b3d9334e" title="4 columns of 3 components matrix of medium precision floating-point numbers.">precision::mediump_mat4x3</a> <a class="code" href="a00235.html#ga73f97cdfb274c84ac7115b8e03c6b54a" title="4 columns of 3 components matrix of floating-point numbers.">mat4x3</a>;
101 <a name="l00066"></a>00066 <span class="keyword">typedef</span> <a class="code" href="a00236.html#gad0e848d34a6838e413a41018228ded41" title="4 columns of 4 components matrix of medium precision floating-point numbers.">precision::mediump_mat4x4</a> <a class="code" href="a00235.html#ga214f3d771188cb5b9ec6b5485ac082dc" title="4 columns of 4 components matrix of floating-point numbers.">mat4x4</a>;
90 <a name="l00055"></a>00055 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga9a8a10fce5852b088dd631b34e942b7d" title="2 components vector of medium precision floating-point numbers.">precision::mediump_vec2</a> vec2;
91 <a name="l00056"></a>00056 <span class="keyword">typedef</span> <a class="code" href="a00235.html#gaf6aa71f085a150f42929a4b77458143e" title="3 components vector of medium precision floating-point numbers.">precision::mediump_vec3</a> <a class="code" href="a00234.html#gac422c7058a7c9963b55ad70764c62752" title="3 components vector of floating-point numbers.">vec3</a>;
92 <a name="l00057"></a>00057 <span class="keyword">typedef</span> <a class="code" href="a00235.html#gafddaa69a1d46a27e2767b780e0e6b4b0" title="4 components vector of medium precision floating-point numbers.">precision::mediump_vec4</a> <a class="code" href="a00234.html#ga8fad5ffc01ba6dea689f2a38bf30bda4" title="4 components vector of floating-point numbers.">vec4</a>;
93 <a name="l00058"></a>00058 <span class="keyword">typedef</span> <a class="code" href="a00235.html#gaa5970a6f98990c15b7a3be7cc7b79f4f" title="2 columns of 2 components matrix of medium precision floating-point numbers.">precision::mediump_mat2x2</a> <a class="code" href="a00234.html#gac0430f4e1a8747774bcfbd0ea7c7df7b" title="2 columns of 2 components matrix of floating-point numbers.">mat2x2</a>;
94 <a name="l00059"></a>00059 <span class="keyword">typedef</span> <a class="code" href="a00235.html#gacceeb5355767eb306c12ea961b31e808" title="2 columns of 3 components matrix of medium precision floating-point numbers.">precision::mediump_mat2x3</a> <a class="code" href="a00234.html#ga166bc1c922bedbb7f655bd348ff2f97b" title="2 columns of 3 components matrix of floating-point numbers.">mat2x3</a>;
95 <a name="l00060"></a>00060 <span class="keyword">typedef</span> <a class="code" href="a00156.html#abbec32a495b527df1796bb46f8cce516" title="2 columns of 4 components matrix of medium precision floating-point numbers.">precision::mediump_mat2x4</a> <a class="code" href="a00234.html#ga0c9a783f321486534bd3a2fd3701a374" title="2 columns of 4 components matrix of floating-point numbers.">mat2x4</a>;
96 <a name="l00061"></a>00061 <span class="keyword">typedef</span> <a class="code" href="a00156.html#a08c1cebbdb2cdfa0a62b23981db1c059" title="3 columns of 2 components matrix of medium precision floating-point numbers.">precision::mediump_mat3x2</a> <a class="code" href="a00234.html#ga839dac056fcbc087c6c161eb0d7fbe1b" title="3 columns of 2 components matrix of floating-point numbers.">mat3x2</a>;
97 <a name="l00062"></a>00062 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga76c68d8cad333d1f5ba1b20a40415cda" title="3 columns of 3 components matrix of medium precision floating-point numbers.">precision::mediump_mat3x3</a> <a class="code" href="a00234.html#gaf188822f2db83067facc9fa922416ad9" title="3 columns of 3 components matrix of floating-point numbers.">mat3x3</a>;
98 <a name="l00063"></a>00063 <span class="keyword">typedef</span> <a class="code" href="a00156.html#a167125bb484e539a3c56f7b7aa0409f8" title="3 columns of 4 components matrix of medium precision floating-point numbers.">precision::mediump_mat3x4</a> <a class="code" href="a00234.html#ga70f8918f1c21ead733c8f089c09d353a" title="3 columns of 4 components matrix of floating-point numbers.">mat3x4</a>;
99 <a name="l00064"></a>00064 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga31b1d523c1dc83c0ef9cded942950666" title="4 columns of 2 components matrix of medium precision floating-point numbers.">precision::mediump_mat4x2</a> <a class="code" href="a00234.html#ga2c797007acc18027b65dad6e1f2d7b77" title="4 columns of 2 components matrix of floating-point numbers.">mat4x2</a>;
100 <a name="l00065"></a>00065 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga236d4c1060c1ce9908d3de61b3d9334e" title="4 columns of 3 components matrix of medium precision floating-point numbers.">precision::mediump_mat4x3</a> <a class="code" href="a00234.html#ga73f97cdfb274c84ac7115b8e03c6b54a" title="4 columns of 3 components matrix of floating-point numbers.">mat4x3</a>;
101 <a name="l00066"></a>00066 <span class="keyword">typedef</span> <a class="code" href="a00235.html#gad0e848d34a6838e413a41018228ded41" title="4 columns of 4 components matrix of medium precision floating-point numbers.">precision::mediump_mat4x4</a> <a class="code" href="a00234.html#ga214f3d771188cb5b9ec6b5485ac082dc" title="4 columns of 4 components matrix of floating-point numbers.">mat4x4</a>;
102102 <a name="l00067"></a>00067 <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_FLOAT))</span>
103 <a name="l00068"></a>00068 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga4df6c67742cd65d6d0a885b3a539d9ff" title="2 components vector of low precision floating-point numbers.">precision::lowp_vec2</a> vec2;
104 <a name="l00069"></a>00069 <span class="keyword">typedef</span> <a class="code" href="a00236.html#gab9e39d9db144322c1ad30ab3141084ad" title="3 components vector of low precision floating-point numbers.">precision::lowp_vec3</a> <a class="code" href="a00235.html#gac422c7058a7c9963b55ad70764c62752" title="3 components vector of floating-point numbers.">vec3</a>;
105 <a name="l00070"></a>00070 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga653b0bf7ff2cb590f6e1338682fd0327" title="4 components vector of low precision floating-point numbers.">precision::lowp_vec4</a> <a class="code" href="a00235.html#ga8fad5ffc01ba6dea689f2a38bf30bda4" title="4 components vector of floating-point numbers.">vec4</a>;
106 <a name="l00071"></a>00071 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga8b49c3aa6665011440c32c281b2032c0" title="2 columns of 2 components matrix of low precision floating-point numbers.">precision::lowp_mat2x2</a> <a class="code" href="a00235.html#gac0430f4e1a8747774bcfbd0ea7c7df7b" title="2 columns of 2 components matrix of floating-point numbers.">mat2x2</a>;
107 <a name="l00072"></a>00072 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga0b32355a31b4c14e98f69b43a9077456" title="2 columns of 3 components matrix of low precision floating-point numbers.">precision::lowp_mat2x3</a> <a class="code" href="a00235.html#ga166bc1c922bedbb7f655bd348ff2f97b" title="2 columns of 3 components matrix of floating-point numbers.">mat2x3</a>;
108 <a name="l00073"></a>00073 <span class="keyword">typedef</span> <a class="code" href="a00156.html#af95b55f8954834b05b5463bc153deae5" title="2 columns of 4 components matrix of low precision floating-point numbers.">precision::lowp_mat2x4</a> <a class="code" href="a00235.html#ga0c9a783f321486534bd3a2fd3701a374" title="2 columns of 4 components matrix of floating-point numbers.">mat2x4</a>;
109 <a name="l00074"></a>00074 <span class="keyword">typedef</span> <a class="code" href="a00156.html#a745259412efbd5e07b1a4062190e3135" title="3 columns of 2 components matrix of low precision floating-point numbers.">precision::lowp_mat3x2</a> <a class="code" href="a00235.html#ga839dac056fcbc087c6c161eb0d7fbe1b" title="3 columns of 2 components matrix of floating-point numbers.">mat3x2</a>;
110 <a name="l00075"></a>00075 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga0bb652c1f4401b9b3359ae6b2bf13678" title="3 columns of 3 components matrix of low precision floating-point numbers.">precision::lowp_mat3x3</a> <a class="code" href="a00235.html#gaf188822f2db83067facc9fa922416ad9" title="3 columns of 3 components matrix of floating-point numbers.">mat3x3</a>;
111 <a name="l00076"></a>00076 <span class="keyword">typedef</span> <a class="code" href="a00156.html#a2e7a430ab7df03b63b5c7b776f7675a1" title="3 columns of 4 components matrix of low precision floating-point numbers.">precision::lowp_mat3x4</a> <a class="code" href="a00235.html#ga70f8918f1c21ead733c8f089c09d353a" title="3 columns of 4 components matrix of floating-point numbers.">mat3x4</a>;
112 <a name="l00077"></a>00077 <span class="keyword">typedef</span> <a class="code" href="a00236.html#gac88de3260a910584e02b98f087a34502" title="4 columns of 2 components matrix of low precision floating-point numbers.">precision::lowp_mat4x2</a> <a class="code" href="a00235.html#ga2c797007acc18027b65dad6e1f2d7b77" title="4 columns of 2 components matrix of floating-point numbers.">mat4x2</a>;
113 <a name="l00078"></a>00078 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga0072cb659f9360a7bb2c3e6646609ad7" title="4 columns of 3 components matrix of low precision floating-point numbers.">precision::lowp_mat4x3</a> <a class="code" href="a00235.html#ga73f97cdfb274c84ac7115b8e03c6b54a" title="4 columns of 3 components matrix of floating-point numbers.">mat4x3</a>;
114 <a name="l00079"></a>00079 <span class="keyword">typedef</span> <a class="code" href="a00236.html#gaae14374ee642a8d553ce64f17a4597b1" title="4 columns of 4 components matrix of low precision floating-point numbers.">precision::lowp_mat4x4</a> <a class="code" href="a00235.html#ga214f3d771188cb5b9ec6b5485ac082dc" title="4 columns of 4 components matrix of floating-point numbers.">mat4x4</a>;
103 <a name="l00068"></a>00068 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga4df6c67742cd65d6d0a885b3a539d9ff" title="2 components vector of low precision floating-point numbers.">precision::lowp_vec2</a> vec2;
104 <a name="l00069"></a>00069 <span class="keyword">typedef</span> <a class="code" href="a00235.html#gab9e39d9db144322c1ad30ab3141084ad" title="3 components vector of low precision floating-point numbers.">precision::lowp_vec3</a> <a class="code" href="a00234.html#gac422c7058a7c9963b55ad70764c62752" title="3 components vector of floating-point numbers.">vec3</a>;
105 <a name="l00070"></a>00070 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga653b0bf7ff2cb590f6e1338682fd0327" title="4 components vector of low precision floating-point numbers.">precision::lowp_vec4</a> <a class="code" href="a00234.html#ga8fad5ffc01ba6dea689f2a38bf30bda4" title="4 components vector of floating-point numbers.">vec4</a>;
106 <a name="l00071"></a>00071 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga8b49c3aa6665011440c32c281b2032c0" title="2 columns of 2 components matrix of low precision floating-point numbers.">precision::lowp_mat2x2</a> <a class="code" href="a00234.html#gac0430f4e1a8747774bcfbd0ea7c7df7b" title="2 columns of 2 components matrix of floating-point numbers.">mat2x2</a>;
107 <a name="l00072"></a>00072 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga0b32355a31b4c14e98f69b43a9077456" title="2 columns of 3 components matrix of low precision floating-point numbers.">precision::lowp_mat2x3</a> <a class="code" href="a00234.html#ga166bc1c922bedbb7f655bd348ff2f97b" title="2 columns of 3 components matrix of floating-point numbers.">mat2x3</a>;
108 <a name="l00073"></a>00073 <span class="keyword">typedef</span> <a class="code" href="a00156.html#af95b55f8954834b05b5463bc153deae5" title="2 columns of 4 components matrix of low precision floating-point numbers.">precision::lowp_mat2x4</a> <a class="code" href="a00234.html#ga0c9a783f321486534bd3a2fd3701a374" title="2 columns of 4 components matrix of floating-point numbers.">mat2x4</a>;
109 <a name="l00074"></a>00074 <span class="keyword">typedef</span> <a class="code" href="a00156.html#a745259412efbd5e07b1a4062190e3135" title="3 columns of 2 components matrix of low precision floating-point numbers.">precision::lowp_mat3x2</a> <a class="code" href="a00234.html#ga839dac056fcbc087c6c161eb0d7fbe1b" title="3 columns of 2 components matrix of floating-point numbers.">mat3x2</a>;
110 <a name="l00075"></a>00075 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga0bb652c1f4401b9b3359ae6b2bf13678" title="3 columns of 3 components matrix of low precision floating-point numbers.">precision::lowp_mat3x3</a> <a class="code" href="a00234.html#gaf188822f2db83067facc9fa922416ad9" title="3 columns of 3 components matrix of floating-point numbers.">mat3x3</a>;
111 <a name="l00076"></a>00076 <span class="keyword">typedef</span> <a class="code" href="a00156.html#a2e7a430ab7df03b63b5c7b776f7675a1" title="3 columns of 4 components matrix of low precision floating-point numbers.">precision::lowp_mat3x4</a> <a class="code" href="a00234.html#ga70f8918f1c21ead733c8f089c09d353a" title="3 columns of 4 components matrix of floating-point numbers.">mat3x4</a>;
112 <a name="l00077"></a>00077 <span class="keyword">typedef</span> <a class="code" href="a00235.html#gac88de3260a910584e02b98f087a34502" title="4 columns of 2 components matrix of low precision floating-point numbers.">precision::lowp_mat4x2</a> <a class="code" href="a00234.html#ga2c797007acc18027b65dad6e1f2d7b77" title="4 columns of 2 components matrix of floating-point numbers.">mat4x2</a>;
113 <a name="l00078"></a>00078 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga0072cb659f9360a7bb2c3e6646609ad7" title="4 columns of 3 components matrix of low precision floating-point numbers.">precision::lowp_mat4x3</a> <a class="code" href="a00234.html#ga73f97cdfb274c84ac7115b8e03c6b54a" title="4 columns of 3 components matrix of floating-point numbers.">mat4x3</a>;
114 <a name="l00079"></a>00079 <span class="keyword">typedef</span> <a class="code" href="a00235.html#gaae14374ee642a8d553ce64f17a4597b1" title="4 columns of 4 components matrix of low precision floating-point numbers.">precision::lowp_mat4x4</a> <a class="code" href="a00234.html#ga214f3d771188cb5b9ec6b5485ac082dc" title="4 columns of 4 components matrix of floating-point numbers.">mat4x4</a>;
115115 <a name="l00080"></a>00080 <span class="preprocessor">#else</span>
116116 <a name="l00081"></a>00081 <span class="preprocessor"></span>
117117 <a name="l00082"></a>00082
118118 <a name="l00083"></a>00083
119 <a name="l00084"></a>00084 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga9a8a10fce5852b088dd631b34e942b7d" title="2 components vector of medium precision floating-point numbers.">precision::mediump_vec2</a> vec2;
119 <a name="l00084"></a>00084 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga9a8a10fce5852b088dd631b34e942b7d" title="2 components vector of medium precision floating-point numbers.">precision::mediump_vec2</a> vec2;
120120 <a name="l00085"></a>00085
121 <a name="l00089"></a>00089 <span class="keyword">typedef</span> <a class="code" href="a00236.html#gaf6aa71f085a150f42929a4b77458143e" title="3 components vector of medium precision floating-point numbers.">precision::mediump_vec3</a> <a class="code" href="a00235.html#gac422c7058a7c9963b55ad70764c62752" title="3 components vector of floating-point numbers.">vec3</a>;
121 <a name="l00089"></a>00089 <span class="keyword">typedef</span> <a class="code" href="a00235.html#gaf6aa71f085a150f42929a4b77458143e" title="3 components vector of medium precision floating-point numbers.">precision::mediump_vec3</a> <a class="code" href="a00234.html#gac422c7058a7c9963b55ad70764c62752" title="3 components vector of floating-point numbers.">vec3</a>;
122122 <a name="l00090"></a>00090
123 <a name="l00094"></a>00094 <span class="keyword">typedef</span> <a class="code" href="a00236.html#gafddaa69a1d46a27e2767b780e0e6b4b0" title="4 components vector of medium precision floating-point numbers.">precision::mediump_vec4</a> <a class="code" href="a00235.html#ga8fad5ffc01ba6dea689f2a38bf30bda4" title="4 components vector of floating-point numbers.">vec4</a>;
123 <a name="l00094"></a>00094 <span class="keyword">typedef</span> <a class="code" href="a00235.html#gafddaa69a1d46a27e2767b780e0e6b4b0" title="4 components vector of medium precision floating-point numbers.">precision::mediump_vec4</a> <a class="code" href="a00234.html#ga8fad5ffc01ba6dea689f2a38bf30bda4" title="4 components vector of floating-point numbers.">vec4</a>;
124124 <a name="l00095"></a>00095
125 <a name="l00099"></a>00099 <span class="keyword">typedef</span> <a class="code" href="a00236.html#gaa5970a6f98990c15b7a3be7cc7b79f4f" title="2 columns of 2 components matrix of medium precision floating-point numbers.">precision::mediump_mat2x2</a> <a class="code" href="a00235.html#gac0430f4e1a8747774bcfbd0ea7c7df7b" title="2 columns of 2 components matrix of floating-point numbers.">mat2x2</a>;
125 <a name="l00099"></a>00099 <span class="keyword">typedef</span> <a class="code" href="a00235.html#gaa5970a6f98990c15b7a3be7cc7b79f4f" title="2 columns of 2 components matrix of medium precision floating-point numbers.">precision::mediump_mat2x2</a> <a class="code" href="a00234.html#gac0430f4e1a8747774bcfbd0ea7c7df7b" title="2 columns of 2 components matrix of floating-point numbers.">mat2x2</a>;
126126 <a name="l00100"></a>00100
127 <a name="l00104"></a>00104 <span class="keyword">typedef</span> <a class="code" href="a00236.html#gacceeb5355767eb306c12ea961b31e808" title="2 columns of 3 components matrix of medium precision floating-point numbers.">precision::mediump_mat2x3</a> <a class="code" href="a00235.html#ga166bc1c922bedbb7f655bd348ff2f97b" title="2 columns of 3 components matrix of floating-point numbers.">mat2x3</a>;
127 <a name="l00104"></a>00104 <span class="keyword">typedef</span> <a class="code" href="a00235.html#gacceeb5355767eb306c12ea961b31e808" title="2 columns of 3 components matrix of medium precision floating-point numbers.">precision::mediump_mat2x3</a> <a class="code" href="a00234.html#ga166bc1c922bedbb7f655bd348ff2f97b" title="2 columns of 3 components matrix of floating-point numbers.">mat2x3</a>;
128128 <a name="l00105"></a>00105
129 <a name="l00109"></a>00109 <span class="keyword">typedef</span> <a class="code" href="a00156.html#abbec32a495b527df1796bb46f8cce516" title="2 columns of 4 components matrix of medium precision floating-point numbers.">precision::mediump_mat2x4</a> <a class="code" href="a00235.html#ga0c9a783f321486534bd3a2fd3701a374" title="2 columns of 4 components matrix of floating-point numbers.">mat2x4</a>;
129 <a name="l00109"></a>00109 <span class="keyword">typedef</span> <a class="code" href="a00156.html#abbec32a495b527df1796bb46f8cce516" title="2 columns of 4 components matrix of medium precision floating-point numbers.">precision::mediump_mat2x4</a> <a class="code" href="a00234.html#ga0c9a783f321486534bd3a2fd3701a374" title="2 columns of 4 components matrix of floating-point numbers.">mat2x4</a>;
130130 <a name="l00110"></a>00110
131 <a name="l00114"></a>00114 <span class="keyword">typedef</span> <a class="code" href="a00156.html#a08c1cebbdb2cdfa0a62b23981db1c059" title="3 columns of 2 components matrix of medium precision floating-point numbers.">precision::mediump_mat3x2</a> <a class="code" href="a00235.html#ga839dac056fcbc087c6c161eb0d7fbe1b" title="3 columns of 2 components matrix of floating-point numbers.">mat3x2</a>;
131 <a name="l00114"></a>00114 <span class="keyword">typedef</span> <a class="code" href="a00156.html#a08c1cebbdb2cdfa0a62b23981db1c059" title="3 columns of 2 components matrix of medium precision floating-point numbers.">precision::mediump_mat3x2</a> <a class="code" href="a00234.html#ga839dac056fcbc087c6c161eb0d7fbe1b" title="3 columns of 2 components matrix of floating-point numbers.">mat3x2</a>;
132132 <a name="l00115"></a>00115
133 <a name="l00119"></a>00119 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga76c68d8cad333d1f5ba1b20a40415cda" title="3 columns of 3 components matrix of medium precision floating-point numbers.">precision::mediump_mat3x3</a> <a class="code" href="a00235.html#gaf188822f2db83067facc9fa922416ad9" title="3 columns of 3 components matrix of floating-point numbers.">mat3x3</a>;
133 <a name="l00119"></a>00119 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga76c68d8cad333d1f5ba1b20a40415cda" title="3 columns of 3 components matrix of medium precision floating-point numbers.">precision::mediump_mat3x3</a> <a class="code" href="a00234.html#gaf188822f2db83067facc9fa922416ad9" title="3 columns of 3 components matrix of floating-point numbers.">mat3x3</a>;
134134 <a name="l00120"></a>00120
135 <a name="l00124"></a>00124 <span class="keyword">typedef</span> <a class="code" href="a00156.html#a167125bb484e539a3c56f7b7aa0409f8" title="3 columns of 4 components matrix of medium precision floating-point numbers.">precision::mediump_mat3x4</a> <a class="code" href="a00235.html#ga70f8918f1c21ead733c8f089c09d353a" title="3 columns of 4 components matrix of floating-point numbers.">mat3x4</a>;
135 <a name="l00124"></a>00124 <span class="keyword">typedef</span> <a class="code" href="a00156.html#a167125bb484e539a3c56f7b7aa0409f8" title="3 columns of 4 components matrix of medium precision floating-point numbers.">precision::mediump_mat3x4</a> <a class="code" href="a00234.html#ga70f8918f1c21ead733c8f089c09d353a" title="3 columns of 4 components matrix of floating-point numbers.">mat3x4</a>;
136136 <a name="l00125"></a>00125
137 <a name="l00129"></a>00129 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga31b1d523c1dc83c0ef9cded942950666" title="4 columns of 2 components matrix of medium precision floating-point numbers.">precision::mediump_mat4x2</a> <a class="code" href="a00235.html#ga2c797007acc18027b65dad6e1f2d7b77" title="4 columns of 2 components matrix of floating-point numbers.">mat4x2</a>;
137 <a name="l00129"></a>00129 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga31b1d523c1dc83c0ef9cded942950666" title="4 columns of 2 components matrix of medium precision floating-point numbers.">precision::mediump_mat4x2</a> <a class="code" href="a00234.html#ga2c797007acc18027b65dad6e1f2d7b77" title="4 columns of 2 components matrix of floating-point numbers.">mat4x2</a>;
138138 <a name="l00130"></a>00130
139 <a name="l00134"></a>00134 <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga236d4c1060c1ce9908d3de61b3d9334e" title="4 columns of 3 components matrix of medium precision floating-point numbers.">precision::mediump_mat4x3</a> <a class="code" href="a00235.html#ga73f97cdfb274c84ac7115b8e03c6b54a" title="4 columns of 3 components matrix of floating-point numbers.">mat4x3</a>;
139 <a name="l00134"></a>00134 <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga236d4c1060c1ce9908d3de61b3d9334e" title="4 columns of 3 components matrix of medium precision floating-point numbers.">precision::mediump_mat4x3</a> <a class="code" href="a00234.html#ga73f97cdfb274c84ac7115b8e03c6b54a" title="4 columns of 3 components matrix of floating-point numbers.">mat4x3</a>;
140140 <a name="l00135"></a>00135
141 <a name="l00139"></a>00139 <span class="keyword">typedef</span> <a class="code" href="a00236.html#gad0e848d34a6838e413a41018228ded41" title="4 columns of 4 components matrix of medium precision floating-point numbers.">precision::mediump_mat4x4</a> <a class="code" href="a00235.html#ga214f3d771188cb5b9ec6b5485ac082dc" title="4 columns of 4 components matrix of floating-point numbers.">mat4x4</a>;
141 <a name="l00139"></a>00139 <span class="keyword">typedef</span> <a class="code" href="a00235.html#gad0e848d34a6838e413a41018228ded41" title="4 columns of 4 components matrix of medium precision floating-point numbers.">precision::mediump_mat4x4</a> <a class="code" href="a00234.html#ga214f3d771188cb5b9ec6b5485ac082dc" title="4 columns of 4 components matrix of floating-point numbers.">mat4x4</a>;
142142 <a name="l00140"></a>00140
143 <a name="l00141"></a><a class="code" href="a00235.html#ga70f8918f1c21ead733c8f089c09d353a">00141</a> <span class="preprocessor">#endif//GLM_PRECISION</span>
143 <a name="l00141"></a><a class="code" href="a00234.html#ga70f8918f1c21ead733c8f089c09d353a">00141</a> <span class="preprocessor">#endif//GLM_PRECISION</span>
144144 <a name="l00142"></a>00142 <span class="preprocessor"></span>
145 <a name="l00146"></a><a class="code" href="a00235.html#ga2c797007acc18027b65dad6e1f2d7b77">00146</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">mat2x2</a> <a class="code" href="a00235.html#ga6e30cfba068ebc3c71fe1f8b3110e450" title="2 columns of 2 components matrix of floating-point numbers.">mat2</a>;
145 <a name="l00146"></a><a class="code" href="a00234.html#ga2c797007acc18027b65dad6e1f2d7b77">00146</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">mat2x2</a> <a class="code" href="a00234.html#ga6e30cfba068ebc3c71fe1f8b3110e450" title="2 columns of 2 components matrix of floating-point numbers.">mat2</a>;
146146 <a name="l00147"></a>00147
147 <a name="l00151"></a><a class="code" href="a00235.html#ga73f97cdfb274c84ac7115b8e03c6b54a">00151</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">mat3x3</a> <a class="code" href="a00235.html#ga6dd3ec98a548755676267e59142911f8" title="3 columns of 3 components matrix of floating-point numbers.">mat3</a>;
147 <a name="l00151"></a><a class="code" href="a00234.html#ga73f97cdfb274c84ac7115b8e03c6b54a">00151</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">mat3x3</a> <a class="code" href="a00234.html#ga6dd3ec98a548755676267e59142911f8" title="3 columns of 3 components matrix of floating-point numbers.">mat3</a>;
148148 <a name="l00152"></a>00152
149 <a name="l00156"></a><a class="code" href="a00235.html#ga214f3d771188cb5b9ec6b5485ac082dc">00156</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">mat4x4</a> <a class="code" href="a00235.html#gade0eb47c01f79384a6f38017ede17446" title="4 columns of 4 components matrix of floating-point numbers.">mat4</a>;
149 <a name="l00156"></a><a class="code" href="a00234.html#ga214f3d771188cb5b9ec6b5485ac082dc">00156</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">mat4x4</a> <a class="code" href="a00234.html#gade0eb47c01f79384a6f38017ede17446" title="4 columns of 4 components matrix of floating-point numbers.">mat4</a>;
150150 <a name="l00157"></a>00157
151151 <a name="l00159"></a>00159 <span class="comment">// Signed integer definition</span>
152152 <a name="l00160"></a>00160
153153 <a name="l00161"></a>00161 <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_INT))</span>
154 <a name="l00162"></a>00162 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">precision::highp_ivec2</a> <a class="code" href="a00235.html#gae34ec1dcb70458421c150176537dca90" title="2 components vector of signed integer numbers.">ivec2</a>;
155 <a name="l00163"></a><a class="code" href="a00235.html#ga6e30cfba068ebc3c71fe1f8b3110e450">00163</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">precision::highp_ivec3</a> <a class="code" href="a00235.html#ga8772f4d0808ec3571b0b21c7514ae626" title="3 components vector of signed integer numbers.">ivec3</a>;
156 <a name="l00164"></a>00164 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">precision::highp_ivec4</a> <a class="code" href="a00235.html#ga4ca78493e6bc3274eb996a783f6336ec" title="4 components vector of signed integer numbers.">ivec4</a>;
154 <a name="l00162"></a>00162 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">precision::highp_ivec2</a> <a class="code" href="a00234.html#gae34ec1dcb70458421c150176537dca90" title="2 components vector of signed integer numbers.">ivec2</a>;
155 <a name="l00163"></a><a class="code" href="a00234.html#ga6e30cfba068ebc3c71fe1f8b3110e450">00163</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">precision::highp_ivec3</a> <a class="code" href="a00234.html#ga8772f4d0808ec3571b0b21c7514ae626" title="3 components vector of signed integer numbers.">ivec3</a>;
156 <a name="l00164"></a>00164 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">precision::highp_ivec4</a> <a class="code" href="a00234.html#ga4ca78493e6bc3274eb996a783f6336ec" title="4 components vector of signed integer numbers.">ivec4</a>;
157157 <a name="l00165"></a>00165 <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span>
158 <a name="l00166"></a>00166 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">precision::mediump_ivec2</a> <a class="code" href="a00235.html#gae34ec1dcb70458421c150176537dca90" title="2 components vector of signed integer numbers.">ivec2</a>;
159 <a name="l00167"></a>00167 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">precision::mediump_ivec3</a> <a class="code" href="a00235.html#ga8772f4d0808ec3571b0b21c7514ae626" title="3 components vector of signed integer numbers.">ivec3</a>;
160 <a name="l00168"></a><a class="code" href="a00235.html#ga6dd3ec98a548755676267e59142911f8">00168</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">precision::mediump_ivec4</a> <a class="code" href="a00235.html#ga4ca78493e6bc3274eb996a783f6336ec" title="4 components vector of signed integer numbers.">ivec4</a>;
158 <a name="l00166"></a>00166 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">precision::mediump_ivec2</a> <a class="code" href="a00234.html#gae34ec1dcb70458421c150176537dca90" title="2 components vector of signed integer numbers.">ivec2</a>;
159 <a name="l00167"></a>00167 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">precision::mediump_ivec3</a> <a class="code" href="a00234.html#ga8772f4d0808ec3571b0b21c7514ae626" title="3 components vector of signed integer numbers.">ivec3</a>;
160 <a name="l00168"></a><a class="code" href="a00234.html#ga6dd3ec98a548755676267e59142911f8">00168</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">precision::mediump_ivec4</a> <a class="code" href="a00234.html#ga4ca78493e6bc3274eb996a783f6336ec" title="4 components vector of signed integer numbers.">ivec4</a>;
161161 <a name="l00169"></a>00169 <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_INT))</span>
162 <a name="l00170"></a>00170 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">precision::lowp_ivec2</a> <a class="code" href="a00235.html#gae34ec1dcb70458421c150176537dca90" title="2 components vector of signed integer numbers.">ivec2</a>;
163 <a name="l00171"></a>00171 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">precision::lowp_ivec3</a> <a class="code" href="a00235.html#ga8772f4d0808ec3571b0b21c7514ae626" title="3 components vector of signed integer numbers.">ivec3</a>;
164 <a name="l00172"></a>00172 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">precision::lowp_ivec4</a> <a class="code" href="a00235.html#ga4ca78493e6bc3274eb996a783f6336ec" title="4 components vector of signed integer numbers.">ivec4</a>;
165 <a name="l00173"></a><a class="code" href="a00235.html#gade0eb47c01f79384a6f38017ede17446">00173</a> <span class="preprocessor">#else</span>
162 <a name="l00170"></a>00170 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">precision::lowp_ivec2</a> <a class="code" href="a00234.html#gae34ec1dcb70458421c150176537dca90" title="2 components vector of signed integer numbers.">ivec2</a>;
163 <a name="l00171"></a>00171 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">precision::lowp_ivec3</a> <a class="code" href="a00234.html#ga8772f4d0808ec3571b0b21c7514ae626" title="3 components vector of signed integer numbers.">ivec3</a>;
164 <a name="l00172"></a>00172 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">precision::lowp_ivec4</a> <a class="code" href="a00234.html#ga4ca78493e6bc3274eb996a783f6336ec" title="4 components vector of signed integer numbers.">ivec4</a>;
165 <a name="l00173"></a><a class="code" href="a00234.html#gade0eb47c01f79384a6f38017ede17446">00173</a> <span class="preprocessor">#else</span>
166166 <a name="l00174"></a>00174 <span class="preprocessor"></span>
167167 <a name="l00175"></a>00175
168168 <a name="l00176"></a>00176
169 <a name="l00177"></a>00177 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">precision::mediump_ivec2</a> <a class="code" href="a00235.html#gae34ec1dcb70458421c150176537dca90" title="2 components vector of signed integer numbers.">ivec2</a>;
169 <a name="l00177"></a>00177 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">precision::mediump_ivec2</a> <a class="code" href="a00234.html#gae34ec1dcb70458421c150176537dca90" title="2 components vector of signed integer numbers.">ivec2</a>;
170170 <a name="l00178"></a>00178
171 <a name="l00182"></a>00182 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">precision::mediump_ivec3</a> <a class="code" href="a00235.html#ga8772f4d0808ec3571b0b21c7514ae626" title="3 components vector of signed integer numbers.">ivec3</a>;
171 <a name="l00182"></a>00182 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">precision::mediump_ivec3</a> <a class="code" href="a00234.html#ga8772f4d0808ec3571b0b21c7514ae626" title="3 components vector of signed integer numbers.">ivec3</a>;
172172 <a name="l00183"></a>00183
173 <a name="l00187"></a>00187 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">precision::mediump_ivec4</a> <a class="code" href="a00235.html#ga4ca78493e6bc3274eb996a783f6336ec" title="4 components vector of signed integer numbers.">ivec4</a>;
173 <a name="l00187"></a>00187 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">precision::mediump_ivec4</a> <a class="code" href="a00234.html#ga4ca78493e6bc3274eb996a783f6336ec" title="4 components vector of signed integer numbers.">ivec4</a>;
174174 <a name="l00188"></a>00188 <span class="preprocessor">#endif//GLM_PRECISION</span>
175175 <a name="l00189"></a>00189 <span class="preprocessor"></span>
176176 <a name="l00191"></a>00191 <span class="comment">// Unsigned integer definition</span>
177177 <a name="l00192"></a>00192
178178 <a name="l00193"></a>00193 <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_UINT))</span>
179 <a name="l00194"></a><a class="code" href="a00235.html#gae34ec1dcb70458421c150176537dca90">00194</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">precision::highp_uvec2</a> <a class="code" href="a00235.html#ga3fae7e520beaa9bca6625b98d782f47e" title="2 components vector of unsigned integer numbers.">uvec2</a>;
180 <a name="l00195"></a>00195 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">precision::highp_uvec3</a> <a class="code" href="a00235.html#ga48a100077cb128b9c790c71ac1d1d7d2" title="3 components vector of unsigned integer numbers.">uvec3</a>;
181 <a name="l00196"></a>00196 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">precision::highp_uvec4</a> <a class="code" href="a00235.html#gafbb266d616ea71ad5099994980f8651d" title="4 components vector of unsigned integer numbers.">uvec4</a>;
179 <a name="l00194"></a><a class="code" href="a00234.html#gae34ec1dcb70458421c150176537dca90">00194</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">precision::highp_uvec2</a> <a class="code" href="a00234.html#ga3fae7e520beaa9bca6625b98d782f47e" title="2 components vector of unsigned integer numbers.">uvec2</a>;
180 <a name="l00195"></a>00195 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">precision::highp_uvec3</a> <a class="code" href="a00234.html#ga48a100077cb128b9c790c71ac1d1d7d2" title="3 components vector of unsigned integer numbers.">uvec3</a>;
181 <a name="l00196"></a>00196 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">precision::highp_uvec4</a> <a class="code" href="a00234.html#gafbb266d616ea71ad5099994980f8651d" title="4 components vector of unsigned integer numbers.">uvec4</a>;
182182 <a name="l00197"></a>00197 <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span>
183 <a name="l00198"></a>00198 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">precision::mediump_uvec2</a> <a class="code" href="a00235.html#ga3fae7e520beaa9bca6625b98d782f47e" title="2 components vector of unsigned integer numbers.">uvec2</a>;
184 <a name="l00199"></a><a class="code" href="a00235.html#ga8772f4d0808ec3571b0b21c7514ae626">00199</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">precision::mediump_uvec3</a> <a class="code" href="a00235.html#ga48a100077cb128b9c790c71ac1d1d7d2" title="3 components vector of unsigned integer numbers.">uvec3</a>;
185 <a name="l00200"></a>00200 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">precision::mediump_uvec4</a> <a class="code" href="a00235.html#gafbb266d616ea71ad5099994980f8651d" title="4 components vector of unsigned integer numbers.">uvec4</a>;
183 <a name="l00198"></a>00198 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">precision::mediump_uvec2</a> <a class="code" href="a00234.html#ga3fae7e520beaa9bca6625b98d782f47e" title="2 components vector of unsigned integer numbers.">uvec2</a>;
184 <a name="l00199"></a><a class="code" href="a00234.html#ga8772f4d0808ec3571b0b21c7514ae626">00199</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">precision::mediump_uvec3</a> <a class="code" href="a00234.html#ga48a100077cb128b9c790c71ac1d1d7d2" title="3 components vector of unsigned integer numbers.">uvec3</a>;
185 <a name="l00200"></a>00200 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">precision::mediump_uvec4</a> <a class="code" href="a00234.html#gafbb266d616ea71ad5099994980f8651d" title="4 components vector of unsigned integer numbers.">uvec4</a>;
186186 <a name="l00201"></a>00201 <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_UINT))</span>
187 <a name="l00202"></a>00202 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">precision::lowp_uvec2</a> <a class="code" href="a00235.html#ga3fae7e520beaa9bca6625b98d782f47e" title="2 components vector of unsigned integer numbers.">uvec2</a>;
188 <a name="l00203"></a>00203 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">precision::lowp_uvec3</a> <a class="code" href="a00235.html#ga48a100077cb128b9c790c71ac1d1d7d2" title="3 components vector of unsigned integer numbers.">uvec3</a>;
189 <a name="l00204"></a><a class="code" href="a00235.html#ga4ca78493e6bc3274eb996a783f6336ec">00204</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">precision::lowp_uvec4</a> <a class="code" href="a00235.html#gafbb266d616ea71ad5099994980f8651d" title="4 components vector of unsigned integer numbers.">uvec4</a>;
187 <a name="l00202"></a>00202 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">precision::lowp_uvec2</a> <a class="code" href="a00234.html#ga3fae7e520beaa9bca6625b98d782f47e" title="2 components vector of unsigned integer numbers.">uvec2</a>;
188 <a name="l00203"></a>00203 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">precision::lowp_uvec3</a> <a class="code" href="a00234.html#ga48a100077cb128b9c790c71ac1d1d7d2" title="3 components vector of unsigned integer numbers.">uvec3</a>;
189 <a name="l00204"></a><a class="code" href="a00234.html#ga4ca78493e6bc3274eb996a783f6336ec">00204</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">precision::lowp_uvec4</a> <a class="code" href="a00234.html#gafbb266d616ea71ad5099994980f8651d" title="4 components vector of unsigned integer numbers.">uvec4</a>;
190190 <a name="l00205"></a>00205 <span class="preprocessor">#else</span>
191191 <a name="l00206"></a>00206 <span class="preprocessor"></span>
192192 <a name="l00207"></a>00207
193193 <a name="l00208"></a>00208
194 <a name="l00209"></a>00209 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">precision::mediump_uvec2</a> <a class="code" href="a00235.html#ga3fae7e520beaa9bca6625b98d782f47e" title="2 components vector of unsigned integer numbers.">uvec2</a>;
194 <a name="l00209"></a>00209 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">precision::mediump_uvec2</a> <a class="code" href="a00234.html#ga3fae7e520beaa9bca6625b98d782f47e" title="2 components vector of unsigned integer numbers.">uvec2</a>;
195195 <a name="l00210"></a>00210
196 <a name="l00214"></a>00214 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">precision::mediump_uvec3</a> <a class="code" href="a00235.html#ga48a100077cb128b9c790c71ac1d1d7d2" title="3 components vector of unsigned integer numbers.">uvec3</a>;
196 <a name="l00214"></a>00214 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">precision::mediump_uvec3</a> <a class="code" href="a00234.html#ga48a100077cb128b9c790c71ac1d1d7d2" title="3 components vector of unsigned integer numbers.">uvec3</a>;
197197 <a name="l00215"></a>00215
198 <a name="l00219"></a>00219 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">precision::mediump_uvec4</a> <a class="code" href="a00235.html#gafbb266d616ea71ad5099994980f8651d" title="4 components vector of unsigned integer numbers.">uvec4</a>;
198 <a name="l00219"></a>00219 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">precision::mediump_uvec4</a> <a class="code" href="a00234.html#gafbb266d616ea71ad5099994980f8651d" title="4 components vector of unsigned integer numbers.">uvec4</a>;
199199 <a name="l00220"></a>00220 <span class="preprocessor">#endif//GLM_PRECISION</span>
200200 <a name="l00221"></a>00221 <span class="preprocessor"></span>
201201 <a name="l00223"></a>00223 <span class="comment">// Boolean definition</span>
202202 <a name="l00224"></a>00224
203 <a name="l00228"></a>00228 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;bool&gt;</a> <a class="code" href="a00235.html#ga3bdc45d8289530ec60f8b0afd86dec9d" title="2 components vector of boolean.">bvec2</a>;
203 <a name="l00228"></a>00228 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;bool&gt;</a> <a class="code" href="a00234.html#ga3bdc45d8289530ec60f8b0afd86dec9d" title="2 components vector of boolean.">bvec2</a>;
204204 <a name="l00229"></a>00229
205 <a name="l00233"></a>00233 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;bool&gt;</a> <a class="code" href="a00235.html#gaa6930ec345061c66a5fcb4839bbc23b2" title="3 components vector of boolean.">bvec3</a>;
205 <a name="l00233"></a>00233 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;bool&gt;</a> <a class="code" href="a00234.html#gaa6930ec345061c66a5fcb4839bbc23b2" title="3 components vector of boolean.">bvec3</a>;
206206 <a name="l00234"></a>00234
207 <a name="l00238"></a>00238 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;bool&gt;</a> <a class="code" href="a00235.html#ga3b7e171999130bbe808335a4e41356a0" title="4 components vector of boolean.">bvec4</a>;
207 <a name="l00238"></a>00238 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;bool&gt;</a> <a class="code" href="a00234.html#ga3b7e171999130bbe808335a4e41356a0" title="4 components vector of boolean.">bvec4</a>;
208208 <a name="l00239"></a>00239
209209 <a name="l00241"></a>00241 <span class="comment">// Double definition</span>
210210 <a name="l00242"></a>00242
211 <a name="l00246"></a>00246 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;double&gt;</a> <a class="code" href="a00235.html#ga88bf1a60f35314a6b3f2c5adc97004cf" title="Vector of 2 double-precision floating-point numbers.">dvec2</a>;
211 <a name="l00246"></a>00246 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;double&gt;</a> <a class="code" href="a00234.html#ga88bf1a60f35314a6b3f2c5adc97004cf" title="Vector of 2 double-precision floating-point numbers.">dvec2</a>;
212212 <a name="l00247"></a>00247
213 <a name="l00251"></a>00251 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;double&gt;</a> <a class="code" href="a00235.html#ga0f0fcb7b631cbbac4341badb01d84218" title="Vector of 3 double-precision floating-point numbers.">dvec3</a>;
213 <a name="l00251"></a>00251 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;double&gt;</a> <a class="code" href="a00234.html#ga0f0fcb7b631cbbac4341badb01d84218" title="Vector of 3 double-precision floating-point numbers.">dvec3</a>;
214214 <a name="l00252"></a>00252
215 <a name="l00256"></a>00256 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;double&gt;</a> <a class="code" href="a00235.html#ga6f62aca8ddbdb3badf9d52885e7dcfb6" title="Vector of 4 double-precision floating-point numbers.">dvec4</a>;
215 <a name="l00256"></a>00256 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;double&gt;</a> <a class="code" href="a00234.html#ga6f62aca8ddbdb3badf9d52885e7dcfb6" title="Vector of 4 double-precision floating-point numbers.">dvec4</a>;
216216 <a name="l00257"></a>00257
217 <a name="l00261"></a>00261 <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;double&gt;</a> <a class="code" href="a00235.html#gac47a6148fdae0fe40858fb357aa9e9c5" title="2 * 2 matrix of double-precision floating-point numbers.">dmat2</a>;
217 <a name="l00261"></a>00261 <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;double&gt;</a> <a class="code" href="a00234.html#gac47a6148fdae0fe40858fb357aa9e9c5" title="2 * 2 matrix of double-precision floating-point numbers.">dmat2</a>;
218218 <a name="l00262"></a>00262
219 <a name="l00266"></a>00266 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;double&gt;</a> <a class="code" href="a00235.html#ga92c12ba0463edf4aa5d6d0e506591cf0" title="3 * 3 matrix of double-precision floating-point numbers.">dmat3</a>;
219 <a name="l00266"></a>00266 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;double&gt;</a> <a class="code" href="a00234.html#ga92c12ba0463edf4aa5d6d0e506591cf0" title="3 * 3 matrix of double-precision floating-point numbers.">dmat3</a>;
220220 <a name="l00267"></a>00267
221 <a name="l00271"></a>00271 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;double&gt;</a> <a class="code" href="a00235.html#ga5db20fe7521b2e5bfa67a3131bdd0623" title="4 * 4 matrix of double-precision floating-point numbers.">dmat4</a>;
221 <a name="l00271"></a>00271 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;double&gt;</a> <a class="code" href="a00234.html#ga5db20fe7521b2e5bfa67a3131bdd0623" title="4 * 4 matrix of double-precision floating-point numbers.">dmat4</a>;
222222 <a name="l00272"></a>00272
223 <a name="l00276"></a>00276 <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;double&gt;</a> <a class="code" href="a00235.html#ga154eeba579bb2792509d4f68d7269116" title="2 * 2 matrix of double-precision floating-point numbers.">dmat2x2</a>;
223 <a name="l00276"></a>00276 <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;double&gt;</a> <a class="code" href="a00234.html#ga154eeba579bb2792509d4f68d7269116" title="2 * 2 matrix of double-precision floating-point numbers.">dmat2x2</a>;
224224 <a name="l00277"></a>00277
225 <a name="l00281"></a>00281 <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;double&gt;</a> <a class="code" href="a00235.html#ga6722002d2b3591b9617696009cb92d7d" title="2 * 3 matrix of double-precision floating-point numbers.">dmat2x3</a>;
225 <a name="l00281"></a>00281 <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;double&gt;</a> <a class="code" href="a00234.html#ga6722002d2b3591b9617696009cb92d7d" title="2 * 3 matrix of double-precision floating-point numbers.">dmat2x3</a>;
226226 <a name="l00282"></a>00282
227 <a name="l00286"></a>00286 <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;double&gt;</a> <a class="code" href="a00235.html#ga839ae2cf7dd0064e97529dfe10017ad2" title="2 * 4 matrix of double-precision floating-point numbers.">dmat2x4</a>;
227 <a name="l00286"></a>00286 <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;double&gt;</a> <a class="code" href="a00234.html#ga839ae2cf7dd0064e97529dfe10017ad2" title="2 * 4 matrix of double-precision floating-point numbers.">dmat2x4</a>;
228228 <a name="l00287"></a>00287
229 <a name="l00291"></a>00291 <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;double&gt;</a> <a class="code" href="a00235.html#ga94c2f5b05e0be254d81b53fdea6602d7" title="3 * 2 matrix of double-precision floating-point numbers.">dmat3x2</a>;
229 <a name="l00291"></a>00291 <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;double&gt;</a> <a class="code" href="a00234.html#ga94c2f5b05e0be254d81b53fdea6602d7" title="3 * 2 matrix of double-precision floating-point numbers.">dmat3x2</a>;
230230 <a name="l00292"></a>00292
231 <a name="l00296"></a>00296 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;double&gt;</a> <a class="code" href="a00235.html#gaf72ab1d43dc5d437d2c9ea53ea038e3b" title="3 * 3 matrix of double-precision floating-point numbers.">dmat3x3</a>;
231 <a name="l00296"></a>00296 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;double&gt;</a> <a class="code" href="a00234.html#gaf72ab1d43dc5d437d2c9ea53ea038e3b" title="3 * 3 matrix of double-precision floating-point numbers.">dmat3x3</a>;
232232 <a name="l00297"></a>00297
233 <a name="l00301"></a>00301 <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;double&gt;</a> <a class="code" href="a00235.html#ga04f2a951763897578c4c08e61989f1d1" title="3 * 4 matrix of double-precision floating-point numbers.">dmat3x4</a>;
233 <a name="l00301"></a>00301 <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;double&gt;</a> <a class="code" href="a00234.html#ga04f2a951763897578c4c08e61989f1d1" title="3 * 4 matrix of double-precision floating-point numbers.">dmat3x4</a>;
234234 <a name="l00302"></a>00302
235 <a name="l00306"></a>00306 <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;double&gt;</a> <a class="code" href="a00235.html#ga1c381a2410bbabe8464254b1ff76173c" title="4 * 2 matrix of double-precision floating-point numbers.">dmat4x2</a>;
235 <a name="l00306"></a>00306 <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;double&gt;</a> <a class="code" href="a00234.html#ga1c381a2410bbabe8464254b1ff76173c" title="4 * 2 matrix of double-precision floating-point numbers.">dmat4x2</a>;
236236 <a name="l00307"></a>00307
237 <a name="l00311"></a>00311 <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;double&gt;</a> <a class="code" href="a00235.html#ga250ca1110cb3df02e122705e0df801f3" title="4 * 3 matrix of double-precision floating-point numbers.">dmat4x3</a>;
237 <a name="l00311"></a>00311 <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;double&gt;</a> <a class="code" href="a00234.html#ga250ca1110cb3df02e122705e0df801f3" title="4 * 3 matrix of double-precision floating-point numbers.">dmat4x3</a>;
238238 <a name="l00312"></a>00312
239 <a name="l00316"></a>00316 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;double&gt;</a> <a class="code" href="a00235.html#gae2cf7fdac82b788e8f4d4145f6c963f1" title="4 * 4 matrix of double-precision floating-point numbers.">dmat4x4</a>;
239 <a name="l00316"></a>00316 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;double&gt;</a> <a class="code" href="a00234.html#gae2cf7fdac82b788e8f4d4145f6c963f1" title="4 * 4 matrix of double-precision floating-point numbers.">dmat4x4</a>;
240240 <a name="l00317"></a>00317
241 <a name="l00318"></a><a class="code" href="a00235.html#ga04f2a951763897578c4c08e61989f1d1">00318</a> }<span class="comment">//namespace type</span>
241 <a name="l00318"></a><a class="code" href="a00234.html#ga04f2a951763897578c4c08e61989f1d1">00318</a> }<span class="comment">//namespace type</span>
242242 <a name="l00319"></a>00319 }<span class="comment">//namespace core</span>
243243 <a name="l00320"></a>00320 }<span class="comment">//namespace glm</span>
244244 <a name="l00321"></a>00321
7373 <a name="l00037"></a>00037 <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> mediump_float_t;
7474 <a name="l00038"></a>00038 <span class="keyword">typedef</span> <span class="keywordtype">double</span> highp_float_t;
7575 <a name="l00039"></a>00039
76 <a name="l00044"></a><a class="code" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">00044</a> <span class="keyword">typedef</span> lowp_float_t <a class="code" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1" title="Low precision floating-point numbers.">lowp_float</a>;
77 <a name="l00049"></a><a class="code" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">00049</a> <span class="keyword">typedef</span> mediump_float_t <a class="code" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98" title="Medium precision floating-point numbers.">mediump_float</a>;
78 <a name="l00054"></a><a class="code" href="a00236.html#ga6e95694987ba35af6f736638be39626a">00054</a> <span class="keyword">typedef</span> highp_float_t <a class="code" href="a00236.html#ga6e95694987ba35af6f736638be39626a" title="High precision floating-point numbers.">highp_float</a>;
76 <a name="l00044"></a><a class="code" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">00044</a> <span class="keyword">typedef</span> lowp_float_t <a class="code" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1" title="Low precision floating-point numbers.">lowp_float</a>;
77 <a name="l00049"></a><a class="code" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">00049</a> <span class="keyword">typedef</span> mediump_float_t <a class="code" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98" title="Medium precision floating-point numbers.">mediump_float</a>;
78 <a name="l00054"></a><a class="code" href="a00235.html#ga6e95694987ba35af6f736638be39626a">00054</a> <span class="keyword">typedef</span> highp_float_t <a class="code" href="a00235.html#ga6e95694987ba35af6f736638be39626a" title="High precision floating-point numbers.">highp_float</a>;
7979 <a name="l00055"></a>00055 }
8080 <a name="l00056"></a>00056 <span class="comment">//namespace precision</span>
8181 <a name="l00057"></a>00057
8282 <a name="l00058"></a>00058 <span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span>
83 <a name="l00059"></a>00059 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98" title="Medium precision floating-point numbers.">precision::mediump_float</a> float_t;
83 <a name="l00059"></a>00059 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98" title="Medium precision floating-point numbers.">precision::mediump_float</a> float_t;
8484 <a name="l00060"></a>00060 <span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span>
85 <a name="l00061"></a>00061 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga6e95694987ba35af6f736638be39626a" title="High precision floating-point numbers.">precision::highp_float</a> float_t;
85 <a name="l00061"></a>00061 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga6e95694987ba35af6f736638be39626a" title="High precision floating-point numbers.">precision::highp_float</a> float_t;
8686 <a name="l00062"></a>00062 <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span>
87 <a name="l00063"></a>00063 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98" title="Medium precision floating-point numbers.">precision::mediump_float</a> float_t;
87 <a name="l00063"></a>00063 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98" title="Medium precision floating-point numbers.">precision::mediump_float</a> float_t;
8888 <a name="l00064"></a>00064 <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; defined(GLM_PRECISION_LOWP_FLOAT))</span>
89 <a name="l00065"></a>00065 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1" title="Low precision floating-point numbers.">precision::lowp_float</a> float_t;
89 <a name="l00065"></a>00065 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1" title="Low precision floating-point numbers.">precision::lowp_float</a> float_t;
9090 <a name="l00066"></a>00066 <span class="preprocessor">#else</span>
9191 <a name="l00067"></a>00067 <span class="preprocessor"></span><span class="preprocessor"># error &quot;GLM error: multiple default precision requested for floating-point types&quot;</span>
9292 <a name="l00068"></a>00068 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="preprocessor">#include &lt;cstdlib&gt;</span>
5050 <a name="l00014"></a>00014
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm
52 <a name="l00016"></a>00016 {
53 <a name="l00017"></a>00017 <span class="keyword">namespace </span>test
54 <a name="l00018"></a>00018 {
55 <a name="l00019"></a>00019 <span class="keywordtype">bool</span> main_type_half();
56 <a name="l00020"></a>00020
57 <a name="l00021"></a>00021 }<span class="comment">//namespace test</span>
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm{
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>detail
53 <a name="l00017"></a>00017 {
54 <a name="l00018"></a>00018 <span class="keyword">typedef</span> <span class="keywordtype">short</span> hdata;
55 <a name="l00019"></a>00019
56 <a name="l00020"></a>00020 <span class="keywordtype">float</span> toFloat32(hdata value);
57 <a name="l00021"></a>00021 hdata toFloat16(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; value);
5858 <a name="l00022"></a>00022
59 <a name="l00023"></a>00023 <span class="keyword">namespace </span>detail
60 <a name="l00024"></a>00024 {
61 <a name="l00025"></a>00025 <span class="keyword">typedef</span> <span class="keywordtype">short</span> hdata;
62 <a name="l00026"></a>00026
63 <a name="l00027"></a>00027 <span class="keywordtype">float</span> toFloat32(hdata value);
64 <a name="l00028"></a>00028 hdata toFloat16(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; value);
65 <a name="l00029"></a>00029
66 <a name="l00032"></a><a class="code" href="a00009.html">00032</a> <span class="keyword">class </span><a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a>
67 <a name="l00033"></a>00033 {
68 <a name="l00034"></a>00034 <span class="keyword">public</span>:
69 <a name="l00035"></a>00035 <span class="comment">// Constructors</span>
70 <a name="l00036"></a>00036 GLM_FUNC_DECL <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a>();
71 <a name="l00037"></a>00037 GLM_FUNC_DECL thalf(thalf <span class="keyword">const</span> &amp; s);
72 <a name="l00038"></a>00038
73 <a name="l00039"></a>00039 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
74 <a name="l00040"></a>00040 GLM_FUNC_DECL <span class="keyword">explicit</span> thalf(U <span class="keyword">const</span> &amp; s);
75 <a name="l00041"></a>00041
76 <a name="l00042"></a>00042 <span class="comment">// Cast</span>
77 <a name="l00043"></a>00043 <span class="comment">//operator float();</span>
78 <a name="l00044"></a>00044 GLM_FUNC_DECL operator float() <span class="keyword">const</span>;
79 <a name="l00045"></a>00045 <span class="comment">//operator double();</span>
80 <a name="l00046"></a>00046 <span class="comment">//operator double() const;</span>
81 <a name="l00047"></a>00047
82 <a name="l00048"></a>00048 <span class="comment">// Unary updatable operators</span>
83 <a name="l00049"></a>00049 GLM_FUNC_DECL thalf&amp; operator= (thalf <span class="keyword">const</span> &amp; s);
84 <a name="l00050"></a>00050 GLM_FUNC_DECL thalf&amp; operator+=(thalf <span class="keyword">const</span> &amp; s);
85 <a name="l00051"></a>00051 GLM_FUNC_DECL thalf&amp; operator-=(thalf <span class="keyword">const</span> &amp; s);
86 <a name="l00052"></a>00052 GLM_FUNC_DECL thalf&amp; operator*=(thalf <span class="keyword">const</span> &amp; s);
87 <a name="l00053"></a>00053 GLM_FUNC_DECL thalf&amp; operator/=(thalf <span class="keyword">const</span> &amp; s);
88 <a name="l00054"></a>00054 GLM_FUNC_DECL thalf&amp; operator++();
89 <a name="l00055"></a>00055 GLM_FUNC_DECL thalf&amp; operator--();
90 <a name="l00056"></a>00056
91 <a name="l00057"></a>00057 GLM_FUNC_DECL <span class="keywordtype">float</span> toFloat()<span class="keyword"> const</span>{<span class="keywordflow">return</span> toFloat32(data);}
92 <a name="l00058"></a>00058
93 <a name="l00059"></a>00059 GLM_FUNC_DECL hdata _data()<span class="keyword"> const</span>{<span class="keywordflow">return</span> data;}
94 <a name="l00060"></a>00060
95 <a name="l00061"></a>00061 <span class="keyword">private</span>:
96 <a name="l00062"></a>00062 hdata data;
97 <a name="l00063"></a>00063 };
98 <a name="l00064"></a>00064
99 <a name="l00065"></a>00065 <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> operator+ (<a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s2);
100 <a name="l00066"></a>00066
101 <a name="l00067"></a>00067 <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> operator- (<a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s2);
59 <a name="l00025"></a><a class="code" href="a00009.html">00025</a> <span class="keyword">class </span><a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a>
60 <a name="l00026"></a>00026 {
61 <a name="l00027"></a>00027 <span class="keyword">public</span>:
62 <a name="l00028"></a>00028 <span class="comment">// Constructors</span>
63 <a name="l00029"></a>00029 GLM_FUNC_DECL <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a>();
64 <a name="l00030"></a>00030 GLM_FUNC_DECL thalf(thalf <span class="keyword">const</span> &amp; s);
65 <a name="l00031"></a>00031
66 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
67 <a name="l00033"></a>00033 GLM_FUNC_DECL <span class="keyword">explicit</span> thalf(U <span class="keyword">const</span> &amp; s);
68 <a name="l00034"></a>00034
69 <a name="l00035"></a>00035 <span class="comment">// Cast</span>
70 <a name="l00036"></a>00036 <span class="comment">//operator float();</span>
71 <a name="l00037"></a>00037 GLM_FUNC_DECL operator float() <span class="keyword">const</span>;
72 <a name="l00038"></a>00038 <span class="comment">//operator double();</span>
73 <a name="l00039"></a>00039 <span class="comment">//operator double() const;</span>
74 <a name="l00040"></a>00040
75 <a name="l00041"></a>00041 <span class="comment">// Unary updatable operators</span>
76 <a name="l00042"></a>00042 GLM_FUNC_DECL thalf&amp; operator= (thalf <span class="keyword">const</span> &amp; s);
77 <a name="l00043"></a>00043 GLM_FUNC_DECL thalf&amp; operator+=(thalf <span class="keyword">const</span> &amp; s);
78 <a name="l00044"></a>00044 GLM_FUNC_DECL thalf&amp; operator-=(thalf <span class="keyword">const</span> &amp; s);
79 <a name="l00045"></a>00045 GLM_FUNC_DECL thalf&amp; operator*=(thalf <span class="keyword">const</span> &amp; s);
80 <a name="l00046"></a>00046 GLM_FUNC_DECL thalf&amp; operator/=(thalf <span class="keyword">const</span> &amp; s);
81 <a name="l00047"></a>00047 GLM_FUNC_DECL thalf&amp; operator++();
82 <a name="l00048"></a>00048 GLM_FUNC_DECL thalf&amp; operator--();
83 <a name="l00049"></a>00049
84 <a name="l00050"></a>00050 GLM_FUNC_DECL <span class="keywordtype">float</span> toFloat()<span class="keyword"> const</span>{<span class="keywordflow">return</span> toFloat32(data);}
85 <a name="l00051"></a>00051
86 <a name="l00052"></a>00052 GLM_FUNC_DECL hdata _data()<span class="keyword"> const</span>{<span class="keywordflow">return</span> data;}
87 <a name="l00053"></a>00053
88 <a name="l00054"></a>00054 <span class="keyword">private</span>:
89 <a name="l00055"></a>00055 hdata data;
90 <a name="l00056"></a>00056 };
91 <a name="l00057"></a>00057
92 <a name="l00058"></a>00058 <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> operator+ (<a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s2);
93 <a name="l00059"></a>00059
94 <a name="l00060"></a>00060 <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> operator- (<a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s2);
95 <a name="l00061"></a>00061
96 <a name="l00062"></a>00062 <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> operator* (<a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s2);
97 <a name="l00063"></a>00063
98 <a name="l00064"></a>00064 <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> operator/ (<a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s2);
99 <a name="l00065"></a>00065
100 <a name="l00066"></a>00066 <span class="comment">// Unary constant operators</span>
101 <a name="l00067"></a>00067 <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> operator- (<a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s);
102102 <a name="l00068"></a>00068
103 <a name="l00069"></a>00069 <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> operator* (<a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s2);
103 <a name="l00069"></a>00069 <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> operator-- (<a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s, <span class="keywordtype">int</span>);
104104 <a name="l00070"></a>00070
105 <a name="l00071"></a>00071 <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> operator/ (<a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s2);
105 <a name="l00071"></a>00071 <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> operator++ (<a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s, <span class="keywordtype">int</span>);
106106 <a name="l00072"></a>00072
107 <a name="l00073"></a>00073 <span class="comment">// Unary constant operators</span>
108 <a name="l00074"></a>00074 <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> operator- (<a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s);
107 <a name="l00073"></a>00073 }<span class="comment">//namespace detail</span>
108 <a name="l00074"></a>00074 }<span class="comment">//namespace glm</span>
109109 <a name="l00075"></a>00075
110 <a name="l00076"></a>00076 <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> operator-- (<a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s, <span class="keywordtype">int</span>);
110 <a name="l00076"></a>00076 <span class="preprocessor">#include &quot;type_half.inl&quot;</span>
111111 <a name="l00077"></a>00077
112 <a name="l00078"></a>00078 <a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> operator++ (<a class="code" href="a00009.html" title="16-bit floating point type.">thalf</a> <span class="keyword">const</span> &amp; s, <span class="keywordtype">int</span>);
113 <a name="l00079"></a>00079
114 <a name="l00080"></a>00080 }<span class="comment">//namespace detail</span>
115 <a name="l00081"></a>00081
116 <a name="l00082"></a>00082
117 <a name="l00083"></a>00083 }<span class="comment">//namespace glm</span>
118 <a name="l00084"></a>00084
119 <a name="l00085"></a>00085 <span class="preprocessor">#include &quot;type_half.inl&quot;</span>
120 <a name="l00086"></a>00086
121 <a name="l00087"></a>00087 <span class="preprocessor">#endif//glm_core_type_half</span>
112 <a name="l00078"></a>00078 <span class="preprocessor">#endif//glm_core_type_half</span>
122113 </pre></div></div>
123114 </div>
124115 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4949 <a name="l00013"></a>00013 <span class="preprocessor">#include &quot;setup.hpp&quot;</span>
5050 <a name="l00014"></a>00014 <span class="preprocessor">#include &quot;_detail.hpp&quot;</span>
5151 <a name="l00015"></a>00015
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>glm
53 <a name="l00017"></a>00017 {
54 <a name="l00018"></a>00018 <span class="keyword">namespace </span>detail
55 <a name="l00019"></a>00019 {
56 <a name="l00020"></a>00020 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> lowp_int_t;
57 <a name="l00021"></a>00021 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> mediump_int_t;
58 <a name="l00022"></a>00022 <span class="keyword">typedef</span> sint64 highp_int_t;
59 <a name="l00023"></a>00023
60 <a name="l00024"></a>00024 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> lowp_uint_t;
61 <a name="l00025"></a>00025 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mediump_uint_t;
62 <a name="l00026"></a>00026 <span class="keyword">typedef</span> uint64 highp_uint_t;
63 <a name="l00027"></a>00027
64 <a name="l00028"></a>00028 GLM_DETAIL_IS_INT(<span class="keywordtype">signed</span> <span class="keywordtype">char</span>);
65 <a name="l00029"></a>00029 GLM_DETAIL_IS_INT(<span class="keywordtype">signed</span> <span class="keywordtype">short</span>);
66 <a name="l00030"></a>00030 GLM_DETAIL_IS_INT(<span class="keywordtype">signed</span> <span class="keywordtype">int</span>);
67 <a name="l00031"></a>00031 GLM_DETAIL_IS_INT(<span class="keywordtype">signed</span> <span class="keywordtype">long</span>);
68 <a name="l00032"></a>00032 GLM_DETAIL_IS_INT(highp_int_t);
69 <a name="l00033"></a>00033
70 <a name="l00034"></a>00034 GLM_DETAIL_IS_UINT(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>);
71 <a name="l00035"></a>00035 GLM_DETAIL_IS_UINT(<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>);
72 <a name="l00036"></a>00036 GLM_DETAIL_IS_UINT(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>);
73 <a name="l00037"></a>00037 GLM_DETAIL_IS_UINT(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>);
74 <a name="l00038"></a>00038 GLM_DETAIL_IS_UINT(highp_uint_t);
75 <a name="l00039"></a>00039 }
76 <a name="l00040"></a>00040 <span class="comment">//namespace detail</span>
77 <a name="l00041"></a>00041
78 <a name="l00042"></a>00042 <span class="keyword">namespace </span>core{
79 <a name="l00043"></a>00043 <span class="keyword">namespace </span>type{
80 <a name="l00044"></a>00044
81 <a name="l00046"></a>00046 <span class="keyword">namespace </span>precision
82 <a name="l00047"></a>00047 {
83 <a name="l00052"></a><a class="code" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">00052</a> <span class="keyword">typedef</span> detail::lowp_int_t <a class="code" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e" title="Low precision signed integer.">lowp_int</a>;
84 <a name="l00057"></a><a class="code" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">00057</a> <span class="keyword">typedef</span> detail::mediump_int_t <a class="code" href="a00236.html#ga212ef8f883878cb7430228a279a7d866" title="Medium precision signed integer.">mediump_int</a>;
85 <a name="l00062"></a><a class="code" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">00062</a> <span class="keyword">typedef</span> detail::highp_int_t <a class="code" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc" title="High precision signed integer.">highp_int</a>;
86 <a name="l00063"></a>00063
87 <a name="l00068"></a><a class="code" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">00068</a> <span class="keyword">typedef</span> detail::lowp_uint_t <a class="code" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97" title="Low precision unsigned integer.">lowp_uint</a>;
88 <a name="l00073"></a><a class="code" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">00073</a> <span class="keyword">typedef</span> detail::mediump_uint_t <a class="code" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e" title="Medium precision unsigned integer.">mediump_uint</a>;
89 <a name="l00078"></a><a class="code" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">00078</a> <span class="keyword">typedef</span> detail::highp_uint_t <a class="code" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf" title="High precision unsigned integer.">highp_uint</a>;
90 <a name="l00079"></a>00079 }
91 <a name="l00080"></a>00080 <span class="comment">//namespace precision</span>
92 <a name="l00081"></a>00081
93 <a name="l00082"></a>00082 <span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_INT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_INT) &amp;&amp; !defined(GLM_PRECISION_LOWP_INT))</span>
94 <a name="l00083"></a>00083 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga212ef8f883878cb7430228a279a7d866" title="Medium precision signed integer.">precision::mediump_int</a> int_t;
95 <a name="l00084"></a>00084 <span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_INT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_INT) &amp;&amp; !defined(GLM_PRECISION_LOWP_INT))</span>
96 <a name="l00085"></a>00085 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc" title="High precision signed integer.">precision::highp_int</a> int_t;
97 <a name="l00086"></a>00086 <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_INT) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_INT) &amp;&amp; !defined(GLM_PRECISION_LOWP_INT))</span>
98 <a name="l00087"></a>00087 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga212ef8f883878cb7430228a279a7d866" title="Medium precision signed integer.">precision::mediump_int</a> int_t;
99 <a name="l00088"></a>00088 <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_INT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_INT) &amp;&amp; defined(GLM_PRECISION_LOWP_INT))</span>
100 <a name="l00089"></a>00089 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e" title="Low precision signed integer.">precision::lowp_int</a> int_t;
101 <a name="l00090"></a>00090 <span class="preprocessor">#else</span>
102 <a name="l00091"></a>00091 <span class="preprocessor"></span><span class="preprocessor"># error &quot;GLM error: multiple default precision requested for signed interger types&quot;</span>
103 <a name="l00092"></a>00092 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
104 <a name="l00093"></a>00093 <span class="preprocessor"></span>
105 <a name="l00094"></a>00094 <span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_UINT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_UINT) &amp;&amp; !defined(GLM_PRECISION_LOWP_UINT))</span>
106 <a name="l00095"></a>00095 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e" title="Medium precision unsigned integer.">precision::mediump_uint</a> uint_t;
107 <a name="l00096"></a>00096 <span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_UINT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_UINT) &amp;&amp; !defined(GLM_PRECISION_LOWP_UINT))</span>
108 <a name="l00097"></a>00097 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf" title="High precision unsigned integer.">precision::highp_uint</a> uint_t;
109 <a name="l00098"></a>00098 <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_UINT) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_UINT) &amp;&amp; !defined(GLM_PRECISION_LOWP_UINT))</span>
110 <a name="l00099"></a>00099 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e" title="Medium precision unsigned integer.">precision::mediump_uint</a> uint_t;
111 <a name="l00100"></a>00100 <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_UINT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_UINT) &amp;&amp; defined(GLM_PRECISION_LOWP_UINT))</span>
112 <a name="l00101"></a>00101 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97" title="Low precision unsigned integer.">precision::lowp_uint</a> uint_t;
113 <a name="l00102"></a>00102 <span class="preprocessor">#else</span>
114 <a name="l00103"></a>00103 <span class="preprocessor"></span><span class="preprocessor"># error &quot;GLM error: multiple default precision requested for unsigned interger types&quot;</span>
115 <a name="l00104"></a>00104 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
116 <a name="l00105"></a>00105 <span class="preprocessor"></span>
117 <a name="l00108"></a><a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">00108</a> <span class="keyword">typedef</span> uint_t <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a>;
118 <a name="l00109"></a>00109
119 <a name="l00110"></a>00110 }<span class="comment">//namespace type</span>
120 <a name="l00111"></a>00111 }<span class="comment">//namespace core</span>
121 <a name="l00112"></a>00112 }<span class="comment">//namespace glm</span>
122 <a name="l00113"></a>00113
123 <a name="l00114"></a>00114 <span class="preprocessor">#endif//glm_core_type_int</span>
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>glm{
53 <a name="l00017"></a>00017 <span class="keyword">namespace </span>detail
54 <a name="l00018"></a>00018 {
55 <a name="l00019"></a>00019 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> lowp_int_t;
56 <a name="l00020"></a>00020 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> mediump_int_t;
57 <a name="l00021"></a>00021 <span class="keyword">typedef</span> sint64 highp_int_t;
58 <a name="l00022"></a>00022
59 <a name="l00023"></a>00023 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> lowp_uint_t;
60 <a name="l00024"></a>00024 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mediump_uint_t;
61 <a name="l00025"></a>00025 <span class="keyword">typedef</span> uint64 highp_uint_t;
62 <a name="l00026"></a>00026
63 <a name="l00027"></a>00027 GLM_DETAIL_IS_INT(<span class="keywordtype">signed</span> <span class="keywordtype">char</span>);
64 <a name="l00028"></a>00028 GLM_DETAIL_IS_INT(<span class="keywordtype">signed</span> <span class="keywordtype">short</span>);
65 <a name="l00029"></a>00029 GLM_DETAIL_IS_INT(<span class="keywordtype">signed</span> <span class="keywordtype">int</span>);
66 <a name="l00030"></a>00030 GLM_DETAIL_IS_INT(<span class="keywordtype">signed</span> <span class="keywordtype">long</span>);
67 <a name="l00031"></a>00031 GLM_DETAIL_IS_INT(highp_int_t);
68 <a name="l00032"></a>00032
69 <a name="l00033"></a>00033 GLM_DETAIL_IS_UINT(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>);
70 <a name="l00034"></a>00034 GLM_DETAIL_IS_UINT(<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>);
71 <a name="l00035"></a>00035 GLM_DETAIL_IS_UINT(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>);
72 <a name="l00036"></a>00036 GLM_DETAIL_IS_UINT(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>);
73 <a name="l00037"></a>00037 GLM_DETAIL_IS_UINT(highp_uint_t);
74 <a name="l00038"></a>00038 }<span class="comment">//namespace detail</span>
75 <a name="l00039"></a>00039
76 <a name="l00040"></a>00040 <span class="keyword">namespace </span>core{
77 <a name="l00041"></a>00041 <span class="keyword">namespace </span>type{
78 <a name="l00042"></a>00042 <span class="keyword">namespace </span>precision
79 <a name="l00043"></a>00043 {
80 <a name="l00048"></a><a class="code" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">00048</a> <span class="keyword">typedef</span> detail::lowp_int_t <a class="code" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e" title="Low precision signed integer.">lowp_int</a>;
81 <a name="l00053"></a><a class="code" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">00053</a> <span class="keyword">typedef</span> detail::mediump_int_t <a class="code" href="a00235.html#ga212ef8f883878cb7430228a279a7d866" title="Medium precision signed integer.">mediump_int</a>;
82 <a name="l00058"></a><a class="code" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">00058</a> <span class="keyword">typedef</span> detail::highp_int_t <a class="code" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc" title="High precision signed integer.">highp_int</a>;
83 <a name="l00059"></a>00059
84 <a name="l00064"></a><a class="code" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">00064</a> <span class="keyword">typedef</span> detail::lowp_uint_t <a class="code" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97" title="Low precision unsigned integer.">lowp_uint</a>;
85 <a name="l00069"></a><a class="code" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">00069</a> <span class="keyword">typedef</span> detail::mediump_uint_t <a class="code" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e" title="Medium precision unsigned integer.">mediump_uint</a>;
86 <a name="l00074"></a><a class="code" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">00074</a> <span class="keyword">typedef</span> detail::highp_uint_t <a class="code" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf" title="High precision unsigned integer.">highp_uint</a>;
87 <a name="l00075"></a>00075 }<span class="comment">//namespace precision</span>
88 <a name="l00076"></a>00076
89 <a name="l00077"></a>00077 <span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_INT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_INT) &amp;&amp; !defined(GLM_PRECISION_LOWP_INT))</span>
90 <a name="l00078"></a>00078 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga212ef8f883878cb7430228a279a7d866" title="Medium precision signed integer.">precision::mediump_int</a> int_t;
91 <a name="l00079"></a>00079 <span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_INT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_INT) &amp;&amp; !defined(GLM_PRECISION_LOWP_INT))</span>
92 <a name="l00080"></a>00080 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc" title="High precision signed integer.">precision::highp_int</a> int_t;
93 <a name="l00081"></a>00081 <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_INT) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_INT) &amp;&amp; !defined(GLM_PRECISION_LOWP_INT))</span>
94 <a name="l00082"></a>00082 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga212ef8f883878cb7430228a279a7d866" title="Medium precision signed integer.">precision::mediump_int</a> int_t;
95 <a name="l00083"></a>00083 <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_INT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_INT) &amp;&amp; defined(GLM_PRECISION_LOWP_INT))</span>
96 <a name="l00084"></a>00084 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e" title="Low precision signed integer.">precision::lowp_int</a> int_t;
97 <a name="l00085"></a>00085 <span class="preprocessor">#else</span>
98 <a name="l00086"></a>00086 <span class="preprocessor"></span><span class="preprocessor"># error &quot;GLM error: multiple default precision requested for signed interger types&quot;</span>
99 <a name="l00087"></a>00087 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
100 <a name="l00088"></a>00088 <span class="preprocessor"></span>
101 <a name="l00089"></a>00089 <span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_UINT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_UINT) &amp;&amp; !defined(GLM_PRECISION_LOWP_UINT))</span>
102 <a name="l00090"></a>00090 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e" title="Medium precision unsigned integer.">precision::mediump_uint</a> uint_t;
103 <a name="l00091"></a>00091 <span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_UINT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_UINT) &amp;&amp; !defined(GLM_PRECISION_LOWP_UINT))</span>
104 <a name="l00092"></a>00092 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf" title="High precision unsigned integer.">precision::highp_uint</a> uint_t;
105 <a name="l00093"></a>00093 <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_UINT) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_UINT) &amp;&amp; !defined(GLM_PRECISION_LOWP_UINT))</span>
106 <a name="l00094"></a>00094 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e" title="Medium precision unsigned integer.">precision::mediump_uint</a> uint_t;
107 <a name="l00095"></a>00095 <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_UINT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_UINT) &amp;&amp; defined(GLM_PRECISION_LOWP_UINT))</span>
108 <a name="l00096"></a>00096 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97" title="Low precision unsigned integer.">precision::lowp_uint</a> uint_t;
109 <a name="l00097"></a>00097 <span class="preprocessor">#else</span>
110 <a name="l00098"></a>00098 <span class="preprocessor"></span><span class="preprocessor"># error &quot;GLM error: multiple default precision requested for unsigned interger types&quot;</span>
111 <a name="l00099"></a>00099 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
112 <a name="l00100"></a>00100 <span class="preprocessor"></span>
113 <a name="l00103"></a><a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">00103</a> <span class="keyword">typedef</span> uint_t <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a>;
114 <a name="l00104"></a>00104
115 <a name="l00105"></a>00105 }<span class="comment">//namespace type</span>
116 <a name="l00106"></a>00106 }<span class="comment">//namespace core</span>
117 <a name="l00107"></a>00107 }<span class="comment">//namespace glm</span>
118 <a name="l00108"></a>00108
119 <a name="l00109"></a>00109 <span class="preprocessor">#endif//glm_core_type_int</span>
124120 </pre></div></div>
125121 </div>
126122 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="preprocessor">#include &quot;type_mat.hpp&quot;</span>
5050 <a name="l00014"></a>00014
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm
52 <a name="l00016"></a>00016 {
53 <a name="l00017"></a>00017 <span class="keyword">namespace </span>test
54 <a name="l00018"></a>00018 {
55 <a name="l00019"></a>00019 <span class="keywordtype">void</span> main_mat2x2();
56 <a name="l00020"></a>00020 }<span class="comment">//namespace test</span>
57 <a name="l00021"></a>00021
58 <a name="l00022"></a>00022 <span class="keyword">namespace </span>detail
59 <a name="l00023"></a>00023 {
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
67 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
68 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
69 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
70 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
71 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
72 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
73 <a name="l00037"></a>00037
74 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
75 <a name="l00041"></a><a class="code" href="a00010.html">00041</a> <span class="keyword">struct </span><a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2</a>
76 <a name="l00042"></a>00042 {
77 <a name="l00043"></a>00043 <span class="keyword">enum</span> ctor{null};
78 <a name="l00044"></a>00044 <span class="keyword">typedef</span> T value_type;
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> std::size_t size_type;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a>;
81 <a name="l00047"></a>00047 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">row_type</a>;
82 <a name="l00048"></a>00048 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
83 <a name="l00049"></a>00049 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
84 <a name="l00050"></a>00050
85 <a name="l00051"></a>00051 <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">type</a>;
86 <a name="l00052"></a>00052 <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">transpose_type</a>;
87 <a name="l00053"></a>00053
88 <a name="l00054"></a>00054 <span class="keyword">public</span>:
89 <a name="l00055"></a>00055 <span class="comment">// Implementation detail</span>
90 <a name="l00056"></a>00056 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> _inverse() <span class="keyword">const</span>;
91 <a name="l00057"></a>00057
92 <a name="l00058"></a>00058 <span class="keyword">private</span>:
93 <a name="l00059"></a>00059 <span class="comment">// Data </span>
94 <a name="l00060"></a>00060 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> value[2];
95 <a name="l00061"></a>00061
96 <a name="l00062"></a>00062 <span class="keyword">public</span>:
97 <a name="l00063"></a>00063 <span class="comment">// Constructors</span>
98 <a name="l00064"></a>00064 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2</a>();
99 <a name="l00065"></a>00065 GLM_FUNC_DECL tmat2x2(
100 <a name="l00066"></a>00066 tmat2x2 <span class="keyword">const</span> &amp; m);
101 <a name="l00067"></a>00067
102 <a name="l00068"></a>00068 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(
103 <a name="l00069"></a>00069 ctor Null);
104 <a name="l00070"></a>00070 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(
105 <a name="l00071"></a>00071 value_type <span class="keyword">const</span> &amp; x);
106 <a name="l00072"></a>00072 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(
107 <a name="l00073"></a>00073 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1,
108 <a name="l00074"></a>00074 value_type <span class="keyword">const</span> &amp; x2, value_type <span class="keyword">const</span> &amp; y2);
109 <a name="l00075"></a>00075 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(
110 <a name="l00076"></a>00076 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1,
111 <a name="l00077"></a>00077 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v2);
112 <a name="l00078"></a>00078
113 <a name="l00079"></a>00079 <span class="comment">// Conversions</span>
114 <a name="l00080"></a>00080 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
115 <a name="l00081"></a>00081 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
116 <a name="l00082"></a>00082
117 <a name="l00083"></a>00083 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
118 <a name="l00084"></a>00084 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
119 <a name="l00085"></a>00085 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
120 <a name="l00086"></a>00086 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
121 <a name="l00087"></a>00087 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
122 <a name="l00088"></a>00088 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
123 <a name="l00089"></a>00089 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
124 <a name="l00090"></a>00090 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
125 <a name="l00091"></a>00091
126 <a name="l00093"></a>00093 <span class="comment">// Accesses</span>
127 <a name="l00094"></a>00094
128 <a name="l00095"></a>00095 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> &amp; operator[](size_type i);
129 <a name="l00096"></a>00096 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
130 <a name="l00097"></a>00097
131 <a name="l00098"></a>00098 <span class="comment">// Unary updatable operators</span>
132 <a name="l00099"></a>00099 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator=(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
133 <a name="l00100"></a>00100 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
134 <a name="l00101"></a>00101 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator=(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
135 <a name="l00102"></a>00102 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
136 <a name="l00103"></a>00103 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator+=(U <span class="keyword">const</span> &amp; s);
137 <a name="l00104"></a>00104 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
138 <a name="l00105"></a>00105 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator+=(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
139 <a name="l00106"></a>00106 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
140 <a name="l00107"></a>00107 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator-=(U <span class="keyword">const</span> &amp; s);
141 <a name="l00108"></a>00108 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
142 <a name="l00109"></a>00109 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator-=(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
143 <a name="l00110"></a>00110 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
144 <a name="l00111"></a>00111 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator*=(U <span class="keyword">const</span> &amp; s);
145 <a name="l00112"></a>00112 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
146 <a name="l00113"></a>00113 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator*=(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
147 <a name="l00114"></a>00114 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
148 <a name="l00115"></a>00115 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator/=(U <span class="keyword">const</span> &amp; s);
149 <a name="l00116"></a>00116 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
150 <a name="l00117"></a>00117 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator/=(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
151 <a name="l00118"></a>00118 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator++();
152 <a name="l00119"></a>00119 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator--();
153 <a name="l00120"></a>00120 };
154 <a name="l00121"></a>00121
155 <a name="l00122"></a>00122 <span class="comment">// Binary operators</span>
156 <a name="l00123"></a>00123 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
157 <a name="l00124"></a>00124 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator+ (
158 <a name="l00125"></a>00125 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
159 <a name="l00126"></a>00126 <span class="keyword">typename</span> tmat2x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
160 <a name="l00127"></a>00127
161 <a name="l00128"></a>00128 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
162 <a name="l00129"></a>00129 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator+ (
163 <a name="l00130"></a>00130 <span class="keyword">typename</span> tmat2x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
164 <a name="l00131"></a>00131 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
165 <a name="l00132"></a>00132
166 <a name="l00133"></a>00133 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
167 <a name="l00134"></a>00134 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator+ (
168 <a name="l00135"></a>00135 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
169 <a name="l00136"></a>00136 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
170 <a name="l00137"></a>00137
171 <a name="l00138"></a>00138 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
172 <a name="l00139"></a>00139 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator- (
173 <a name="l00140"></a>00140 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
174 <a name="l00141"></a>00141 <span class="keyword">typename</span> tmat2x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
175 <a name="l00142"></a>00142
176 <a name="l00143"></a>00143 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
177 <a name="l00144"></a>00144 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator- (
178 <a name="l00145"></a>00145 <span class="keyword">typename</span> tmat2x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
179 <a name="l00146"></a>00146 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
180 <a name="l00147"></a>00147
181 <a name="l00148"></a>00148 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
182 <a name="l00149"></a>00149 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator- (
183 <a name="l00150"></a>00150 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
184 <a name="l00151"></a>00151 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
185 <a name="l00152"></a>00152
186 <a name="l00153"></a>00153 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
187 <a name="l00154"></a>00154 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator* (
188 <a name="l00155"></a>00155 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
189 <a name="l00156"></a>00156 <span class="keyword">typename</span> tmat2x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
190 <a name="l00157"></a>00157
191 <a name="l00158"></a>00158 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
192 <a name="l00159"></a>00159 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator* (
193 <a name="l00160"></a>00160 <span class="keyword">typename</span> tmat2x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
194 <a name="l00161"></a>00161 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
195 <a name="l00162"></a>00162
196 <a name="l00163"></a>00163 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
197 <a name="l00164"></a>00164 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x2&lt;T&gt;::col_type</a> operator* (
198 <a name="l00165"></a>00165 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
199 <a name="l00166"></a>00166 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x2&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
200 <a name="l00167"></a>00167
201 <a name="l00168"></a>00168 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
202 <a name="l00169"></a>00169 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x2&lt;T&gt;::row_type</a> operator* (
203 <a name="l00170"></a>00170 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x2&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
204 <a name="l00171"></a>00171 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
205 <a name="l00172"></a>00172
206 <a name="l00173"></a>00173 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
207 <a name="l00174"></a>00174 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator* (
208 <a name="l00175"></a>00175 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
209 <a name="l00176"></a>00176 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
210 <a name="l00177"></a>00177
211 <a name="l00178"></a>00178 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
212 <a name="l00179"></a>00179 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator/ (
213 <a name="l00180"></a>00180 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
214 <a name="l00181"></a>00181 <span class="keyword">typename</span> tmat2x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
215 <a name="l00182"></a>00182
216 <a name="l00183"></a>00183 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
217 <a name="l00184"></a>00184 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator/ (
218 <a name="l00185"></a>00185 <span class="keyword">typename</span> tmat2x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
219 <a name="l00186"></a>00186 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
220 <a name="l00187"></a>00187
221 <a name="l00188"></a>00188 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
222 <a name="l00189"></a>00189 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x2&lt;T&gt;::col_type</a> operator/ (
223 <a name="l00190"></a>00190 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
224 <a name="l00191"></a>00191 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x2&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
225 <a name="l00192"></a>00192
226 <a name="l00193"></a>00193 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
227 <a name="l00194"></a>00194 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x2&lt;T&gt;::row_type</a> operator/ (
228 <a name="l00195"></a>00195 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x2&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
229 <a name="l00196"></a>00196 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
230 <a name="l00197"></a>00197
231 <a name="l00198"></a>00198 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
232 <a name="l00199"></a>00199 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator/ (
233 <a name="l00200"></a>00200 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
234 <a name="l00201"></a>00201 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
235 <a name="l00202"></a>00202
236 <a name="l00203"></a>00203 <span class="comment">// Unary constant operators</span>
237 <a name="l00204"></a>00204 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
238 <a name="l00205"></a>00205 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> operator- (
239 <a name="l00206"></a>00206 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
240 <a name="l00207"></a>00207
241 <a name="l00208"></a>00208 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
242 <a name="l00209"></a>00209 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
243 <a name="l00210"></a>00210 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
244 <a name="l00211"></a>00211 <span class="keywordtype">int</span>);
245 <a name="l00212"></a>00212
246 <a name="l00213"></a>00213 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
247 <a name="l00214"></a>00214 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
248 <a name="l00215"></a>00215 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
249 <a name="l00216"></a>00216 <span class="keywordtype">int</span>);
250 <a name="l00217"></a>00217
251 <a name="l00218"></a>00218 } <span class="comment">//namespace detail</span>
252 <a name="l00219"></a>00219
253 <a name="l00220"></a>00220 <span class="keyword">namespace </span>core{
254 <a name="l00221"></a>00221 <span class="keyword">namespace </span>type{
255 <a name="l00222"></a>00222
256 <a name="l00223"></a>00223 <span class="keyword">namespace </span>precision
257 <a name="l00224"></a>00224 {
258 <a name="l00229"></a><a class="code" href="a00236.html#ga8b49c3aa6665011440c32c281b2032c0">00229</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;lowp_float&gt;</a> <a class="code" href="a00236.html#ga8b49c3aa6665011440c32c281b2032c0" title="2 columns of 2 components matrix of low precision floating-point numbers.">lowp_mat2x2</a>;
259 <a name="l00234"></a><a class="code" href="a00236.html#gaa5970a6f98990c15b7a3be7cc7b79f4f">00234</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;mediump_float&gt;</a> <a class="code" href="a00236.html#gaa5970a6f98990c15b7a3be7cc7b79f4f" title="2 columns of 2 components matrix of medium precision floating-point numbers.">mediump_mat2x2</a>;
260 <a name="l00239"></a><a class="code" href="a00236.html#ga9aa0c5dce81439aa15a0d5b5e5006d81">00239</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;highp_float&gt;</a> <a class="code" href="a00236.html#ga9aa0c5dce81439aa15a0d5b5e5006d81" title="2 columns of 2 components matrix of high precision floating-point numbers.">highp_mat2x2</a>;
261 <a name="l00240"></a>00240 }
262 <a name="l00241"></a>00241 <span class="comment">//namespace precision</span>
263 <a name="l00242"></a>00242
264 <a name="l00243"></a>00243 }<span class="comment">//namespace type</span>
265 <a name="l00244"></a>00244 }<span class="comment">//namespace core</span>
266 <a name="l00245"></a>00245 } <span class="comment">//namespace glm</span>
267 <a name="l00246"></a>00246
268 <a name="l00247"></a>00247 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
269 <a name="l00248"></a>00248 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat2x2.inl&quot;</span>
270 <a name="l00249"></a>00249 <span class="preprocessor">#endif</span>
271 <a name="l00250"></a>00250 <span class="preprocessor"></span>
272 <a name="l00251"></a>00251 <span class="preprocessor">#endif //glm_core_type_mat2x2</span>
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm{
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>detail
53 <a name="l00017"></a>00017 {
54 <a name="l00018"></a>00018 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
55 <a name="l00019"></a>00019 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
56 <a name="l00020"></a>00020 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
57 <a name="l00021"></a>00021 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
58 <a name="l00022"></a>00022 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
59 <a name="l00023"></a>00023 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
67 <a name="l00031"></a>00031
68 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00035"></a><a class="code" href="a00010.html">00035</a> <span class="keyword">struct </span><a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2</a>
70 <a name="l00036"></a>00036 {
71 <a name="l00037"></a>00037 <span class="keyword">enum</span> ctor{null};
72 <a name="l00038"></a>00038 <span class="keyword">typedef</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> value_type;
73 <a name="l00039"></a>00039 <span class="keyword">typedef</span> std::size_t size_type;
74 <a name="l00040"></a>00040 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a>;
75 <a name="l00041"></a>00041 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">row_type</a>;
76 <a name="l00042"></a>00042 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
77 <a name="l00043"></a>00043 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
78 <a name="l00044"></a>00044
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">type</a>;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">transpose_type</a>;
81 <a name="l00047"></a>00047
82 <a name="l00048"></a>00048 <span class="keyword">public</span>:
83 <a name="l00049"></a>00049 <span class="comment">// Implementation detail</span>
84 <a name="l00050"></a>00050 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> _inverse() <span class="keyword">const</span>;
85 <a name="l00051"></a>00051
86 <a name="l00052"></a>00052 <span class="keyword">private</span>:
87 <a name="l00054"></a>00054 <span class="comment">// Data </span>
88 <a name="l00055"></a>00055 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> value[2];
89 <a name="l00056"></a>00056
90 <a name="l00057"></a>00057 <span class="keyword">public</span>:
91 <a name="l00059"></a>00059 <span class="comment">// Constructors</span>
92 <a name="l00060"></a>00060 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2</a>();
93 <a name="l00061"></a>00061 GLM_FUNC_DECL tmat2x2(
94 <a name="l00062"></a>00062 tmat2x2 <span class="keyword">const</span> &amp; m);
95 <a name="l00063"></a>00063
96 <a name="l00064"></a>00064 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(
97 <a name="l00065"></a>00065 ctor Null);
98 <a name="l00066"></a>00066 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(
99 <a name="l00067"></a>00067 value_type <span class="keyword">const</span> &amp; x);
100 <a name="l00068"></a>00068 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(
101 <a name="l00069"></a>00069 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1,
102 <a name="l00070"></a>00070 value_type <span class="keyword">const</span> &amp; x2, value_type <span class="keyword">const</span> &amp; y2);
103 <a name="l00071"></a>00071 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(
104 <a name="l00072"></a>00072 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1,
105 <a name="l00073"></a>00073 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v2);
106 <a name="l00074"></a>00074
107 <a name="l00076"></a>00076 <span class="comment">// Conversions</span>
108 <a name="l00077"></a>00077 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
109 <a name="l00078"></a>00078 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(
110 <a name="l00079"></a>00079 U <span class="keyword">const</span> &amp; x);
111 <a name="l00080"></a>00080
112 <a name="l00081"></a>00081 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, <span class="keyword">typename</span> V, <span class="keyword">typename</span> M, <span class="keyword">typename</span> N&gt;
113 <a name="l00082"></a>00082 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(
114 <a name="l00083"></a>00083 U <span class="keyword">const</span> &amp; x1, V <span class="keyword">const</span> &amp; y1,
115 <a name="l00084"></a>00084 M <span class="keyword">const</span> &amp; x2, N <span class="keyword">const</span> &amp; y2);
116 <a name="l00085"></a>00085
117 <a name="l00086"></a>00086 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, <span class="keyword">typename</span> V&gt;
118 <a name="l00087"></a>00087 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(
119 <a name="l00088"></a>00088 <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v1,
120 <a name="l00089"></a>00089 <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;V&gt;</a> <span class="keyword">const</span> &amp; v2);
121 <a name="l00090"></a>00090
122 <a name="l00092"></a>00092 <span class="comment">// Matrix conversions</span>
123 <a name="l00093"></a>00093 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
124 <a name="l00094"></a>00094 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
125 <a name="l00095"></a>00095
126 <a name="l00096"></a>00096 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
127 <a name="l00097"></a>00097 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
128 <a name="l00098"></a>00098 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
129 <a name="l00099"></a>00099 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
130 <a name="l00100"></a>00100 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
131 <a name="l00101"></a>00101 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
132 <a name="l00102"></a>00102 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
133 <a name="l00103"></a>00103 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x2(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
134 <a name="l00104"></a>00104
135 <a name="l00106"></a>00106 <span class="comment">// Accesses</span>
136 <a name="l00107"></a>00107
137 <a name="l00108"></a>00108 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> &amp; operator[](size_type i);
138 <a name="l00109"></a>00109 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
139 <a name="l00110"></a>00110
140 <a name="l00111"></a>00111 <span class="comment">// Unary updatable operators</span>
141 <a name="l00112"></a>00112 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator=(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
142 <a name="l00113"></a>00113 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
143 <a name="l00114"></a>00114 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator=(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
144 <a name="l00115"></a>00115 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
145 <a name="l00116"></a>00116 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator+=(U <span class="keyword">const</span> &amp; s);
146 <a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
147 <a name="l00118"></a>00118 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator+=(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
148 <a name="l00119"></a>00119 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
149 <a name="l00120"></a>00120 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator-=(U <span class="keyword">const</span> &amp; s);
150 <a name="l00121"></a>00121 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
151 <a name="l00122"></a>00122 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator-=(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
152 <a name="l00123"></a>00123 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
153 <a name="l00124"></a>00124 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator*=(U <span class="keyword">const</span> &amp; s);
154 <a name="l00125"></a>00125 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
155 <a name="l00126"></a>00126 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator*=(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
156 <a name="l00127"></a>00127 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
157 <a name="l00128"></a>00128 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator/=(U <span class="keyword">const</span> &amp; s);
158 <a name="l00129"></a>00129 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
159 <a name="l00130"></a>00130 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator/=(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
160 <a name="l00131"></a>00131 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator++();
161 <a name="l00132"></a>00132 GLM_FUNC_DECL <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> &amp; operator--();
162 <a name="l00133"></a>00133 };
163 <a name="l00134"></a>00134
164 <a name="l00135"></a>00135 <span class="comment">// Binary operators</span>
165 <a name="l00136"></a>00136 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
166 <a name="l00137"></a>00137 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator+ (
167 <a name="l00138"></a>00138 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
168 <a name="l00139"></a>00139 <span class="keyword">typename</span> tmat2x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
169 <a name="l00140"></a>00140
170 <a name="l00141"></a>00141 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
171 <a name="l00142"></a>00142 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator+ (
172 <a name="l00143"></a>00143 <span class="keyword">typename</span> tmat2x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
173 <a name="l00144"></a>00144 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
174 <a name="l00145"></a>00145
175 <a name="l00146"></a>00146 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
176 <a name="l00147"></a>00147 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator+ (
177 <a name="l00148"></a>00148 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
178 <a name="l00149"></a>00149 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
179 <a name="l00150"></a>00150
180 <a name="l00151"></a>00151 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
181 <a name="l00152"></a>00152 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator- (
182 <a name="l00153"></a>00153 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
183 <a name="l00154"></a>00154 <span class="keyword">typename</span> tmat2x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
184 <a name="l00155"></a>00155
185 <a name="l00156"></a>00156 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
186 <a name="l00157"></a>00157 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator- (
187 <a name="l00158"></a>00158 <span class="keyword">typename</span> tmat2x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
188 <a name="l00159"></a>00159 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
189 <a name="l00160"></a>00160
190 <a name="l00161"></a>00161 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
191 <a name="l00162"></a>00162 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator- (
192 <a name="l00163"></a>00163 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
193 <a name="l00164"></a>00164 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
194 <a name="l00165"></a>00165
195 <a name="l00166"></a>00166 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
196 <a name="l00167"></a>00167 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator* (
197 <a name="l00168"></a>00168 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
198 <a name="l00169"></a>00169 <span class="keyword">typename</span> tmat2x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
199 <a name="l00170"></a>00170
200 <a name="l00171"></a>00171 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
201 <a name="l00172"></a>00172 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator* (
202 <a name="l00173"></a>00173 <span class="keyword">typename</span> tmat2x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
203 <a name="l00174"></a>00174 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
204 <a name="l00175"></a>00175
205 <a name="l00176"></a>00176 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
206 <a name="l00177"></a>00177 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x2&lt;T&gt;::col_type</a> operator* (
207 <a name="l00178"></a>00178 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
208 <a name="l00179"></a>00179 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x2&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
209 <a name="l00180"></a>00180
210 <a name="l00181"></a>00181 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
211 <a name="l00182"></a>00182 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x2&lt;T&gt;::row_type</a> operator* (
212 <a name="l00183"></a>00183 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x2&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
213 <a name="l00184"></a>00184 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
214 <a name="l00185"></a>00185
215 <a name="l00186"></a>00186 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
216 <a name="l00187"></a>00187 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator* (
217 <a name="l00188"></a>00188 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
218 <a name="l00189"></a>00189 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
219 <a name="l00190"></a>00190
220 <a name="l00191"></a>00191 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
221 <a name="l00192"></a>00192 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator/ (
222 <a name="l00193"></a>00193 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
223 <a name="l00194"></a>00194 <span class="keyword">typename</span> tmat2x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
224 <a name="l00195"></a>00195
225 <a name="l00196"></a>00196 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
226 <a name="l00197"></a>00197 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator/ (
227 <a name="l00198"></a>00198 <span class="keyword">typename</span> tmat2x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
228 <a name="l00199"></a>00199 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
229 <a name="l00200"></a>00200
230 <a name="l00201"></a>00201 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
231 <a name="l00202"></a>00202 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x2&lt;T&gt;::col_type</a> operator/ (
232 <a name="l00203"></a>00203 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
233 <a name="l00204"></a>00204 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x2&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
234 <a name="l00205"></a>00205
235 <a name="l00206"></a>00206 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
236 <a name="l00207"></a>00207 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x2&lt;T&gt;::row_type</a> operator/ (
237 <a name="l00208"></a>00208 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x2&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
238 <a name="l00209"></a>00209 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
239 <a name="l00210"></a>00210
240 <a name="l00211"></a>00211 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
241 <a name="l00212"></a>00212 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator/ (
242 <a name="l00213"></a>00213 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
243 <a name="l00214"></a>00214 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
244 <a name="l00215"></a>00215
245 <a name="l00216"></a>00216 <span class="comment">// Unary constant operators</span>
246 <a name="l00217"></a>00217 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
247 <a name="l00218"></a>00218 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> operator- (
248 <a name="l00219"></a>00219 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
249 <a name="l00220"></a>00220
250 <a name="l00221"></a>00221 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
251 <a name="l00222"></a>00222 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
252 <a name="l00223"></a>00223 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
253 <a name="l00224"></a>00224 <span class="keywordtype">int</span>);
254 <a name="l00225"></a>00225
255 <a name="l00226"></a>00226 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
256 <a name="l00227"></a>00227 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
257 <a name="l00228"></a>00228 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
258 <a name="l00229"></a>00229 <span class="keywordtype">int</span>);
259 <a name="l00230"></a>00230 } <span class="comment">//namespace detail</span>
260 <a name="l00231"></a>00231
261 <a name="l00232"></a>00232 <span class="keyword">namespace </span>core{
262 <a name="l00233"></a>00233 <span class="keyword">namespace </span>type{
263 <a name="l00234"></a>00234 <span class="keyword">namespace </span>precision
264 <a name="l00235"></a>00235 {
265 <a name="l00240"></a><a class="code" href="a00235.html#gaee10b4a3cac178528f8e56c90313094a">00240</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;lowp_float&gt;</a> <a class="code" href="a00235.html#gaee10b4a3cac178528f8e56c90313094a" title="2 columns of 2 components matrix of low precision floating-point numbers.">lowp_mat2</a>;
266 <a name="l00241"></a>00241
267 <a name="l00246"></a><a class="code" href="a00235.html#ga42f1426987103b15613671b323e90e5c">00246</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;mediump_float&gt;</a> <a class="code" href="a00235.html#ga42f1426987103b15613671b323e90e5c" title="2 columns of 2 components matrix of medium precision floating-point numbers.">mediump_mat2</a>;
268 <a name="l00247"></a>00247
269 <a name="l00252"></a><a class="code" href="a00235.html#gaeedb9e4f01fefcd5a47356b476b6890c">00252</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;highp_float&gt;</a> <a class="code" href="a00235.html#gaeedb9e4f01fefcd5a47356b476b6890c" title="2 columns of 2 components matrix of high precision floating-point numbers.">highp_mat2</a>;
270 <a name="l00253"></a>00253
271 <a name="l00258"></a><a class="code" href="a00235.html#ga8b49c3aa6665011440c32c281b2032c0">00258</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;lowp_float&gt;</a> <a class="code" href="a00235.html#ga8b49c3aa6665011440c32c281b2032c0" title="2 columns of 2 components matrix of low precision floating-point numbers.">lowp_mat2x2</a>;
272 <a name="l00259"></a>00259
273 <a name="l00264"></a><a class="code" href="a00235.html#gaa5970a6f98990c15b7a3be7cc7b79f4f">00264</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;mediump_float&gt;</a> <a class="code" href="a00235.html#gaa5970a6f98990c15b7a3be7cc7b79f4f" title="2 columns of 2 components matrix of medium precision floating-point numbers.">mediump_mat2x2</a>;
274 <a name="l00265"></a>00265
275 <a name="l00270"></a><a class="code" href="a00235.html#ga9aa0c5dce81439aa15a0d5b5e5006d81">00270</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;highp_float&gt;</a> <a class="code" href="a00235.html#ga9aa0c5dce81439aa15a0d5b5e5006d81" title="2 columns of 2 components matrix of high precision floating-point numbers.">highp_mat2x2</a>;
276 <a name="l00271"></a>00271
277 <a name="l00272"></a>00272 }<span class="comment">//namespace precision</span>
278 <a name="l00273"></a>00273 }<span class="comment">//namespace type</span>
279 <a name="l00274"></a>00274 }<span class="comment">//namespace core</span>
280 <a name="l00275"></a>00275 }<span class="comment">//namespace glm</span>
281 <a name="l00276"></a>00276
282 <a name="l00277"></a>00277 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
283 <a name="l00278"></a>00278 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat2x2.inl&quot;</span>
284 <a name="l00279"></a>00279 <span class="preprocessor">#endif</span>
285 <a name="l00280"></a>00280 <span class="preprocessor"></span>
286 <a name="l00281"></a>00281 <span class="preprocessor">#endif //glm_core_type_mat2x2</span>
273287 </pre></div></div>
274288 </div>
275289 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="preprocessor">#include &quot;type_mat.hpp&quot;</span>
5050 <a name="l00014"></a>00014
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm
52 <a name="l00016"></a>00016 {
53 <a name="l00017"></a>00017 <span class="keyword">namespace </span>test
54 <a name="l00018"></a>00018 {
55 <a name="l00019"></a>00019 <span class="keywordtype">void</span> main_mat2x3();
56 <a name="l00020"></a>00020 }<span class="comment">//namespace test</span>
57 <a name="l00021"></a>00021
58 <a name="l00022"></a>00022 <span class="keyword">namespace </span>detail
59 <a name="l00023"></a>00023 {
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
67 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
68 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
69 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
70 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
71 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
72 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
73 <a name="l00037"></a>00037
74 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
75 <a name="l00041"></a><a class="code" href="a00011.html">00041</a> <span class="keyword">struct </span><a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3</a>
76 <a name="l00042"></a>00042 {
77 <a name="l00043"></a>00043 <span class="keyword">enum</span> ctor{null};
78 <a name="l00044"></a>00044 <span class="keyword">typedef</span> T value_type;
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> std::size_t size_type;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a>;
81 <a name="l00047"></a>00047 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">row_type</a>;
82 <a name="l00048"></a>00048 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
83 <a name="l00049"></a>00049 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
84 <a name="l00050"></a>00050
85 <a name="l00051"></a>00051 <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">type</a>;
86 <a name="l00052"></a>00052 <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">transpose_type</a>;
87 <a name="l00053"></a>00053
88 <a name="l00054"></a>00054 <span class="keyword">private</span>:
89 <a name="l00055"></a>00055 <span class="comment">// Data </span>
90 <a name="l00056"></a>00056 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> value[2];
91 <a name="l00057"></a>00057
92 <a name="l00058"></a>00058 <span class="keyword">public</span>:
93 <a name="l00059"></a>00059 <span class="comment">// Constructors</span>
94 <a name="l00060"></a>00060 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3</a>();
95 <a name="l00061"></a>00061 GLM_FUNC_DECL tmat2x3(tmat2x3 <span class="keyword">const</span> &amp; m);
96 <a name="l00062"></a>00062
97 <a name="l00063"></a>00063 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(
98 <a name="l00064"></a>00064 ctor);
99 <a name="l00065"></a>00065 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(
100 <a name="l00066"></a>00066 value_type <span class="keyword">const</span> &amp; s);
101 <a name="l00067"></a>00067 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(
102 <a name="l00068"></a>00068 value_type <span class="keyword">const</span> &amp; x0, value_type <span class="keyword">const</span> &amp; y0, value_type <span class="keyword">const</span> &amp; z0,
103 <a name="l00069"></a>00069 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1, value_type <span class="keyword">const</span> &amp; z1);
104 <a name="l00070"></a>00070 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(
105 <a name="l00071"></a>00071 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v0,
106 <a name="l00072"></a>00072 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1);
107 <a name="l00073"></a>00073
108 <a name="l00074"></a>00074 <span class="comment">// Conversion</span>
109 <a name="l00075"></a>00075 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
110 <a name="l00076"></a>00076 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
111 <a name="l00077"></a>00077
112 <a name="l00078"></a>00078 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
113 <a name="l00079"></a>00079 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
114 <a name="l00080"></a>00080 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
115 <a name="l00081"></a>00081 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
116 <a name="l00082"></a>00082 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
117 <a name="l00083"></a>00083 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
118 <a name="l00084"></a>00084 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
119 <a name="l00085"></a>00085 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
120 <a name="l00086"></a>00086
121 <a name="l00087"></a>00087 <span class="comment">// Accesses</span>
122 <a name="l00088"></a>00088 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> &amp; operator[](size_type i);
123 <a name="l00089"></a>00089 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
124 <a name="l00090"></a>00090
125 <a name="l00091"></a>00091 <span class="comment">// Unary updatable operators</span>
126 <a name="l00092"></a>00092 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
127 <a name="l00093"></a>00093 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
128 <a name="l00094"></a>00094 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
129 <a name="l00095"></a>00095 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
130 <a name="l00096"></a>00096 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator+= (U <span class="keyword">const</span> &amp; s);
131 <a name="l00097"></a>00097 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
132 <a name="l00098"></a>00098 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator+= (<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
133 <a name="l00099"></a>00099 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
134 <a name="l00100"></a>00100 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator-= (U <span class="keyword">const</span> &amp; s);
135 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
136 <a name="l00102"></a>00102 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator-= (<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
137 <a name="l00103"></a>00103 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
138 <a name="l00104"></a>00104 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator*= (U <span class="keyword">const</span> &amp; s);
139 <a name="l00105"></a>00105 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
140 <a name="l00106"></a>00106 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator*= (<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
141 <a name="l00107"></a>00107 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
142 <a name="l00108"></a>00108 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator/= (U <span class="keyword">const</span> &amp; s);
143 <a name="l00109"></a>00109
144 <a name="l00110"></a>00110 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator++ ();
145 <a name="l00111"></a>00111 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator-- ();
146 <a name="l00112"></a>00112 };
147 <a name="l00113"></a>00113
148 <a name="l00114"></a>00114 <span class="comment">// Binary operators</span>
149 <a name="l00115"></a>00115 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
150 <a name="l00116"></a>00116 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> operator+ (
151 <a name="l00117"></a>00117 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
152 <a name="l00118"></a>00118 <span class="keyword">typename</span> tmat2x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
153 <a name="l00119"></a>00119
154 <a name="l00120"></a>00120 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
155 <a name="l00121"></a>00121 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> operator+ (
156 <a name="l00122"></a>00122 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
157 <a name="l00123"></a>00123 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
158 <a name="l00124"></a>00124
159 <a name="l00125"></a>00125 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
160 <a name="l00126"></a>00126 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> operator- (
161 <a name="l00127"></a>00127 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
162 <a name="l00128"></a>00128 <span class="keyword">typename</span> tmat2x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
163 <a name="l00129"></a>00129
164 <a name="l00130"></a>00130 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
165 <a name="l00131"></a>00131 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> operator- (
166 <a name="l00132"></a>00132 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
167 <a name="l00133"></a>00133 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
168 <a name="l00134"></a>00134
169 <a name="l00135"></a>00135 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
170 <a name="l00136"></a>00136 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> operator* (
171 <a name="l00137"></a>00137 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
172 <a name="l00138"></a>00138 <span class="keyword">typename</span> tmat2x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
173 <a name="l00139"></a>00139
174 <a name="l00140"></a>00140 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
175 <a name="l00141"></a>00141 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> operator* (
176 <a name="l00142"></a>00142 <span class="keyword">typename</span> tmat2x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
177 <a name="l00143"></a>00143 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
178 <a name="l00144"></a>00144
179 <a name="l00145"></a>00145 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
180 <a name="l00146"></a>00146 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat2x3&lt;T&gt;::col_type</a> operator* (
181 <a name="l00147"></a>00147 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
182 <a name="l00148"></a>00148 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x3&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
183 <a name="l00149"></a>00149
184 <a name="l00150"></a>00150 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
185 <a name="l00151"></a>00151 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x3&lt;T&gt;::row_type</a> operator* (
186 <a name="l00152"></a>00152 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat2x3&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
187 <a name="l00153"></a>00153 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
188 <a name="l00154"></a>00154
189 <a name="l00155"></a>00155 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
190 <a name="l00156"></a>00156 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator* (
191 <a name="l00157"></a>00157 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
192 <a name="l00158"></a>00158 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
193 <a name="l00159"></a>00159
194 <a name="l00160"></a>00160 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
195 <a name="l00161"></a>00161 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> operator/ (
196 <a name="l00162"></a>00162 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
197 <a name="l00163"></a>00163 <span class="keyword">typename</span> tmat2x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
198 <a name="l00164"></a>00164
199 <a name="l00165"></a>00165 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
200 <a name="l00166"></a>00166 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> operator/ (
201 <a name="l00167"></a>00167 <span class="keyword">typename</span> tmat2x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
202 <a name="l00168"></a>00168 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
203 <a name="l00169"></a>00169
204 <a name="l00170"></a>00170 <span class="comment">// Unary constant operators</span>
205 <a name="l00171"></a>00171 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
206 <a name="l00172"></a>00172 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> operator- (
207 <a name="l00173"></a>00173 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
208 <a name="l00174"></a>00174
209 <a name="l00175"></a>00175 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
210 <a name="l00176"></a>00176 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
211 <a name="l00177"></a>00177 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
212 <a name="l00178"></a>00178 <span class="keywordtype">int</span>);
213 <a name="l00179"></a>00179
214 <a name="l00180"></a>00180 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
215 <a name="l00181"></a>00181 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
216 <a name="l00182"></a>00182 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
217 <a name="l00183"></a>00183 <span class="keywordtype">int</span>);
218 <a name="l00184"></a>00184
219 <a name="l00185"></a>00185 } <span class="comment">//namespace detail</span>
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm{
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>detail
53 <a name="l00017"></a>00017 {
54 <a name="l00018"></a>00018 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
55 <a name="l00019"></a>00019 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
56 <a name="l00020"></a>00020 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
57 <a name="l00021"></a>00021 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
58 <a name="l00022"></a>00022 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
59 <a name="l00023"></a>00023 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
67 <a name="l00031"></a>00031
68 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00035"></a><a class="code" href="a00011.html">00035</a> <span class="keyword">struct </span><a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3</a>
70 <a name="l00036"></a>00036 {
71 <a name="l00037"></a>00037 <span class="keyword">enum</span> ctor{null};
72 <a name="l00038"></a>00038 <span class="keyword">typedef</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> value_type;
73 <a name="l00039"></a>00039 <span class="keyword">typedef</span> std::size_t size_type;
74 <a name="l00040"></a>00040 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a>;
75 <a name="l00041"></a>00041 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">row_type</a>;
76 <a name="l00042"></a>00042 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
77 <a name="l00043"></a>00043 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
78 <a name="l00044"></a>00044
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">type</a>;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">transpose_type</a>;
81 <a name="l00047"></a>00047
82 <a name="l00048"></a>00048 <span class="keyword">private</span>:
83 <a name="l00049"></a>00049 <span class="comment">// Data </span>
84 <a name="l00050"></a>00050 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> value[2];
85 <a name="l00051"></a>00051
86 <a name="l00052"></a>00052 <span class="keyword">public</span>:
87 <a name="l00053"></a>00053 <span class="comment">// Constructors</span>
88 <a name="l00054"></a>00054 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3</a>();
89 <a name="l00055"></a>00055 GLM_FUNC_DECL tmat2x3(tmat2x3 <span class="keyword">const</span> &amp; m);
90 <a name="l00056"></a>00056
91 <a name="l00057"></a>00057 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(
92 <a name="l00058"></a>00058 ctor);
93 <a name="l00059"></a>00059 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(
94 <a name="l00060"></a>00060 value_type <span class="keyword">const</span> &amp; s);
95 <a name="l00061"></a>00061 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(
96 <a name="l00062"></a>00062 value_type <span class="keyword">const</span> &amp; x0, value_type <span class="keyword">const</span> &amp; y0, value_type <span class="keyword">const</span> &amp; z0,
97 <a name="l00063"></a>00063 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1, value_type <span class="keyword">const</span> &amp; z1);
98 <a name="l00064"></a>00064 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(
99 <a name="l00065"></a>00065 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v0,
100 <a name="l00066"></a>00066 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1);
101 <a name="l00067"></a>00067
102 <a name="l00068"></a>00068
103 <a name="l00070"></a>00070 <span class="comment">// Conversions</span>
104 <a name="l00071"></a>00071 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
105 <a name="l00072"></a>00072 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(
106 <a name="l00073"></a>00073 U <span class="keyword">const</span> &amp; x);
107 <a name="l00074"></a>00074
108 <a name="l00075"></a>00075 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> X1, <span class="keyword">typename</span> Y1, <span class="keyword">typename</span> Z1, <span class="keyword">typename</span> X2, <span class="keyword">typename</span> Y2, <span class="keyword">typename</span> Z2&gt;
109 <a name="l00076"></a>00076 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(
110 <a name="l00077"></a>00077 X1 <span class="keyword">const</span> &amp; x1, Y1 <span class="keyword">const</span> &amp; y1, Z1 <span class="keyword">const</span> &amp; z1,
111 <a name="l00078"></a>00078 X2 <span class="keyword">const</span> &amp; x2, Y2 <span class="keyword">const</span> &amp; y2, Z2 <span class="keyword">const</span> &amp; z2);
112 <a name="l00079"></a>00079
113 <a name="l00080"></a>00080 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, <span class="keyword">typename</span> V&gt;
114 <a name="l00081"></a>00081 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(
115 <a name="l00082"></a>00082 <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v1,
116 <a name="l00083"></a>00083 <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;V&gt;</a> <span class="keyword">const</span> &amp; v2);
117 <a name="l00084"></a>00084
118 <a name="l00086"></a>00086 <span class="comment">// Matrix conversion</span>
119 <a name="l00087"></a>00087 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
120 <a name="l00088"></a>00088 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
121 <a name="l00089"></a>00089
122 <a name="l00090"></a>00090 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
123 <a name="l00091"></a>00091 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
124 <a name="l00092"></a>00092 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
125 <a name="l00093"></a>00093 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
126 <a name="l00094"></a>00094 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
127 <a name="l00095"></a>00095 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
128 <a name="l00096"></a>00096 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
129 <a name="l00097"></a>00097 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x3(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
130 <a name="l00098"></a>00098
131 <a name="l00099"></a>00099 <span class="comment">// Accesses</span>
132 <a name="l00100"></a>00100 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> &amp; operator[](size_type i);
133 <a name="l00101"></a>00101 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
134 <a name="l00102"></a>00102
135 <a name="l00103"></a>00103 <span class="comment">// Unary updatable operators</span>
136 <a name="l00104"></a>00104 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
137 <a name="l00105"></a>00105 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
138 <a name="l00106"></a>00106 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
139 <a name="l00107"></a>00107 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
140 <a name="l00108"></a>00108 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator+= (U <span class="keyword">const</span> &amp; s);
141 <a name="l00109"></a>00109 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
142 <a name="l00110"></a>00110 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator+= (<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
143 <a name="l00111"></a>00111 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
144 <a name="l00112"></a>00112 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator-= (U <span class="keyword">const</span> &amp; s);
145 <a name="l00113"></a>00113 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
146 <a name="l00114"></a>00114 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator-= (<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
147 <a name="l00115"></a>00115 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
148 <a name="l00116"></a>00116 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator*= (U <span class="keyword">const</span> &amp; s);
149 <a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
150 <a name="l00118"></a>00118 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator*= (<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
151 <a name="l00119"></a>00119 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
152 <a name="l00120"></a>00120 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator/= (U <span class="keyword">const</span> &amp; s);
153 <a name="l00121"></a>00121
154 <a name="l00122"></a>00122 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator++ ();
155 <a name="l00123"></a>00123 GLM_FUNC_DECL <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> &amp; operator-- ();
156 <a name="l00124"></a>00124 };
157 <a name="l00125"></a>00125
158 <a name="l00126"></a>00126 <span class="comment">// Binary operators</span>
159 <a name="l00127"></a>00127 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
160 <a name="l00128"></a>00128 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> operator+ (
161 <a name="l00129"></a>00129 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
162 <a name="l00130"></a>00130 <span class="keyword">typename</span> tmat2x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
163 <a name="l00131"></a>00131
164 <a name="l00132"></a>00132 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
165 <a name="l00133"></a>00133 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> operator+ (
166 <a name="l00134"></a>00134 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
167 <a name="l00135"></a>00135 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
168 <a name="l00136"></a>00136
169 <a name="l00137"></a>00137 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
170 <a name="l00138"></a>00138 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> operator- (
171 <a name="l00139"></a>00139 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
172 <a name="l00140"></a>00140 <span class="keyword">typename</span> tmat2x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
173 <a name="l00141"></a>00141
174 <a name="l00142"></a>00142 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
175 <a name="l00143"></a>00143 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> operator- (
176 <a name="l00144"></a>00144 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
177 <a name="l00145"></a>00145 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
178 <a name="l00146"></a>00146
179 <a name="l00147"></a>00147 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
180 <a name="l00148"></a>00148 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> operator* (
181 <a name="l00149"></a>00149 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
182 <a name="l00150"></a>00150 <span class="keyword">typename</span> tmat2x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
183 <a name="l00151"></a>00151
184 <a name="l00152"></a>00152 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
185 <a name="l00153"></a>00153 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> operator* (
186 <a name="l00154"></a>00154 <span class="keyword">typename</span> tmat2x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
187 <a name="l00155"></a>00155 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
188 <a name="l00156"></a>00156
189 <a name="l00157"></a>00157 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
190 <a name="l00158"></a>00158 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat2x3&lt;T&gt;::col_type</a> operator* (
191 <a name="l00159"></a>00159 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
192 <a name="l00160"></a>00160 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x3&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
193 <a name="l00161"></a>00161
194 <a name="l00162"></a>00162 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
195 <a name="l00163"></a>00163 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x3&lt;T&gt;::row_type</a> operator* (
196 <a name="l00164"></a>00164 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat2x3&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
197 <a name="l00165"></a>00165 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
198 <a name="l00166"></a>00166
199 <a name="l00167"></a>00167 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
200 <a name="l00168"></a>00168 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator* (
201 <a name="l00169"></a>00169 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
202 <a name="l00170"></a>00170 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
203 <a name="l00171"></a>00171
204 <a name="l00172"></a>00172 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
205 <a name="l00173"></a>00173 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> operator/ (
206 <a name="l00174"></a>00174 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
207 <a name="l00175"></a>00175 <span class="keyword">typename</span> tmat2x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
208 <a name="l00176"></a>00176
209 <a name="l00177"></a>00177 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
210 <a name="l00178"></a>00178 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> operator/ (
211 <a name="l00179"></a>00179 <span class="keyword">typename</span> tmat2x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
212 <a name="l00180"></a>00180 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
213 <a name="l00181"></a>00181
214 <a name="l00182"></a>00182 <span class="comment">// Unary constant operators</span>
215 <a name="l00183"></a>00183 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
216 <a name="l00184"></a>00184 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> operator- (
217 <a name="l00185"></a>00185 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
220218 <a name="l00186"></a>00186
221 <a name="l00187"></a>00187 <span class="keyword">namespace </span>core{
222 <a name="l00188"></a>00188 <span class="keyword">namespace </span>type{
223 <a name="l00189"></a>00189
224 <a name="l00190"></a>00190 <span class="keyword">namespace </span>precision
225 <a name="l00191"></a>00191 {
226 <a name="l00196"></a><a class="code" href="a00236.html#ga0b32355a31b4c14e98f69b43a9077456">00196</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;lowp_float&gt;</a> <a class="code" href="a00236.html#ga0b32355a31b4c14e98f69b43a9077456" title="2 columns of 3 components matrix of low precision floating-point numbers.">lowp_mat2x3</a>;
227 <a name="l00201"></a><a class="code" href="a00236.html#gacceeb5355767eb306c12ea961b31e808">00201</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;mediump_float&gt;</a> <a class="code" href="a00236.html#gacceeb5355767eb306c12ea961b31e808" title="2 columns of 3 components matrix of medium precision floating-point numbers.">mediump_mat2x3</a>;
228 <a name="l00206"></a><a class="code" href="a00236.html#ga895ba4ec32bd7cfb0d07572556572069">00206</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;highp_float&gt;</a> <a class="code" href="a00236.html#ga895ba4ec32bd7cfb0d07572556572069" title="2 columns of 3 components matrix of high precision floating-point numbers.">highp_mat2x3</a>;
229 <a name="l00207"></a>00207 }
230 <a name="l00208"></a>00208 <span class="comment">//namespace precision</span>
231 <a name="l00209"></a>00209
232 <a name="l00210"></a>00210 }<span class="comment">//namespace type</span>
233 <a name="l00211"></a>00211 }<span class="comment">//namespace core</span>
234 <a name="l00212"></a>00212 } <span class="comment">//namespace glm</span>
235 <a name="l00213"></a>00213
236 <a name="l00214"></a>00214 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
237 <a name="l00215"></a>00215 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat2x3.inl&quot;</span>
238 <a name="l00216"></a>00216 <span class="preprocessor">#endif</span>
239 <a name="l00217"></a>00217 <span class="preprocessor"></span>
240 <a name="l00218"></a>00218 <span class="preprocessor">#endif //glm_core_type_mat2x3</span>
219 <a name="l00187"></a>00187 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
220 <a name="l00188"></a>00188 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
221 <a name="l00189"></a>00189 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
222 <a name="l00190"></a>00190 <span class="keywordtype">int</span>);
223 <a name="l00191"></a>00191
224 <a name="l00192"></a>00192 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
225 <a name="l00193"></a>00193 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
226 <a name="l00194"></a>00194 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
227 <a name="l00195"></a>00195 <span class="keywordtype">int</span>);
228 <a name="l00196"></a>00196
229 <a name="l00197"></a>00197 } <span class="comment">//namespace detail</span>
230 <a name="l00198"></a>00198
231 <a name="l00199"></a>00199 <span class="keyword">namespace </span>core{
232 <a name="l00200"></a>00200 <span class="keyword">namespace </span>type{
233 <a name="l00201"></a>00201 <span class="keyword">namespace </span>precision
234 <a name="l00202"></a>00202 {
235 <a name="l00207"></a><a class="code" href="a00235.html#ga0b32355a31b4c14e98f69b43a9077456">00207</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;lowp_float&gt;</a> <a class="code" href="a00235.html#ga0b32355a31b4c14e98f69b43a9077456" title="2 columns of 3 components matrix of low precision floating-point numbers.">lowp_mat2x3</a>;
236 <a name="l00212"></a><a class="code" href="a00235.html#gacceeb5355767eb306c12ea961b31e808">00212</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;mediump_float&gt;</a> <a class="code" href="a00235.html#gacceeb5355767eb306c12ea961b31e808" title="2 columns of 3 components matrix of medium precision floating-point numbers.">mediump_mat2x3</a>;
237 <a name="l00217"></a><a class="code" href="a00235.html#ga895ba4ec32bd7cfb0d07572556572069">00217</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;highp_float&gt;</a> <a class="code" href="a00235.html#ga895ba4ec32bd7cfb0d07572556572069" title="2 columns of 3 components matrix of high precision floating-point numbers.">highp_mat2x3</a>;
238 <a name="l00218"></a>00218 }<span class="comment">//namespace precision</span>
239 <a name="l00219"></a>00219 }<span class="comment">//namespace type</span>
240 <a name="l00220"></a>00220 }<span class="comment">//namespace core</span>
241 <a name="l00221"></a>00221 }<span class="comment">//namespace glm</span>
242 <a name="l00222"></a>00222
243 <a name="l00223"></a>00223 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
244 <a name="l00224"></a>00224 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat2x3.inl&quot;</span>
245 <a name="l00225"></a>00225 <span class="preprocessor">#endif</span>
246 <a name="l00226"></a>00226 <span class="preprocessor"></span>
247 <a name="l00227"></a>00227 <span class="preprocessor">#endif //glm_core_type_mat2x3</span>
241248 </pre></div></div>
242249 </div>
243250 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="preprocessor">#include &quot;type_mat.hpp&quot;</span>
5050 <a name="l00014"></a>00014
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm
52 <a name="l00016"></a>00016 {
53 <a name="l00017"></a>00017 <span class="keyword">namespace </span>test
54 <a name="l00018"></a>00018 {
55 <a name="l00019"></a>00019 <span class="keywordtype">void</span> main_mat2x4();
56 <a name="l00020"></a>00020 }<span class="comment">//namespace test</span>
57 <a name="l00021"></a>00021
58 <a name="l00022"></a>00022 <span class="keyword">namespace </span>detail
59 <a name="l00023"></a>00023 {
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
67 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
68 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
69 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
70 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
71 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
72 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
73 <a name="l00037"></a>00037
74 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
75 <a name="l00041"></a><a class="code" href="a00012.html">00041</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4</a>
76 <a name="l00042"></a>00042 {
77 <a name="l00043"></a>00043 <span class="keyword">enum</span> ctor{null};
78 <a name="l00044"></a>00044 <span class="keyword">typedef</span> T value_type;
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> std::size_t size_type;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a>;
81 <a name="l00047"></a>00047 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">row_type</a>;
82 <a name="l00048"></a>00048 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
83 <a name="l00049"></a>00049 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
84 <a name="l00050"></a>00050
85 <a name="l00051"></a>00051 <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">type</a>;
86 <a name="l00052"></a>00052 <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">transpose_type</a>;
87 <a name="l00053"></a>00053
88 <a name="l00054"></a>00054 <span class="keyword">private</span>:
89 <a name="l00055"></a>00055 <span class="comment">// Data </span>
90 <a name="l00056"></a>00056 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> value[2];
91 <a name="l00057"></a>00057
92 <a name="l00058"></a>00058 <span class="keyword">public</span>:
93 <a name="l00059"></a>00059 <span class="comment">// Constructors</span>
94 <a name="l00060"></a>00060 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4</a>();
95 <a name="l00061"></a>00061 GLM_FUNC_DECL tmat2x4(tmat2x4 <span class="keyword">const</span> &amp; m);
96 <a name="l00062"></a>00062
97 <a name="l00063"></a>00063 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(
98 <a name="l00064"></a>00064 ctor);
99 <a name="l00065"></a>00065 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(
100 <a name="l00066"></a>00066 value_type <span class="keyword">const</span> &amp; s);
101 <a name="l00067"></a>00067 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(
102 <a name="l00068"></a>00068 value_type <span class="keyword">const</span> &amp; x0, value_type <span class="keyword">const</span> &amp; y0, value_type <span class="keyword">const</span> &amp; z0, value_type <span class="keyword">const</span> &amp; w0,
103 <a name="l00069"></a>00069 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1, value_type <span class="keyword">const</span> &amp; z1, value_type <span class="keyword">const</span> &amp; w1);
104 <a name="l00070"></a>00070 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(
105 <a name="l00071"></a>00071 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v0,
106 <a name="l00072"></a>00072 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1);
107 <a name="l00073"></a>00073
108 <a name="l00074"></a>00074 <span class="comment">// Conversion</span>
109 <a name="l00075"></a>00075 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
110 <a name="l00076"></a>00076 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
111 <a name="l00077"></a>00077
112 <a name="l00078"></a>00078 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
113 <a name="l00079"></a>00079 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
114 <a name="l00080"></a>00080 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
115 <a name="l00081"></a>00081 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
116 <a name="l00082"></a>00082 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
117 <a name="l00083"></a>00083 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
118 <a name="l00084"></a>00084 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
119 <a name="l00085"></a>00085 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
120 <a name="l00086"></a>00086
121 <a name="l00087"></a>00087 <span class="comment">// Accesses</span>
122 <a name="l00088"></a>00088 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> &amp; operator[](size_type i);
123 <a name="l00089"></a>00089 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm{
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>detail
53 <a name="l00017"></a>00017 {
54 <a name="l00018"></a>00018 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
55 <a name="l00019"></a>00019 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
56 <a name="l00020"></a>00020 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
57 <a name="l00021"></a>00021 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
58 <a name="l00022"></a>00022 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
59 <a name="l00023"></a>00023 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
67 <a name="l00031"></a>00031
68 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00035"></a><a class="code" href="a00012.html">00035</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4</a>
70 <a name="l00036"></a>00036 {
71 <a name="l00037"></a>00037 <span class="keyword">enum</span> ctor{null};
72 <a name="l00038"></a>00038 <span class="keyword">typedef</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> value_type;
73 <a name="l00039"></a>00039 <span class="keyword">typedef</span> std::size_t size_type;
74 <a name="l00040"></a>00040 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a>;
75 <a name="l00041"></a>00041 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">row_type</a>;
76 <a name="l00042"></a>00042 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
77 <a name="l00043"></a>00043 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
78 <a name="l00044"></a>00044
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">type</a>;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">transpose_type</a>;
81 <a name="l00047"></a>00047
82 <a name="l00048"></a>00048 <span class="keyword">private</span>:
83 <a name="l00049"></a>00049 <span class="comment">// Data </span>
84 <a name="l00050"></a>00050 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> value[2];
85 <a name="l00051"></a>00051
86 <a name="l00052"></a>00052 <span class="keyword">public</span>:
87 <a name="l00053"></a>00053 <span class="comment">// Constructors</span>
88 <a name="l00054"></a>00054 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4</a>();
89 <a name="l00055"></a>00055 GLM_FUNC_DECL tmat2x4(tmat2x4 <span class="keyword">const</span> &amp; m);
90 <a name="l00056"></a>00056
91 <a name="l00057"></a>00057 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(
92 <a name="l00058"></a>00058 ctor);
93 <a name="l00059"></a>00059 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(
94 <a name="l00060"></a>00060 value_type <span class="keyword">const</span> &amp; s);
95 <a name="l00061"></a>00061 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(
96 <a name="l00062"></a>00062 value_type <span class="keyword">const</span> &amp; x0, value_type <span class="keyword">const</span> &amp; y0, value_type <span class="keyword">const</span> &amp; z0, value_type <span class="keyword">const</span> &amp; w0,
97 <a name="l00063"></a>00063 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1, value_type <span class="keyword">const</span> &amp; z1, value_type <span class="keyword">const</span> &amp; w1);
98 <a name="l00064"></a>00064 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(
99 <a name="l00065"></a>00065 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v0,
100 <a name="l00066"></a>00066 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1);
101 <a name="l00067"></a>00067
102 <a name="l00069"></a>00069 <span class="comment">// Conversions</span>
103 <a name="l00070"></a>00070 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
104 <a name="l00071"></a>00071 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(
105 <a name="l00072"></a>00072 U <span class="keyword">const</span> &amp; x);
106 <a name="l00073"></a>00073
107 <a name="l00074"></a>00074 <span class="keyword">template</span> &lt;
108 <a name="l00075"></a>00075 <span class="keyword">typename</span> X1, <span class="keyword">typename</span> Y1, <span class="keyword">typename</span> Z1, <span class="keyword">typename</span> W1,
109 <a name="l00076"></a>00076 <span class="keyword">typename</span> X2, <span class="keyword">typename</span> Y2, <span class="keyword">typename</span> Z2, <span class="keyword">typename</span> W2&gt;
110 <a name="l00077"></a>00077 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(
111 <a name="l00078"></a>00078 X1 <span class="keyword">const</span> &amp; x1, Y1 <span class="keyword">const</span> &amp; y1, Z1 <span class="keyword">const</span> &amp; z1, W1 <span class="keyword">const</span> &amp; w1,
112 <a name="l00079"></a>00079 X2 <span class="keyword">const</span> &amp; x2, Y2 <span class="keyword">const</span> &amp; y2, Z2 <span class="keyword">const</span> &amp; z2, W2 <span class="keyword">const</span> &amp; w2);
113 <a name="l00080"></a>00080
114 <a name="l00081"></a>00081 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, <span class="keyword">typename</span> V&gt;
115 <a name="l00082"></a>00082 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(
116 <a name="l00083"></a>00083 <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v1,
117 <a name="l00084"></a>00084 <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;V&gt;</a> <span class="keyword">const</span> &amp; v2);
118 <a name="l00085"></a>00085
119 <a name="l00087"></a>00087 <span class="comment">// Matrix conversions</span>
120 <a name="l00088"></a>00088 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
121 <a name="l00089"></a>00089 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
124122 <a name="l00090"></a>00090
125 <a name="l00091"></a>00091 <span class="comment">// Unary updatable operators</span>
126 <a name="l00092"></a>00092 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator= (<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
127 <a name="l00093"></a>00093 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
128 <a name="l00094"></a>00094 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator= (<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
129 <a name="l00095"></a>00095 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
130 <a name="l00096"></a>00096 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator+= (U <span class="keyword">const</span> &amp; s);
131 <a name="l00097"></a>00097 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
132 <a name="l00098"></a>00098 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator+= (<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
133 <a name="l00099"></a>00099 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
134 <a name="l00100"></a>00100 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator-= (U <span class="keyword">const</span> &amp; s);
135 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
136 <a name="l00102"></a>00102 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator-= (<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
137 <a name="l00103"></a>00103 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
138 <a name="l00104"></a>00104 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator*= (U <span class="keyword">const</span> &amp; s);
139 <a name="l00105"></a>00105 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
140 <a name="l00106"></a>00106 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator*= (<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
141 <a name="l00107"></a>00107 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
142 <a name="l00108"></a>00108 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator/= (U <span class="keyword">const</span> &amp; s);
143 <a name="l00109"></a>00109
144 <a name="l00110"></a>00110 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator++ ();
145 <a name="l00111"></a>00111 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator-- ();
146 <a name="l00112"></a>00112 };
147 <a name="l00113"></a>00113
148 <a name="l00114"></a>00114 <span class="comment">// Binary operators</span>
149 <a name="l00115"></a>00115 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
150 <a name="l00116"></a>00116 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator+ (
151 <a name="l00117"></a>00117 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
152 <a name="l00118"></a>00118 <span class="keyword">typename</span> tmat2x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
153 <a name="l00119"></a>00119
154 <a name="l00120"></a>00120 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
155 <a name="l00121"></a>00121 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator+ (
156 <a name="l00122"></a>00122 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
157 <a name="l00123"></a>00123 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
158 <a name="l00124"></a>00124
159 <a name="l00125"></a>00125 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
160 <a name="l00126"></a>00126 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator- (
161 <a name="l00127"></a>00127 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
162 <a name="l00128"></a>00128 <span class="keyword">typename</span> tmat2x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
163 <a name="l00129"></a>00129
164 <a name="l00130"></a>00130 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
165 <a name="l00131"></a>00131 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator- (
166 <a name="l00132"></a>00132 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
167 <a name="l00133"></a>00133 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
168 <a name="l00134"></a>00134
169 <a name="l00135"></a>00135 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
170 <a name="l00136"></a>00136 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator* (
171 <a name="l00137"></a>00137 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
172 <a name="l00138"></a>00138 <span class="keyword">typename</span> tmat2x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
173 <a name="l00139"></a>00139
174 <a name="l00140"></a>00140 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
175 <a name="l00141"></a>00141 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator* (
176 <a name="l00142"></a>00142 <span class="keyword">typename</span> tmat2x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
177 <a name="l00143"></a>00143 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
178 <a name="l00144"></a>00144
179 <a name="l00145"></a>00145 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
180 <a name="l00146"></a>00146 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat2x4&lt;T&gt;::col_type</a> operator* (
181 <a name="l00147"></a>00147 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
182 <a name="l00148"></a>00148 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x4&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
183 <a name="l00149"></a>00149
184 <a name="l00150"></a>00150 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
185 <a name="l00151"></a>00151 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x4&lt;T&gt;::row_type</a> operator* (
186 <a name="l00152"></a>00152 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat2x4&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
187 <a name="l00153"></a>00153 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
188 <a name="l00154"></a>00154
189 <a name="l00155"></a>00155 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
190 <a name="l00156"></a>00156 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator* (
191 <a name="l00157"></a>00157 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
192 <a name="l00158"></a>00158 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
193 <a name="l00159"></a>00159
194 <a name="l00160"></a>00160 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
195 <a name="l00161"></a>00161 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator/ (
196 <a name="l00162"></a>00162 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
197 <a name="l00163"></a>00163 <span class="keyword">typename</span> tmat2x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
198 <a name="l00164"></a>00164
199 <a name="l00165"></a>00165 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
200 <a name="l00166"></a>00166 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator/ (
201 <a name="l00167"></a>00167 <span class="keyword">typename</span> tmat2x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
202 <a name="l00168"></a>00168 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
203 <a name="l00169"></a>00169
204 <a name="l00170"></a>00170 <span class="comment">// Unary constant operators</span>
205 <a name="l00171"></a>00171 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
206 <a name="l00172"></a>00172 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> operator- (
207 <a name="l00173"></a>00173 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
208 <a name="l00174"></a>00174
209 <a name="l00175"></a>00175 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
210 <a name="l00176"></a>00176 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
211 <a name="l00177"></a>00177 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
212 <a name="l00178"></a>00178 <span class="keywordtype">int</span>);
213 <a name="l00179"></a>00179
214 <a name="l00180"></a>00180 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
215 <a name="l00181"></a>00181 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
216 <a name="l00182"></a>00182 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
217 <a name="l00183"></a>00183 <span class="keywordtype">int</span>);
218 <a name="l00184"></a>00184
219 <a name="l00185"></a>00185 } <span class="comment">//namespace detail</span>
220 <a name="l00186"></a>00186
221 <a name="l00187"></a>00187 <span class="keyword">namespace </span>core{
222 <a name="l00188"></a>00188 <span class="keyword">namespace </span>type{
223 <a name="l00189"></a>00189
224 <a name="l00190"></a>00190 <span class="keyword">namespace </span>precision
225 <a name="l00191"></a>00191 {
226 <a name="l00195"></a><a class="code" href="a00156.html#af95b55f8954834b05b5463bc153deae5">00195</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;lowp_float&gt;</a> <a class="code" href="a00156.html#af95b55f8954834b05b5463bc153deae5" title="2 columns of 4 components matrix of low precision floating-point numbers.">lowp_mat2x4</a>;
227 <a name="l00199"></a><a class="code" href="a00156.html#abbec32a495b527df1796bb46f8cce516">00199</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;mediump_float&gt;</a> <a class="code" href="a00156.html#abbec32a495b527df1796bb46f8cce516" title="2 columns of 4 components matrix of medium precision floating-point numbers.">mediump_mat2x4</a>;
228 <a name="l00203"></a><a class="code" href="a00156.html#af8816ff880fbae96a59c543904333109">00203</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;highp_float&gt;</a> <a class="code" href="a00156.html#af8816ff880fbae96a59c543904333109" title="2 columns of 4 components matrix of high precision floating-point numbers.">highp_mat2x4</a>;
229 <a name="l00204"></a>00204 }
230 <a name="l00205"></a>00205 <span class="comment">//namespace precision</span>
231 <a name="l00206"></a>00206
232 <a name="l00207"></a>00207 }<span class="comment">//namespace type</span>
233 <a name="l00208"></a>00208 }<span class="comment">//namespace core</span>
234 <a name="l00209"></a>00209 } <span class="comment">//namespace glm</span>
235 <a name="l00210"></a>00210
236 <a name="l00211"></a>00211 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
237 <a name="l00212"></a>00212 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat2x4.inl&quot;</span>
238 <a name="l00213"></a>00213 <span class="preprocessor">#endif</span>
239 <a name="l00214"></a>00214 <span class="preprocessor"></span>
240 <a name="l00215"></a>00215 <span class="preprocessor">#endif //glm_core_type_mat2x4</span>
123 <a name="l00091"></a>00091 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
124 <a name="l00092"></a>00092 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
125 <a name="l00093"></a>00093 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
126 <a name="l00094"></a>00094 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
127 <a name="l00095"></a>00095 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
128 <a name="l00096"></a>00096 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
129 <a name="l00097"></a>00097 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
130 <a name="l00098"></a>00098 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat2x4(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
131 <a name="l00099"></a>00099
132 <a name="l00100"></a>00100 <span class="comment">// Accesses</span>
133 <a name="l00101"></a>00101 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> &amp; operator[](size_type i);
134 <a name="l00102"></a>00102 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
135 <a name="l00103"></a>00103
136 <a name="l00104"></a>00104 <span class="comment">// Unary updatable operators</span>
137 <a name="l00105"></a>00105 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator= (<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
138 <a name="l00106"></a>00106 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
139 <a name="l00107"></a>00107 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator= (<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
140 <a name="l00108"></a>00108 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
141 <a name="l00109"></a>00109 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator+= (U <span class="keyword">const</span> &amp; s);
142 <a name="l00110"></a>00110 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
143 <a name="l00111"></a>00111 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator+= (<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
144 <a name="l00112"></a>00112 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
145 <a name="l00113"></a>00113 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator-= (U <span class="keyword">const</span> &amp; s);
146 <a name="l00114"></a>00114 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
147 <a name="l00115"></a>00115 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator-= (<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
148 <a name="l00116"></a>00116 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
149 <a name="l00117"></a>00117 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator*= (U <span class="keyword">const</span> &amp; s);
150 <a name="l00118"></a>00118 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
151 <a name="l00119"></a>00119 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator*= (<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
152 <a name="l00120"></a>00120 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
153 <a name="l00121"></a>00121 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator/= (U <span class="keyword">const</span> &amp; s);
154 <a name="l00122"></a>00122
155 <a name="l00123"></a>00123 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator++ ();
156 <a name="l00124"></a>00124 GLM_FUNC_DECL <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a>&amp; operator-- ();
157 <a name="l00125"></a>00125 };
158 <a name="l00126"></a>00126
159 <a name="l00127"></a>00127 <span class="comment">// Binary operators</span>
160 <a name="l00128"></a>00128 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
161 <a name="l00129"></a>00129 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator+ (
162 <a name="l00130"></a>00130 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
163 <a name="l00131"></a>00131 <span class="keyword">typename</span> tmat2x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
164 <a name="l00132"></a>00132
165 <a name="l00133"></a>00133 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
166 <a name="l00134"></a>00134 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator+ (
167 <a name="l00135"></a>00135 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
168 <a name="l00136"></a>00136 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
169 <a name="l00137"></a>00137
170 <a name="l00138"></a>00138 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
171 <a name="l00139"></a>00139 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator- (
172 <a name="l00140"></a>00140 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
173 <a name="l00141"></a>00141 <span class="keyword">typename</span> tmat2x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
174 <a name="l00142"></a>00142
175 <a name="l00143"></a>00143 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
176 <a name="l00144"></a>00144 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator- (
177 <a name="l00145"></a>00145 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
178 <a name="l00146"></a>00146 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
179 <a name="l00147"></a>00147
180 <a name="l00148"></a>00148 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
181 <a name="l00149"></a>00149 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator* (
182 <a name="l00150"></a>00150 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
183 <a name="l00151"></a>00151 <span class="keyword">typename</span> tmat2x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
184 <a name="l00152"></a>00152
185 <a name="l00153"></a>00153 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
186 <a name="l00154"></a>00154 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator* (
187 <a name="l00155"></a>00155 <span class="keyword">typename</span> tmat2x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
188 <a name="l00156"></a>00156 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
189 <a name="l00157"></a>00157
190 <a name="l00158"></a>00158 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
191 <a name="l00159"></a>00159 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat2x4&lt;T&gt;::col_type</a> operator* (
192 <a name="l00160"></a>00160 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
193 <a name="l00161"></a>00161 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x4&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
194 <a name="l00162"></a>00162
195 <a name="l00163"></a>00163 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
196 <a name="l00164"></a>00164 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat2x4&lt;T&gt;::row_type</a> operator* (
197 <a name="l00165"></a>00165 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat2x4&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
198 <a name="l00166"></a>00166 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
199 <a name="l00167"></a>00167
200 <a name="l00168"></a>00168 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
201 <a name="l00169"></a>00169 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator* (
202 <a name="l00170"></a>00170 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
203 <a name="l00171"></a>00171 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
204 <a name="l00172"></a>00172
205 <a name="l00173"></a>00173 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
206 <a name="l00174"></a>00174 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator/ (
207 <a name="l00175"></a>00175 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
208 <a name="l00176"></a>00176 <span class="keyword">typename</span> tmat2x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
209 <a name="l00177"></a>00177
210 <a name="l00178"></a>00178 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
211 <a name="l00179"></a>00179 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> operator/ (
212 <a name="l00180"></a>00180 <span class="keyword">typename</span> tmat2x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
213 <a name="l00181"></a>00181 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
214 <a name="l00182"></a>00182
215 <a name="l00183"></a>00183 <span class="comment">// Unary constant operators</span>
216 <a name="l00184"></a>00184 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
217 <a name="l00185"></a>00185 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> operator- (
218 <a name="l00186"></a>00186 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
219 <a name="l00187"></a>00187
220 <a name="l00188"></a>00188 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
221 <a name="l00189"></a>00189 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
222 <a name="l00190"></a>00190 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
223 <a name="l00191"></a>00191 <span class="keywordtype">int</span>);
224 <a name="l00192"></a>00192
225 <a name="l00193"></a>00193 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
226 <a name="l00194"></a>00194 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
227 <a name="l00195"></a>00195 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
228 <a name="l00196"></a>00196 <span class="keywordtype">int</span>);
229 <a name="l00197"></a>00197
230 <a name="l00198"></a>00198 } <span class="comment">//namespace detail</span>
231 <a name="l00199"></a>00199
232 <a name="l00200"></a>00200 <span class="keyword">namespace </span>core{
233 <a name="l00201"></a>00201 <span class="keyword">namespace </span>type{
234 <a name="l00202"></a>00202 <span class="keyword">namespace </span>precision
235 <a name="l00203"></a>00203 {
236 <a name="l00207"></a><a class="code" href="a00156.html#af95b55f8954834b05b5463bc153deae5">00207</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;lowp_float&gt;</a> <a class="code" href="a00156.html#af95b55f8954834b05b5463bc153deae5" title="2 columns of 4 components matrix of low precision floating-point numbers.">lowp_mat2x4</a>;
237 <a name="l00211"></a><a class="code" href="a00156.html#abbec32a495b527df1796bb46f8cce516">00211</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;mediump_float&gt;</a> <a class="code" href="a00156.html#abbec32a495b527df1796bb46f8cce516" title="2 columns of 4 components matrix of medium precision floating-point numbers.">mediump_mat2x4</a>;
238 <a name="l00215"></a><a class="code" href="a00156.html#af8816ff880fbae96a59c543904333109">00215</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;highp_float&gt;</a> <a class="code" href="a00156.html#af8816ff880fbae96a59c543904333109" title="2 columns of 4 components matrix of high precision floating-point numbers.">highp_mat2x4</a>;
239 <a name="l00216"></a>00216 }<span class="comment">//namespace precision</span>
240 <a name="l00217"></a>00217 }<span class="comment">//namespace type</span>
241 <a name="l00218"></a>00218 }<span class="comment">//namespace core</span>
242 <a name="l00219"></a>00219 }<span class="comment">//namespace glm</span>
243 <a name="l00220"></a>00220
244 <a name="l00221"></a>00221 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
245 <a name="l00222"></a>00222 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat2x4.inl&quot;</span>
246 <a name="l00223"></a>00223 <span class="preprocessor">#endif</span>
247 <a name="l00224"></a>00224 <span class="preprocessor"></span>
248 <a name="l00225"></a>00225 <span class="preprocessor">#endif //glm_core_type_mat2x4</span>
241249 </pre></div></div>
242250 </div>
243251 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="preprocessor">#include &quot;type_mat.hpp&quot;</span>
5050 <a name="l00014"></a>00014
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm
52 <a name="l00016"></a>00016 {
53 <a name="l00017"></a>00017 <span class="keyword">namespace </span>test
54 <a name="l00018"></a>00018 {
55 <a name="l00019"></a>00019 <span class="keywordtype">void</span> main_mat3x2();
56 <a name="l00020"></a>00020 }<span class="comment">//namespace test</span>
57 <a name="l00021"></a>00021
58 <a name="l00022"></a>00022 <span class="keyword">namespace </span>detail
59 <a name="l00023"></a>00023 {
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
67 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
68 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
69 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
70 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
71 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
72 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
73 <a name="l00037"></a>00037
74 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
75 <a name="l00041"></a><a class="code" href="a00013.html">00041</a> <span class="keyword">struct </span><a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2</a>
76 <a name="l00042"></a>00042 {
77 <a name="l00043"></a>00043 <span class="keyword">enum</span> ctor{null};
78 <a name="l00044"></a>00044 <span class="keyword">typedef</span> T value_type;
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> std::size_t size_type;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a>;
81 <a name="l00047"></a>00047 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">row_type</a>;
82 <a name="l00048"></a>00048 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
83 <a name="l00049"></a>00049 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
84 <a name="l00050"></a>00050
85 <a name="l00051"></a>00051 <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">type</a>;
86 <a name="l00052"></a>00052 <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">transpose_type</a>;
87 <a name="l00053"></a>00053
88 <a name="l00054"></a>00054 <span class="keyword">private</span>:
89 <a name="l00055"></a>00055 <span class="comment">// Data</span>
90 <a name="l00056"></a>00056 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> value[3];
91 <a name="l00057"></a>00057
92 <a name="l00058"></a>00058 <span class="keyword">public</span>:
93 <a name="l00059"></a>00059 <span class="comment">// Constructors</span>
94 <a name="l00060"></a>00060 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2</a>();
95 <a name="l00061"></a>00061 GLM_FUNC_DECL tmat3x2(tmat3x2 <span class="keyword">const</span> &amp; m);
96 <a name="l00062"></a>00062
97 <a name="l00063"></a>00063 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(
98 <a name="l00064"></a>00064 ctor);
99 <a name="l00065"></a>00065 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(
100 <a name="l00066"></a>00066 value_type <span class="keyword">const</span> &amp; s);
101 <a name="l00067"></a>00067 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(
102 <a name="l00068"></a>00068 value_type <span class="keyword">const</span> &amp; x0, value_type <span class="keyword">const</span> &amp; y0,
103 <a name="l00069"></a>00069 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1,
104 <a name="l00070"></a>00070 value_type <span class="keyword">const</span> &amp; x2, value_type <span class="keyword">const</span> &amp; y2);
105 <a name="l00071"></a>00071 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(
106 <a name="l00072"></a>00072 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v0,
107 <a name="l00073"></a>00073 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1,
108 <a name="l00074"></a>00074 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v2);
109 <a name="l00075"></a>00075
110 <a name="l00076"></a>00076 <span class="comment">// Conversion</span>
111 <a name="l00077"></a>00077 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
112 <a name="l00078"></a>00078 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
113 <a name="l00079"></a>00079
114 <a name="l00080"></a>00080 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
115 <a name="l00081"></a>00081 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
116 <a name="l00082"></a>00082 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
117 <a name="l00083"></a>00083 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
118 <a name="l00084"></a>00084 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
119 <a name="l00085"></a>00085 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
120 <a name="l00086"></a>00086 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
121 <a name="l00087"></a>00087 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
122 <a name="l00088"></a>00088
123 <a name="l00089"></a>00089 <span class="comment">// Accesses</span>
124 <a name="l00090"></a>00090 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> &amp; operator[](size_type i);
125 <a name="l00091"></a>00091 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
126 <a name="l00092"></a>00092
127 <a name="l00093"></a>00093 <span class="comment">// Unary updatable operators</span>
128 <a name="l00094"></a>00094 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
129 <a name="l00095"></a>00095 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
130 <a name="l00096"></a>00096 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
131 <a name="l00097"></a>00097 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
132 <a name="l00098"></a>00098 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator+= (U <span class="keyword">const</span> &amp; s);
133 <a name="l00099"></a>00099 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
134 <a name="l00100"></a>00100 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator+= (<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
135 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
136 <a name="l00102"></a>00102 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator-= (U <span class="keyword">const</span> &amp; s);
137 <a name="l00103"></a>00103 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
138 <a name="l00104"></a>00104 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator-= (<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
139 <a name="l00105"></a>00105 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
140 <a name="l00106"></a>00106 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator*= (U <span class="keyword">const</span> &amp; s);
141 <a name="l00107"></a>00107 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
142 <a name="l00108"></a>00108 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator*= (<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
143 <a name="l00109"></a>00109 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
144 <a name="l00110"></a>00110 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator/= (U <span class="keyword">const</span> &amp; s);
145 <a name="l00111"></a>00111
146 <a name="l00112"></a>00112 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator++ ();
147 <a name="l00113"></a>00113 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator-- ();
148 <a name="l00114"></a>00114 };
149 <a name="l00115"></a>00115
150 <a name="l00116"></a>00116 <span class="comment">// Binary operators</span>
151 <a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
152 <a name="l00118"></a>00118 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> operator+ (
153 <a name="l00119"></a>00119 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
154 <a name="l00120"></a>00120 <span class="keyword">typename</span> tmat3x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
155 <a name="l00121"></a>00121
156 <a name="l00122"></a>00122 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
157 <a name="l00123"></a>00123 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> operator+ (
158 <a name="l00124"></a>00124 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
159 <a name="l00125"></a>00125 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
160 <a name="l00126"></a>00126
161 <a name="l00127"></a>00127 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
162 <a name="l00128"></a>00128 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> operator- (
163 <a name="l00129"></a>00129 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
164 <a name="l00130"></a>00130 <span class="keyword">typename</span> tmat3x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
165 <a name="l00131"></a>00131
166 <a name="l00132"></a>00132 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
167 <a name="l00133"></a>00133 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> operator- (
168 <a name="l00134"></a>00134 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
169 <a name="l00135"></a>00135 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
170 <a name="l00136"></a>00136
171 <a name="l00137"></a>00137 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
172 <a name="l00138"></a>00138 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> operator* (
173 <a name="l00139"></a>00139 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
174 <a name="l00140"></a>00140 <span class="keyword">typename</span> tmat3x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
175 <a name="l00141"></a>00141
176 <a name="l00142"></a>00142 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
177 <a name="l00143"></a>00143 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> operator* (
178 <a name="l00144"></a>00144 <span class="keyword">typename</span> tmat3x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
179 <a name="l00145"></a>00145 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
180 <a name="l00146"></a>00146
181 <a name="l00147"></a>00147 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
182 <a name="l00148"></a>00148 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat3x2&lt;T&gt;::col_type</a> operator* (
183 <a name="l00149"></a>00149 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
184 <a name="l00150"></a>00150 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x2&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
185 <a name="l00151"></a>00151
186 <a name="l00152"></a>00152 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
187 <a name="l00153"></a>00153 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x2&lt;T&gt;::row_type</a> operator* (
188 <a name="l00154"></a>00154 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat3x2&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
189 <a name="l00155"></a>00155 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
190 <a name="l00156"></a>00156
191 <a name="l00157"></a>00157 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
192 <a name="l00158"></a>00158 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator* (
193 <a name="l00159"></a>00159 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
194 <a name="l00160"></a>00160 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
195 <a name="l00161"></a>00161
196 <a name="l00162"></a>00162 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
197 <a name="l00163"></a>00163 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> operator/ (
198 <a name="l00164"></a>00164 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
199 <a name="l00165"></a>00165 <span class="keyword">typename</span> tmat3x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
200 <a name="l00166"></a>00166
201 <a name="l00167"></a>00167 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
202 <a name="l00168"></a>00168 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> operator/ (
203 <a name="l00169"></a>00169 <span class="keyword">typename</span> tmat3x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
204 <a name="l00170"></a>00170 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
205 <a name="l00171"></a>00171
206 <a name="l00172"></a>00172 <span class="comment">// Unary constant operators</span>
207 <a name="l00173"></a>00173 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
208 <a name="l00174"></a>00174 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> operator- (
209 <a name="l00175"></a>00175 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
210 <a name="l00176"></a>00176
211 <a name="l00177"></a>00177 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
212 <a name="l00178"></a>00178 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
213 <a name="l00179"></a>00179 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
214 <a name="l00180"></a>00180 <span class="keywordtype">int</span>);
215 <a name="l00181"></a>00181
216 <a name="l00182"></a>00182 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
217 <a name="l00183"></a>00183 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
218 <a name="l00184"></a>00184 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
219 <a name="l00185"></a>00185 <span class="keywordtype">int</span>);
220 <a name="l00186"></a>00186
221 <a name="l00187"></a>00187 } <span class="comment">//namespace detail</span>
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm{
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>detail
53 <a name="l00017"></a>00017 {
54 <a name="l00018"></a>00018 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
55 <a name="l00019"></a>00019 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
56 <a name="l00020"></a>00020 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
57 <a name="l00021"></a>00021 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
58 <a name="l00022"></a>00022 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
59 <a name="l00023"></a>00023 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
67 <a name="l00031"></a>00031
68 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00035"></a><a class="code" href="a00013.html">00035</a> <span class="keyword">struct </span><a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2</a>
70 <a name="l00036"></a>00036 {
71 <a name="l00037"></a>00037 <span class="keyword">enum</span> ctor{null};
72 <a name="l00038"></a>00038 <span class="keyword">typedef</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> value_type;
73 <a name="l00039"></a>00039 <span class="keyword">typedef</span> std::size_t size_type;
74 <a name="l00040"></a>00040 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a>;
75 <a name="l00041"></a>00041 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">row_type</a>;
76 <a name="l00042"></a>00042 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
77 <a name="l00043"></a>00043 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
78 <a name="l00044"></a>00044
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">type</a>;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">transpose_type</a>;
81 <a name="l00047"></a>00047
82 <a name="l00048"></a>00048 <span class="keyword">private</span>:
83 <a name="l00049"></a>00049 <span class="comment">// Data</span>
84 <a name="l00050"></a>00050 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> value[3];
85 <a name="l00051"></a>00051
86 <a name="l00052"></a>00052 <span class="keyword">public</span>:
87 <a name="l00053"></a>00053 <span class="comment">// Constructors</span>
88 <a name="l00054"></a>00054 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2</a>();
89 <a name="l00055"></a>00055 GLM_FUNC_DECL tmat3x2(tmat3x2 <span class="keyword">const</span> &amp; m);
90 <a name="l00056"></a>00056
91 <a name="l00057"></a>00057 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(
92 <a name="l00058"></a>00058 ctor);
93 <a name="l00059"></a>00059 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(
94 <a name="l00060"></a>00060 value_type <span class="keyword">const</span> &amp; s);
95 <a name="l00061"></a>00061 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(
96 <a name="l00062"></a>00062 value_type <span class="keyword">const</span> &amp; x0, value_type <span class="keyword">const</span> &amp; y0,
97 <a name="l00063"></a>00063 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1,
98 <a name="l00064"></a>00064 value_type <span class="keyword">const</span> &amp; x2, value_type <span class="keyword">const</span> &amp; y2);
99 <a name="l00065"></a>00065 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(
100 <a name="l00066"></a>00066 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v0,
101 <a name="l00067"></a>00067 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1,
102 <a name="l00068"></a>00068 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v2);
103 <a name="l00069"></a>00069
104 <a name="l00071"></a>00071 <span class="comment">// Conversions</span>
105 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
106 <a name="l00073"></a>00073 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(
107 <a name="l00074"></a>00074 U <span class="keyword">const</span> &amp; x);
108 <a name="l00075"></a>00075
109 <a name="l00076"></a>00076 <span class="keyword">template</span>
110 <a name="l00077"></a>00077 &lt;
111 <a name="l00078"></a>00078 <span class="keyword">typename</span> X1, <span class="keyword">typename</span> Y1,
112 <a name="l00079"></a>00079 <span class="keyword">typename</span> X2, <span class="keyword">typename</span> Y2,
113 <a name="l00080"></a>00080 <span class="keyword">typename</span> X3, <span class="keyword">typename</span> Y3
114 <a name="l00081"></a>00081 &gt;
115 <a name="l00082"></a>00082 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(
116 <a name="l00083"></a>00083 X1 <span class="keyword">const</span> &amp; x1, Y1 <span class="keyword">const</span> &amp; y1,
117 <a name="l00084"></a>00084 X2 <span class="keyword">const</span> &amp; x2, Y2 <span class="keyword">const</span> &amp; y2,
118 <a name="l00085"></a>00085 X3 <span class="keyword">const</span> &amp; x3, Y3 <span class="keyword">const</span> &amp; y3);
119 <a name="l00086"></a>00086
120 <a name="l00087"></a>00087 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> V1, <span class="keyword">typename</span> V2, <span class="keyword">typename</span> V3&gt;
121 <a name="l00088"></a>00088 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(
122 <a name="l00089"></a>00089 <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;V1&gt;</a> <span class="keyword">const</span> &amp; v1,
123 <a name="l00090"></a>00090 <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;V2&gt;</a> <span class="keyword">const</span> &amp; v2,
124 <a name="l00091"></a>00091 <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;V3&gt;</a> <span class="keyword">const</span> &amp; v3);
125 <a name="l00092"></a>00092
126 <a name="l00093"></a>00093 <span class="comment">// Matrix conversions</span>
127 <a name="l00094"></a>00094 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
128 <a name="l00095"></a>00095 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
129 <a name="l00096"></a>00096
130 <a name="l00097"></a>00097 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
131 <a name="l00098"></a>00098 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
132 <a name="l00099"></a>00099 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
133 <a name="l00100"></a>00100 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
134 <a name="l00101"></a>00101 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
135 <a name="l00102"></a>00102 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
136 <a name="l00103"></a>00103 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
137 <a name="l00104"></a>00104 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x2(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
138 <a name="l00105"></a>00105
139 <a name="l00106"></a>00106 <span class="comment">// Accesses</span>
140 <a name="l00107"></a>00107 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> &amp; operator[](size_type i);
141 <a name="l00108"></a>00108 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
142 <a name="l00109"></a>00109
143 <a name="l00110"></a>00110 <span class="comment">// Unary updatable operators</span>
144 <a name="l00111"></a>00111 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
145 <a name="l00112"></a>00112 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
146 <a name="l00113"></a>00113 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
147 <a name="l00114"></a>00114 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
148 <a name="l00115"></a>00115 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator+= (U <span class="keyword">const</span> &amp; s);
149 <a name="l00116"></a>00116 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
150 <a name="l00117"></a>00117 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator+= (<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
151 <a name="l00118"></a>00118 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
152 <a name="l00119"></a>00119 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator-= (U <span class="keyword">const</span> &amp; s);
153 <a name="l00120"></a>00120 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
154 <a name="l00121"></a>00121 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator-= (<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
155 <a name="l00122"></a>00122 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
156 <a name="l00123"></a>00123 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator*= (U <span class="keyword">const</span> &amp; s);
157 <a name="l00124"></a>00124 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
158 <a name="l00125"></a>00125 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator*= (<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
159 <a name="l00126"></a>00126 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
160 <a name="l00127"></a>00127 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator/= (U <span class="keyword">const</span> &amp; s);
161 <a name="l00128"></a>00128
162 <a name="l00129"></a>00129 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator++ ();
163 <a name="l00130"></a>00130 GLM_FUNC_DECL <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> &amp; operator-- ();
164 <a name="l00131"></a>00131 };
165 <a name="l00132"></a>00132
166 <a name="l00133"></a>00133 <span class="comment">// Binary operators</span>
167 <a name="l00134"></a>00134 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
168 <a name="l00135"></a>00135 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> operator+ (
169 <a name="l00136"></a>00136 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
170 <a name="l00137"></a>00137 <span class="keyword">typename</span> tmat3x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
171 <a name="l00138"></a>00138
172 <a name="l00139"></a>00139 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
173 <a name="l00140"></a>00140 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> operator+ (
174 <a name="l00141"></a>00141 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
175 <a name="l00142"></a>00142 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
176 <a name="l00143"></a>00143
177 <a name="l00144"></a>00144 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
178 <a name="l00145"></a>00145 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> operator- (
179 <a name="l00146"></a>00146 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
180 <a name="l00147"></a>00147 <span class="keyword">typename</span> tmat3x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
181 <a name="l00148"></a>00148
182 <a name="l00149"></a>00149 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
183 <a name="l00150"></a>00150 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> operator- (
184 <a name="l00151"></a>00151 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
185 <a name="l00152"></a>00152 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
186 <a name="l00153"></a>00153
187 <a name="l00154"></a>00154 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
188 <a name="l00155"></a>00155 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> operator* (
189 <a name="l00156"></a>00156 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
190 <a name="l00157"></a>00157 <span class="keyword">typename</span> tmat3x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
191 <a name="l00158"></a>00158
192 <a name="l00159"></a>00159 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
193 <a name="l00160"></a>00160 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> operator* (
194 <a name="l00161"></a>00161 <span class="keyword">typename</span> tmat3x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
195 <a name="l00162"></a>00162 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
196 <a name="l00163"></a>00163
197 <a name="l00164"></a>00164 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
198 <a name="l00165"></a>00165 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat3x2&lt;T&gt;::col_type</a> operator* (
199 <a name="l00166"></a>00166 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
200 <a name="l00167"></a>00167 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x2&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
201 <a name="l00168"></a>00168
202 <a name="l00169"></a>00169 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
203 <a name="l00170"></a>00170 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x2&lt;T&gt;::row_type</a> operator* (
204 <a name="l00171"></a>00171 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat3x2&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
205 <a name="l00172"></a>00172 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
206 <a name="l00173"></a>00173
207 <a name="l00174"></a>00174 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
208 <a name="l00175"></a>00175 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator* (
209 <a name="l00176"></a>00176 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
210 <a name="l00177"></a>00177 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
211 <a name="l00178"></a>00178
212 <a name="l00179"></a>00179 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
213 <a name="l00180"></a>00180 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> operator/ (
214 <a name="l00181"></a>00181 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
215 <a name="l00182"></a>00182 <span class="keyword">typename</span> tmat3x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
216 <a name="l00183"></a>00183
217 <a name="l00184"></a>00184 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
218 <a name="l00185"></a>00185 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> operator/ (
219 <a name="l00186"></a>00186 <span class="keyword">typename</span> tmat3x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
220 <a name="l00187"></a>00187 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
222221 <a name="l00188"></a>00188
223 <a name="l00189"></a>00189 <span class="keyword">namespace </span>core{
224 <a name="l00190"></a>00190 <span class="keyword">namespace </span>type{
225 <a name="l00191"></a>00191
226 <a name="l00192"></a>00192 <span class="keyword">namespace </span>precision
227 <a name="l00193"></a>00193 {
228 <a name="l00197"></a><a class="code" href="a00156.html#a745259412efbd5e07b1a4062190e3135">00197</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;lowp_float&gt;</a> <a class="code" href="a00156.html#a745259412efbd5e07b1a4062190e3135" title="3 columns of 2 components matrix of low precision floating-point numbers.">lowp_mat3x2</a>;
229 <a name="l00201"></a><a class="code" href="a00156.html#a08c1cebbdb2cdfa0a62b23981db1c059">00201</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;mediump_float&gt;</a> <a class="code" href="a00156.html#a08c1cebbdb2cdfa0a62b23981db1c059" title="3 columns of 2 components matrix of medium precision floating-point numbers.">mediump_mat3x2</a>;
230 <a name="l00205"></a><a class="code" href="a00156.html#ae5e017b25e88ff5c61f4538a2dd5647a">00205</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;highp_float&gt;</a> <a class="code" href="a00156.html#ae5e017b25e88ff5c61f4538a2dd5647a" title="3 columns of 2 components matrix of high precision floating-point numbers.">highp_mat3x2</a>;
231 <a name="l00206"></a>00206 }
232 <a name="l00207"></a>00207 <span class="comment">//namespace precision</span>
233 <a name="l00208"></a>00208
234 <a name="l00209"></a>00209 }<span class="comment">//namespace type</span>
235 <a name="l00210"></a>00210 }<span class="comment">//namespace core</span>
236 <a name="l00211"></a>00211 } <span class="comment">//namespace glm</span>
237 <a name="l00212"></a>00212
238 <a name="l00213"></a>00213 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
239 <a name="l00214"></a>00214 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat3x2.inl&quot;</span>
240 <a name="l00215"></a>00215 <span class="preprocessor">#endif</span>
241 <a name="l00216"></a>00216 <span class="preprocessor"></span>
242 <a name="l00217"></a>00217 <span class="preprocessor">#endif //glm_core_type_mat3x2</span>
222 <a name="l00189"></a>00189 <span class="comment">// Unary constant operators</span>
223 <a name="l00190"></a>00190 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
224 <a name="l00191"></a>00191 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> operator- (
225 <a name="l00192"></a>00192 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
226 <a name="l00193"></a>00193
227 <a name="l00194"></a>00194 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
228 <a name="l00195"></a>00195 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
229 <a name="l00196"></a>00196 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
230 <a name="l00197"></a>00197 <span class="keywordtype">int</span>);
231 <a name="l00198"></a>00198
232 <a name="l00199"></a>00199 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
233 <a name="l00200"></a>00200 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
234 <a name="l00201"></a>00201 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
235 <a name="l00202"></a>00202 <span class="keywordtype">int</span>);
236 <a name="l00203"></a>00203
237 <a name="l00204"></a>00204 } <span class="comment">//namespace detail</span>
238 <a name="l00205"></a>00205
239 <a name="l00206"></a>00206 <span class="keyword">namespace </span>core{
240 <a name="l00207"></a>00207 <span class="keyword">namespace </span>type{
241 <a name="l00208"></a>00208 <span class="keyword">namespace </span>precision
242 <a name="l00209"></a>00209 {
243 <a name="l00213"></a><a class="code" href="a00156.html#a745259412efbd5e07b1a4062190e3135">00213</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;lowp_float&gt;</a> <a class="code" href="a00156.html#a745259412efbd5e07b1a4062190e3135" title="3 columns of 2 components matrix of low precision floating-point numbers.">lowp_mat3x2</a>;
244 <a name="l00217"></a><a class="code" href="a00156.html#a08c1cebbdb2cdfa0a62b23981db1c059">00217</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;mediump_float&gt;</a> <a class="code" href="a00156.html#a08c1cebbdb2cdfa0a62b23981db1c059" title="3 columns of 2 components matrix of medium precision floating-point numbers.">mediump_mat3x2</a>;
245 <a name="l00221"></a><a class="code" href="a00156.html#ae5e017b25e88ff5c61f4538a2dd5647a">00221</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;highp_float&gt;</a> <a class="code" href="a00156.html#ae5e017b25e88ff5c61f4538a2dd5647a" title="3 columns of 2 components matrix of high precision floating-point numbers.">highp_mat3x2</a>;
246 <a name="l00222"></a>00222 }<span class="comment">//namespace precision</span>
247 <a name="l00223"></a>00223 }<span class="comment">//namespace type</span>
248 <a name="l00224"></a>00224 }<span class="comment">//namespace core</span>
249 <a name="l00225"></a>00225 }<span class="comment">//namespace glm</span>
250 <a name="l00226"></a>00226
251 <a name="l00227"></a>00227 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
252 <a name="l00228"></a>00228 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat3x2.inl&quot;</span>
253 <a name="l00229"></a>00229 <span class="preprocessor">#endif</span>
254 <a name="l00230"></a>00230 <span class="preprocessor"></span>
255 <a name="l00231"></a>00231 <span class="preprocessor">#endif //glm_core_type_mat3x2</span>
243256 </pre></div></div>
244257 </div>
245258 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="preprocessor">#include &quot;type_mat.hpp&quot;</span>
5050 <a name="l00014"></a>00014
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm
52 <a name="l00016"></a>00016 {
53 <a name="l00017"></a>00017 <span class="keyword">namespace </span>test
54 <a name="l00018"></a>00018 {
55 <a name="l00019"></a>00019 <span class="keywordtype">void</span> main_mat3x3();
56 <a name="l00020"></a>00020 }<span class="comment">//namespace test</span>
57 <a name="l00021"></a>00021
58 <a name="l00022"></a>00022 <span class="keyword">namespace </span>detail
59 <a name="l00023"></a>00023 {
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
67 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
68 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
69 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
70 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
71 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
72 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
73 <a name="l00037"></a>00037
74 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
75 <a name="l00041"></a><a class="code" href="a00014.html">00041</a> <span class="keyword">struct </span><a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3</a>
76 <a name="l00042"></a>00042 {
77 <a name="l00043"></a>00043 <span class="keyword">enum</span> ctor{null};
78 <a name="l00044"></a>00044 <span class="keyword">typedef</span> T value_type;
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> std::size_t size_type;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a>;
81 <a name="l00047"></a>00047 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">row_type</a>;
82 <a name="l00048"></a>00048 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
83 <a name="l00049"></a>00049 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
84 <a name="l00050"></a>00050
85 <a name="l00051"></a>00051 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">type</a>;
86 <a name="l00052"></a>00052 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">transpose_type</a>;
87 <a name="l00053"></a>00053
88 <a name="l00054"></a>00054 <span class="keyword">public</span>:
89 <a name="l00055"></a>00055 <span class="comment">// Implementation detail</span>
90 <a name="l00056"></a>00056 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> _inverse() <span class="keyword">const</span>;
91 <a name="l00057"></a>00057
92 <a name="l00058"></a>00058 <span class="keyword">private</span>:
93 <a name="l00059"></a>00059 <span class="comment">// Data</span>
94 <a name="l00060"></a>00060 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> value[3];
95 <a name="l00061"></a>00061
96 <a name="l00062"></a>00062 <span class="keyword">public</span>:
97 <a name="l00063"></a>00063 <span class="comment">// Constructors</span>
98 <a name="l00064"></a>00064 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3</a>();
99 <a name="l00065"></a>00065 GLM_FUNC_DECL tmat3x3(tmat3x3 <span class="keyword">const</span> &amp; m);
100 <a name="l00066"></a>00066
101 <a name="l00067"></a>00067 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(
102 <a name="l00068"></a>00068 ctor Null);
103 <a name="l00069"></a>00069 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(
104 <a name="l00070"></a>00070 value_type <span class="keyword">const</span> &amp; s);
105 <a name="l00071"></a>00071 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(
106 <a name="l00072"></a>00072 value_type <span class="keyword">const</span> &amp; x0, value_type <span class="keyword">const</span> &amp; y0, value_type <span class="keyword">const</span> &amp; z0,
107 <a name="l00073"></a>00073 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1, value_type <span class="keyword">const</span> &amp; z1,
108 <a name="l00074"></a>00074 value_type <span class="keyword">const</span> &amp; x2, value_type <span class="keyword">const</span> &amp; y2, value_type <span class="keyword">const</span> &amp; z2);
109 <a name="l00075"></a>00075 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(
110 <a name="l00076"></a>00076 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v0,
111 <a name="l00077"></a>00077 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1,
112 <a name="l00078"></a>00078 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v2);
113 <a name="l00079"></a>00079
114 <a name="l00080"></a>00080 <span class="comment">// Conversions</span>
115 <a name="l00081"></a>00081 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
116 <a name="l00082"></a>00082 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
117 <a name="l00083"></a>00083
118 <a name="l00084"></a>00084 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
119 <a name="l00085"></a>00085 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
120 <a name="l00086"></a>00086 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
121 <a name="l00087"></a>00087 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
122 <a name="l00088"></a>00088 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
123 <a name="l00089"></a>00089 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
124 <a name="l00090"></a>00090 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
125 <a name="l00091"></a>00091 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
126 <a name="l00092"></a>00092
127 <a name="l00093"></a>00093 <span class="comment">// Accesses</span>
128 <a name="l00094"></a>00094 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> &amp; operator[](size_type i);
129 <a name="l00095"></a>00095 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
130 <a name="l00096"></a>00096
131 <a name="l00097"></a>00097 <span class="comment">// Unary updatable operators</span>
132 <a name="l00098"></a>00098 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator= (<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
133 <a name="l00099"></a>00099 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
134 <a name="l00100"></a>00100 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator= (<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
135 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
136 <a name="l00102"></a>00102 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator+= (U <span class="keyword">const</span> &amp; s);
137 <a name="l00103"></a>00103 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
138 <a name="l00104"></a>00104 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator+= (<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
139 <a name="l00105"></a>00105 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
140 <a name="l00106"></a>00106 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator-= (U <span class="keyword">const</span> &amp; s);
141 <a name="l00107"></a>00107 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
142 <a name="l00108"></a>00108 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator-= (<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
143 <a name="l00109"></a>00109 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
144 <a name="l00110"></a>00110 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator*= (U <span class="keyword">const</span> &amp; s);
145 <a name="l00111"></a>00111 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
146 <a name="l00112"></a>00112 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator*= (<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
147 <a name="l00113"></a>00113 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
148 <a name="l00114"></a>00114 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator/= (U <span class="keyword">const</span> &amp; s);
149 <a name="l00115"></a>00115 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
150 <a name="l00116"></a>00116 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator/= (<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
151 <a name="l00117"></a>00117 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator++ ();
152 <a name="l00118"></a>00118 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator-- ();
153 <a name="l00119"></a>00119 };
154 <a name="l00120"></a>00120
155 <a name="l00121"></a>00121 <span class="comment">// Binary operators</span>
156 <a name="l00122"></a>00122 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
157 <a name="l00123"></a>00123 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator+ (
158 <a name="l00124"></a>00124 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
159 <a name="l00125"></a>00125 <span class="keyword">typename</span> tmat3x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
160 <a name="l00126"></a>00126
161 <a name="l00127"></a>00127 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
162 <a name="l00128"></a>00128 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator+ (
163 <a name="l00129"></a>00129 <span class="keyword">typename</span> tmat3x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
164 <a name="l00130"></a>00130 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
165 <a name="l00131"></a>00131
166 <a name="l00132"></a>00132 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
167 <a name="l00133"></a>00133 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator+ (
168 <a name="l00134"></a>00134 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
169 <a name="l00135"></a>00135 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
170 <a name="l00136"></a>00136
171 <a name="l00137"></a>00137 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
172 <a name="l00138"></a>00138 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator- (
173 <a name="l00139"></a>00139 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
174 <a name="l00140"></a>00140 <span class="keyword">typename</span> tmat3x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
175 <a name="l00141"></a>00141
176 <a name="l00142"></a>00142 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
177 <a name="l00143"></a>00143 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator- (
178 <a name="l00144"></a>00144 <span class="keyword">typename</span> tmat3x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
179 <a name="l00145"></a>00145 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
180 <a name="l00146"></a>00146
181 <a name="l00147"></a>00147 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
182 <a name="l00148"></a>00148 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator- (
183 <a name="l00149"></a>00149 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
184 <a name="l00150"></a>00150 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
185 <a name="l00151"></a>00151
186 <a name="l00152"></a>00152 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
187 <a name="l00153"></a>00153 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator* (
188 <a name="l00154"></a>00154 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
189 <a name="l00155"></a>00155 <span class="keyword">typename</span> tmat3x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
190 <a name="l00156"></a>00156
191 <a name="l00157"></a>00157 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
192 <a name="l00158"></a>00158 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator* (
193 <a name="l00159"></a>00159 <span class="keyword">typename</span> tmat3x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
194 <a name="l00160"></a>00160 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
195 <a name="l00161"></a>00161
196 <a name="l00162"></a>00162 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
197 <a name="l00163"></a>00163 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x3&lt;T&gt;::col_type</a> operator* (
198 <a name="l00164"></a>00164 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
199 <a name="l00165"></a>00165 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x3&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
200 <a name="l00166"></a>00166
201 <a name="l00167"></a>00167 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
202 <a name="l00168"></a>00168 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x3&lt;T&gt;::row_type</a> operator* (
203 <a name="l00169"></a>00169 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x3&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
204 <a name="l00170"></a>00170 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
205 <a name="l00171"></a>00171
206 <a name="l00172"></a>00172 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
207 <a name="l00173"></a>00173 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator* (
208 <a name="l00174"></a>00174 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
209 <a name="l00175"></a>00175 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
210 <a name="l00176"></a>00176
211 <a name="l00177"></a>00177 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
212 <a name="l00178"></a>00178 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator/ (
213 <a name="l00179"></a>00179 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
214 <a name="l00180"></a>00180 <span class="keyword">typename</span> tmat3x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
215 <a name="l00181"></a>00181
216 <a name="l00182"></a>00182 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
217 <a name="l00183"></a>00183 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator/ (
218 <a name="l00184"></a>00184 <span class="keyword">typename</span> tmat3x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
219 <a name="l00185"></a>00185 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
220 <a name="l00186"></a>00186
221 <a name="l00187"></a>00187 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
222 <a name="l00188"></a>00188 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x3&lt;T&gt;::col_type</a> operator/ (
223 <a name="l00189"></a>00189 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
224 <a name="l00190"></a>00190 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x3&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
225 <a name="l00191"></a>00191
226 <a name="l00192"></a>00192 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
227 <a name="l00193"></a>00193 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x3&lt;T&gt;::row_type</a> operator/ (
228 <a name="l00194"></a>00194 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x3&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
229 <a name="l00195"></a>00195 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
230 <a name="l00196"></a>00196
231 <a name="l00197"></a>00197 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
232 <a name="l00198"></a>00198 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator/ (
233 <a name="l00199"></a>00199 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
234 <a name="l00200"></a>00200 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
235 <a name="l00201"></a>00201
236 <a name="l00202"></a>00202 <span class="comment">// Unary constant operators</span>
237 <a name="l00203"></a>00203 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
238 <a name="l00204"></a>00204 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> operator- (
239 <a name="l00205"></a>00205 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
240 <a name="l00206"></a>00206
241 <a name="l00207"></a>00207 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
242 <a name="l00208"></a>00208 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
243 <a name="l00209"></a>00209 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
244 <a name="l00210"></a>00210 <span class="keywordtype">int</span>);
245 <a name="l00211"></a>00211
246 <a name="l00212"></a>00212 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
247 <a name="l00213"></a>00213 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
248 <a name="l00214"></a>00214 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
249 <a name="l00215"></a>00215 <span class="keywordtype">int</span>);
250 <a name="l00216"></a>00216
251 <a name="l00217"></a>00217 } <span class="comment">//namespace detail</span>
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm{
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>detail
53 <a name="l00017"></a>00017 {
54 <a name="l00018"></a>00018 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
55 <a name="l00019"></a>00019 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
56 <a name="l00020"></a>00020 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
57 <a name="l00021"></a>00021 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
58 <a name="l00022"></a>00022 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
59 <a name="l00023"></a>00023 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
67 <a name="l00031"></a>00031
68 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00035"></a><a class="code" href="a00014.html">00035</a> <span class="keyword">struct </span><a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3</a>
70 <a name="l00036"></a>00036 {
71 <a name="l00037"></a>00037 <span class="keyword">enum</span> ctor{null};
72 <a name="l00038"></a>00038 <span class="keyword">typedef</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> value_type;
73 <a name="l00039"></a>00039 <span class="keyword">typedef</span> std::size_t size_type;
74 <a name="l00040"></a>00040 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a>;
75 <a name="l00041"></a>00041 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">row_type</a>;
76 <a name="l00042"></a>00042 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
77 <a name="l00043"></a>00043 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
78 <a name="l00044"></a>00044
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">type</a>;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">transpose_type</a>;
81 <a name="l00047"></a>00047
82 <a name="l00048"></a>00048 <span class="keyword">public</span>:
83 <a name="l00049"></a>00049 <span class="comment">// Implementation detail</span>
84 <a name="l00050"></a>00050 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> _inverse() <span class="keyword">const</span>;
85 <a name="l00051"></a>00051
86 <a name="l00052"></a>00052 <span class="keyword">private</span>:
87 <a name="l00053"></a>00053 <span class="comment">// Data</span>
88 <a name="l00054"></a>00054 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> value[3];
89 <a name="l00055"></a>00055
90 <a name="l00056"></a>00056 <span class="keyword">public</span>:
91 <a name="l00057"></a>00057 <span class="comment">// Constructors</span>
92 <a name="l00058"></a>00058 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3</a>();
93 <a name="l00059"></a>00059 GLM_FUNC_DECL tmat3x3(tmat3x3 <span class="keyword">const</span> &amp; m);
94 <a name="l00060"></a>00060
95 <a name="l00061"></a>00061 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(
96 <a name="l00062"></a>00062 ctor Null);
97 <a name="l00063"></a>00063 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(
98 <a name="l00064"></a>00064 value_type <span class="keyword">const</span> &amp; s);
99 <a name="l00065"></a>00065 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(
100 <a name="l00066"></a>00066 value_type <span class="keyword">const</span> &amp; x0, value_type <span class="keyword">const</span> &amp; y0, value_type <span class="keyword">const</span> &amp; z0,
101 <a name="l00067"></a>00067 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1, value_type <span class="keyword">const</span> &amp; z1,
102 <a name="l00068"></a>00068 value_type <span class="keyword">const</span> &amp; x2, value_type <span class="keyword">const</span> &amp; y2, value_type <span class="keyword">const</span> &amp; z2);
103 <a name="l00069"></a>00069 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(
104 <a name="l00070"></a>00070 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v0,
105 <a name="l00071"></a>00071 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1,
106 <a name="l00072"></a>00072 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v2);
107 <a name="l00073"></a>00073
108 <a name="l00075"></a>00075 <span class="comment">// Conversions</span>
109 <a name="l00076"></a>00076 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
110 <a name="l00077"></a>00077 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(
111 <a name="l00078"></a>00078 U <span class="keyword">const</span> &amp; x);
112 <a name="l00079"></a>00079
113 <a name="l00080"></a>00080 <span class="keyword">template</span>
114 <a name="l00081"></a>00081 &lt;
115 <a name="l00082"></a>00082 <span class="keyword">typename</span> X1, <span class="keyword">typename</span> Y1, <span class="keyword">typename</span> Z1,
116 <a name="l00083"></a>00083 <span class="keyword">typename</span> X2, <span class="keyword">typename</span> Y2, <span class="keyword">typename</span> Z2,
117 <a name="l00084"></a>00084 <span class="keyword">typename</span> X3, <span class="keyword">typename</span> Y3, <span class="keyword">typename</span> Z3
118 <a name="l00085"></a>00085 &gt;
119 <a name="l00086"></a>00086 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(
120 <a name="l00087"></a>00087 X1 <span class="keyword">const</span> &amp; x1, Y1 <span class="keyword">const</span> &amp; y1, Z1 <span class="keyword">const</span> &amp; z1,
121 <a name="l00088"></a>00088 X2 <span class="keyword">const</span> &amp; x2, Y2 <span class="keyword">const</span> &amp; y2, Z2 <span class="keyword">const</span> &amp; z2,
122 <a name="l00089"></a>00089 X3 <span class="keyword">const</span> &amp; x3, Y3 <span class="keyword">const</span> &amp; y3, Z3 <span class="keyword">const</span> &amp; z3);
123 <a name="l00090"></a>00090
124 <a name="l00091"></a>00091 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> V1, <span class="keyword">typename</span> V2, <span class="keyword">typename</span> V3&gt;
125 <a name="l00092"></a>00092 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(
126 <a name="l00093"></a>00093 <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;V1&gt;</a> <span class="keyword">const</span> &amp; v1,
127 <a name="l00094"></a>00094 <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;V2&gt;</a> <span class="keyword">const</span> &amp; v2,
128 <a name="l00095"></a>00095 <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;V3&gt;</a> <span class="keyword">const</span> &amp; v3);
129 <a name="l00096"></a>00096
130 <a name="l00097"></a>00097 <span class="comment">// Matrix conversions</span>
131 <a name="l00098"></a>00098 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
132 <a name="l00099"></a>00099 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
133 <a name="l00100"></a>00100
134 <a name="l00101"></a>00101 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
135 <a name="l00102"></a>00102 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
136 <a name="l00103"></a>00103 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
137 <a name="l00104"></a>00104 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
138 <a name="l00105"></a>00105 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
139 <a name="l00106"></a>00106 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
140 <a name="l00107"></a>00107 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
141 <a name="l00108"></a>00108 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x3(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
142 <a name="l00109"></a>00109
143 <a name="l00110"></a>00110 <span class="comment">// Accesses</span>
144 <a name="l00111"></a>00111 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> &amp; operator[](size_type i);
145 <a name="l00112"></a>00112 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
146 <a name="l00113"></a>00113
147 <a name="l00114"></a>00114 <span class="comment">// Unary updatable operators</span>
148 <a name="l00115"></a>00115 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator= (<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
149 <a name="l00116"></a>00116 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
150 <a name="l00117"></a>00117 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator= (<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
151 <a name="l00118"></a>00118 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
152 <a name="l00119"></a>00119 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator+= (U <span class="keyword">const</span> &amp; s);
153 <a name="l00120"></a>00120 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
154 <a name="l00121"></a>00121 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator+= (<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
155 <a name="l00122"></a>00122 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
156 <a name="l00123"></a>00123 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator-= (U <span class="keyword">const</span> &amp; s);
157 <a name="l00124"></a>00124 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
158 <a name="l00125"></a>00125 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator-= (<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
159 <a name="l00126"></a>00126 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
160 <a name="l00127"></a>00127 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator*= (U <span class="keyword">const</span> &amp; s);
161 <a name="l00128"></a>00128 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
162 <a name="l00129"></a>00129 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator*= (<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
163 <a name="l00130"></a>00130 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
164 <a name="l00131"></a>00131 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator/= (U <span class="keyword">const</span> &amp; s);
165 <a name="l00132"></a>00132 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
166 <a name="l00133"></a>00133 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator/= (<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
167 <a name="l00134"></a>00134 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator++ ();
168 <a name="l00135"></a>00135 GLM_FUNC_DECL <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a>&amp; operator-- ();
169 <a name="l00136"></a>00136 };
170 <a name="l00137"></a>00137
171 <a name="l00138"></a>00138 <span class="comment">// Binary operators</span>
172 <a name="l00139"></a>00139 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
173 <a name="l00140"></a>00140 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator+ (
174 <a name="l00141"></a>00141 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
175 <a name="l00142"></a>00142 <span class="keyword">typename</span> tmat3x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
176 <a name="l00143"></a>00143
177 <a name="l00144"></a>00144 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
178 <a name="l00145"></a>00145 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator+ (
179 <a name="l00146"></a>00146 <span class="keyword">typename</span> tmat3x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
180 <a name="l00147"></a>00147 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
181 <a name="l00148"></a>00148
182 <a name="l00149"></a>00149 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
183 <a name="l00150"></a>00150 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator+ (
184 <a name="l00151"></a>00151 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
185 <a name="l00152"></a>00152 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
186 <a name="l00153"></a>00153
187 <a name="l00154"></a>00154 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
188 <a name="l00155"></a>00155 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator- (
189 <a name="l00156"></a>00156 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
190 <a name="l00157"></a>00157 <span class="keyword">typename</span> tmat3x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
191 <a name="l00158"></a>00158
192 <a name="l00159"></a>00159 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
193 <a name="l00160"></a>00160 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator- (
194 <a name="l00161"></a>00161 <span class="keyword">typename</span> tmat3x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
195 <a name="l00162"></a>00162 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
196 <a name="l00163"></a>00163
197 <a name="l00164"></a>00164 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
198 <a name="l00165"></a>00165 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator- (
199 <a name="l00166"></a>00166 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
200 <a name="l00167"></a>00167 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
201 <a name="l00168"></a>00168
202 <a name="l00169"></a>00169 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
203 <a name="l00170"></a>00170 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator* (
204 <a name="l00171"></a>00171 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
205 <a name="l00172"></a>00172 <span class="keyword">typename</span> tmat3x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
206 <a name="l00173"></a>00173
207 <a name="l00174"></a>00174 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
208 <a name="l00175"></a>00175 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator* (
209 <a name="l00176"></a>00176 <span class="keyword">typename</span> tmat3x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
210 <a name="l00177"></a>00177 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
211 <a name="l00178"></a>00178
212 <a name="l00179"></a>00179 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
213 <a name="l00180"></a>00180 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x3&lt;T&gt;::col_type</a> operator* (
214 <a name="l00181"></a>00181 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
215 <a name="l00182"></a>00182 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x3&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
216 <a name="l00183"></a>00183
217 <a name="l00184"></a>00184 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
218 <a name="l00185"></a>00185 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x3&lt;T&gt;::row_type</a> operator* (
219 <a name="l00186"></a>00186 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x3&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
220 <a name="l00187"></a>00187 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
221 <a name="l00188"></a>00188
222 <a name="l00189"></a>00189 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
223 <a name="l00190"></a>00190 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator* (
224 <a name="l00191"></a>00191 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
225 <a name="l00192"></a>00192 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
226 <a name="l00193"></a>00193
227 <a name="l00194"></a>00194 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
228 <a name="l00195"></a>00195 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator/ (
229 <a name="l00196"></a>00196 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
230 <a name="l00197"></a>00197 <span class="keyword">typename</span> tmat3x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
231 <a name="l00198"></a>00198
232 <a name="l00199"></a>00199 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
233 <a name="l00200"></a>00200 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator/ (
234 <a name="l00201"></a>00201 <span class="keyword">typename</span> tmat3x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
235 <a name="l00202"></a>00202 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
236 <a name="l00203"></a>00203
237 <a name="l00204"></a>00204 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
238 <a name="l00205"></a>00205 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x3&lt;T&gt;::col_type</a> operator/ (
239 <a name="l00206"></a>00206 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
240 <a name="l00207"></a>00207 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x3&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
241 <a name="l00208"></a>00208
242 <a name="l00209"></a>00209 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
243 <a name="l00210"></a>00210 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x3&lt;T&gt;::row_type</a> operator/ (
244 <a name="l00211"></a>00211 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x3&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
245 <a name="l00212"></a>00212 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
246 <a name="l00213"></a>00213
247 <a name="l00214"></a>00214 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
248 <a name="l00215"></a>00215 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator/ (
249 <a name="l00216"></a>00216 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
250 <a name="l00217"></a>00217 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
252251 <a name="l00218"></a>00218
253 <a name="l00219"></a>00219 <span class="keyword">namespace </span>core{
254 <a name="l00220"></a>00220 <span class="keyword">namespace </span>type{
255 <a name="l00221"></a>00221
256 <a name="l00222"></a>00222 <span class="keyword">namespace </span>precision
257 <a name="l00223"></a>00223 {
258 <a name="l00228"></a><a class="code" href="a00236.html#ga0bb652c1f4401b9b3359ae6b2bf13678">00228</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;lowp_float&gt;</a> <a class="code" href="a00236.html#ga0bb652c1f4401b9b3359ae6b2bf13678" title="3 columns of 3 components matrix of low precision floating-point numbers.">lowp_mat3x3</a>;
259 <a name="l00233"></a><a class="code" href="a00236.html#ga76c68d8cad333d1f5ba1b20a40415cda">00233</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;mediump_float&gt;</a> <a class="code" href="a00236.html#ga76c68d8cad333d1f5ba1b20a40415cda" title="3 columns of 3 components matrix of medium precision floating-point numbers.">mediump_mat3x3</a>;
260 <a name="l00238"></a><a class="code" href="a00236.html#ga20aa8e5c6061576079c10e86cd743c8d">00238</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;highp_float&gt;</a> <a class="code" href="a00236.html#ga20aa8e5c6061576079c10e86cd743c8d" title="3 columns of 3 components matrix of high precision floating-point numbers.">highp_mat3x3</a>;
261 <a name="l00239"></a>00239 }
262 <a name="l00240"></a>00240 <span class="comment">//namespace precision</span>
263 <a name="l00241"></a>00241
264 <a name="l00242"></a>00242 }<span class="comment">//namespace type</span>
265 <a name="l00243"></a>00243 }<span class="comment">//namespace core</span>
266 <a name="l00244"></a>00244 } <span class="comment">//namespace glm</span>
267 <a name="l00245"></a>00245
268 <a name="l00246"></a>00246 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
269 <a name="l00247"></a>00247 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat3x3.inl&quot;</span>
270 <a name="l00248"></a>00248 <span class="preprocessor">#endif</span>
271 <a name="l00249"></a>00249 <span class="preprocessor"></span>
272 <a name="l00250"></a>00250 <span class="preprocessor">#endif //glm_core_type_mat3x3</span>
252 <a name="l00219"></a>00219 <span class="comment">// Unary constant operators</span>
253 <a name="l00220"></a>00220 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
254 <a name="l00221"></a>00221 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> operator- (
255 <a name="l00222"></a>00222 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
256 <a name="l00223"></a>00223
257 <a name="l00224"></a>00224 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
258 <a name="l00225"></a>00225 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
259 <a name="l00226"></a>00226 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
260 <a name="l00227"></a>00227 <span class="keywordtype">int</span>);
261 <a name="l00228"></a>00228
262 <a name="l00229"></a>00229 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
263 <a name="l00230"></a>00230 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
264 <a name="l00231"></a>00231 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
265 <a name="l00232"></a>00232 <span class="keywordtype">int</span>);
266 <a name="l00233"></a>00233
267 <a name="l00234"></a>00234 } <span class="comment">//namespace detail</span>
268 <a name="l00235"></a>00235
269 <a name="l00236"></a>00236 <span class="keyword">namespace </span>core{
270 <a name="l00237"></a>00237 <span class="keyword">namespace </span>type{
271 <a name="l00238"></a>00238 <span class="keyword">namespace </span>precision
272 <a name="l00239"></a>00239 {
273 <a name="l00244"></a><a class="code" href="a00235.html#ga5bbef8a57946dd7a91c9e0260d9edfbf">00244</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;lowp_float&gt;</a> <a class="code" href="a00235.html#ga5bbef8a57946dd7a91c9e0260d9edfbf" title="3 columns of 3 components matrix of low precision floating-point numbers.">lowp_mat3</a>;
274 <a name="l00249"></a><a class="code" href="a00235.html#ga0957c911430959270e296b6abf1463c3">00249</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;mediump_float&gt;</a> <a class="code" href="a00235.html#ga0957c911430959270e296b6abf1463c3" title="3 columns of 3 components matrix of medium precision floating-point numbers.">mediump_mat3</a>;
275 <a name="l00254"></a><a class="code" href="a00235.html#ga95c93f032b4713aff2886a39f96822e1">00254</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;highp_float&gt;</a> <a class="code" href="a00235.html#ga95c93f032b4713aff2886a39f96822e1" title="3 columns of 3 components matrix of high precision floating-point numbers.">highp_mat3</a>;
276 <a name="l00255"></a>00255
277 <a name="l00260"></a><a class="code" href="a00235.html#ga0bb652c1f4401b9b3359ae6b2bf13678">00260</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;lowp_float&gt;</a> <a class="code" href="a00235.html#ga0bb652c1f4401b9b3359ae6b2bf13678" title="3 columns of 3 components matrix of low precision floating-point numbers.">lowp_mat3x3</a>;
278 <a name="l00261"></a>00261
279 <a name="l00266"></a><a class="code" href="a00235.html#ga76c68d8cad333d1f5ba1b20a40415cda">00266</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;mediump_float&gt;</a> <a class="code" href="a00235.html#ga76c68d8cad333d1f5ba1b20a40415cda" title="3 columns of 3 components matrix of medium precision floating-point numbers.">mediump_mat3x3</a>;
280 <a name="l00267"></a>00267
281 <a name="l00272"></a><a class="code" href="a00235.html#ga20aa8e5c6061576079c10e86cd743c8d">00272</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;highp_float&gt;</a> <a class="code" href="a00235.html#ga20aa8e5c6061576079c10e86cd743c8d" title="3 columns of 3 components matrix of high precision floating-point numbers.">highp_mat3x3</a>;
282 <a name="l00273"></a>00273
283 <a name="l00274"></a>00274 }<span class="comment">//namespace precision</span>
284 <a name="l00275"></a>00275 }<span class="comment">//namespace type</span>
285 <a name="l00276"></a>00276 }<span class="comment">//namespace core</span>
286 <a name="l00277"></a>00277 }<span class="comment">//namespace glm</span>
287 <a name="l00278"></a>00278
288 <a name="l00279"></a>00279 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
289 <a name="l00280"></a>00280 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat3x3.inl&quot;</span>
290 <a name="l00281"></a>00281 <span class="preprocessor">#endif</span>
291 <a name="l00282"></a>00282 <span class="preprocessor"></span>
292 <a name="l00283"></a>00283 <span class="preprocessor">#endif //glm_core_type_mat3x3</span>
273293 </pre></div></div>
274294 </div>
275295 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="preprocessor">#include &quot;type_mat.hpp&quot;</span>
5050 <a name="l00014"></a>00014
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm
52 <a name="l00016"></a>00016 {
53 <a name="l00017"></a>00017 <span class="keyword">namespace </span>test
54 <a name="l00018"></a>00018 {
55 <a name="l00019"></a>00019 <span class="keywordtype">void</span> main_mat3x4();
56 <a name="l00020"></a>00020 }<span class="comment">//namespace test</span>
57 <a name="l00021"></a>00021
58 <a name="l00022"></a>00022 <span class="keyword">namespace </span>detail
59 <a name="l00023"></a>00023 {
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
67 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
68 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
69 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
70 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
71 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
72 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
73 <a name="l00037"></a>00037
74 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
75 <a name="l00041"></a><a class="code" href="a00015.html">00041</a> <span class="keyword">struct </span><a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4</a>
76 <a name="l00042"></a>00042 {
77 <a name="l00043"></a>00043 <span class="keyword">enum</span> ctor{null};
78 <a name="l00044"></a>00044 <span class="keyword">typedef</span> T value_type;
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> std::size_t size_type;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a>;
81 <a name="l00047"></a>00047 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">row_type</a>;
82 <a name="l00048"></a>00048 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
83 <a name="l00049"></a>00049 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
84 <a name="l00050"></a>00050
85 <a name="l00051"></a>00051 <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">type</a>;
86 <a name="l00052"></a>00052 <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">transpose_type</a>;
87 <a name="l00053"></a>00053
88 <a name="l00054"></a>00054 <span class="keyword">private</span>:
89 <a name="l00055"></a>00055 <span class="comment">// Data </span>
90 <a name="l00056"></a>00056 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> value[3];
91 <a name="l00057"></a>00057
92 <a name="l00058"></a>00058 <span class="keyword">public</span>:
93 <a name="l00059"></a>00059 <span class="comment">// Constructors</span>
94 <a name="l00060"></a>00060 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4</a>();
95 <a name="l00061"></a>00061 GLM_FUNC_DECL tmat3x4(tmat3x4 <span class="keyword">const</span> &amp; m);
96 <a name="l00062"></a>00062
97 <a name="l00063"></a>00063 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(
98 <a name="l00064"></a>00064 ctor Null);
99 <a name="l00065"></a>00065 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(
100 <a name="l00066"></a>00066 value_type <span class="keyword">const</span> &amp; s);
101 <a name="l00067"></a>00067 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(
102 <a name="l00068"></a>00068 value_type <span class="keyword">const</span> &amp; x0, value_type <span class="keyword">const</span> &amp; y0, value_type <span class="keyword">const</span> &amp; z0, value_type <span class="keyword">const</span> &amp; w0,
103 <a name="l00069"></a>00069 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1, value_type <span class="keyword">const</span> &amp; z1, value_type <span class="keyword">const</span> &amp; w1,
104 <a name="l00070"></a>00070 value_type <span class="keyword">const</span> &amp; x2, value_type <span class="keyword">const</span> &amp; y2, value_type <span class="keyword">const</span> &amp; z2, value_type <span class="keyword">const</span> &amp; w2);
105 <a name="l00071"></a>00071 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(
106 <a name="l00072"></a>00072 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v0,
107 <a name="l00073"></a>00073 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1,
108 <a name="l00074"></a>00074 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v2);
109 <a name="l00075"></a>00075
110 <a name="l00076"></a>00076 <span class="comment">// Conversion</span>
111 <a name="l00077"></a>00077 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
112 <a name="l00078"></a>00078 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
113 <a name="l00079"></a>00079
114 <a name="l00080"></a>00080 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
115 <a name="l00081"></a>00081 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
116 <a name="l00082"></a>00082 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
117 <a name="l00083"></a>00083 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
118 <a name="l00084"></a>00084 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
119 <a name="l00085"></a>00085 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
120 <a name="l00086"></a>00086 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
121 <a name="l00087"></a>00087 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
122 <a name="l00088"></a>00088
123 <a name="l00089"></a>00089 <span class="comment">// Accesses</span>
124 <a name="l00090"></a>00090 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> &amp; operator[](size_type i);
125 <a name="l00091"></a>00091 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
126 <a name="l00092"></a>00092
127 <a name="l00093"></a>00093 <span class="comment">// Unary updatable operators</span>
128 <a name="l00094"></a>00094 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
129 <a name="l00095"></a>00095 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
130 <a name="l00096"></a>00096 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
131 <a name="l00097"></a>00097 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
132 <a name="l00098"></a>00098 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator+= (U <span class="keyword">const</span> &amp; s);
133 <a name="l00099"></a>00099 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
134 <a name="l00100"></a>00100 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator+= (<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
135 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
136 <a name="l00102"></a>00102 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator-= (U <span class="keyword">const</span> &amp; s);
137 <a name="l00103"></a>00103 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
138 <a name="l00104"></a>00104 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator-= (<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
139 <a name="l00105"></a>00105 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
140 <a name="l00106"></a>00106 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator*= (U <span class="keyword">const</span> &amp; s);
141 <a name="l00107"></a>00107 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
142 <a name="l00108"></a>00108 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator*= (<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
143 <a name="l00109"></a>00109 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
144 <a name="l00110"></a>00110 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator/= (U <span class="keyword">const</span> &amp; s);
145 <a name="l00111"></a>00111
146 <a name="l00112"></a>00112 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator++ ();
147 <a name="l00113"></a>00113 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator-- ();
148 <a name="l00114"></a>00114 };
149 <a name="l00115"></a>00115
150 <a name="l00116"></a>00116 <span class="comment">// Binary operators</span>
151 <a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
152 <a name="l00118"></a>00118 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> operator+ (
153 <a name="l00119"></a>00119 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
154 <a name="l00120"></a>00120 <span class="keyword">typename</span> tmat3x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
155 <a name="l00121"></a>00121
156 <a name="l00122"></a>00122 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
157 <a name="l00123"></a>00123 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> operator+ (
158 <a name="l00124"></a>00124 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
159 <a name="l00125"></a>00125 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
160 <a name="l00126"></a>00126
161 <a name="l00127"></a>00127 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
162 <a name="l00128"></a>00128 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> operator- (
163 <a name="l00129"></a>00129 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
164 <a name="l00130"></a>00130 <span class="keyword">typename</span> tmat3x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
165 <a name="l00131"></a>00131
166 <a name="l00132"></a>00132 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
167 <a name="l00133"></a>00133 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> operator- (
168 <a name="l00134"></a>00134 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
169 <a name="l00135"></a>00135 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
170 <a name="l00136"></a>00136
171 <a name="l00137"></a>00137 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
172 <a name="l00138"></a>00138 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> operator* (
173 <a name="l00139"></a>00139 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
174 <a name="l00140"></a>00140 <span class="keyword">typename</span> tmat3x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
175 <a name="l00141"></a>00141
176 <a name="l00142"></a>00142 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
177 <a name="l00143"></a>00143 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> operator* (
178 <a name="l00144"></a>00144 <span class="keyword">typename</span> tmat3x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
179 <a name="l00145"></a>00145 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
180 <a name="l00146"></a>00146
181 <a name="l00147"></a>00147 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
182 <a name="l00148"></a>00148 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat3x4&lt;T&gt;::col_type</a> operator* (
183 <a name="l00149"></a>00149 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
184 <a name="l00150"></a>00150 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x4&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
185 <a name="l00151"></a>00151
186 <a name="l00152"></a>00152 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
187 <a name="l00153"></a>00153 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x4&lt;T&gt;::row_type</a> operator* (
188 <a name="l00154"></a>00154 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat3x4&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
189 <a name="l00155"></a>00155 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
190 <a name="l00156"></a>00156
191 <a name="l00157"></a>00157 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
192 <a name="l00158"></a>00158 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator* (
193 <a name="l00159"></a>00159 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
194 <a name="l00160"></a>00160 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
195 <a name="l00161"></a>00161
196 <a name="l00162"></a>00162 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
197 <a name="l00163"></a>00163 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> operator/ (
198 <a name="l00164"></a>00164 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
199 <a name="l00165"></a>00165 <span class="keyword">typename</span> tmat3x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
200 <a name="l00166"></a>00166
201 <a name="l00167"></a>00167 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
202 <a name="l00168"></a>00168 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> operator/ (
203 <a name="l00169"></a>00169 <span class="keyword">typename</span> tmat3x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
204 <a name="l00170"></a>00170 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
205 <a name="l00171"></a>00171
206 <a name="l00172"></a>00172 <span class="comment">// Unary constant operators</span>
207 <a name="l00173"></a>00173 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
208 <a name="l00174"></a>00174 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> operator- (
209 <a name="l00175"></a>00175 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
210 <a name="l00176"></a>00176
211 <a name="l00177"></a>00177 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
212 <a name="l00178"></a>00178 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
213 <a name="l00179"></a>00179 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
214 <a name="l00180"></a>00180 <span class="keywordtype">int</span>);
215 <a name="l00181"></a>00181
216 <a name="l00182"></a>00182 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
217 <a name="l00183"></a>00183 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
218 <a name="l00184"></a>00184 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
219 <a name="l00185"></a>00185 <span class="keywordtype">int</span>);
220 <a name="l00186"></a>00186
221 <a name="l00187"></a>00187 } <span class="comment">//namespace detail</span>
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm{
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>detail
53 <a name="l00017"></a>00017 {
54 <a name="l00018"></a>00018 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
55 <a name="l00019"></a>00019 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
56 <a name="l00020"></a>00020 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
57 <a name="l00021"></a>00021 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
58 <a name="l00022"></a>00022 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
59 <a name="l00023"></a>00023 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
67 <a name="l00031"></a>00031
68 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00035"></a><a class="code" href="a00015.html">00035</a> <span class="keyword">struct </span><a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4</a>
70 <a name="l00036"></a>00036 {
71 <a name="l00037"></a>00037 <span class="keyword">enum</span> ctor{null};
72 <a name="l00038"></a>00038 <span class="keyword">typedef</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> value_type;
73 <a name="l00039"></a>00039 <span class="keyword">typedef</span> std::size_t size_type;
74 <a name="l00040"></a>00040 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a>;
75 <a name="l00041"></a>00041 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">row_type</a>;
76 <a name="l00042"></a>00042 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
77 <a name="l00043"></a>00043 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
78 <a name="l00044"></a>00044
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">type</a>;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">transpose_type</a>;
81 <a name="l00047"></a>00047
82 <a name="l00048"></a>00048 <span class="keyword">private</span>:
83 <a name="l00049"></a>00049 <span class="comment">// Data </span>
84 <a name="l00050"></a>00050 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> value[3];
85 <a name="l00051"></a>00051
86 <a name="l00052"></a>00052 <span class="keyword">public</span>:
87 <a name="l00053"></a>00053 <span class="comment">// Constructors</span>
88 <a name="l00054"></a>00054 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4</a>();
89 <a name="l00055"></a>00055 GLM_FUNC_DECL tmat3x4(tmat3x4 <span class="keyword">const</span> &amp; m);
90 <a name="l00056"></a>00056
91 <a name="l00057"></a>00057 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(
92 <a name="l00058"></a>00058 ctor Null);
93 <a name="l00059"></a>00059 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(
94 <a name="l00060"></a>00060 value_type <span class="keyword">const</span> &amp; s);
95 <a name="l00061"></a>00061 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(
96 <a name="l00062"></a>00062 value_type <span class="keyword">const</span> &amp; x0, value_type <span class="keyword">const</span> &amp; y0, value_type <span class="keyword">const</span> &amp; z0, value_type <span class="keyword">const</span> &amp; w0,
97 <a name="l00063"></a>00063 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1, value_type <span class="keyword">const</span> &amp; z1, value_type <span class="keyword">const</span> &amp; w1,
98 <a name="l00064"></a>00064 value_type <span class="keyword">const</span> &amp; x2, value_type <span class="keyword">const</span> &amp; y2, value_type <span class="keyword">const</span> &amp; z2, value_type <span class="keyword">const</span> &amp; w2);
99 <a name="l00065"></a>00065 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(
100 <a name="l00066"></a>00066 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v0,
101 <a name="l00067"></a>00067 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1,
102 <a name="l00068"></a>00068 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v2);
103 <a name="l00069"></a>00069
104 <a name="l00071"></a>00071 <span class="comment">// Conversions</span>
105 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
106 <a name="l00073"></a>00073 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(
107 <a name="l00074"></a>00074 U <span class="keyword">const</span> &amp; x);
108 <a name="l00075"></a>00075
109 <a name="l00076"></a>00076 <span class="keyword">template</span>
110 <a name="l00077"></a>00077 &lt;
111 <a name="l00078"></a>00078 <span class="keyword">typename</span> X1, <span class="keyword">typename</span> Y1, <span class="keyword">typename</span> Z1, <span class="keyword">typename</span> W1,
112 <a name="l00079"></a>00079 <span class="keyword">typename</span> X2, <span class="keyword">typename</span> Y2, <span class="keyword">typename</span> Z2, <span class="keyword">typename</span> W2,
113 <a name="l00080"></a>00080 <span class="keyword">typename</span> X3, <span class="keyword">typename</span> Y3, <span class="keyword">typename</span> Z3, <span class="keyword">typename</span> W3
114 <a name="l00081"></a>00081 &gt;
115 <a name="l00082"></a>00082 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(
116 <a name="l00083"></a>00083 X1 <span class="keyword">const</span> &amp; x1, Y1 <span class="keyword">const</span> &amp; y1, Z1 <span class="keyword">const</span> &amp; z1, W1 <span class="keyword">const</span> &amp; w1,
117 <a name="l00084"></a>00084 X2 <span class="keyword">const</span> &amp; x2, Y2 <span class="keyword">const</span> &amp; y2, Z2 <span class="keyword">const</span> &amp; z2, W2 <span class="keyword">const</span> &amp; w2,
118 <a name="l00085"></a>00085 X3 <span class="keyword">const</span> &amp; x3, Y3 <span class="keyword">const</span> &amp; y3, Z3 <span class="keyword">const</span> &amp; z3, W3 <span class="keyword">const</span> &amp; w3);
119 <a name="l00086"></a>00086
120 <a name="l00087"></a>00087 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> V1, <span class="keyword">typename</span> V2, <span class="keyword">typename</span> V3&gt;
121 <a name="l00088"></a>00088 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(
122 <a name="l00089"></a>00089 <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;V1&gt;</a> <span class="keyword">const</span> &amp; v1,
123 <a name="l00090"></a>00090 <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;V2&gt;</a> <span class="keyword">const</span> &amp; v2,
124 <a name="l00091"></a>00091 <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;V3&gt;</a> <span class="keyword">const</span> &amp; v3);
125 <a name="l00092"></a>00092
126 <a name="l00093"></a>00093 <span class="comment">// Matrix conversion</span>
127 <a name="l00094"></a>00094 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
128 <a name="l00095"></a>00095 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
129 <a name="l00096"></a>00096
130 <a name="l00097"></a>00097 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
131 <a name="l00098"></a>00098 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
132 <a name="l00099"></a>00099 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
133 <a name="l00100"></a>00100 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
134 <a name="l00101"></a>00101 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
135 <a name="l00102"></a>00102 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
136 <a name="l00103"></a>00103 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
137 <a name="l00104"></a>00104 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat3x4(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
138 <a name="l00105"></a>00105
139 <a name="l00106"></a>00106 <span class="comment">// Accesses</span>
140 <a name="l00107"></a>00107 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> &amp; operator[](size_type i);
141 <a name="l00108"></a>00108 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
142 <a name="l00109"></a>00109
143 <a name="l00110"></a>00110 <span class="comment">// Unary updatable operators</span>
144 <a name="l00111"></a>00111 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
145 <a name="l00112"></a>00112 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
146 <a name="l00113"></a>00113 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
147 <a name="l00114"></a>00114 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
148 <a name="l00115"></a>00115 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator+= (U <span class="keyword">const</span> &amp; s);
149 <a name="l00116"></a>00116 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
150 <a name="l00117"></a>00117 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator+= (<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
151 <a name="l00118"></a>00118 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
152 <a name="l00119"></a>00119 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator-= (U <span class="keyword">const</span> &amp; s);
153 <a name="l00120"></a>00120 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
154 <a name="l00121"></a>00121 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator-= (<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
155 <a name="l00122"></a>00122 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
156 <a name="l00123"></a>00123 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator*= (U <span class="keyword">const</span> &amp; s);
157 <a name="l00124"></a>00124 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
158 <a name="l00125"></a>00125 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator*= (<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
159 <a name="l00126"></a>00126 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
160 <a name="l00127"></a>00127 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator/= (U <span class="keyword">const</span> &amp; s);
161 <a name="l00128"></a>00128
162 <a name="l00129"></a>00129 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator++ ();
163 <a name="l00130"></a>00130 GLM_FUNC_DECL <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> &amp; operator-- ();
164 <a name="l00131"></a>00131 };
165 <a name="l00132"></a>00132
166 <a name="l00133"></a>00133 <span class="comment">// Binary operators</span>
167 <a name="l00134"></a>00134 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
168 <a name="l00135"></a>00135 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> operator+ (
169 <a name="l00136"></a>00136 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
170 <a name="l00137"></a>00137 <span class="keyword">typename</span> tmat3x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
171 <a name="l00138"></a>00138
172 <a name="l00139"></a>00139 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
173 <a name="l00140"></a>00140 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> operator+ (
174 <a name="l00141"></a>00141 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
175 <a name="l00142"></a>00142 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
176 <a name="l00143"></a>00143
177 <a name="l00144"></a>00144 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
178 <a name="l00145"></a>00145 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> operator- (
179 <a name="l00146"></a>00146 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
180 <a name="l00147"></a>00147 <span class="keyword">typename</span> tmat3x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
181 <a name="l00148"></a>00148
182 <a name="l00149"></a>00149 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
183 <a name="l00150"></a>00150 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> operator- (
184 <a name="l00151"></a>00151 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
185 <a name="l00152"></a>00152 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
186 <a name="l00153"></a>00153
187 <a name="l00154"></a>00154 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
188 <a name="l00155"></a>00155 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> operator* (
189 <a name="l00156"></a>00156 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
190 <a name="l00157"></a>00157 <span class="keyword">typename</span> tmat3x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
191 <a name="l00158"></a>00158
192 <a name="l00159"></a>00159 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
193 <a name="l00160"></a>00160 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> operator* (
194 <a name="l00161"></a>00161 <span class="keyword">typename</span> tmat3x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
195 <a name="l00162"></a>00162 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
196 <a name="l00163"></a>00163
197 <a name="l00164"></a>00164 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
198 <a name="l00165"></a>00165 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat3x4&lt;T&gt;::col_type</a> operator* (
199 <a name="l00166"></a>00166 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
200 <a name="l00167"></a>00167 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x4&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
201 <a name="l00168"></a>00168
202 <a name="l00169"></a>00169 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
203 <a name="l00170"></a>00170 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat3x4&lt;T&gt;::row_type</a> operator* (
204 <a name="l00171"></a>00171 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat3x4&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
205 <a name="l00172"></a>00172 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
206 <a name="l00173"></a>00173
207 <a name="l00174"></a>00174 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
208 <a name="l00175"></a>00175 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator* (
209 <a name="l00176"></a>00176 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
210 <a name="l00177"></a>00177 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
211 <a name="l00178"></a>00178
212 <a name="l00179"></a>00179 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
213 <a name="l00180"></a>00180 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> operator/ (
214 <a name="l00181"></a>00181 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
215 <a name="l00182"></a>00182 <span class="keyword">typename</span> tmat3x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
216 <a name="l00183"></a>00183
217 <a name="l00184"></a>00184 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
218 <a name="l00185"></a>00185 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> operator/ (
219 <a name="l00186"></a>00186 <span class="keyword">typename</span> tmat3x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
220 <a name="l00187"></a>00187 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
222221 <a name="l00188"></a>00188
223 <a name="l00189"></a>00189 <span class="keyword">namespace </span>core{
224 <a name="l00190"></a>00190 <span class="keyword">namespace </span>type{
225 <a name="l00191"></a>00191
226 <a name="l00192"></a>00192 <span class="keyword">namespace </span>precision
227 <a name="l00193"></a>00193 {
228 <a name="l00197"></a><a class="code" href="a00156.html#a2e7a430ab7df03b63b5c7b776f7675a1">00197</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;lowp_float&gt;</a> <a class="code" href="a00156.html#a2e7a430ab7df03b63b5c7b776f7675a1" title="3 columns of 4 components matrix of low precision floating-point numbers.">lowp_mat3x4</a>;
229 <a name="l00201"></a><a class="code" href="a00156.html#a167125bb484e539a3c56f7b7aa0409f8">00201</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;mediump_float&gt;</a> <a class="code" href="a00156.html#a167125bb484e539a3c56f7b7aa0409f8" title="3 columns of 4 components matrix of medium precision floating-point numbers.">mediump_mat3x4</a>;
230 <a name="l00205"></a><a class="code" href="a00156.html#a8efc769b3edb7a3f420d6344e2308c72">00205</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;highp_float&gt;</a> <a class="code" href="a00156.html#a8efc769b3edb7a3f420d6344e2308c72" title="3 columns of 4 components matrix of high precision floating-point numbers.">highp_mat3x4</a>;
231 <a name="l00206"></a>00206 }
232 <a name="l00207"></a>00207 <span class="comment">//namespace precision</span>
233 <a name="l00208"></a>00208
234 <a name="l00209"></a>00209 }<span class="comment">//namespace type</span>
235 <a name="l00210"></a>00210 }<span class="comment">//namespace core</span>
236 <a name="l00211"></a>00211 } <span class="comment">//namespace glm</span>
237 <a name="l00212"></a>00212
238 <a name="l00213"></a>00213 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
239 <a name="l00214"></a>00214 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat3x4.inl&quot;</span>
240 <a name="l00215"></a>00215 <span class="preprocessor">#endif</span>
241 <a name="l00216"></a>00216 <span class="preprocessor"></span>
242 <a name="l00217"></a>00217 <span class="preprocessor">#endif //glm_core_type_mat3x4</span>
222 <a name="l00189"></a>00189 <span class="comment">// Unary constant operators</span>
223 <a name="l00190"></a>00190 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
224 <a name="l00191"></a>00191 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> operator- (
225 <a name="l00192"></a>00192 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
226 <a name="l00193"></a>00193
227 <a name="l00194"></a>00194 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
228 <a name="l00195"></a>00195 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
229 <a name="l00196"></a>00196 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
230 <a name="l00197"></a>00197 <span class="keywordtype">int</span>);
231 <a name="l00198"></a>00198
232 <a name="l00199"></a>00199 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
233 <a name="l00200"></a>00200 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
234 <a name="l00201"></a>00201 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
235 <a name="l00202"></a>00202 <span class="keywordtype">int</span>);
236 <a name="l00203"></a>00203
237 <a name="l00204"></a>00204 }<span class="comment">//namespace detail</span>
238 <a name="l00205"></a>00205
239 <a name="l00206"></a>00206 <span class="keyword">namespace </span>core{
240 <a name="l00207"></a>00207 <span class="keyword">namespace </span>type{
241 <a name="l00208"></a>00208 <span class="keyword">namespace </span>precision
242 <a name="l00209"></a>00209 {
243 <a name="l00213"></a><a class="code" href="a00156.html#a2e7a430ab7df03b63b5c7b776f7675a1">00213</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;lowp_float&gt;</a> <a class="code" href="a00156.html#a2e7a430ab7df03b63b5c7b776f7675a1" title="3 columns of 4 components matrix of low precision floating-point numbers.">lowp_mat3x4</a>;
244 <a name="l00217"></a><a class="code" href="a00156.html#a167125bb484e539a3c56f7b7aa0409f8">00217</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;mediump_float&gt;</a> <a class="code" href="a00156.html#a167125bb484e539a3c56f7b7aa0409f8" title="3 columns of 4 components matrix of medium precision floating-point numbers.">mediump_mat3x4</a>;
245 <a name="l00221"></a><a class="code" href="a00156.html#a8efc769b3edb7a3f420d6344e2308c72">00221</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;highp_float&gt;</a> <a class="code" href="a00156.html#a8efc769b3edb7a3f420d6344e2308c72" title="3 columns of 4 components matrix of high precision floating-point numbers.">highp_mat3x4</a>;
246 <a name="l00222"></a>00222
247 <a name="l00223"></a>00223 }<span class="comment">//namespace precision</span>
248 <a name="l00224"></a>00224 }<span class="comment">//namespace type</span>
249 <a name="l00225"></a>00225 }<span class="comment">//namespace core</span>
250 <a name="l00226"></a>00226 }<span class="comment">//namespace glm</span>
251 <a name="l00227"></a>00227
252 <a name="l00228"></a>00228 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
253 <a name="l00229"></a>00229 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat3x4.inl&quot;</span>
254 <a name="l00230"></a>00230 <span class="preprocessor">#endif</span>
255 <a name="l00231"></a>00231 <span class="preprocessor"></span>
256 <a name="l00232"></a>00232 <span class="preprocessor">#endif //glm_core_type_mat3x4</span>
243257 </pre></div></div>
244258 </div>
245259 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="preprocessor">#include &quot;type_mat.hpp&quot;</span>
5050 <a name="l00014"></a>00014
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm
52 <a name="l00016"></a>00016 {
53 <a name="l00017"></a>00017 <span class="keyword">namespace </span>test
54 <a name="l00018"></a>00018 {
55 <a name="l00019"></a>00019 <span class="keywordtype">void</span> main_mat4x2();
56 <a name="l00020"></a>00020 }<span class="comment">//namespace test</span>
57 <a name="l00021"></a>00021
58 <a name="l00022"></a>00022 <span class="keyword">namespace </span>detail
59 <a name="l00023"></a>00023 {
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
67 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
68 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
69 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
70 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
71 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
72 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
73 <a name="l00037"></a>00037
74 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
75 <a name="l00041"></a><a class="code" href="a00016.html">00041</a> <span class="keyword">struct </span><a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2</a>
76 <a name="l00042"></a>00042 {
77 <a name="l00043"></a>00043 <span class="keyword">enum</span> ctor{null};
78 <a name="l00044"></a>00044 <span class="keyword">typedef</span> T value_type;
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> std::size_t size_type;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a>;
81 <a name="l00047"></a>00047 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">row_type</a>;
82 <a name="l00048"></a>00048 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
83 <a name="l00049"></a>00049 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
84 <a name="l00050"></a>00050
85 <a name="l00051"></a>00051 <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">type</a>;
86 <a name="l00052"></a>00052 <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">transpose_type</a>;
87 <a name="l00053"></a>00053
88 <a name="l00054"></a>00054 <span class="keyword">private</span>:
89 <a name="l00055"></a>00055 <span class="comment">// Data </span>
90 <a name="l00056"></a>00056 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> value[4];
91 <a name="l00057"></a>00057
92 <a name="l00058"></a>00058 <span class="keyword">public</span>:
93 <a name="l00059"></a>00059 <span class="comment">// Constructors</span>
94 <a name="l00060"></a>00060 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2</a>();
95 <a name="l00061"></a>00061 GLM_FUNC_DECL tmat4x2(tmat4x2 <span class="keyword">const</span> &amp; m);
96 <a name="l00062"></a>00062
97 <a name="l00063"></a>00063 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(
98 <a name="l00064"></a>00064 ctor Null);
99 <a name="l00065"></a>00065 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(
100 <a name="l00066"></a>00066 value_type <span class="keyword">const</span> &amp; x);
101 <a name="l00067"></a>00067 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(
102 <a name="l00068"></a>00068 value_type <span class="keyword">const</span> &amp; x0, value_type <span class="keyword">const</span> &amp; y0,
103 <a name="l00069"></a>00069 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1,
104 <a name="l00070"></a>00070 value_type <span class="keyword">const</span> &amp; x2, value_type <span class="keyword">const</span> &amp; y2,
105 <a name="l00071"></a>00071 value_type <span class="keyword">const</span> &amp; x3, value_type <span class="keyword">const</span> &amp; y3);
106 <a name="l00072"></a>00072 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(
107 <a name="l00073"></a>00073 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v0,
108 <a name="l00074"></a>00074 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1,
109 <a name="l00075"></a>00075 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v2,
110 <a name="l00076"></a>00076 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v3);
111 <a name="l00077"></a>00077
112 <a name="l00078"></a>00078 <span class="comment">// Conversions</span>
113 <a name="l00079"></a>00079 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
114 <a name="l00080"></a>00080 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
115 <a name="l00081"></a>00081
116 <a name="l00082"></a>00082 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
117 <a name="l00083"></a>00083 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
118 <a name="l00084"></a>00084 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
119 <a name="l00085"></a>00085 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
120 <a name="l00086"></a>00086 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
121 <a name="l00087"></a>00087 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
122 <a name="l00088"></a>00088 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
123 <a name="l00089"></a>00089 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
124 <a name="l00090"></a>00090
125 <a name="l00091"></a>00091 <span class="comment">// Accesses</span>
126 <a name="l00092"></a>00092 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> &amp; operator[](size_type i);
127 <a name="l00093"></a>00093 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
128 <a name="l00094"></a>00094
129 <a name="l00095"></a>00095 <span class="comment">// Unary updatable operators</span>
130 <a name="l00096"></a>00096 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator= (<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
131 <a name="l00097"></a>00097 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
132 <a name="l00098"></a>00098 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator= (<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
133 <a name="l00099"></a>00099 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
134 <a name="l00100"></a>00100 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator+= (U <span class="keyword">const</span> &amp; s);
135 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
136 <a name="l00102"></a>00102 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator+= (<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
137 <a name="l00103"></a>00103 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
138 <a name="l00104"></a>00104 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator-= (U <span class="keyword">const</span> &amp; s);
139 <a name="l00105"></a>00105 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
140 <a name="l00106"></a>00106 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator-= (<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
141 <a name="l00107"></a>00107 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
142 <a name="l00108"></a>00108 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator*= (U <span class="keyword">const</span> &amp; s);
143 <a name="l00109"></a>00109 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
144 <a name="l00110"></a>00110 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator*= (<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
145 <a name="l00111"></a>00111 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
146 <a name="l00112"></a>00112 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator/= (U <span class="keyword">const</span> &amp; s);
147 <a name="l00113"></a>00113
148 <a name="l00114"></a>00114 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator++ ();
149 <a name="l00115"></a>00115 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator-- ();
150 <a name="l00116"></a>00116 };
151 <a name="l00117"></a>00117
152 <a name="l00118"></a>00118 <span class="comment">// Binary operators</span>
153 <a name="l00119"></a>00119 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
154 <a name="l00120"></a>00120 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> operator+ (
155 <a name="l00121"></a>00121 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
156 <a name="l00122"></a>00122 <span class="keyword">typename</span> tmat4x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
157 <a name="l00123"></a>00123
158 <a name="l00124"></a>00124 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
159 <a name="l00125"></a>00125 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> operator+ (
160 <a name="l00126"></a>00126 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
161 <a name="l00127"></a>00127 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
162 <a name="l00128"></a>00128
163 <a name="l00129"></a>00129 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
164 <a name="l00130"></a>00130 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> operator- (
165 <a name="l00131"></a>00131 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
166 <a name="l00132"></a>00132 <span class="keyword">typename</span> tmat4x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm{
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>detail
53 <a name="l00017"></a>00017 {
54 <a name="l00018"></a>00018 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
55 <a name="l00019"></a>00019 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
56 <a name="l00020"></a>00020 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
57 <a name="l00021"></a>00021 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
58 <a name="l00022"></a>00022 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
59 <a name="l00023"></a>00023 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
67 <a name="l00031"></a>00031
68 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00035"></a><a class="code" href="a00016.html">00035</a> <span class="keyword">struct </span><a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2</a>
70 <a name="l00036"></a>00036 {
71 <a name="l00037"></a>00037 <span class="keyword">enum</span> ctor{null};
72 <a name="l00038"></a>00038 <span class="keyword">typedef</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> value_type;
73 <a name="l00039"></a>00039 <span class="keyword">typedef</span> std::size_t size_type;
74 <a name="l00040"></a>00040 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a>;
75 <a name="l00041"></a>00041 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">row_type</a>;
76 <a name="l00042"></a>00042 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
77 <a name="l00043"></a>00043 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
78 <a name="l00044"></a>00044
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">type</a>;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">transpose_type</a>;
81 <a name="l00047"></a>00047
82 <a name="l00048"></a>00048 <span class="keyword">private</span>:
83 <a name="l00049"></a>00049 <span class="comment">// Data </span>
84 <a name="l00050"></a>00050 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> value[4];
85 <a name="l00051"></a>00051
86 <a name="l00052"></a>00052 <span class="keyword">public</span>:
87 <a name="l00053"></a>00053 <span class="comment">// Constructors</span>
88 <a name="l00054"></a>00054 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2</a>();
89 <a name="l00055"></a>00055 GLM_FUNC_DECL tmat4x2(tmat4x2 <span class="keyword">const</span> &amp; m);
90 <a name="l00056"></a>00056
91 <a name="l00057"></a>00057 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(
92 <a name="l00058"></a>00058 ctor Null);
93 <a name="l00059"></a>00059 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(
94 <a name="l00060"></a>00060 value_type <span class="keyword">const</span> &amp; x);
95 <a name="l00061"></a>00061 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(
96 <a name="l00062"></a>00062 value_type <span class="keyword">const</span> &amp; x0, value_type <span class="keyword">const</span> &amp; y0,
97 <a name="l00063"></a>00063 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1,
98 <a name="l00064"></a>00064 value_type <span class="keyword">const</span> &amp; x2, value_type <span class="keyword">const</span> &amp; y2,
99 <a name="l00065"></a>00065 value_type <span class="keyword">const</span> &amp; x3, value_type <span class="keyword">const</span> &amp; y3);
100 <a name="l00066"></a>00066 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(
101 <a name="l00067"></a>00067 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v0,
102 <a name="l00068"></a>00068 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1,
103 <a name="l00069"></a>00069 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v2,
104 <a name="l00070"></a>00070 <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; v3);
105 <a name="l00071"></a>00071
106 <a name="l00073"></a>00073 <span class="comment">// Conversions</span>
107 <a name="l00074"></a>00074 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
108 <a name="l00075"></a>00075 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(
109 <a name="l00076"></a>00076 U <span class="keyword">const</span> &amp; x);
110 <a name="l00077"></a>00077
111 <a name="l00078"></a>00078 <span class="keyword">template</span>
112 <a name="l00079"></a>00079 &lt;
113 <a name="l00080"></a>00080 <span class="keyword">typename</span> X1, <span class="keyword">typename</span> Y1,
114 <a name="l00081"></a>00081 <span class="keyword">typename</span> X2, <span class="keyword">typename</span> Y2,
115 <a name="l00082"></a>00082 <span class="keyword">typename</span> X3, <span class="keyword">typename</span> Y3,
116 <a name="l00083"></a>00083 <span class="keyword">typename</span> X4, <span class="keyword">typename</span> Y4
117 <a name="l00084"></a>00084 &gt;
118 <a name="l00085"></a>00085 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(
119 <a name="l00086"></a>00086 X1 <span class="keyword">const</span> &amp; x1, Y1 <span class="keyword">const</span> &amp; y1,
120 <a name="l00087"></a>00087 X2 <span class="keyword">const</span> &amp; x2, Y2 <span class="keyword">const</span> &amp; y2,
121 <a name="l00088"></a>00088 X3 <span class="keyword">const</span> &amp; x3, Y3 <span class="keyword">const</span> &amp; y3,
122 <a name="l00089"></a>00089 X4 <span class="keyword">const</span> &amp; x4, Y4 <span class="keyword">const</span> &amp; y4);
123 <a name="l00090"></a>00090
124 <a name="l00091"></a>00091 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> V1, <span class="keyword">typename</span> V2, <span class="keyword">typename</span> V3, <span class="keyword">typename</span> V4&gt;
125 <a name="l00092"></a>00092 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(
126 <a name="l00093"></a>00093 <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;V1&gt;</a> <span class="keyword">const</span> &amp; v1,
127 <a name="l00094"></a>00094 <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;V2&gt;</a> <span class="keyword">const</span> &amp; v2,
128 <a name="l00095"></a>00095 <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;V3&gt;</a> <span class="keyword">const</span> &amp; v3,
129 <a name="l00096"></a>00096 <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;V4&gt;</a> <span class="keyword">const</span> &amp; v4);
130 <a name="l00097"></a>00097
131 <a name="l00098"></a>00098 <span class="comment">// Matrix conversions</span>
132 <a name="l00099"></a>00099 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
133 <a name="l00100"></a>00100 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
134 <a name="l00101"></a>00101
135 <a name="l00102"></a>00102 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
136 <a name="l00103"></a>00103 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
137 <a name="l00104"></a>00104 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
138 <a name="l00105"></a>00105 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
139 <a name="l00106"></a>00106 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
140 <a name="l00107"></a>00107 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
141 <a name="l00108"></a>00108 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
142 <a name="l00109"></a>00109 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x2(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
143 <a name="l00110"></a>00110
144 <a name="l00111"></a>00111 <span class="comment">// Accesses</span>
145 <a name="l00112"></a>00112 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> &amp; operator[](size_type i);
146 <a name="l00113"></a>00113 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
147 <a name="l00114"></a>00114
148 <a name="l00115"></a>00115 <span class="comment">// Unary updatable operators</span>
149 <a name="l00116"></a>00116 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator= (<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
150 <a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
151 <a name="l00118"></a>00118 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator= (<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
152 <a name="l00119"></a>00119 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
153 <a name="l00120"></a>00120 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator+= (U <span class="keyword">const</span> &amp; s);
154 <a name="l00121"></a>00121 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
155 <a name="l00122"></a>00122 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator+= (<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
156 <a name="l00123"></a>00123 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
157 <a name="l00124"></a>00124 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator-= (U <span class="keyword">const</span> &amp; s);
158 <a name="l00125"></a>00125 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
159 <a name="l00126"></a>00126 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator-= (<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
160 <a name="l00127"></a>00127 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
161 <a name="l00128"></a>00128 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator*= (U <span class="keyword">const</span> &amp; s);
162 <a name="l00129"></a>00129 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
163 <a name="l00130"></a>00130 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator*= (<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
164 <a name="l00131"></a>00131 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
165 <a name="l00132"></a>00132 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator/= (U <span class="keyword">const</span> &amp; s);
167166 <a name="l00133"></a>00133
168 <a name="l00134"></a>00134 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
169 <a name="l00135"></a>00135 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> operator- (
170 <a name="l00136"></a>00136 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
171 <a name="l00137"></a>00137 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
172 <a name="l00138"></a>00138
173 <a name="l00139"></a>00139 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
174 <a name="l00140"></a>00140 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> operator* (
175 <a name="l00141"></a>00141 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
176 <a name="l00142"></a>00142 <span class="keyword">typename</span> tmat4x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
177 <a name="l00143"></a>00143
178 <a name="l00144"></a>00144 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
179 <a name="l00145"></a>00145 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> operator* (
180 <a name="l00146"></a>00146 <span class="keyword">typename</span> tmat4x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
181 <a name="l00147"></a>00147 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
182 <a name="l00148"></a>00148
183 <a name="l00149"></a>00149 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
184 <a name="l00150"></a>00150 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat4x2&lt;T&gt;::col_type</a> operator* (
185 <a name="l00151"></a>00151 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
186 <a name="l00152"></a>00152 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x2&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
167 <a name="l00134"></a>00134 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator++ ();
168 <a name="l00135"></a>00135 GLM_FUNC_DECL <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a>&amp; operator-- ();
169 <a name="l00136"></a>00136 };
170 <a name="l00137"></a>00137
171 <a name="l00138"></a>00138 <span class="comment">// Binary operators</span>
172 <a name="l00139"></a>00139 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
173 <a name="l00140"></a>00140 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> operator+ (
174 <a name="l00141"></a>00141 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
175 <a name="l00142"></a>00142 <span class="keyword">typename</span> tmat4x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
176 <a name="l00143"></a>00143
177 <a name="l00144"></a>00144 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
178 <a name="l00145"></a>00145 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> operator+ (
179 <a name="l00146"></a>00146 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
180 <a name="l00147"></a>00147 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
181 <a name="l00148"></a>00148
182 <a name="l00149"></a>00149 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
183 <a name="l00150"></a>00150 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> operator- (
184 <a name="l00151"></a>00151 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
185 <a name="l00152"></a>00152 <span class="keyword">typename</span> tmat4x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
187186 <a name="l00153"></a>00153
188 <a name="l00154"></a>00154 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
189 <a name="l00155"></a>00155 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x2&lt;T&gt;::row_type</a> operator* (
190 <a name="l00156"></a>00156 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat4x2&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
191 <a name="l00157"></a>00157 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
187 <a name="l00154"></a>00154 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
188 <a name="l00155"></a>00155 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> operator- (
189 <a name="l00156"></a>00156 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
190 <a name="l00157"></a>00157 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
192191 <a name="l00158"></a>00158
193 <a name="l00159"></a>00159 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
194 <a name="l00160"></a>00160 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator* (
195 <a name="l00161"></a>00161 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
196 <a name="l00162"></a>00162 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
192 <a name="l00159"></a>00159 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
193 <a name="l00160"></a>00160 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> operator* (
194 <a name="l00161"></a>00161 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
195 <a name="l00162"></a>00162 <span class="keyword">typename</span> tmat4x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
197196 <a name="l00163"></a>00163
198 <a name="l00164"></a>00164 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
199 <a name="l00165"></a>00165 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> operator/ (
200 <a name="l00166"></a>00166 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
201 <a name="l00167"></a>00167 <span class="keyword">typename</span> tmat4x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
197 <a name="l00164"></a>00164 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
198 <a name="l00165"></a>00165 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> operator* (
199 <a name="l00166"></a>00166 <span class="keyword">typename</span> tmat4x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
200 <a name="l00167"></a>00167 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
202201 <a name="l00168"></a>00168
203 <a name="l00169"></a>00169 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
204 <a name="l00170"></a>00170 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> operator/ (
205 <a name="l00171"></a>00171 <span class="keyword">typename</span> tmat4x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
206 <a name="l00172"></a>00172 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
202 <a name="l00169"></a>00169 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
203 <a name="l00170"></a>00170 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat4x2&lt;T&gt;::col_type</a> operator* (
204 <a name="l00171"></a>00171 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
205 <a name="l00172"></a>00172 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x2&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
207206 <a name="l00173"></a>00173
208 <a name="l00174"></a>00174 <span class="comment">// Unary constant operators</span>
209 <a name="l00175"></a>00175 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
210 <a name="l00176"></a>00176 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> operator- (
211 <a name="l00177"></a>00177 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
207 <a name="l00174"></a>00174 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
208 <a name="l00175"></a>00175 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x2&lt;T&gt;::row_type</a> operator* (
209 <a name="l00176"></a>00176 <span class="keyword">typename</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tmat4x2&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
210 <a name="l00177"></a>00177 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
212211 <a name="l00178"></a>00178
213 <a name="l00179"></a>00179 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
214 <a name="l00180"></a>00180 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
215 <a name="l00181"></a>00181 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
216 <a name="l00182"></a>00182 <span class="keywordtype">int</span>);
212 <a name="l00179"></a>00179 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
213 <a name="l00180"></a>00180 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> operator* (
214 <a name="l00181"></a>00181 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
215 <a name="l00182"></a>00182 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
217216 <a name="l00183"></a>00183
218 <a name="l00184"></a>00184 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
219 <a name="l00185"></a>00185 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
220 <a name="l00186"></a>00186 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
221 <a name="l00187"></a>00187 <span class="keywordtype">int</span>);
217 <a name="l00184"></a>00184 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
218 <a name="l00185"></a>00185 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> operator/ (
219 <a name="l00186"></a>00186 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
220 <a name="l00187"></a>00187 <span class="keyword">typename</span> tmat4x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
222221 <a name="l00188"></a>00188
223 <a name="l00189"></a>00189 } <span class="comment">//namespace detail</span>
224 <a name="l00190"></a>00190
225 <a name="l00191"></a>00191 <span class="keyword">namespace </span>core{
226 <a name="l00192"></a>00192 <span class="keyword">namespace </span>type{
222 <a name="l00189"></a>00189 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
223 <a name="l00190"></a>00190 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> operator/ (
224 <a name="l00191"></a>00191 <span class="keyword">typename</span> tmat4x2&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
225 <a name="l00192"></a>00192 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
227226 <a name="l00193"></a>00193
228 <a name="l00194"></a>00194 <span class="keyword">namespace </span>precision
229 <a name="l00195"></a>00195 {
230 <a name="l00200"></a><a class="code" href="a00236.html#gac88de3260a910584e02b98f087a34502">00200</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;lowp_float&gt;</a> <a class="code" href="a00236.html#gac88de3260a910584e02b98f087a34502" title="4 columns of 2 components matrix of low precision floating-point numbers.">lowp_mat4x2</a>;
231 <a name="l00205"></a><a class="code" href="a00236.html#ga31b1d523c1dc83c0ef9cded942950666">00205</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;mediump_float&gt;</a> <a class="code" href="a00236.html#ga31b1d523c1dc83c0ef9cded942950666" title="4 columns of 2 components matrix of medium precision floating-point numbers.">mediump_mat4x2</a>;
232 <a name="l00210"></a><a class="code" href="a00236.html#ga3178de2c189bfdda4c73d6af8017f5d3">00210</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;highp_float&gt;</a> <a class="code" href="a00236.html#ga3178de2c189bfdda4c73d6af8017f5d3" title="4 columns of 2 components matrix of high precision floating-point numbers.">highp_mat4x2</a>;
233 <a name="l00211"></a>00211 }
234 <a name="l00212"></a>00212 <span class="comment">//namespace precision</span>
235 <a name="l00213"></a>00213
236 <a name="l00214"></a>00214 }<span class="comment">//namespace type</span>
237 <a name="l00215"></a>00215 }<span class="comment">//namespace core</span>
238 <a name="l00216"></a>00216 } <span class="comment">//namespace glm</span>
239 <a name="l00217"></a>00217
240 <a name="l00218"></a>00218 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
241 <a name="l00219"></a>00219 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat4x2.inl&quot;</span>
242 <a name="l00220"></a>00220 <span class="preprocessor">#endif</span>
243 <a name="l00221"></a>00221 <span class="preprocessor"></span>
244 <a name="l00222"></a>00222 <span class="preprocessor">#endif //glm_core_type_mat4x2</span>
227 <a name="l00194"></a>00194 <span class="comment">// Unary constant operators</span>
228 <a name="l00195"></a>00195 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
229 <a name="l00196"></a>00196 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> operator- (
230 <a name="l00197"></a>00197 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
231 <a name="l00198"></a>00198
232 <a name="l00199"></a>00199 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
233 <a name="l00200"></a>00200 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
234 <a name="l00201"></a>00201 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
235 <a name="l00202"></a>00202 <span class="keywordtype">int</span>);
236 <a name="l00203"></a>00203
237 <a name="l00204"></a>00204 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
238 <a name="l00205"></a>00205 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
239 <a name="l00206"></a>00206 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
240 <a name="l00207"></a>00207 <span class="keywordtype">int</span>);
241 <a name="l00208"></a>00208
242 <a name="l00209"></a>00209 } <span class="comment">//namespace detail</span>
243 <a name="l00210"></a>00210
244 <a name="l00211"></a>00211 <span class="keyword">namespace </span>core{
245 <a name="l00212"></a>00212 <span class="keyword">namespace </span>type{
246 <a name="l00213"></a>00213 <span class="keyword">namespace </span>precision
247 <a name="l00214"></a>00214 {
248 <a name="l00219"></a><a class="code" href="a00235.html#gac88de3260a910584e02b98f087a34502">00219</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;lowp_float&gt;</a> <a class="code" href="a00235.html#gac88de3260a910584e02b98f087a34502" title="4 columns of 2 components matrix of low precision floating-point numbers.">lowp_mat4x2</a>;
249 <a name="l00220"></a>00220
250 <a name="l00225"></a><a class="code" href="a00235.html#ga31b1d523c1dc83c0ef9cded942950666">00225</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;mediump_float&gt;</a> <a class="code" href="a00235.html#ga31b1d523c1dc83c0ef9cded942950666" title="4 columns of 2 components matrix of medium precision floating-point numbers.">mediump_mat4x2</a>;
251 <a name="l00226"></a>00226
252 <a name="l00231"></a><a class="code" href="a00235.html#ga3178de2c189bfdda4c73d6af8017f5d3">00231</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;highp_float&gt;</a> <a class="code" href="a00235.html#ga3178de2c189bfdda4c73d6af8017f5d3" title="4 columns of 2 components matrix of high precision floating-point numbers.">highp_mat4x2</a>;
253 <a name="l00232"></a>00232
254 <a name="l00233"></a>00233 }<span class="comment">//namespace precision</span>
255 <a name="l00234"></a>00234 }<span class="comment">//namespace type</span>
256 <a name="l00235"></a>00235 }<span class="comment">//namespace core</span>
257 <a name="l00236"></a>00236 }<span class="comment">//namespace glm</span>
258 <a name="l00237"></a>00237
259 <a name="l00238"></a>00238 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
260 <a name="l00239"></a>00239 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat4x2.inl&quot;</span>
261 <a name="l00240"></a>00240 <span class="preprocessor">#endif</span>
262 <a name="l00241"></a>00241 <span class="preprocessor"></span>
263 <a name="l00242"></a>00242 <span class="preprocessor">#endif //glm_core_type_mat4x2</span>
245264 </pre></div></div>
246265 </div>
247266 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="preprocessor">#include &quot;type_mat.hpp&quot;</span>
5050 <a name="l00014"></a>00014
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm
52 <a name="l00016"></a>00016 {
53 <a name="l00017"></a>00017 <span class="keyword">namespace </span>test
54 <a name="l00018"></a>00018 {
55 <a name="l00019"></a>00019 <span class="keywordtype">void</span> main_mat4x3();
56 <a name="l00020"></a>00020 }<span class="comment">//namespace test</span>
57 <a name="l00021"></a>00021
58 <a name="l00022"></a>00022 <span class="keyword">namespace </span>detail
59 <a name="l00023"></a>00023 {
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
67 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
68 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
69 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
70 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
71 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
72 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
73 <a name="l00037"></a>00037
74 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
75 <a name="l00041"></a><a class="code" href="a00017.html">00041</a> <span class="keyword">struct </span><a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3</a>
76 <a name="l00042"></a>00042 {
77 <a name="l00043"></a>00043 <span class="keyword">enum</span> ctor{null};
78 <a name="l00044"></a>00044 <span class="keyword">typedef</span> T value_type;
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> std::size_t size_type;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a>;
81 <a name="l00047"></a>00047 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">row_type</a>;
82 <a name="l00048"></a>00048 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
83 <a name="l00049"></a>00049 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
84 <a name="l00050"></a>00050
85 <a name="l00051"></a>00051 <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">type</a>;
86 <a name="l00052"></a>00052 <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">transpose_type</a>;
87 <a name="l00053"></a>00053
88 <a name="l00054"></a>00054 <span class="keyword">private</span>:
89 <a name="l00055"></a>00055 <span class="comment">// Data </span>
90 <a name="l00056"></a>00056 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> value[4];
91 <a name="l00057"></a>00057
92 <a name="l00058"></a>00058 <span class="keyword">public</span>:
93 <a name="l00059"></a>00059 <span class="comment">// Constructors</span>
94 <a name="l00060"></a>00060 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3</a>();
95 <a name="l00061"></a>00061 GLM_FUNC_DECL tmat4x3(tmat4x3 <span class="keyword">const</span> &amp; m);
96 <a name="l00062"></a>00062
97 <a name="l00063"></a>00063 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(
98 <a name="l00064"></a>00064 ctor Null);
99 <a name="l00065"></a>00065 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(
100 <a name="l00066"></a>00066 value_type <span class="keyword">const</span> &amp; x);
101 <a name="l00067"></a>00067 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(
102 <a name="l00068"></a>00068 value_type <span class="keyword">const</span> &amp; x0, value_type <span class="keyword">const</span> &amp; y0, value_type <span class="keyword">const</span> &amp; z0,
103 <a name="l00069"></a>00069 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1, value_type <span class="keyword">const</span> &amp; z1,
104 <a name="l00070"></a>00070 value_type <span class="keyword">const</span> &amp; x2, value_type <span class="keyword">const</span> &amp; y2, value_type <span class="keyword">const</span> &amp; z2,
105 <a name="l00071"></a>00071 value_type <span class="keyword">const</span> &amp; x3, value_type <span class="keyword">const</span> &amp; y3, value_type <span class="keyword">const</span> &amp; z3);
106 <a name="l00072"></a>00072 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(
107 <a name="l00073"></a>00073 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v0,
108 <a name="l00074"></a>00074 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1,
109 <a name="l00075"></a>00075 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v2,
110 <a name="l00076"></a>00076 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v3);
111 <a name="l00077"></a>00077
112 <a name="l00078"></a>00078 <span class="comment">// Conversion</span>
113 <a name="l00079"></a>00079 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
114 <a name="l00080"></a>00080 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
115 <a name="l00081"></a>00081
116 <a name="l00082"></a>00082 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
117 <a name="l00083"></a>00083 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
118 <a name="l00084"></a>00084 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
119 <a name="l00085"></a>00085 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
120 <a name="l00086"></a>00086 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
121 <a name="l00087"></a>00087 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
122 <a name="l00088"></a>00088 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
123 <a name="l00089"></a>00089 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
124 <a name="l00090"></a>00090
125 <a name="l00091"></a>00091 <span class="comment">// Accesses</span>
126 <a name="l00092"></a>00092 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> &amp; operator[](size_type i);
127 <a name="l00093"></a>00093 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
128 <a name="l00094"></a>00094
129 <a name="l00095"></a>00095 <span class="comment">// Unary updatable operators</span>
130 <a name="l00096"></a>00096 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
131 <a name="l00097"></a>00097 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
132 <a name="l00098"></a>00098 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
133 <a name="l00099"></a>00099 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
134 <a name="l00100"></a>00100 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator+= (U <span class="keyword">const</span> &amp; s);
135 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
136 <a name="l00102"></a>00102 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator+= (<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
137 <a name="l00103"></a>00103 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
138 <a name="l00104"></a>00104 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator-= (U <span class="keyword">const</span> &amp; s);
139 <a name="l00105"></a>00105 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
140 <a name="l00106"></a>00106 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator-= (<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
141 <a name="l00107"></a>00107 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
142 <a name="l00108"></a>00108 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator*= (U <span class="keyword">const</span> &amp; s);
143 <a name="l00109"></a>00109 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
144 <a name="l00110"></a>00110 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator*= (<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
145 <a name="l00111"></a>00111 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
146 <a name="l00112"></a>00112 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator/= (U <span class="keyword">const</span> &amp; s);
147 <a name="l00113"></a>00113
148 <a name="l00114"></a>00114 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator++ ();
149 <a name="l00115"></a>00115 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator-- ();
150 <a name="l00116"></a>00116 };
151 <a name="l00117"></a>00117
152 <a name="l00118"></a>00118 <span class="comment">// Binary operators</span>
153 <a name="l00119"></a>00119 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
154 <a name="l00120"></a>00120 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> operator+ (
155 <a name="l00121"></a>00121 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
156 <a name="l00122"></a>00122 <span class="keyword">typename</span> tmat4x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
157 <a name="l00123"></a>00123
158 <a name="l00124"></a>00124 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
159 <a name="l00125"></a>00125 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> operator+ (
160 <a name="l00126"></a>00126 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
161 <a name="l00127"></a>00127 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
162 <a name="l00128"></a>00128
163 <a name="l00129"></a>00129 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
164 <a name="l00130"></a>00130 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> operator- (
165 <a name="l00131"></a>00131 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
166 <a name="l00132"></a>00132 <span class="keyword">typename</span> tmat4x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
167 <a name="l00133"></a>00133
168 <a name="l00134"></a>00134 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
169 <a name="l00135"></a>00135 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> operator- (
170 <a name="l00136"></a>00136 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
171 <a name="l00137"></a>00137 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
172 <a name="l00138"></a>00138
173 <a name="l00139"></a>00139 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
174 <a name="l00140"></a>00140 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> operator* (
175 <a name="l00141"></a>00141 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
176 <a name="l00142"></a>00142 <span class="keyword">typename</span> tmat4x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
177 <a name="l00143"></a>00143
178 <a name="l00144"></a>00144 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
179 <a name="l00145"></a>00145 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> operator* (
180 <a name="l00146"></a>00146 <span class="keyword">typename</span> tmat4x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
181 <a name="l00147"></a>00147 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
182 <a name="l00148"></a>00148
183 <a name="l00149"></a>00149 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
184 <a name="l00150"></a>00150 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat4x3&lt;T&gt;::col_type</a> operator* (
185 <a name="l00151"></a>00151 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
186 <a name="l00152"></a>00152 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x3&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
187 <a name="l00153"></a>00153
188 <a name="l00154"></a>00154 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
189 <a name="l00155"></a>00155 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x3&lt;T&gt;::row_type</a> operator* (
190 <a name="l00156"></a>00156 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat4x3&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
191 <a name="l00157"></a>00157 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
192 <a name="l00158"></a>00158
193 <a name="l00159"></a>00159 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
194 <a name="l00160"></a>00160 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator* (
195 <a name="l00161"></a>00161 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
196 <a name="l00162"></a>00162 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
197 <a name="l00163"></a>00163
198 <a name="l00164"></a>00164 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
199 <a name="l00165"></a>00165 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> operator/ (
200 <a name="l00166"></a>00166 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
201 <a name="l00167"></a>00167 <span class="keyword">typename</span> tmat4x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
202 <a name="l00168"></a>00168
203 <a name="l00169"></a>00169 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
204 <a name="l00170"></a>00170 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> operator/ (
205 <a name="l00171"></a>00171 <span class="keyword">typename</span> tmat4x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
206 <a name="l00172"></a>00172 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
207 <a name="l00173"></a>00173
208 <a name="l00174"></a>00174 <span class="comment">// Unary constant operators</span>
209 <a name="l00175"></a>00175 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
210 <a name="l00176"></a>00176 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> operator- (
211 <a name="l00177"></a>00177 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
212 <a name="l00178"></a>00178
213 <a name="l00179"></a>00179 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
214 <a name="l00180"></a>00180 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
215 <a name="l00181"></a>00181 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
216 <a name="l00182"></a>00182 <span class="keywordtype">int</span>);
217 <a name="l00183"></a>00183
218 <a name="l00184"></a>00184 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
219 <a name="l00185"></a>00185 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
220 <a name="l00186"></a>00186 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
221 <a name="l00187"></a>00187 <span class="keywordtype">int</span>);
222 <a name="l00188"></a>00188
223 <a name="l00189"></a>00189 } <span class="comment">//namespace detail</span>
224 <a name="l00190"></a>00190
225 <a name="l00191"></a>00191 <span class="keyword">namespace </span>core{
226 <a name="l00192"></a>00192 <span class="keyword">namespace </span>type{
227 <a name="l00193"></a>00193
228 <a name="l00194"></a>00194 <span class="keyword">namespace </span>precision
229 <a name="l00195"></a>00195 {
230 <a name="l00200"></a><a class="code" href="a00236.html#ga0072cb659f9360a7bb2c3e6646609ad7">00200</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;lowp_float&gt;</a> <a class="code" href="a00236.html#ga0072cb659f9360a7bb2c3e6646609ad7" title="4 columns of 3 components matrix of low precision floating-point numbers.">lowp_mat4x3</a>;
231 <a name="l00205"></a><a class="code" href="a00236.html#ga236d4c1060c1ce9908d3de61b3d9334e">00205</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;mediump_float&gt;</a> <a class="code" href="a00236.html#ga236d4c1060c1ce9908d3de61b3d9334e" title="4 columns of 3 components matrix of medium precision floating-point numbers.">mediump_mat4x3</a>;
232 <a name="l00210"></a><a class="code" href="a00236.html#ga00d8bf8ebaab7d6647a3b7f73ae324af">00210</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;highp_float&gt;</a> <a class="code" href="a00236.html#ga00d8bf8ebaab7d6647a3b7f73ae324af" title="4 columns of 3 components matrix of high precision floating-point numbers.">highp_mat4x3</a>;
233 <a name="l00211"></a>00211 }
234 <a name="l00212"></a>00212 <span class="comment">//namespace precision</span>
235 <a name="l00213"></a>00213
236 <a name="l00214"></a>00214 }<span class="comment">//namespace type</span>
237 <a name="l00215"></a>00215 }<span class="comment">//namespace core</span>
238 <a name="l00216"></a>00216 } <span class="comment">//namespace glm</span>
239 <a name="l00217"></a>00217
240 <a name="l00218"></a>00218 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
241 <a name="l00219"></a>00219 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat4x3.inl&quot;</span>
242 <a name="l00220"></a>00220 <span class="preprocessor">#endif</span>
243 <a name="l00221"></a>00221 <span class="preprocessor"></span>
244 <a name="l00222"></a>00222 <span class="preprocessor">#endif//glm_core_type_mat4x3</span>
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm{
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>detail
53 <a name="l00017"></a>00017 {
54 <a name="l00018"></a>00018 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
55 <a name="l00019"></a>00019 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
56 <a name="l00020"></a>00020 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
57 <a name="l00021"></a>00021 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
58 <a name="l00022"></a>00022 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
59 <a name="l00023"></a>00023 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
67 <a name="l00031"></a>00031
68 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00035"></a><a class="code" href="a00017.html">00035</a> <span class="keyword">struct </span><a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3</a>
70 <a name="l00036"></a>00036 {
71 <a name="l00037"></a>00037 <span class="keyword">enum</span> ctor{null};
72 <a name="l00038"></a>00038 <span class="keyword">typedef</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> value_type;
73 <a name="l00039"></a>00039 <span class="keyword">typedef</span> std::size_t size_type;
74 <a name="l00040"></a>00040 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a>;
75 <a name="l00041"></a>00041 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">row_type</a>;
76 <a name="l00042"></a>00042 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
77 <a name="l00043"></a>00043 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
78 <a name="l00044"></a>00044
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">type</a>;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">transpose_type</a>;
81 <a name="l00047"></a>00047
82 <a name="l00048"></a>00048 <span class="keyword">private</span>:
83 <a name="l00049"></a>00049 <span class="comment">// Data </span>
84 <a name="l00050"></a>00050 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> value[4];
85 <a name="l00051"></a>00051
86 <a name="l00052"></a>00052 <span class="keyword">public</span>:
87 <a name="l00053"></a>00053 <span class="comment">// Constructors</span>
88 <a name="l00054"></a>00054 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3</a>();
89 <a name="l00055"></a>00055 GLM_FUNC_DECL tmat4x3(tmat4x3 <span class="keyword">const</span> &amp; m);
90 <a name="l00056"></a>00056
91 <a name="l00057"></a>00057 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(
92 <a name="l00058"></a>00058 ctor Null);
93 <a name="l00059"></a>00059 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(
94 <a name="l00060"></a>00060 value_type <span class="keyword">const</span> &amp; x);
95 <a name="l00061"></a>00061 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(
96 <a name="l00062"></a>00062 value_type <span class="keyword">const</span> &amp; x0, value_type <span class="keyword">const</span> &amp; y0, value_type <span class="keyword">const</span> &amp; z0,
97 <a name="l00063"></a>00063 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1, value_type <span class="keyword">const</span> &amp; z1,
98 <a name="l00064"></a>00064 value_type <span class="keyword">const</span> &amp; x2, value_type <span class="keyword">const</span> &amp; y2, value_type <span class="keyword">const</span> &amp; z2,
99 <a name="l00065"></a>00065 value_type <span class="keyword">const</span> &amp; x3, value_type <span class="keyword">const</span> &amp; y3, value_type <span class="keyword">const</span> &amp; z3);
100 <a name="l00066"></a>00066 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(
101 <a name="l00067"></a>00067 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v0,
102 <a name="l00068"></a>00068 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1,
103 <a name="l00069"></a>00069 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v2,
104 <a name="l00070"></a>00070 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; v3);
105 <a name="l00071"></a>00071
106 <a name="l00073"></a>00073 <span class="comment">// Conversions</span>
107 <a name="l00074"></a>00074 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
108 <a name="l00075"></a>00075 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(
109 <a name="l00076"></a>00076 U <span class="keyword">const</span> &amp; x);
110 <a name="l00077"></a>00077
111 <a name="l00078"></a>00078 <span class="keyword">template</span> &lt;
112 <a name="l00079"></a>00079 <span class="keyword">typename</span> X1, <span class="keyword">typename</span> Y1, <span class="keyword">typename</span> Z1,
113 <a name="l00080"></a>00080 <span class="keyword">typename</span> X2, <span class="keyword">typename</span> Y2, <span class="keyword">typename</span> Z2,
114 <a name="l00081"></a>00081 <span class="keyword">typename</span> X3, <span class="keyword">typename</span> Y3, <span class="keyword">typename</span> Z3,
115 <a name="l00082"></a>00082 <span class="keyword">typename</span> X4, <span class="keyword">typename</span> Y4, <span class="keyword">typename</span> Z4&gt;
116 <a name="l00083"></a>00083 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(
117 <a name="l00084"></a>00084 X1 <span class="keyword">const</span> &amp; x1, Y1 <span class="keyword">const</span> &amp; y1, Z1 <span class="keyword">const</span> &amp; z1,
118 <a name="l00085"></a>00085 X2 <span class="keyword">const</span> &amp; x2, Y2 <span class="keyword">const</span> &amp; y2, Z2 <span class="keyword">const</span> &amp; z2,
119 <a name="l00086"></a>00086 X3 <span class="keyword">const</span> &amp; x3, Y3 <span class="keyword">const</span> &amp; y3, Z3 <span class="keyword">const</span> &amp; z3,
120 <a name="l00087"></a>00087 X4 <span class="keyword">const</span> &amp; x4, Y4 <span class="keyword">const</span> &amp; y4, Z4 <span class="keyword">const</span> &amp; z4);
121 <a name="l00088"></a>00088
122 <a name="l00089"></a>00089 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> V1, <span class="keyword">typename</span> V2, <span class="keyword">typename</span> V3, <span class="keyword">typename</span> V4&gt;
123 <a name="l00090"></a>00090 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(
124 <a name="l00091"></a>00091 <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;V1&gt;</a> <span class="keyword">const</span> &amp; v1,
125 <a name="l00092"></a>00092 <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;V2&gt;</a> <span class="keyword">const</span> &amp; v2,
126 <a name="l00093"></a>00093 <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;V3&gt;</a> <span class="keyword">const</span> &amp; v3,
127 <a name="l00094"></a>00094 <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;V4&gt;</a> <span class="keyword">const</span> &amp; v4);
128 <a name="l00095"></a>00095
129 <a name="l00096"></a>00096 <span class="comment">// Matrix conversions</span>
130 <a name="l00097"></a>00097 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
131 <a name="l00098"></a>00098 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
132 <a name="l00099"></a>00099
133 <a name="l00100"></a>00100 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
134 <a name="l00101"></a>00101 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
135 <a name="l00102"></a>00102 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
136 <a name="l00103"></a>00103 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
137 <a name="l00104"></a>00104 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
138 <a name="l00105"></a>00105 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
139 <a name="l00106"></a>00106 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
140 <a name="l00107"></a>00107 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x3(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
141 <a name="l00108"></a>00108
142 <a name="l00109"></a>00109 <span class="comment">// Accesses</span>
143 <a name="l00110"></a>00110 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> &amp; operator[](size_type i);
144 <a name="l00111"></a>00111 <a class="code" href="a00021.html" title="Basic 3D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
145 <a name="l00112"></a>00112
146 <a name="l00113"></a>00113 <span class="comment">// Unary updatable operators</span>
147 <a name="l00114"></a>00114 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
148 <a name="l00115"></a>00115 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
149 <a name="l00116"></a>00116 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
150 <a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
151 <a name="l00118"></a>00118 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator+= (U <span class="keyword">const</span> &amp; s);
152 <a name="l00119"></a>00119 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
153 <a name="l00120"></a>00120 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator+= (<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
154 <a name="l00121"></a>00121 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
155 <a name="l00122"></a>00122 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator-= (U <span class="keyword">const</span> &amp; s);
156 <a name="l00123"></a>00123 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
157 <a name="l00124"></a>00124 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator-= (<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
158 <a name="l00125"></a>00125 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
159 <a name="l00126"></a>00126 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator*= (U <span class="keyword">const</span> &amp; s);
160 <a name="l00127"></a>00127 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
161 <a name="l00128"></a>00128 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator*= (<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
162 <a name="l00129"></a>00129 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
163 <a name="l00130"></a>00130 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator/= (U <span class="keyword">const</span> &amp; s);
164 <a name="l00131"></a>00131
165 <a name="l00132"></a>00132 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator++ ();
166 <a name="l00133"></a>00133 GLM_FUNC_DECL <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> &amp; operator-- ();
167 <a name="l00134"></a>00134 };
168 <a name="l00135"></a>00135
169 <a name="l00136"></a>00136 <span class="comment">// Binary operators</span>
170 <a name="l00137"></a>00137 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
171 <a name="l00138"></a>00138 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> operator+ (
172 <a name="l00139"></a>00139 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
173 <a name="l00140"></a>00140 <span class="keyword">typename</span> tmat4x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
174 <a name="l00141"></a>00141
175 <a name="l00142"></a>00142 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
176 <a name="l00143"></a>00143 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> operator+ (
177 <a name="l00144"></a>00144 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
178 <a name="l00145"></a>00145 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
179 <a name="l00146"></a>00146
180 <a name="l00147"></a>00147 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
181 <a name="l00148"></a>00148 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> operator- (
182 <a name="l00149"></a>00149 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
183 <a name="l00150"></a>00150 <span class="keyword">typename</span> tmat4x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
184 <a name="l00151"></a>00151
185 <a name="l00152"></a>00152 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
186 <a name="l00153"></a>00153 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> operator- (
187 <a name="l00154"></a>00154 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
188 <a name="l00155"></a>00155 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
189 <a name="l00156"></a>00156
190 <a name="l00157"></a>00157 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
191 <a name="l00158"></a>00158 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> operator* (
192 <a name="l00159"></a>00159 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
193 <a name="l00160"></a>00160 <span class="keyword">typename</span> tmat4x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
194 <a name="l00161"></a>00161
195 <a name="l00162"></a>00162 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
196 <a name="l00163"></a>00163 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> operator* (
197 <a name="l00164"></a>00164 <span class="keyword">typename</span> tmat4x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
198 <a name="l00165"></a>00165 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
199 <a name="l00166"></a>00166
200 <a name="l00167"></a>00167 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
201 <a name="l00168"></a>00168 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat4x3&lt;T&gt;::col_type</a> operator* (
202 <a name="l00169"></a>00169 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
203 <a name="l00170"></a>00170 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x3&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
204 <a name="l00171"></a>00171
205 <a name="l00172"></a>00172 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
206 <a name="l00173"></a>00173 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x3&lt;T&gt;::row_type</a> operator* (
207 <a name="l00174"></a>00174 <span class="keyword">typename</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tmat4x3&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
208 <a name="l00175"></a>00175 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
209 <a name="l00176"></a>00176
210 <a name="l00177"></a>00177 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
211 <a name="l00178"></a>00178 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> operator* (
212 <a name="l00179"></a>00179 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
213 <a name="l00180"></a>00180 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
214 <a name="l00181"></a>00181
215 <a name="l00182"></a>00182 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
216 <a name="l00183"></a>00183 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> operator/ (
217 <a name="l00184"></a>00184 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
218 <a name="l00185"></a>00185 <span class="keyword">typename</span> tmat4x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
219 <a name="l00186"></a>00186
220 <a name="l00187"></a>00187 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
221 <a name="l00188"></a>00188 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> operator/ (
222 <a name="l00189"></a>00189 <span class="keyword">typename</span> tmat4x3&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
223 <a name="l00190"></a>00190 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
224 <a name="l00191"></a>00191
225 <a name="l00192"></a>00192 <span class="comment">// Unary constant operators</span>
226 <a name="l00193"></a>00193 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
227 <a name="l00194"></a>00194 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> operator- (
228 <a name="l00195"></a>00195 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
229 <a name="l00196"></a>00196
230 <a name="l00197"></a>00197 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
231 <a name="l00198"></a>00198 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
232 <a name="l00199"></a>00199 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
233 <a name="l00200"></a>00200 <span class="keywordtype">int</span>);
234 <a name="l00201"></a>00201
235 <a name="l00202"></a>00202 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
236 <a name="l00203"></a>00203 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
237 <a name="l00204"></a>00204 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
238 <a name="l00205"></a>00205 <span class="keywordtype">int</span>);
239 <a name="l00206"></a>00206
240 <a name="l00207"></a>00207 }<span class="comment">//namespace detail</span>
241 <a name="l00208"></a>00208
242 <a name="l00209"></a>00209 <span class="keyword">namespace </span>core{
243 <a name="l00210"></a>00210 <span class="keyword">namespace </span>type{
244 <a name="l00211"></a>00211 <span class="keyword">namespace </span>precision
245 <a name="l00212"></a>00212 {
246 <a name="l00217"></a><a class="code" href="a00235.html#ga0072cb659f9360a7bb2c3e6646609ad7">00217</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;lowp_float&gt;</a> <a class="code" href="a00235.html#ga0072cb659f9360a7bb2c3e6646609ad7" title="4 columns of 3 components matrix of low precision floating-point numbers.">lowp_mat4x3</a>;
247 <a name="l00218"></a>00218
248 <a name="l00223"></a><a class="code" href="a00235.html#ga236d4c1060c1ce9908d3de61b3d9334e">00223</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;mediump_float&gt;</a> <a class="code" href="a00235.html#ga236d4c1060c1ce9908d3de61b3d9334e" title="4 columns of 3 components matrix of medium precision floating-point numbers.">mediump_mat4x3</a>;
249 <a name="l00224"></a>00224
250 <a name="l00229"></a><a class="code" href="a00235.html#ga00d8bf8ebaab7d6647a3b7f73ae324af">00229</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;highp_float&gt;</a> <a class="code" href="a00235.html#ga00d8bf8ebaab7d6647a3b7f73ae324af" title="4 columns of 3 components matrix of high precision floating-point numbers.">highp_mat4x3</a>;
251 <a name="l00230"></a>00230
252 <a name="l00231"></a>00231 }<span class="comment">//namespace precision</span>
253 <a name="l00232"></a>00232 }<span class="comment">//namespace type</span>
254 <a name="l00233"></a>00233 }<span class="comment">//namespace core</span>
255 <a name="l00234"></a>00234 }<span class="comment">//namespace glm</span>
256 <a name="l00235"></a>00235
257 <a name="l00236"></a>00236 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
258 <a name="l00237"></a>00237 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat4x3.inl&quot;</span>
259 <a name="l00238"></a>00238 <span class="preprocessor">#endif //GLM_EXTERNAL_TEMPLATE</span>
260 <a name="l00239"></a>00239 <span class="preprocessor"></span>
261 <a name="l00240"></a>00240 <span class="preprocessor">#endif//glm_core_type_mat4x3</span>
245262 </pre></div></div>
246263 </div>
247264 <hr class="footer"/><address class="footer"><small>Generated by&#160;
3939 <div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
4040 <a name="l00002"></a>00002 <span class="comment">// OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)</span>
4141 <a name="l00004"></a>00004 <span class="comment"></span><span class="comment">// Created : 2005-01-27</span>
42 <a name="l00005"></a>00005 <span class="comment">// Updated : 2008-08-30</span>
42 <a name="l00005"></a>00005 <span class="comment">// Updated : 2011-06-02</span>
4343 <a name="l00006"></a>00006 <span class="comment">// Licence : This source is under MIT License</span>
4444 <a name="l00007"></a>00007 <span class="comment">// File : glm/core/type_mat4x4.hpp</span>
4545 <a name="l00009"></a>00009 <span class="comment"></span>
4848 <a name="l00012"></a>00012 <span class="preprocessor"></span>
4949 <a name="l00013"></a>00013 <span class="preprocessor">#include &quot;type_mat.hpp&quot;</span>
5050 <a name="l00014"></a>00014
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm
52 <a name="l00016"></a>00016 {
53 <a name="l00017"></a>00017 <span class="keyword">namespace </span>test
54 <a name="l00018"></a>00018 {
55 <a name="l00019"></a>00019 <span class="keywordtype">void</span> main_mat4x4();
56 <a name="l00020"></a>00020 }<span class="comment">//namespace test</span>
57 <a name="l00021"></a>00021
58 <a name="l00022"></a>00022 <span class="keyword">namespace </span>detail
59 <a name="l00023"></a>00023 {
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
67 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
68 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
69 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
70 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
71 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
72 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
73 <a name="l00037"></a>00037
74 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
75 <a name="l00041"></a><a class="code" href="a00018.html">00041</a> <span class="keyword">struct </span><a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4</a>
76 <a name="l00042"></a>00042 {
77 <a name="l00043"></a>00043 <span class="keyword">enum</span> ctor{null};
78 <a name="l00044"></a>00044 <span class="keyword">typedef</span> T value_type;
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> std::size_t size_type;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a>;
81 <a name="l00047"></a>00047 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">row_type</a>;
82 <a name="l00048"></a>00048 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
83 <a name="l00049"></a>00049 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
84 <a name="l00050"></a>00050
85 <a name="l00051"></a>00051 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">type</a>;
86 <a name="l00052"></a>00052 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">transpose_type</a>;
87 <a name="l00053"></a>00053
88 <a name="l00054"></a>00054 <span class="keyword">public</span>:
89 <a name="l00055"></a>00055 <span class="comment">// Implementation detail</span>
90 <a name="l00056"></a>00056 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> _inverse() <span class="keyword">const</span>;
91 <a name="l00057"></a>00057
92 <a name="l00058"></a>00058 <span class="keyword">private</span>:
93 <a name="l00059"></a>00059 <span class="comment">// Data </span>
94 <a name="l00060"></a>00060 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> value[4];
95 <a name="l00061"></a>00061
96 <a name="l00062"></a>00062 <span class="keyword">public</span>:
97 <a name="l00063"></a>00063 <span class="comment">// Constructors</span>
98 <a name="l00064"></a>00064 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4</a>();
99 <a name="l00065"></a>00065 GLM_FUNC_DECL tmat4x4(tmat4x4 <span class="keyword">const</span> &amp; m);
100 <a name="l00066"></a>00066
101 <a name="l00067"></a>00067 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(
102 <a name="l00068"></a>00068 ctor Null);
103 <a name="l00069"></a>00069 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(
104 <a name="l00070"></a>00070 value_type <span class="keyword">const</span> &amp; x);
105 <a name="l00071"></a>00071 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(
106 <a name="l00072"></a>00072 value_type <span class="keyword">const</span> &amp; x0, value_type <span class="keyword">const</span> &amp; y0, value_type <span class="keyword">const</span> &amp; z0, value_type <span class="keyword">const</span> &amp; w0,
107 <a name="l00073"></a>00073 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1, value_type <span class="keyword">const</span> &amp; z1, value_type <span class="keyword">const</span> &amp; w1,
108 <a name="l00074"></a>00074 value_type <span class="keyword">const</span> &amp; x2, value_type <span class="keyword">const</span> &amp; y2, value_type <span class="keyword">const</span> &amp; z2, value_type <span class="keyword">const</span> &amp; w2,
109 <a name="l00075"></a>00075 value_type <span class="keyword">const</span> &amp; x3, value_type <span class="keyword">const</span> &amp; y3, value_type <span class="keyword">const</span> &amp; z3, value_type <span class="keyword">const</span> &amp; w3);
110 <a name="l00076"></a>00076 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(
111 <a name="l00077"></a>00077 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v0,
112 <a name="l00078"></a>00078 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1,
113 <a name="l00079"></a>00079 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v2,
114 <a name="l00080"></a>00080 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v3);
115 <a name="l00081"></a>00081
116 <a name="l00082"></a>00082 <span class="comment">// Conversions</span>
117 <a name="l00083"></a>00083 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
118 <a name="l00084"></a>00084 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
119 <a name="l00085"></a>00085
120 <a name="l00086"></a>00086 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
121 <a name="l00087"></a>00087 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
122 <a name="l00088"></a>00088 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
123 <a name="l00089"></a>00089 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
124 <a name="l00090"></a>00090 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
125 <a name="l00091"></a>00091 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
126 <a name="l00092"></a>00092 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
127 <a name="l00093"></a>00093 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
128 <a name="l00094"></a>00094
129 <a name="l00095"></a>00095 <span class="comment">// Accesses</span>
130 <a name="l00096"></a>00096 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> &amp; operator[](size_type i);
131 <a name="l00097"></a>00097 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
132 <a name="l00098"></a>00098
133 <a name="l00099"></a>00099 <span class="comment">// Unary updatable operators</span>
134 <a name="l00100"></a>00100 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
135 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
136 <a name="l00102"></a>00102 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
137 <a name="l00103"></a>00103 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
138 <a name="l00104"></a>00104 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator+= (U <span class="keyword">const</span> &amp; s);
139 <a name="l00105"></a>00105 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
140 <a name="l00106"></a>00106 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator+= (<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
141 <a name="l00107"></a>00107 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
142 <a name="l00108"></a>00108 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator-= (U <span class="keyword">const</span> &amp; s);
143 <a name="l00109"></a>00109 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
144 <a name="l00110"></a>00110 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator-= (<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
145 <a name="l00111"></a>00111 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
146 <a name="l00112"></a>00112 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator*= (U <span class="keyword">const</span> &amp; s);
147 <a name="l00113"></a>00113 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
148 <a name="l00114"></a>00114 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator*= (<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
149 <a name="l00115"></a>00115 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
150 <a name="l00116"></a>00116 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator/= (U <span class="keyword">const</span> &amp; s);
151 <a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
152 <a name="l00118"></a>00118 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator/= (<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
153 <a name="l00119"></a>00119 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator++ ();
154 <a name="l00120"></a>00120 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator-- ();
155 <a name="l00121"></a>00121 };
156 <a name="l00122"></a>00122
157 <a name="l00123"></a>00123 <span class="comment">// Binary operators</span>
158 <a name="l00124"></a>00124 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
159 <a name="l00125"></a>00125 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator+ (
160 <a name="l00126"></a>00126 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
161 <a name="l00127"></a>00127 <span class="keyword">typename</span> tmat4x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
162 <a name="l00128"></a>00128
163 <a name="l00129"></a>00129 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
164 <a name="l00130"></a>00130 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator+ (
165 <a name="l00131"></a>00131 <span class="keyword">typename</span> tmat4x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
166 <a name="l00132"></a>00132 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
167 <a name="l00133"></a>00133
168 <a name="l00134"></a>00134 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
169 <a name="l00135"></a>00135 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator+ (
170 <a name="l00136"></a>00136 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
171 <a name="l00137"></a>00137 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
172 <a name="l00138"></a>00138
173 <a name="l00139"></a>00139 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
174 <a name="l00140"></a>00140 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator- (
175 <a name="l00141"></a>00141 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
176 <a name="l00142"></a>00142 <span class="keyword">typename</span> tmat4x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
177 <a name="l00143"></a>00143
178 <a name="l00144"></a>00144 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
179 <a name="l00145"></a>00145 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator- (
180 <a name="l00146"></a>00146 <span class="keyword">typename</span> tmat4x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
181 <a name="l00147"></a>00147 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
182 <a name="l00148"></a>00148
183 <a name="l00149"></a>00149 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
184 <a name="l00150"></a>00150 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator- (
185 <a name="l00151"></a>00151 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
186 <a name="l00152"></a>00152 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
187 <a name="l00153"></a>00153
188 <a name="l00154"></a>00154 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
189 <a name="l00155"></a>00155 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator* (
190 <a name="l00156"></a>00156 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
191 <a name="l00157"></a>00157 <span class="keyword">typename</span> tmat4x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
192 <a name="l00158"></a>00158
193 <a name="l00159"></a>00159 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
194 <a name="l00160"></a>00160 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator* (
195 <a name="l00161"></a>00161 <span class="keyword">typename</span> tmat4x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
196 <a name="l00162"></a>00162 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
197 <a name="l00163"></a>00163
198 <a name="l00164"></a>00164 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
199 <a name="l00165"></a>00165 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x4&lt;T&gt;::col_type</a> operator* (
200 <a name="l00166"></a>00166 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
201 <a name="l00167"></a>00167 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x4&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
202 <a name="l00168"></a>00168
203 <a name="l00169"></a>00169 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
204 <a name="l00170"></a>00170 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x4&lt;T&gt;::row_type</a> operator* (
205 <a name="l00171"></a>00171 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x4&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
206 <a name="l00172"></a>00172 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
207 <a name="l00173"></a>00173
208 <a name="l00174"></a>00174 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
209 <a name="l00175"></a>00175 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator* (
210 <a name="l00176"></a>00176 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
211 <a name="l00177"></a>00177 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
212 <a name="l00178"></a>00178
213 <a name="l00179"></a>00179 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
214 <a name="l00180"></a>00180 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator/ (
215 <a name="l00181"></a>00181 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
216 <a name="l00182"></a>00182 <span class="keyword">typename</span> tmat4x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
217 <a name="l00183"></a>00183
218 <a name="l00184"></a>00184 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
219 <a name="l00185"></a>00185 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator/ (
220 <a name="l00186"></a>00186 <span class="keyword">typename</span> tmat4x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
221 <a name="l00187"></a>00187 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
222 <a name="l00188"></a>00188
223 <a name="l00189"></a>00189 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
224 <a name="l00190"></a>00190 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x4&lt;T&gt;::col_type</a> operator/ (
225 <a name="l00191"></a>00191 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
226 <a name="l00192"></a>00192 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x4&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
227 <a name="l00193"></a>00193
228 <a name="l00194"></a>00194 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
229 <a name="l00195"></a>00195 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x4&lt;T&gt;::row_type</a> operator/ (
230 <a name="l00196"></a>00196 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x4&lt;T&gt;::col_type</a> &amp; v,
231 <a name="l00197"></a>00197 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
232 <a name="l00198"></a>00198
233 <a name="l00199"></a>00199 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
234 <a name="l00200"></a>00200 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator/ (
235 <a name="l00201"></a>00201 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
236 <a name="l00202"></a>00202 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
237 <a name="l00203"></a>00203
238 <a name="l00204"></a>00204 <span class="comment">// Unary constant operators</span>
239 <a name="l00205"></a>00205 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
240 <a name="l00206"></a>00206 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> operator- (
241 <a name="l00207"></a>00207 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
242 <a name="l00208"></a>00208
243 <a name="l00209"></a>00209 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
244 <a name="l00210"></a>00210 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
245 <a name="l00211"></a>00211 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m, <span class="keywordtype">int</span>);
246 <a name="l00212"></a>00212
247 <a name="l00213"></a>00213 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
248 <a name="l00214"></a>00214 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
249 <a name="l00215"></a>00215 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m, <span class="keywordtype">int</span>);
51 <a name="l00015"></a>00015 <span class="keyword">namespace </span>glm{
52 <a name="l00016"></a>00016 <span class="keyword">namespace </span>detail
53 <a name="l00017"></a>00017 {
54 <a name="l00018"></a>00018 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
55 <a name="l00019"></a>00019 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
56 <a name="l00020"></a>00020 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
57 <a name="l00021"></a>00021 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
58 <a name="l00022"></a>00022 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x2;
59 <a name="l00023"></a>00023 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x3;
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat2x4;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x3;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat3x4;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tmat4x4;
67 <a name="l00031"></a>00031
68 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
69 <a name="l00035"></a><a class="code" href="a00018.html">00035</a> <span class="keyword">struct </span><a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4</a>
70 <a name="l00036"></a>00036 {
71 <a name="l00037"></a>00037 <span class="keyword">enum</span> ctor{null};
72 <a name="l00038"></a>00038 <span class="keyword">typedef</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> value_type;
73 <a name="l00039"></a>00039 <span class="keyword">typedef</span> std::size_t size_type;
74 <a name="l00040"></a>00040 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a>;
75 <a name="l00041"></a>00041 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">row_type</a>;
76 <a name="l00042"></a>00042 <span class="keyword">static</span> GLM_FUNC_DECL size_type col_size();
77 <a name="l00043"></a>00043 <span class="keyword">static</span> GLM_FUNC_DECL size_type row_size();
78 <a name="l00044"></a>00044
79 <a name="l00045"></a>00045 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">type</a>;
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">transpose_type</a>;
81 <a name="l00047"></a>00047
82 <a name="l00048"></a>00048 <span class="keyword">public</span>:
83 <a name="l00049"></a>00049 <span class="comment">// Implementation detail</span>
84 <a name="l00050"></a>00050 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> _inverse() <span class="keyword">const</span>;
85 <a name="l00051"></a>00051
86 <a name="l00052"></a>00052 <span class="keyword">private</span>:
87 <a name="l00053"></a>00053 <span class="comment">// Data </span>
88 <a name="l00054"></a>00054 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> value[4];
89 <a name="l00055"></a>00055
90 <a name="l00056"></a>00056 <span class="keyword">public</span>:
91 <a name="l00057"></a>00057 <span class="comment">// Constructors</span>
92 <a name="l00058"></a>00058 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4</a>();
93 <a name="l00059"></a>00059 GLM_FUNC_DECL tmat4x4(tmat4x4 <span class="keyword">const</span> &amp; m);
94 <a name="l00060"></a>00060
95 <a name="l00061"></a>00061 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(
96 <a name="l00062"></a>00062 ctor Null);
97 <a name="l00063"></a>00063 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(
98 <a name="l00064"></a>00064 value_type <span class="keyword">const</span> &amp; x);
99 <a name="l00065"></a>00065 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(
100 <a name="l00066"></a>00066 value_type <span class="keyword">const</span> &amp; x0, value_type <span class="keyword">const</span> &amp; y0, value_type <span class="keyword">const</span> &amp; z0, value_type <span class="keyword">const</span> &amp; w0,
101 <a name="l00067"></a>00067 value_type <span class="keyword">const</span> &amp; x1, value_type <span class="keyword">const</span> &amp; y1, value_type <span class="keyword">const</span> &amp; z1, value_type <span class="keyword">const</span> &amp; w1,
102 <a name="l00068"></a>00068 value_type <span class="keyword">const</span> &amp; x2, value_type <span class="keyword">const</span> &amp; y2, value_type <span class="keyword">const</span> &amp; z2, value_type <span class="keyword">const</span> &amp; w2,
103 <a name="l00069"></a>00069 value_type <span class="keyword">const</span> &amp; x3, value_type <span class="keyword">const</span> &amp; y3, value_type <span class="keyword">const</span> &amp; z3, value_type <span class="keyword">const</span> &amp; w3);
104 <a name="l00070"></a>00070 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(
105 <a name="l00071"></a>00071 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v0,
106 <a name="l00072"></a>00072 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v1,
107 <a name="l00073"></a>00073 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v2,
108 <a name="l00074"></a>00074 <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; v3);
109 <a name="l00075"></a>00075
110 <a name="l00077"></a>00077 <span class="comment">// Conversions</span>
111 <a name="l00078"></a>00078 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
112 <a name="l00079"></a>00079 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(
113 <a name="l00080"></a>00080 U <span class="keyword">const</span> &amp; x);
114 <a name="l00081"></a>00081
115 <a name="l00082"></a>00082 <span class="keyword">template</span> &lt;
116 <a name="l00083"></a>00083 <span class="keyword">typename</span> X1, <span class="keyword">typename</span> Y1, <span class="keyword">typename</span> Z1, <span class="keyword">typename</span> W1,
117 <a name="l00084"></a>00084 <span class="keyword">typename</span> X2, <span class="keyword">typename</span> Y2, <span class="keyword">typename</span> Z2, <span class="keyword">typename</span> W2,
118 <a name="l00085"></a>00085 <span class="keyword">typename</span> X3, <span class="keyword">typename</span> Y3, <span class="keyword">typename</span> Z3, <span class="keyword">typename</span> W3,
119 <a name="l00086"></a>00086 <span class="keyword">typename</span> X4, <span class="keyword">typename</span> Y4, <span class="keyword">typename</span> Z4, <span class="keyword">typename</span> W4&gt;
120 <a name="l00087"></a>00087 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(
121 <a name="l00088"></a>00088 X1 <span class="keyword">const</span> &amp; x1, Y1 <span class="keyword">const</span> &amp; y1, Z1 <span class="keyword">const</span> &amp; z1, W1 <span class="keyword">const</span> &amp; w1,
122 <a name="l00089"></a>00089 X2 <span class="keyword">const</span> &amp; x2, Y2 <span class="keyword">const</span> &amp; y2, Z2 <span class="keyword">const</span> &amp; z2, W2 <span class="keyword">const</span> &amp; w2,
123 <a name="l00090"></a>00090 X3 <span class="keyword">const</span> &amp; x3, Y3 <span class="keyword">const</span> &amp; y3, Z3 <span class="keyword">const</span> &amp; z3, W3 <span class="keyword">const</span> &amp; w3,
124 <a name="l00091"></a>00091 X4 <span class="keyword">const</span> &amp; x4, Y4 <span class="keyword">const</span> &amp; y4, Z4 <span class="keyword">const</span> &amp; z4, W4 <span class="keyword">const</span> &amp; w4);
125 <a name="l00092"></a>00092
126 <a name="l00093"></a>00093 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> V1, <span class="keyword">typename</span> V2, <span class="keyword">typename</span> V3, <span class="keyword">typename</span> V4&gt;
127 <a name="l00094"></a>00094 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(
128 <a name="l00095"></a>00095 <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;V1&gt;</a> <span class="keyword">const</span> &amp; v1,
129 <a name="l00096"></a>00096 <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;V2&gt;</a> <span class="keyword">const</span> &amp; v2,
130 <a name="l00097"></a>00097 <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;V3&gt;</a> <span class="keyword">const</span> &amp; v3,
131 <a name="l00098"></a>00098 <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;V4&gt;</a> <span class="keyword">const</span> &amp; v4);
132 <a name="l00099"></a>00099
133 <a name="l00100"></a>00100 <span class="comment">// Matrix conversions</span>
134 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
135 <a name="l00102"></a>00102 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
136 <a name="l00103"></a>00103
137 <a name="l00104"></a>00104 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
138 <a name="l00105"></a>00105 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
139 <a name="l00106"></a>00106 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
140 <a name="l00107"></a>00107 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
141 <a name="l00108"></a>00108 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
142 <a name="l00109"></a>00109 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
143 <a name="l00110"></a>00110 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
144 <a name="l00111"></a>00111 GLM_FUNC_DECL <span class="keyword">explicit</span> tmat4x4(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x);
145 <a name="l00112"></a>00112
146 <a name="l00113"></a>00113 <span class="comment">// Accesses</span>
147 <a name="l00114"></a>00114 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> &amp; operator[](size_type i);
148 <a name="l00115"></a>00115 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">col_type</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
149 <a name="l00116"></a>00116
150 <a name="l00117"></a>00117 <span class="comment">// Unary updatable operators</span>
151 <a name="l00118"></a>00118 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
152 <a name="l00119"></a>00119 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
153 <a name="l00120"></a>00120 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
154 <a name="l00121"></a>00121 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
155 <a name="l00122"></a>00122 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator+= (U <span class="keyword">const</span> &amp; s);
156 <a name="l00123"></a>00123 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
157 <a name="l00124"></a>00124 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator+= (<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
158 <a name="l00125"></a>00125 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
159 <a name="l00126"></a>00126 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator-= (U <span class="keyword">const</span> &amp; s);
160 <a name="l00127"></a>00127 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
161 <a name="l00128"></a>00128 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator-= (<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
162 <a name="l00129"></a>00129 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
163 <a name="l00130"></a>00130 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator*= (U <span class="keyword">const</span> &amp; s);
164 <a name="l00131"></a>00131 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
165 <a name="l00132"></a>00132 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator*= (<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
166 <a name="l00133"></a>00133 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
167 <a name="l00134"></a>00134 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator/= (U <span class="keyword">const</span> &amp; s);
168 <a name="l00135"></a>00135 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
169 <a name="l00136"></a>00136 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator/= (<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;U&gt;</a> <span class="keyword">const</span> &amp; m);
170 <a name="l00137"></a>00137 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator++ ();
171 <a name="l00138"></a>00138 GLM_FUNC_DECL <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> &amp; operator-- ();
172 <a name="l00139"></a>00139 };
173 <a name="l00140"></a>00140
174 <a name="l00141"></a>00141 <span class="comment">// Binary operators</span>
175 <a name="l00142"></a>00142 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
176 <a name="l00143"></a>00143 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator+ (
177 <a name="l00144"></a>00144 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
178 <a name="l00145"></a>00145 <span class="keyword">typename</span> tmat4x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
179 <a name="l00146"></a>00146
180 <a name="l00147"></a>00147 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
181 <a name="l00148"></a>00148 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator+ (
182 <a name="l00149"></a>00149 <span class="keyword">typename</span> tmat4x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
183 <a name="l00150"></a>00150 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
184 <a name="l00151"></a>00151
185 <a name="l00152"></a>00152 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
186 <a name="l00153"></a>00153 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator+ (
187 <a name="l00154"></a>00154 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
188 <a name="l00155"></a>00155 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
189 <a name="l00156"></a>00156
190 <a name="l00157"></a>00157 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
191 <a name="l00158"></a>00158 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator- (
192 <a name="l00159"></a>00159 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
193 <a name="l00160"></a>00160 <span class="keyword">typename</span> tmat4x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
194 <a name="l00161"></a>00161
195 <a name="l00162"></a>00162 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
196 <a name="l00163"></a>00163 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator- (
197 <a name="l00164"></a>00164 <span class="keyword">typename</span> tmat4x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
198 <a name="l00165"></a>00165 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
199 <a name="l00166"></a>00166
200 <a name="l00167"></a>00167 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
201 <a name="l00168"></a>00168 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator- (
202 <a name="l00169"></a>00169 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
203 <a name="l00170"></a>00170 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
204 <a name="l00171"></a>00171
205 <a name="l00172"></a>00172 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
206 <a name="l00173"></a>00173 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator* (
207 <a name="l00174"></a>00174 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
208 <a name="l00175"></a>00175 <span class="keyword">typename</span> tmat4x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
209 <a name="l00176"></a>00176
210 <a name="l00177"></a>00177 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
211 <a name="l00178"></a>00178 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator* (
212 <a name="l00179"></a>00179 <span class="keyword">typename</span> tmat4x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
213 <a name="l00180"></a>00180 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
214 <a name="l00181"></a>00181
215 <a name="l00182"></a>00182 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
216 <a name="l00183"></a>00183 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x4&lt;T&gt;::col_type</a> operator* (
217 <a name="l00184"></a>00184 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
218 <a name="l00185"></a>00185 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x4&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
219 <a name="l00186"></a>00186
220 <a name="l00187"></a>00187 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
221 <a name="l00188"></a>00188 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x4&lt;T&gt;::row_type</a> operator* (
222 <a name="l00189"></a>00189 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x4&lt;T&gt;::col_type</a> <span class="keyword">const</span> &amp; v,
223 <a name="l00190"></a>00190 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
224 <a name="l00191"></a>00191
225 <a name="l00192"></a>00192 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
226 <a name="l00193"></a>00193 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator* (
227 <a name="l00194"></a>00194 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
228 <a name="l00195"></a>00195 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
229 <a name="l00196"></a>00196
230 <a name="l00197"></a>00197 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
231 <a name="l00198"></a>00198 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator/ (
232 <a name="l00199"></a>00199 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
233 <a name="l00200"></a>00200 <span class="keyword">typename</span> tmat4x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);
234 <a name="l00201"></a>00201
235 <a name="l00202"></a>00202 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
236 <a name="l00203"></a>00203 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator/ (
237 <a name="l00204"></a>00204 <span class="keyword">typename</span> tmat4x4&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,
238 <a name="l00205"></a>00205 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
239 <a name="l00206"></a>00206
240 <a name="l00207"></a>00207 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
241 <a name="l00208"></a>00208 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x4&lt;T&gt;::col_type</a> operator/ (
242 <a name="l00209"></a>00209 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m,
243 <a name="l00210"></a>00210 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x4&lt;T&gt;::row_type</a> <span class="keyword">const</span> &amp; v);
244 <a name="l00211"></a>00211
245 <a name="l00212"></a>00212 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
246 <a name="l00213"></a>00213 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x4&lt;T&gt;::row_type</a> operator/ (
247 <a name="l00214"></a>00214 <span class="keyword">typename</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tmat4x4&lt;T&gt;::col_type</a> &amp; v,
248 <a name="l00215"></a>00215 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
250249 <a name="l00216"></a>00216
251 <a name="l00217"></a>00217 } <span class="comment">//namespace detail</span>
252 <a name="l00218"></a>00218
253 <a name="l00219"></a>00219 <span class="keyword">namespace </span>core{
254 <a name="l00220"></a>00220 <span class="keyword">namespace </span>type{
250 <a name="l00217"></a>00217 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
251 <a name="l00218"></a>00218 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> operator/ (
252 <a name="l00219"></a>00219 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m1,
253 <a name="l00220"></a>00220 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m2);
255254 <a name="l00221"></a>00221
256 <a name="l00222"></a>00222 <span class="keyword">namespace </span>precision
257 <a name="l00223"></a>00223 {
258 <a name="l00228"></a><a class="code" href="a00236.html#gaae14374ee642a8d553ce64f17a4597b1">00228</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;lowp_float&gt;</a> <a class="code" href="a00236.html#gaae14374ee642a8d553ce64f17a4597b1" title="4 columns of 4 components matrix of low precision floating-point numbers.">lowp_mat4x4</a>;
259 <a name="l00233"></a><a class="code" href="a00236.html#gad0e848d34a6838e413a41018228ded41">00233</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;mediump_float&gt;</a> <a class="code" href="a00236.html#gad0e848d34a6838e413a41018228ded41" title="4 columns of 4 components matrix of medium precision floating-point numbers.">mediump_mat4x4</a>;
260 <a name="l00238"></a><a class="code" href="a00236.html#gadd2ef277f86f6fa29804a22d1eb7d662">00238</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;highp_float&gt;</a> <a class="code" href="a00236.html#gadd2ef277f86f6fa29804a22d1eb7d662" title="4 columns of 4 components matrix of high precision floating-point numbers.">highp_mat4x4</a>;
261 <a name="l00239"></a>00239 }
262 <a name="l00240"></a>00240 <span class="comment">//namespace precision</span>
263 <a name="l00241"></a>00241
264 <a name="l00242"></a>00242 }<span class="comment">//namespace type</span>
265 <a name="l00243"></a>00243 }<span class="comment">//namespace core</span>
266 <a name="l00244"></a>00244 } <span class="comment">//namespace glm</span>
267 <a name="l00245"></a>00245
268 <a name="l00246"></a>00246 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
269 <a name="l00247"></a>00247 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat4x4.inl&quot;</span>
270 <a name="l00248"></a>00248 <span class="preprocessor">#endif</span>
271 <a name="l00249"></a>00249 <span class="preprocessor"></span>
272 <a name="l00250"></a>00250 <span class="preprocessor">#endif //glm_core_type_mat4x4</span>
255 <a name="l00222"></a>00222 <span class="comment">// Unary constant operators</span>
256 <a name="l00223"></a>00223 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
257 <a name="l00224"></a>00224 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> operator- (
258 <a name="l00225"></a>00225 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m);
259 <a name="l00226"></a>00226
260 <a name="l00227"></a>00227 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
261 <a name="l00228"></a>00228 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> operator-- (
262 <a name="l00229"></a>00229 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m, <span class="keywordtype">int</span>);
263 <a name="l00230"></a>00230
264 <a name="l00231"></a>00231 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
265 <a name="l00232"></a>00232 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> operator++ (
266 <a name="l00233"></a>00233 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; m, <span class="keywordtype">int</span>);
267 <a name="l00234"></a>00234
268 <a name="l00235"></a>00235 } <span class="comment">//namespace detail</span>
269 <a name="l00236"></a>00236
270 <a name="l00237"></a>00237 <span class="keyword">namespace </span>core{
271 <a name="l00238"></a>00238 <span class="keyword">namespace </span>type{
272 <a name="l00239"></a>00239 <span class="keyword">namespace </span>precision
273 <a name="l00240"></a>00240 {
274 <a name="l00245"></a><a class="code" href="a00235.html#ga4954a51c5507e62185d6d82dc39016a5">00245</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;lowp_float&gt;</a> <a class="code" href="a00235.html#ga4954a51c5507e62185d6d82dc39016a5" title="4 columns of 4 components matrix of low precision floating-point numbers.">lowp_mat4</a>;
275 <a name="l00246"></a>00246
276 <a name="l00251"></a><a class="code" href="a00235.html#gabb71589a7fc80f6ca0c134efb878338d">00251</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;mediump_float&gt;</a> <a class="code" href="a00235.html#gabb71589a7fc80f6ca0c134efb878338d" title="4 columns of 4 components matrix of medium precision floating-point numbers.">mediump_mat4</a>;
277 <a name="l00252"></a>00252
278 <a name="l00257"></a><a class="code" href="a00235.html#ga6e0882bb7c778ee27596e1cbe70cad1a">00257</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;highp_float&gt;</a> <a class="code" href="a00235.html#ga6e0882bb7c778ee27596e1cbe70cad1a" title="4 columns of 4 components matrix of high precision floating-point numbers.">highp_mat4</a>;
279 <a name="l00258"></a>00258
280 <a name="l00263"></a><a class="code" href="a00235.html#gaae14374ee642a8d553ce64f17a4597b1">00263</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;lowp_float&gt;</a> <a class="code" href="a00235.html#gaae14374ee642a8d553ce64f17a4597b1" title="4 columns of 4 components matrix of low precision floating-point numbers.">lowp_mat4x4</a>;
281 <a name="l00264"></a>00264
282 <a name="l00269"></a><a class="code" href="a00235.html#gad0e848d34a6838e413a41018228ded41">00269</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;mediump_float&gt;</a> <a class="code" href="a00235.html#gad0e848d34a6838e413a41018228ded41" title="4 columns of 4 components matrix of medium precision floating-point numbers.">mediump_mat4x4</a>;
283 <a name="l00270"></a>00270
284 <a name="l00275"></a><a class="code" href="a00235.html#gadd2ef277f86f6fa29804a22d1eb7d662">00275</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;highp_float&gt;</a> <a class="code" href="a00235.html#gadd2ef277f86f6fa29804a22d1eb7d662" title="4 columns of 4 components matrix of high precision floating-point numbers.">highp_mat4x4</a>;
285 <a name="l00276"></a>00276
286 <a name="l00277"></a>00277 }<span class="comment">//namespace precision</span>
287 <a name="l00278"></a>00278 }<span class="comment">//namespace type</span>
288 <a name="l00279"></a>00279 }<span class="comment">//namespace core</span>
289 <a name="l00280"></a>00280 }<span class="comment">//namespace glm</span>
290 <a name="l00281"></a>00281
291 <a name="l00282"></a>00282 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
292 <a name="l00283"></a>00283 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_mat4x4.inl&quot;</span>
293 <a name="l00284"></a>00284 <span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span>
294 <a name="l00285"></a>00285 <span class="preprocessor"></span>
295 <a name="l00286"></a>00286 <span class="preprocessor">#endif//glm_core_type_mat4x4</span>
273296 </pre></div></div>
274297 </div>
275298 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5959 <a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_type_precision extension included&quot;)</span>
6060 <a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
6161 <a name="l00026"></a>00026 <span class="preprocessor"></span>
62 <a name="l00027"></a>00027 <span class="keyword">namespace </span>glm
63 <a name="l00028"></a>00028 {
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>test{
65 <a name="l00030"></a>00030 <span class="keywordtype">bool</span> main_gtc_type_precision();
66 <a name="l00031"></a>00031 }<span class="comment">//namespace test</span>
67 <a name="l00032"></a>00032
68 <a name="l00033"></a>00033 <span class="keyword">namespace </span>gtc{
69 <a name="l00035"></a><a class="code" href="a00166.html">00035</a> <span class="keyword">namespace </span>type_precision
70 <a name="l00036"></a>00036 {
71 <a name="l00038"></a>00038 <span class="comment">// Dependences</span>
62 <a name="l00027"></a>00027 <span class="keyword">namespace </span>glm{
63 <a name="l00028"></a>00028 <span class="keyword">namespace </span>gtc{
64 <a name="l00029"></a><a class="code" href="a00166.html">00029</a> <span class="keyword">namespace </span>type_precision
65 <a name="l00030"></a>00030 {
66 <a name="l00032"></a>00032 <span class="comment">// Dependences</span>
67 <a name="l00033"></a>00033
68 <a name="l00034"></a>00034 <span class="keyword">using namespace </span>gtc::half_float;
69 <a name="l00035"></a>00035 <span class="keyword">using namespace </span>gtc::quaternion;
70 <a name="l00036"></a>00036
71 <a name="l00038"></a>00038 <span class="comment">// Signed int vector types </span>
7272 <a name="l00039"></a>00039
73 <a name="l00040"></a>00040 <span class="keyword">using namespace </span>gtc::half_float;
74 <a name="l00041"></a>00041 <span class="keyword">using namespace </span>gtc::quaternion;
7573 <a name="l00042"></a>00042
76 <a name="l00044"></a>00044 <span class="comment">// Signed int vector types </span>
77 <a name="l00045"></a>00045
78 <a name="l00048"></a>00048
79 <a name="l00049"></a><a class="code" href="a00246.html#ga41c6189f6485c2825d60fdc835b3a2b0">00049</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">detail::int8</a> <a class="code" href="a00246.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">int8</a>;
80 <a name="l00050"></a><a class="code" href="a00246.html#ga302041c186d0d028bea31b711fe16759">00050</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">detail::int16</a> <a class="code" href="a00246.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">int16</a>;
81 <a name="l00051"></a><a class="code" href="a00246.html#ga8df669f4e7698dfe0c0354d92578d74f">00051</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">detail::int32</a> <a class="code" href="a00246.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">int32</a>;
82 <a name="l00052"></a><a class="code" href="a00246.html#gaff5189f97f9e842d9636a0f240001b2e">00052</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">detail::int64</a> <a class="code" href="a00246.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">int64</a>;
83 <a name="l00053"></a>00053
84 <a name="l00054"></a><a class="code" href="a00246.html#ga112f99168645b5338136b72eddd12895">00054</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">int8</a> <a class="code" href="a00246.html#ga112f99168645b5338136b72eddd12895" title="8bit signed integer. (from GLM_GTC_type_precision extension)">i8</a>;
85 <a name="l00055"></a><a class="code" href="a00246.html#ga47ad84e86d8eef23a5ebab2815242a0d">00055</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">int16</a> <a class="code" href="a00246.html#ga47ad84e86d8eef23a5ebab2815242a0d" title="16bit signed integer. (from GLM_GTC_type_precision extension)">i16</a>;
86 <a name="l00056"></a><a class="code" href="a00246.html#ga324db08ffb2a193f9a10864288b94523">00056</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">int32</a> <a class="code" href="a00246.html#ga324db08ffb2a193f9a10864288b94523" title="32bit signed integer. (from GLM_GTC_type_precision extension)">i32</a>;
87 <a name="l00057"></a><a class="code" href="a00246.html#ga60abe2e6e0bacb893a2d6d17cc50f753">00057</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">int64</a> <a class="code" href="a00246.html#ga60abe2e6e0bacb893a2d6d17cc50f753" title="64bit signed integer. (from GLM_GTC_type_precision extension)">i64</a>;
88 <a name="l00058"></a>00058
89 <a name="l00059"></a>00059 <span class="comment">//typedef i8 i8vec1; //!&lt; \brief 8bit signed integer scalar. (from GLM_GTC_type_precision extension)</span>
90 <a name="l00060"></a><a class="code" href="a00246.html#ga9ab3f26fa232d5a4d2397d7904eb9069">00060</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;i8&gt;</a> <a class="code" href="a00246.html#ga9ab3f26fa232d5a4d2397d7904eb9069" title="8bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">i8vec2</a>;
91 <a name="l00061"></a><a class="code" href="a00246.html#gaa8c91ad088bbbd51f2ef3b7701f00ed9">00061</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;i8&gt;</a> <a class="code" href="a00246.html#gaa8c91ad088bbbd51f2ef3b7701f00ed9" title="8bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)">i8vec3</a>;
92 <a name="l00062"></a><a class="code" href="a00246.html#ga792e1b3e596a020df28a8eb4ec3c0708">00062</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;i8&gt;</a> <a class="code" href="a00246.html#ga792e1b3e596a020df28a8eb4ec3c0708" title="8bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)">i8vec4</a>;
93 <a name="l00063"></a>00063
94 <a name="l00064"></a>00064 <span class="comment">//typedef i16 i16vec1; //!&lt; \brief 16bit signed integer scalar. (from GLM_GTC_type_precision extension)</span>
95 <a name="l00065"></a><a class="code" href="a00246.html#ga6a9c8e79629016f081cd3274eeafe429">00065</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;i16&gt;</a> <a class="code" href="a00246.html#ga6a9c8e79629016f081cd3274eeafe429" title="16bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">i16vec2</a>;
96 <a name="l00066"></a><a class="code" href="a00246.html#ga539ac09149e338c783bc492fd25d504c">00066</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;i16&gt;</a> <a class="code" href="a00246.html#ga539ac09149e338c783bc492fd25d504c" title="16bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)">i16vec3</a>;
97 <a name="l00067"></a><a class="code" href="a00246.html#ga09c99e80eb63c8df7a9cc4021c8a2811">00067</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;i16&gt;</a> <a class="code" href="a00246.html#ga09c99e80eb63c8df7a9cc4021c8a2811" title="16bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)">i16vec4</a>;
98 <a name="l00068"></a>00068
99 <a name="l00069"></a>00069 <span class="comment">//typedef i32 i32vec1; //!&lt; \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension)</span>
100 <a name="l00070"></a><a class="code" href="a00246.html#ga587a33330386e50f7ff9a870f1b62ab1">00070</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;i32&gt;</a> <a class="code" href="a00246.html#ga587a33330386e50f7ff9a870f1b62ab1" title="32bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">i32vec2</a>;
101 <a name="l00071"></a><a class="code" href="a00246.html#gae8b7bb7698c98fb69f2a4aff8a757416">00071</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;i32&gt;</a> <a class="code" href="a00246.html#gae8b7bb7698c98fb69f2a4aff8a757416" title="32bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)">i32vec3</a>;
102 <a name="l00072"></a><a class="code" href="a00246.html#gaa82f1d2958dfcc463a2498d52ee80a0a">00072</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;i32&gt;</a> <a class="code" href="a00246.html#gaa82f1d2958dfcc463a2498d52ee80a0a" title="32bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)">i32vec4</a>;
103 <a name="l00073"></a>00073
104 <a name="l00074"></a>00074 <span class="comment">//typedef i64 i64vec1; //!&lt; \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension)</span>
105 <a name="l00075"></a><a class="code" href="a00246.html#ga7a6245c652f68ba306c05bb0d4ca1361">00075</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;i64&gt;</a> <a class="code" href="a00246.html#ga7a6245c652f68ba306c05bb0d4ca1361" title="64bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">i64vec2</a>;
106 <a name="l00076"></a><a class="code" href="a00246.html#ga78ad50b24382913ef6068ded644c9f3f">00076</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;i64&gt;</a> <a class="code" href="a00246.html#ga78ad50b24382913ef6068ded644c9f3f" title="64bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)">i64vec3</a>;
107 <a name="l00077"></a><a class="code" href="a00246.html#ga8392ac39a51731ab9a5b3f23a5eaf1d7">00077</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;i64&gt;</a> <a class="code" href="a00246.html#ga8392ac39a51731ab9a5b3f23a5eaf1d7" title="64bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)">i64vec4</a>;
108 <a name="l00078"></a>00078
109 <a name="l00080"></a>00080 <span class="comment">// Unsigned int vector types </span>
110 <a name="l00081"></a>00081
111 <a name="l00082"></a><a class="code" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865">00082</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint8</a> <a class="code" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">uint8</a>;
112 <a name="l00083"></a><a class="code" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d">00083</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint16</a> <a class="code" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">uint16</a>;
113 <a name="l00084"></a><a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d">00084</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">uint32</a>;
114 <a name="l00085"></a><a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c">00085</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint64</a> <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">uint64</a>;
115 <a name="l00086"></a>00086
116 <a name="l00087"></a><a class="code" href="a00246.html#gad8d9dbef83392da434801486bf814fe4">00087</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">uint8</a> <a class="code" href="a00246.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">u8</a>;
117 <a name="l00088"></a><a class="code" href="a00246.html#ga91ec65f57d610f6902fd081f1d1e265a">00088</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">uint16</a> <a class="code" href="a00246.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">u16</a>;
118 <a name="l00089"></a><a class="code" href="a00246.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">00089</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">uint32</a> <a class="code" href="a00246.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">u32</a>;
119 <a name="l00090"></a><a class="code" href="a00246.html#ga02ecb7390e4c4515df2268d18f99abc0">00090</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">uint64</a> <a class="code" href="a00246.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">u64</a>;
120 <a name="l00091"></a>00091
121 <a name="l00092"></a>00092 <span class="comment">//typedef u8 u8vec1; //!&lt; \brief 8bit unsigned integer scalar. (from GLM_GTC_type_precision extension)</span>
122 <a name="l00093"></a><a class="code" href="a00246.html#ga8f78a1ea21be24a89da31928fc037bfd">00093</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;u8&gt;</a> <a class="code" href="a00246.html#ga8f78a1ea21be24a89da31928fc037bfd" title="8bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)">u8vec2</a>;
123 <a name="l00094"></a><a class="code" href="a00246.html#ga7a4cb62a556ad09c7e0721aecac64dbd">00094</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;u8&gt;</a> <a class="code" href="a00246.html#ga7a4cb62a556ad09c7e0721aecac64dbd" title="8bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)">u8vec3</a>;
124 <a name="l00095"></a><a class="code" href="a00246.html#ga83091381b9b909057004c4de7896d072">00095</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;u8&gt;</a> <a class="code" href="a00246.html#ga83091381b9b909057004c4de7896d072" title="8bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)">u8vec4</a>;
125 <a name="l00096"></a>00096
126 <a name="l00097"></a>00097 <span class="comment">//typedef u16 u16vec1; //!&lt; \brief 16bit unsigned integer scalar. (from GLM_GTC_type_precision extension)</span>
127 <a name="l00098"></a><a class="code" href="a00246.html#ga63f78111033fd19335588c549fcc0512">00098</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;u16&gt;</a> <a class="code" href="a00246.html#ga63f78111033fd19335588c549fcc0512" title="16bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)">u16vec2</a>;
128 <a name="l00099"></a><a class="code" href="a00246.html#ga53d4785d0f40c66bf58b315dd1122fe4">00099</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;u16&gt;</a> <a class="code" href="a00246.html#ga53d4785d0f40c66bf58b315dd1122fe4" title="16bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)">u16vec3</a>;
129 <a name="l00100"></a><a class="code" href="a00246.html#ga0331a2b68ce5f72a450f6d45c90f7709">00100</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;u16&gt;</a> <a class="code" href="a00246.html#ga0331a2b68ce5f72a450f6d45c90f7709" title="16bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)">u16vec4</a>;
130 <a name="l00101"></a>00101
131 <a name="l00102"></a>00102 <span class="comment">//typedef u32 u32vec1; //!&lt; \brief 32bit unsigned integer scalar. (from GLM_GTC_type_precision extension)</span>
132 <a name="l00103"></a><a class="code" href="a00246.html#gaae1d6aa5d86a2744294b97e05b623e29">00103</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;u32&gt;</a> <a class="code" href="a00246.html#gaae1d6aa5d86a2744294b97e05b623e29" title="32bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)">u32vec2</a>;
133 <a name="l00104"></a><a class="code" href="a00246.html#gae013bd205f900d8ac3d783e62c9fa294">00104</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;u32&gt;</a> <a class="code" href="a00246.html#gae013bd205f900d8ac3d783e62c9fa294" title="32bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)">u32vec3</a>;
134 <a name="l00105"></a><a class="code" href="a00246.html#gac61f03e72cbcace4582b0c11859f54c7">00105</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;u32&gt;</a> <a class="code" href="a00246.html#gac61f03e72cbcace4582b0c11859f54c7" title="32bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)">u32vec4</a>;
135 <a name="l00106"></a>00106
136 <a name="l00107"></a>00107 <span class="comment">//typedef u64 u64vec1; //!&lt; \brief 64bit unsigned integer scalar. (from GLM_GTC_type_precision extension)</span>
137 <a name="l00108"></a><a class="code" href="a00246.html#ga98265c5d66ab4bf19f4242746233526c">00108</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;u64&gt;</a> <a class="code" href="a00246.html#ga98265c5d66ab4bf19f4242746233526c" title="64bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)">u64vec2</a>;
138 <a name="l00109"></a><a class="code" href="a00246.html#ga470cfa496aae49e63c5becee347651a1">00109</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;u64&gt;</a> <a class="code" href="a00246.html#ga470cfa496aae49e63c5becee347651a1" title="64bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)">u64vec3</a>;
139 <a name="l00110"></a><a class="code" href="a00246.html#ga34a421d3df867266c9437dc00897edeb">00110</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;u64&gt;</a> <a class="code" href="a00246.html#ga34a421d3df867266c9437dc00897edeb" title="64bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)">u64vec4</a>;
140 <a name="l00111"></a>00111
141 <a name="l00113"></a>00113 <span class="comment">// Float vector types </span>
142 <a name="l00114"></a>00114
143 <a name="l00115"></a><a class="code" href="a00246.html#ga19287ee46bd37d1459731d7191bc2f66">00115</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga19287ee46bd37d1459731d7191bc2f66" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float16</a> <a class="code" href="a00246.html#ga19287ee46bd37d1459731d7191bc2f66" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">float16</a>;
144 <a name="l00116"></a><a class="code" href="a00246.html#gad3c127f8bf8d7d4e738037c257abb5b1">00116</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float32</a> <a class="code" href="a00246.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">float32</a>;
145 <a name="l00117"></a><a class="code" href="a00246.html#gab5596d48586414c91ccb270962dc14d3">00117</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gab5596d48586414c91ccb270962dc14d3" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float64</a> <a class="code" href="a00246.html#gab5596d48586414c91ccb270962dc14d3" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">float64</a>;
146 <a name="l00118"></a>00118
147 <a name="l00119"></a><a class="code" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">00119</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#ga19287ee46bd37d1459731d7191bc2f66" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">float16</a> <a class="code" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f16</a>;
148 <a name="l00120"></a><a class="code" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">00120</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">float32</a> <a class="code" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f32</a>;
149 <a name="l00121"></a><a class="code" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">00121</a> <span class="keyword">typedef</span> <a class="code" href="a00246.html#gab5596d48586414c91ccb270962dc14d3" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">float64</a> <a class="code" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f64</a>;
150 <a name="l00122"></a>00122
151 <a name="l00123"></a><a class="code" href="a00246.html#gaeb3201411f8933fae30fe36b3fb1db90">00123</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;float&gt;</a> <a class="code" href="a00246.html#gaeb3201411f8933fae30fe36b3fb1db90" title="Vector of 2 single-precision floating-point numbers. (from GLM_GTC_type_precision extension)...">fvec2</a>;
152 <a name="l00124"></a><a class="code" href="a00246.html#ga36d8bc27da6e04285ab3b11d0af061b0">00124</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;float&gt;</a> <a class="code" href="a00246.html#ga36d8bc27da6e04285ab3b11d0af061b0" title="Vector of 3 single-precision floating-point numbers. (from GLM_GTC_type_precision extension)...">fvec3</a>;
153 <a name="l00125"></a><a class="code" href="a00246.html#gac8e4776e86d01ed43b2dce32db2c72ba">00125</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;float&gt;</a> <a class="code" href="a00246.html#gac8e4776e86d01ed43b2dce32db2c72ba" title="Vector of 4 single-precision floating-point numbers. (from GLM_GTC_type_precision extension)...">fvec4</a>;
154 <a name="l00126"></a>00126
155 <a name="l00127"></a>00127 <span class="comment">//typedef f16 f16vec1; //!&lt; \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
156 <a name="l00128"></a><a class="code" href="a00246.html#gac29c0992aa0fe2df8f9b6b9edc220822">00128</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;f16&gt;</a> <a class="code" href="a00246.html#gac29c0992aa0fe2df8f9b6b9edc220822" title="Half-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension)...">f16vec2</a>;
157 <a name="l00129"></a><a class="code" href="a00246.html#gaa68a583d3e3b202e1b48c7bc94964c78">00129</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;f16&gt;</a> <a class="code" href="a00246.html#gaa68a583d3e3b202e1b48c7bc94964c78" title="Half-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension)...">f16vec3</a>;
158 <a name="l00130"></a><a class="code" href="a00246.html#gae77767db0311f307255a057fd7358704">00130</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;f16&gt;</a> <a class="code" href="a00246.html#gae77767db0311f307255a057fd7358704" title="Half-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension)...">f16vec4</a>;
159 <a name="l00131"></a>00131
160 <a name="l00132"></a>00132 <span class="comment">//typedef f32 f32vec1; //!&lt; \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
161 <a name="l00133"></a><a class="code" href="a00246.html#ga6a1674122ce80c7f3b77ddbc85b4d9f1">00133</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;f32&gt;</a> <a class="code" href="a00246.html#ga6a1674122ce80c7f3b77ddbc85b4d9f1" title="Single-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension)...">f32vec2</a>;
162 <a name="l00134"></a><a class="code" href="a00246.html#ga81353c6a9b282b2b34185306a40040ad">00134</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;f32&gt;</a> <a class="code" href="a00246.html#ga81353c6a9b282b2b34185306a40040ad" title="Single-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension)...">f32vec3</a>;
163 <a name="l00135"></a><a class="code" href="a00246.html#ga58dbce28a4d4b0d72c239cf3069bd28b">00135</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;f32&gt;</a> <a class="code" href="a00246.html#ga58dbce28a4d4b0d72c239cf3069bd28b" title="Single-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension)...">f32vec4</a>;
164 <a name="l00136"></a>00136
165 <a name="l00137"></a>00137 <span class="comment">//typedef f64 f64vec1; //!&lt; \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
166 <a name="l00138"></a><a class="code" href="a00246.html#ga1de31e7b24d714613b83fb704b8b1fd1">00138</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;f64&gt;</a> <a class="code" href="a00246.html#ga1de31e7b24d714613b83fb704b8b1fd1" title="Double-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension)...">f64vec2</a>;
167 <a name="l00139"></a><a class="code" href="a00246.html#ga2a4b3d9e62dc8c9b970e91c38bb56997">00139</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;f64&gt;</a> <a class="code" href="a00246.html#ga2a4b3d9e62dc8c9b970e91c38bb56997" title="Double-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension)...">f64vec3</a>;
168 <a name="l00140"></a><a class="code" href="a00246.html#ga66999872051fdf1934199af093eedece">00140</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;f64&gt;</a> <a class="code" href="a00246.html#ga66999872051fdf1934199af093eedece" title="Double-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension)...">f64vec4</a>;
169 <a name="l00141"></a>00141
170 <a name="l00143"></a>00143 <span class="comment">// Float matrix types </span>
171 <a name="l00144"></a>00144
172 <a name="l00145"></a>00145 <span class="comment">//typedef f32 fmat1; //!&lt; \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
173 <a name="l00146"></a><a class="code" href="a00246.html#gaee87d6e282960e7c75bfb1371def1fc6">00146</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;f32&gt;</a> <a class="code" href="a00246.html#gaee87d6e282960e7c75bfb1371def1fc6" title="Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)">fmat2</a>;
174 <a name="l00147"></a><a class="code" href="a00246.html#ga885ab2670ad608f174889cc5779e814c">00147</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;f32&gt;</a> <a class="code" href="a00246.html#ga885ab2670ad608f174889cc5779e814c" title="Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)">fmat3</a>;
175 <a name="l00148"></a><a class="code" href="a00246.html#ga17a80f33494617743e6156e125c2333d">00148</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;f32&gt;</a> <a class="code" href="a00246.html#ga17a80f33494617743e6156e125c2333d" title="Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)">fmat4</a>;
176 <a name="l00149"></a>00149
177 <a name="l00150"></a>00150 <span class="comment">//typedef f32 fmat1x1; //!&lt; \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
178 <a name="l00151"></a><a class="code" href="a00246.html#ga1c9d98f605e9194e6febfc8c390f21e2">00151</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;f32&gt;</a> <a class="code" href="a00246.html#ga1c9d98f605e9194e6febfc8c390f21e2" title="Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)">fmat2x2</a>;
179 <a name="l00152"></a><a class="code" href="a00246.html#ga5a49e7e42cb7826309dfe5914ff7adb2">00152</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;f32&gt;</a> <a class="code" href="a00246.html#ga5a49e7e42cb7826309dfe5914ff7adb2" title="Single-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension)">fmat2x3</a>;
180 <a name="l00153"></a><a class="code" href="a00246.html#ga17af021ba84b81a88cd8ff5415737082">00153</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;f32&gt;</a> <a class="code" href="a00246.html#ga17af021ba84b81a88cd8ff5415737082" title="Single-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension)">fmat2x4</a>;
181 <a name="l00154"></a><a class="code" href="a00246.html#gabb5363b848026b7819e8df12f9eba807">00154</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;f32&gt;</a> <a class="code" href="a00246.html#gabb5363b848026b7819e8df12f9eba807" title="Single-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension)">fmat3x2</a>;
182 <a name="l00155"></a><a class="code" href="a00246.html#gae3cec4e7ffbfce5fc693f70693b67bdd">00155</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;f32&gt;</a> <a class="code" href="a00246.html#gae3cec4e7ffbfce5fc693f70693b67bdd" title="Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)">fmat3x3</a>;
183 <a name="l00156"></a><a class="code" href="a00246.html#ga8cc18a8db872ac321446a0ec76d0f4c9">00156</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;f32&gt;</a> <a class="code" href="a00246.html#ga8cc18a8db872ac321446a0ec76d0f4c9" title="Single-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension)">fmat3x4</a>;
184 <a name="l00157"></a><a class="code" href="a00246.html#ga730c05a1fd676cedcecd74595866bb35">00157</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;f32&gt;</a> <a class="code" href="a00246.html#ga730c05a1fd676cedcecd74595866bb35" title="Single-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension)">fmat4x2</a>;
185 <a name="l00158"></a><a class="code" href="a00246.html#gac9d68d8ad27aceea1814b96b1e8fc92e">00158</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;f32&gt;</a> <a class="code" href="a00246.html#gac9d68d8ad27aceea1814b96b1e8fc92e" title="Single-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension)">fmat4x3</a>;
186 <a name="l00159"></a><a class="code" href="a00246.html#ga5a1741d5e03b4a99ad1728a8e8c65a38">00159</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;f32&gt;</a> <a class="code" href="a00246.html#ga5a1741d5e03b4a99ad1728a8e8c65a38" title="Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)">fmat4x4</a>;
187 <a name="l00160"></a>00160
188 <a name="l00161"></a>00161 <span class="comment">//typedef f16 f16mat1; //!&lt; \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
189 <a name="l00162"></a><a class="code" href="a00246.html#gae16f41dbae14d92fb946080a0a868de9">00162</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;f16&gt;</a> <a class="code" href="a00246.html#gae16f41dbae14d92fb946080a0a868de9" title="Half-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)">f16mat2</a>;
190 <a name="l00163"></a><a class="code" href="a00246.html#ga3ada76173b353ee8615dcd70dbf7fe7f">00163</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;f16&gt;</a> <a class="code" href="a00246.html#ga3ada76173b353ee8615dcd70dbf7fe7f" title="Half-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)">f16mat3</a>;
191 <a name="l00164"></a><a class="code" href="a00246.html#gac12c1d9b5e7ef301c81b23cd555c5be9">00164</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;f16&gt;</a> <a class="code" href="a00246.html#gac12c1d9b5e7ef301c81b23cd555c5be9" title="Half-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)">f16mat4</a>;
192 <a name="l00165"></a>00165
193 <a name="l00166"></a>00166 <span class="comment">//typedef f16 f16mat1x1; //!&lt; \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
194 <a name="l00167"></a><a class="code" href="a00246.html#ga0251c24813cf14f31851e506ccaca8e3">00167</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;f16&gt;</a> <a class="code" href="a00246.html#ga0251c24813cf14f31851e506ccaca8e3" title="Half-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)">f16mat2x2</a>;
195 <a name="l00168"></a><a class="code" href="a00246.html#ga75b44fd9278b87d63926bf6cb83a90ce">00168</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;f16&gt;</a> <a class="code" href="a00246.html#ga75b44fd9278b87d63926bf6cb83a90ce" title="Half-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension)">f16mat2x3</a>;
196 <a name="l00169"></a><a class="code" href="a00246.html#ga5f7b279e5d36687a69f75cf2f95b64c5">00169</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;f16&gt;</a> <a class="code" href="a00246.html#ga5f7b279e5d36687a69f75cf2f95b64c5" title="Half-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension)">f16mat2x4</a>;
197 <a name="l00170"></a><a class="code" href="a00246.html#gacc55b3fc1bd509b96f5f291b019b0c3a">00170</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;f16&gt;</a> <a class="code" href="a00246.html#gacc55b3fc1bd509b96f5f291b019b0c3a" title="Half-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension)">f16mat3x2</a>;
198 <a name="l00171"></a><a class="code" href="a00246.html#ga4fe684c085caee45c79f6b8e2a8a498e">00171</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;f16&gt;</a> <a class="code" href="a00246.html#ga4fe684c085caee45c79f6b8e2a8a498e" title="Half-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)">f16mat3x3</a>;
199 <a name="l00172"></a><a class="code" href="a00246.html#gaeefd948e1360ef7fe65201482f07e379">00172</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;f16&gt;</a> <a class="code" href="a00246.html#gaeefd948e1360ef7fe65201482f07e379" title="Half-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension)">f16mat3x4</a>;
200 <a name="l00173"></a><a class="code" href="a00246.html#gad18e575d7bc47e6d696366712724c31a">00173</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;f16&gt;</a> <a class="code" href="a00246.html#gad18e575d7bc47e6d696366712724c31a" title="Half-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension)">f16mat4x2</a>;
201 <a name="l00174"></a><a class="code" href="a00246.html#ga38e54b583ed34891b3dc3fcd8f194a44">00174</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;f16&gt;</a> <a class="code" href="a00246.html#ga38e54b583ed34891b3dc3fcd8f194a44" title="Half-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension)">f16mat4x3</a>;
202 <a name="l00175"></a><a class="code" href="a00246.html#ga996f1e97233164dd076fad915b1f4b2a">00175</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;f16&gt;</a> <a class="code" href="a00246.html#ga996f1e97233164dd076fad915b1f4b2a" title="Half-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)">f16mat4x4</a>;
203 <a name="l00176"></a>00176
204 <a name="l00177"></a>00177 <span class="comment">//typedef f32 f32mat1; //!&lt; \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
205 <a name="l00178"></a><a class="code" href="a00246.html#gaaffc1dddbdfee9006f65dec7490cef35">00178</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;f32&gt;</a> <a class="code" href="a00246.html#gaaffc1dddbdfee9006f65dec7490cef35" title="Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)">f32mat2</a>;
206 <a name="l00179"></a><a class="code" href="a00246.html#ga2da36e87f1f319cd99d2870ab3be4799">00179</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;f32&gt;</a> <a class="code" href="a00246.html#ga2da36e87f1f319cd99d2870ab3be4799" title="Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)">f32mat3</a>;
207 <a name="l00180"></a><a class="code" href="a00246.html#gae84e6d0a740dbbefeb29c72ca93b9202">00180</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;f32&gt;</a> <a class="code" href="a00246.html#gae84e6d0a740dbbefeb29c72ca93b9202" title="Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)">f32mat4</a>;
208 <a name="l00181"></a>00181
209 <a name="l00182"></a>00182 <span class="comment">//typedef f32 f32mat1x1; //!&lt; \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
210 <a name="l00183"></a><a class="code" href="a00246.html#ga9b851abbec4f37c06604e5b612b764a3">00183</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;f32&gt;</a> <a class="code" href="a00246.html#ga9b851abbec4f37c06604e5b612b764a3" title="Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)">f32mat2x2</a>;
211 <a name="l00184"></a><a class="code" href="a00246.html#gabc06add14a487def0be0a88cb7191310">00184</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;f32&gt;</a> <a class="code" href="a00246.html#gabc06add14a487def0be0a88cb7191310" title="Single-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension)">f32mat2x3</a>;
212 <a name="l00185"></a><a class="code" href="a00246.html#gae7d246881a2b9bbf2933e9aa32c873f9">00185</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;f32&gt;</a> <a class="code" href="a00246.html#gae7d246881a2b9bbf2933e9aa32c873f9" title="Single-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension)">f32mat2x4</a>;
213 <a name="l00186"></a><a class="code" href="a00246.html#ga3c2727aca36e2f45f4eaabc06fe859e5">00186</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;f32&gt;</a> <a class="code" href="a00246.html#ga3c2727aca36e2f45f4eaabc06fe859e5" title="Single-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension)">f32mat3x2</a>;
214 <a name="l00187"></a><a class="code" href="a00246.html#gad60954ab0fcc5d2fdf2573be7d359920">00187</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;f32&gt;</a> <a class="code" href="a00246.html#gad60954ab0fcc5d2fdf2573be7d359920" title="Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)">f32mat3x3</a>;
215 <a name="l00188"></a><a class="code" href="a00246.html#ga76466bef28f20c754b6f25da8138033b">00188</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;f32&gt;</a> <a class="code" href="a00246.html#ga76466bef28f20c754b6f25da8138033b" title="Single-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension)">f32mat3x4</a>;
216 <a name="l00189"></a><a class="code" href="a00246.html#gaf81550e292ce3d4dd2c22960713188f3">00189</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;f32&gt;</a> <a class="code" href="a00246.html#gaf81550e292ce3d4dd2c22960713188f3" title="Single-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension)">f32mat4x2</a>;
217 <a name="l00190"></a><a class="code" href="a00246.html#ga0a78d326a35e18803e7ae7a49d2c738c">00190</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;f32&gt;</a> <a class="code" href="a00246.html#ga0a78d326a35e18803e7ae7a49d2c738c" title="Single-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension)">f32mat4x3</a>;
218 <a name="l00191"></a><a class="code" href="a00246.html#ga390ae17a61ddb8a7702cd92065754633">00191</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;f32&gt;</a> <a class="code" href="a00246.html#ga390ae17a61ddb8a7702cd92065754633" title="Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)">f32mat4x4</a>;
219 <a name="l00192"></a>00192
220 <a name="l00193"></a>00193 <span class="comment">//typedef f64 f64mat1; //!&lt; \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
221 <a name="l00194"></a><a class="code" href="a00246.html#ga8e6af45d08751da72ddb3c8380028d0b">00194</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;f64&gt;</a> <a class="code" href="a00246.html#ga8e6af45d08751da72ddb3c8380028d0b" title="Double-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)">f64mat2</a>;
222 <a name="l00195"></a><a class="code" href="a00246.html#gae394301075475e6759f0835a251d497e">00195</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;f64&gt;</a> <a class="code" href="a00246.html#gae394301075475e6759f0835a251d497e" title="Double-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)">f64mat3</a>;
223 <a name="l00196"></a><a class="code" href="a00246.html#ga4c6042a4ef0df9c92b94dd8a30df3f82">00196</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;f64&gt;</a> <a class="code" href="a00246.html#ga4c6042a4ef0df9c92b94dd8a30df3f82" title="Double-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)">f64mat4</a>;
224 <a name="l00197"></a>00197
225 <a name="l00198"></a>00198 <span class="comment">//typedef f64 f64mat1x1; //!&lt; \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
226 <a name="l00199"></a><a class="code" href="a00246.html#ga48dfaa0c23e89839f9fd43ae1d03f5de">00199</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;f64&gt;</a> <a class="code" href="a00246.html#ga48dfaa0c23e89839f9fd43ae1d03f5de" title="Double-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)">f64mat2x2</a>;
227 <a name="l00200"></a><a class="code" href="a00246.html#ga0ee61da67c73edc53648db680e0a6d59">00200</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;f64&gt;</a> <a class="code" href="a00246.html#ga0ee61da67c73edc53648db680e0a6d59" title="Double-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension)">f64mat2x3</a>;
228 <a name="l00201"></a><a class="code" href="a00246.html#ga95a3099cce2b620027a9164324787a14">00201</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;f64&gt;</a> <a class="code" href="a00246.html#ga95a3099cce2b620027a9164324787a14" title="Double-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension)">f64mat2x4</a>;
229 <a name="l00202"></a><a class="code" href="a00246.html#ga24ab90298c753e8da92ba333ef2f7f71">00202</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;f64&gt;</a> <a class="code" href="a00246.html#ga24ab90298c753e8da92ba333ef2f7f71" title="Double-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension)">f64mat3x2</a>;
230 <a name="l00203"></a><a class="code" href="a00246.html#ga5dfbb37bd5e0a221b1627172e052a168">00203</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;f64&gt;</a> <a class="code" href="a00246.html#ga5dfbb37bd5e0a221b1627172e052a168" title="Double-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)">f64mat3x3</a>;
231 <a name="l00204"></a><a class="code" href="a00246.html#gaecc98ee8c67aaca82e817d2cf4028cd7">00204</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;f64&gt;</a> <a class="code" href="a00246.html#gaecc98ee8c67aaca82e817d2cf4028cd7" title="Double-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension)">f64mat3x4</a>;
232 <a name="l00205"></a><a class="code" href="a00246.html#gac99d22a5ada54ab33aad0cd208d20e48">00205</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;f64&gt;</a> <a class="code" href="a00246.html#gac99d22a5ada54ab33aad0cd208d20e48" title="Double-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension)">f64mat4x2</a>;
233 <a name="l00206"></a><a class="code" href="a00246.html#ga1e10cbf50386189533011ef827204920">00206</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;f64&gt;</a> <a class="code" href="a00246.html#ga1e10cbf50386189533011ef827204920" title="Double-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension)">f64mat4x3</a>;
234 <a name="l00207"></a><a class="code" href="a00246.html#ga5efb4fb73bf79baf00cda64d318bfdb5">00207</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;f64&gt;</a> <a class="code" href="a00246.html#ga5efb4fb73bf79baf00cda64d318bfdb5" title="Double-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)">f64mat4x4</a>;
235 <a name="l00208"></a>00208
236 <a name="l00210"></a>00210 <span class="comment">// Float quaternion types </span>
74 <a name="l00043"></a><a class="code" href="a00245.html#ga41c6189f6485c2825d60fdc835b3a2b0">00043</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">detail::int8</a> <a class="code" href="a00245.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">int8</a>;
75 <a name="l00044"></a><a class="code" href="a00245.html#ga302041c186d0d028bea31b711fe16759">00044</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">detail::int16</a> <a class="code" href="a00245.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">int16</a>;
76 <a name="l00045"></a><a class="code" href="a00245.html#ga8df669f4e7698dfe0c0354d92578d74f">00045</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">detail::int32</a> <a class="code" href="a00245.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">int32</a>;
77 <a name="l00046"></a><a class="code" href="a00245.html#gaff5189f97f9e842d9636a0f240001b2e">00046</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">detail::int64</a> <a class="code" href="a00245.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">int64</a>;
78 <a name="l00047"></a>00047
79 <a name="l00048"></a><a class="code" href="a00245.html#ga112f99168645b5338136b72eddd12895">00048</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga41c6189f6485c2825d60fdc835b3a2b0" title="8bit signed integer. (from GLM_GTC_type_precision extension)">int8</a> <a class="code" href="a00245.html#ga112f99168645b5338136b72eddd12895" title="8bit signed integer. (from GLM_GTC_type_precision extension)">i8</a>;
80 <a name="l00049"></a><a class="code" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d">00049</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga302041c186d0d028bea31b711fe16759" title="16bit signed integer. (from GLM_GTC_type_precision extension)">int16</a> <a class="code" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d" title="16bit signed integer. (from GLM_GTC_type_precision extension)">i16</a>;
81 <a name="l00050"></a><a class="code" href="a00245.html#ga324db08ffb2a193f9a10864288b94523">00050</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga8df669f4e7698dfe0c0354d92578d74f" title="32bit signed integer. (from GLM_GTC_type_precision extension)">int32</a> <a class="code" href="a00245.html#ga324db08ffb2a193f9a10864288b94523" title="32bit signed integer. (from GLM_GTC_type_precision extension)">i32</a>;
82 <a name="l00051"></a><a class="code" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753">00051</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gaff5189f97f9e842d9636a0f240001b2e" title="64bit signed integer. (from GLM_GTC_type_precision extension)">int64</a> <a class="code" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753" title="64bit signed integer. (from GLM_GTC_type_precision extension)">i64</a>;
83 <a name="l00052"></a>00052
84 <a name="l00053"></a>00053 <span class="comment">//typedef i8 i8vec1; //!&lt; \brief 8bit signed integer scalar. (from GLM_GTC_type_precision extension)</span>
85 <a name="l00054"></a><a class="code" href="a00245.html#ga9ab3f26fa232d5a4d2397d7904eb9069">00054</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;i8&gt;</a> <a class="code" href="a00245.html#ga9ab3f26fa232d5a4d2397d7904eb9069" title="8bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">i8vec2</a>;
86 <a name="l00055"></a><a class="code" href="a00245.html#gaa8c91ad088bbbd51f2ef3b7701f00ed9">00055</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;i8&gt;</a> <a class="code" href="a00245.html#gaa8c91ad088bbbd51f2ef3b7701f00ed9" title="8bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)">i8vec3</a>;
87 <a name="l00056"></a><a class="code" href="a00245.html#ga792e1b3e596a020df28a8eb4ec3c0708">00056</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;i8&gt;</a> <a class="code" href="a00245.html#ga792e1b3e596a020df28a8eb4ec3c0708" title="8bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)">i8vec4</a>;
88 <a name="l00057"></a>00057
89 <a name="l00058"></a>00058 <span class="comment">//typedef i16 i16vec1; //!&lt; \brief 16bit signed integer scalar. (from GLM_GTC_type_precision extension)</span>
90 <a name="l00059"></a><a class="code" href="a00245.html#ga6a9c8e79629016f081cd3274eeafe429">00059</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;i16&gt;</a> <a class="code" href="a00245.html#ga6a9c8e79629016f081cd3274eeafe429" title="16bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">i16vec2</a>;
91 <a name="l00060"></a><a class="code" href="a00245.html#ga539ac09149e338c783bc492fd25d504c">00060</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;i16&gt;</a> <a class="code" href="a00245.html#ga539ac09149e338c783bc492fd25d504c" title="16bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)">i16vec3</a>;
92 <a name="l00061"></a><a class="code" href="a00245.html#ga09c99e80eb63c8df7a9cc4021c8a2811">00061</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;i16&gt;</a> <a class="code" href="a00245.html#ga09c99e80eb63c8df7a9cc4021c8a2811" title="16bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)">i16vec4</a>;
93 <a name="l00062"></a>00062
94 <a name="l00063"></a>00063 <span class="comment">//typedef i32 i32vec1; //!&lt; \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension)</span>
95 <a name="l00064"></a><a class="code" href="a00245.html#ga587a33330386e50f7ff9a870f1b62ab1">00064</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;i32&gt;</a> <a class="code" href="a00245.html#ga587a33330386e50f7ff9a870f1b62ab1" title="32bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">i32vec2</a>;
96 <a name="l00065"></a><a class="code" href="a00245.html#gae8b7bb7698c98fb69f2a4aff8a757416">00065</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;i32&gt;</a> <a class="code" href="a00245.html#gae8b7bb7698c98fb69f2a4aff8a757416" title="32bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)">i32vec3</a>;
97 <a name="l00066"></a><a class="code" href="a00245.html#gaa82f1d2958dfcc463a2498d52ee80a0a">00066</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;i32&gt;</a> <a class="code" href="a00245.html#gaa82f1d2958dfcc463a2498d52ee80a0a" title="32bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)">i32vec4</a>;
98 <a name="l00067"></a>00067
99 <a name="l00068"></a>00068 <span class="comment">//typedef i64 i64vec1; //!&lt; \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension)</span>
100 <a name="l00069"></a><a class="code" href="a00245.html#ga7a6245c652f68ba306c05bb0d4ca1361">00069</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;i64&gt;</a> <a class="code" href="a00245.html#ga7a6245c652f68ba306c05bb0d4ca1361" title="64bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)">i64vec2</a>;
101 <a name="l00070"></a><a class="code" href="a00245.html#ga78ad50b24382913ef6068ded644c9f3f">00070</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;i64&gt;</a> <a class="code" href="a00245.html#ga78ad50b24382913ef6068ded644c9f3f" title="64bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)">i64vec3</a>;
102 <a name="l00071"></a><a class="code" href="a00245.html#ga8392ac39a51731ab9a5b3f23a5eaf1d7">00071</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;i64&gt;</a> <a class="code" href="a00245.html#ga8392ac39a51731ab9a5b3f23a5eaf1d7" title="64bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)">i64vec4</a>;
103 <a name="l00072"></a>00072
104 <a name="l00074"></a>00074 <span class="comment">// Unsigned int vector types </span>
105 <a name="l00075"></a>00075
106 <a name="l00076"></a><a class="code" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865">00076</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint8</a> <a class="code" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">uint8</a>;
107 <a name="l00077"></a><a class="code" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d">00077</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint16</a> <a class="code" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">uint16</a>;
108 <a name="l00078"></a><a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d">00078</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint32</a> <a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">uint32</a>;
109 <a name="l00079"></a><a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c">00079</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">detail::uint64</a> <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">uint64</a>;
110 <a name="l00080"></a>00080
111 <a name="l00081"></a><a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4">00081</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">uint8</a> <a class="code" href="a00245.html#gad8d9dbef83392da434801486bf814fe4" title="8bit unsigned integer. (from GLM_GTC_type_precision extension)">u8</a>;
112 <a name="l00082"></a><a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a">00082</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">uint16</a> <a class="code" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a" title="16bit unsigned integer. (from GLM_GTC_type_precision extension)">u16</a>;
113 <a name="l00083"></a><a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">00083</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">uint32</a> <a class="code" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722" title="32bit unsigned integer. (from GLM_GTC_type_precision extension)">u32</a>;
114 <a name="l00084"></a><a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0">00084</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gab630f76c26b50298187f7889104d4b9c" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">uint64</a> <a class="code" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0" title="64bit unsigned integer. (from GLM_GTC_type_precision extension)">u64</a>;
115 <a name="l00085"></a>00085
116 <a name="l00086"></a>00086 <span class="comment">//typedef u8 u8vec1; //!&lt; \brief 8bit unsigned integer scalar. (from GLM_GTC_type_precision extension)</span>
117 <a name="l00087"></a><a class="code" href="a00245.html#ga8f78a1ea21be24a89da31928fc037bfd">00087</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;u8&gt;</a> <a class="code" href="a00245.html#ga8f78a1ea21be24a89da31928fc037bfd" title="8bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)">u8vec2</a>;
118 <a name="l00088"></a><a class="code" href="a00245.html#ga7a4cb62a556ad09c7e0721aecac64dbd">00088</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;u8&gt;</a> <a class="code" href="a00245.html#ga7a4cb62a556ad09c7e0721aecac64dbd" title="8bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)">u8vec3</a>;
119 <a name="l00089"></a><a class="code" href="a00245.html#ga83091381b9b909057004c4de7896d072">00089</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;u8&gt;</a> <a class="code" href="a00245.html#ga83091381b9b909057004c4de7896d072" title="8bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)">u8vec4</a>;
120 <a name="l00090"></a>00090
121 <a name="l00091"></a>00091 <span class="comment">//typedef u16 u16vec1; //!&lt; \brief 16bit unsigned integer scalar. (from GLM_GTC_type_precision extension)</span>
122 <a name="l00092"></a><a class="code" href="a00245.html#ga63f78111033fd19335588c549fcc0512">00092</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;u16&gt;</a> <a class="code" href="a00245.html#ga63f78111033fd19335588c549fcc0512" title="16bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)">u16vec2</a>;
123 <a name="l00093"></a><a class="code" href="a00245.html#ga53d4785d0f40c66bf58b315dd1122fe4">00093</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;u16&gt;</a> <a class="code" href="a00245.html#ga53d4785d0f40c66bf58b315dd1122fe4" title="16bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)">u16vec3</a>;
124 <a name="l00094"></a><a class="code" href="a00245.html#ga0331a2b68ce5f72a450f6d45c90f7709">00094</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;u16&gt;</a> <a class="code" href="a00245.html#ga0331a2b68ce5f72a450f6d45c90f7709" title="16bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)">u16vec4</a>;
125 <a name="l00095"></a>00095
126 <a name="l00096"></a>00096 <span class="comment">//typedef u32 u32vec1; //!&lt; \brief 32bit unsigned integer scalar. (from GLM_GTC_type_precision extension)</span>
127 <a name="l00097"></a><a class="code" href="a00245.html#gaae1d6aa5d86a2744294b97e05b623e29">00097</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;u32&gt;</a> <a class="code" href="a00245.html#gaae1d6aa5d86a2744294b97e05b623e29" title="32bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)">u32vec2</a>;
128 <a name="l00098"></a><a class="code" href="a00245.html#gae013bd205f900d8ac3d783e62c9fa294">00098</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;u32&gt;</a> <a class="code" href="a00245.html#gae013bd205f900d8ac3d783e62c9fa294" title="32bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)">u32vec3</a>;
129 <a name="l00099"></a><a class="code" href="a00245.html#gac61f03e72cbcace4582b0c11859f54c7">00099</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;u32&gt;</a> <a class="code" href="a00245.html#gac61f03e72cbcace4582b0c11859f54c7" title="32bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)">u32vec4</a>;
130 <a name="l00100"></a>00100
131 <a name="l00101"></a>00101 <span class="comment">//typedef u64 u64vec1; //!&lt; \brief 64bit unsigned integer scalar. (from GLM_GTC_type_precision extension)</span>
132 <a name="l00102"></a><a class="code" href="a00245.html#ga98265c5d66ab4bf19f4242746233526c">00102</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;u64&gt;</a> <a class="code" href="a00245.html#ga98265c5d66ab4bf19f4242746233526c" title="64bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)">u64vec2</a>;
133 <a name="l00103"></a><a class="code" href="a00245.html#ga470cfa496aae49e63c5becee347651a1">00103</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;u64&gt;</a> <a class="code" href="a00245.html#ga470cfa496aae49e63c5becee347651a1" title="64bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)">u64vec3</a>;
134 <a name="l00104"></a><a class="code" href="a00245.html#ga34a421d3df867266c9437dc00897edeb">00104</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;u64&gt;</a> <a class="code" href="a00245.html#ga34a421d3df867266c9437dc00897edeb" title="64bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)">u64vec4</a>;
135 <a name="l00105"></a>00105
136 <a name="l00107"></a>00107 <span class="comment">// Float vector types </span>
137 <a name="l00108"></a>00108
138 <a name="l00109"></a><a class="code" href="a00245.html#ga19287ee46bd37d1459731d7191bc2f66">00109</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga19287ee46bd37d1459731d7191bc2f66" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float16</a> <a class="code" href="a00245.html#ga19287ee46bd37d1459731d7191bc2f66" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">float16</a>;
139 <a name="l00110"></a><a class="code" href="a00245.html#gad3c127f8bf8d7d4e738037c257abb5b1">00110</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float32</a> <a class="code" href="a00245.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">float32</a>;
140 <a name="l00111"></a><a class="code" href="a00245.html#gab5596d48586414c91ccb270962dc14d3">00111</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gab5596d48586414c91ccb270962dc14d3" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">detail::float64</a> <a class="code" href="a00245.html#gab5596d48586414c91ccb270962dc14d3" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">float64</a>;
141 <a name="l00112"></a>00112
142 <a name="l00113"></a><a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">00113</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#ga19287ee46bd37d1459731d7191bc2f66" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">float16</a> <a class="code" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f16</a>;
143 <a name="l00114"></a><a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">00114</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gad3c127f8bf8d7d4e738037c257abb5b1" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">float32</a> <a class="code" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f32</a>;
144 <a name="l00115"></a><a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">00115</a> <span class="keyword">typedef</span> <a class="code" href="a00245.html#gab5596d48586414c91ccb270962dc14d3" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">float64</a> <a class="code" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9" title="Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)">f64</a>;
145 <a name="l00116"></a>00116
146 <a name="l00117"></a><a class="code" href="a00245.html#gaeb3201411f8933fae30fe36b3fb1db90">00117</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;float&gt;</a> <a class="code" href="a00245.html#gaeb3201411f8933fae30fe36b3fb1db90" title="Vector of 2 single-precision floating-point numbers. (from GLM_GTC_type_precision extension)...">fvec2</a>;
147 <a name="l00118"></a><a class="code" href="a00245.html#ga36d8bc27da6e04285ab3b11d0af061b0">00118</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;float&gt;</a> <a class="code" href="a00245.html#ga36d8bc27da6e04285ab3b11d0af061b0" title="Vector of 3 single-precision floating-point numbers. (from GLM_GTC_type_precision extension)...">fvec3</a>;
148 <a name="l00119"></a><a class="code" href="a00245.html#gac8e4776e86d01ed43b2dce32db2c72ba">00119</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;float&gt;</a> <a class="code" href="a00245.html#gac8e4776e86d01ed43b2dce32db2c72ba" title="Vector of 4 single-precision floating-point numbers. (from GLM_GTC_type_precision extension)...">fvec4</a>;
149 <a name="l00120"></a>00120
150 <a name="l00121"></a>00121 <span class="comment">//typedef f16 f16vec1; //!&lt; \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
151 <a name="l00122"></a><a class="code" href="a00245.html#gac29c0992aa0fe2df8f9b6b9edc220822">00122</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;f16&gt;</a> <a class="code" href="a00245.html#gac29c0992aa0fe2df8f9b6b9edc220822" title="Half-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension)...">f16vec2</a>;
152 <a name="l00123"></a><a class="code" href="a00245.html#gaa68a583d3e3b202e1b48c7bc94964c78">00123</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;f16&gt;</a> <a class="code" href="a00245.html#gaa68a583d3e3b202e1b48c7bc94964c78" title="Half-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension)...">f16vec3</a>;
153 <a name="l00124"></a><a class="code" href="a00245.html#gae77767db0311f307255a057fd7358704">00124</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;f16&gt;</a> <a class="code" href="a00245.html#gae77767db0311f307255a057fd7358704" title="Half-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension)...">f16vec4</a>;
154 <a name="l00125"></a>00125
155 <a name="l00126"></a>00126 <span class="comment">//typedef f32 f32vec1; //!&lt; \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
156 <a name="l00127"></a><a class="code" href="a00245.html#ga6a1674122ce80c7f3b77ddbc85b4d9f1">00127</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;f32&gt;</a> <a class="code" href="a00245.html#ga6a1674122ce80c7f3b77ddbc85b4d9f1" title="Single-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension)...">f32vec2</a>;
157 <a name="l00128"></a><a class="code" href="a00245.html#ga81353c6a9b282b2b34185306a40040ad">00128</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;f32&gt;</a> <a class="code" href="a00245.html#ga81353c6a9b282b2b34185306a40040ad" title="Single-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension)...">f32vec3</a>;
158 <a name="l00129"></a><a class="code" href="a00245.html#ga58dbce28a4d4b0d72c239cf3069bd28b">00129</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;f32&gt;</a> <a class="code" href="a00245.html#ga58dbce28a4d4b0d72c239cf3069bd28b" title="Single-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension)...">f32vec4</a>;
159 <a name="l00130"></a>00130
160 <a name="l00131"></a>00131 <span class="comment">//typedef f64 f64vec1; //!&lt; \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
161 <a name="l00132"></a><a class="code" href="a00245.html#ga1de31e7b24d714613b83fb704b8b1fd1">00132</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;f64&gt;</a> <a class="code" href="a00245.html#ga1de31e7b24d714613b83fb704b8b1fd1" title="Double-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension)...">f64vec2</a>;
162 <a name="l00133"></a><a class="code" href="a00245.html#ga2a4b3d9e62dc8c9b970e91c38bb56997">00133</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;f64&gt;</a> <a class="code" href="a00245.html#ga2a4b3d9e62dc8c9b970e91c38bb56997" title="Double-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension)...">f64vec3</a>;
163 <a name="l00134"></a><a class="code" href="a00245.html#ga66999872051fdf1934199af093eedece">00134</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;f64&gt;</a> <a class="code" href="a00245.html#ga66999872051fdf1934199af093eedece" title="Double-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension)...">f64vec4</a>;
164 <a name="l00135"></a>00135
165 <a name="l00137"></a>00137 <span class="comment">// Float matrix types </span>
166 <a name="l00138"></a>00138
167 <a name="l00139"></a>00139 <span class="comment">//typedef f32 fmat1; //!&lt; \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
168 <a name="l00140"></a><a class="code" href="a00245.html#gaee87d6e282960e7c75bfb1371def1fc6">00140</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;f32&gt;</a> <a class="code" href="a00245.html#gaee87d6e282960e7c75bfb1371def1fc6" title="Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)">fmat2</a>;
169 <a name="l00141"></a><a class="code" href="a00245.html#ga885ab2670ad608f174889cc5779e814c">00141</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;f32&gt;</a> <a class="code" href="a00245.html#ga885ab2670ad608f174889cc5779e814c" title="Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)">fmat3</a>;
170 <a name="l00142"></a><a class="code" href="a00245.html#ga17a80f33494617743e6156e125c2333d">00142</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;f32&gt;</a> <a class="code" href="a00245.html#ga17a80f33494617743e6156e125c2333d" title="Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)">fmat4</a>;
171 <a name="l00143"></a>00143
172 <a name="l00144"></a>00144 <span class="comment">//typedef f32 fmat1x1; //!&lt; \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
173 <a name="l00145"></a><a class="code" href="a00245.html#ga1c9d98f605e9194e6febfc8c390f21e2">00145</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;f32&gt;</a> <a class="code" href="a00245.html#ga1c9d98f605e9194e6febfc8c390f21e2" title="Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)">fmat2x2</a>;
174 <a name="l00146"></a><a class="code" href="a00245.html#ga5a49e7e42cb7826309dfe5914ff7adb2">00146</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;f32&gt;</a> <a class="code" href="a00245.html#ga5a49e7e42cb7826309dfe5914ff7adb2" title="Single-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension)">fmat2x3</a>;
175 <a name="l00147"></a><a class="code" href="a00245.html#ga17af021ba84b81a88cd8ff5415737082">00147</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;f32&gt;</a> <a class="code" href="a00245.html#ga17af021ba84b81a88cd8ff5415737082" title="Single-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension)">fmat2x4</a>;
176 <a name="l00148"></a><a class="code" href="a00245.html#gabb5363b848026b7819e8df12f9eba807">00148</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;f32&gt;</a> <a class="code" href="a00245.html#gabb5363b848026b7819e8df12f9eba807" title="Single-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension)">fmat3x2</a>;
177 <a name="l00149"></a><a class="code" href="a00245.html#gae3cec4e7ffbfce5fc693f70693b67bdd">00149</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;f32&gt;</a> <a class="code" href="a00245.html#gae3cec4e7ffbfce5fc693f70693b67bdd" title="Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)">fmat3x3</a>;
178 <a name="l00150"></a><a class="code" href="a00245.html#ga8cc18a8db872ac321446a0ec76d0f4c9">00150</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;f32&gt;</a> <a class="code" href="a00245.html#ga8cc18a8db872ac321446a0ec76d0f4c9" title="Single-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension)">fmat3x4</a>;
179 <a name="l00151"></a><a class="code" href="a00245.html#ga730c05a1fd676cedcecd74595866bb35">00151</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;f32&gt;</a> <a class="code" href="a00245.html#ga730c05a1fd676cedcecd74595866bb35" title="Single-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension)">fmat4x2</a>;
180 <a name="l00152"></a><a class="code" href="a00245.html#gac9d68d8ad27aceea1814b96b1e8fc92e">00152</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;f32&gt;</a> <a class="code" href="a00245.html#gac9d68d8ad27aceea1814b96b1e8fc92e" title="Single-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension)">fmat4x3</a>;
181 <a name="l00153"></a><a class="code" href="a00245.html#ga5a1741d5e03b4a99ad1728a8e8c65a38">00153</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;f32&gt;</a> <a class="code" href="a00245.html#ga5a1741d5e03b4a99ad1728a8e8c65a38" title="Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)">fmat4x4</a>;
182 <a name="l00154"></a>00154
183 <a name="l00155"></a>00155 <span class="comment">//typedef f16 f16mat1; //!&lt; \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
184 <a name="l00156"></a><a class="code" href="a00245.html#gae16f41dbae14d92fb946080a0a868de9">00156</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;f16&gt;</a> <a class="code" href="a00245.html#gae16f41dbae14d92fb946080a0a868de9" title="Half-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)">f16mat2</a>;
185 <a name="l00157"></a><a class="code" href="a00245.html#ga3ada76173b353ee8615dcd70dbf7fe7f">00157</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;f16&gt;</a> <a class="code" href="a00245.html#ga3ada76173b353ee8615dcd70dbf7fe7f" title="Half-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)">f16mat3</a>;
186 <a name="l00158"></a><a class="code" href="a00245.html#gac12c1d9b5e7ef301c81b23cd555c5be9">00158</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;f16&gt;</a> <a class="code" href="a00245.html#gac12c1d9b5e7ef301c81b23cd555c5be9" title="Half-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)">f16mat4</a>;
187 <a name="l00159"></a>00159
188 <a name="l00160"></a>00160 <span class="comment">//typedef f16 f16mat1x1; //!&lt; \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
189 <a name="l00161"></a><a class="code" href="a00245.html#ga0251c24813cf14f31851e506ccaca8e3">00161</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;f16&gt;</a> <a class="code" href="a00245.html#ga0251c24813cf14f31851e506ccaca8e3" title="Half-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)">f16mat2x2</a>;
190 <a name="l00162"></a><a class="code" href="a00245.html#ga75b44fd9278b87d63926bf6cb83a90ce">00162</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;f16&gt;</a> <a class="code" href="a00245.html#ga75b44fd9278b87d63926bf6cb83a90ce" title="Half-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension)">f16mat2x3</a>;
191 <a name="l00163"></a><a class="code" href="a00245.html#ga5f7b279e5d36687a69f75cf2f95b64c5">00163</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;f16&gt;</a> <a class="code" href="a00245.html#ga5f7b279e5d36687a69f75cf2f95b64c5" title="Half-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension)">f16mat2x4</a>;
192 <a name="l00164"></a><a class="code" href="a00245.html#gacc55b3fc1bd509b96f5f291b019b0c3a">00164</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;f16&gt;</a> <a class="code" href="a00245.html#gacc55b3fc1bd509b96f5f291b019b0c3a" title="Half-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension)">f16mat3x2</a>;
193 <a name="l00165"></a><a class="code" href="a00245.html#ga4fe684c085caee45c79f6b8e2a8a498e">00165</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;f16&gt;</a> <a class="code" href="a00245.html#ga4fe684c085caee45c79f6b8e2a8a498e" title="Half-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)">f16mat3x3</a>;
194 <a name="l00166"></a><a class="code" href="a00245.html#gaeefd948e1360ef7fe65201482f07e379">00166</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;f16&gt;</a> <a class="code" href="a00245.html#gaeefd948e1360ef7fe65201482f07e379" title="Half-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension)">f16mat3x4</a>;
195 <a name="l00167"></a><a class="code" href="a00245.html#gad18e575d7bc47e6d696366712724c31a">00167</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;f16&gt;</a> <a class="code" href="a00245.html#gad18e575d7bc47e6d696366712724c31a" title="Half-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension)">f16mat4x2</a>;
196 <a name="l00168"></a><a class="code" href="a00245.html#ga38e54b583ed34891b3dc3fcd8f194a44">00168</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;f16&gt;</a> <a class="code" href="a00245.html#ga38e54b583ed34891b3dc3fcd8f194a44" title="Half-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension)">f16mat4x3</a>;
197 <a name="l00169"></a><a class="code" href="a00245.html#ga996f1e97233164dd076fad915b1f4b2a">00169</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;f16&gt;</a> <a class="code" href="a00245.html#ga996f1e97233164dd076fad915b1f4b2a" title="Half-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)">f16mat4x4</a>;
198 <a name="l00170"></a>00170
199 <a name="l00171"></a>00171 <span class="comment">//typedef f32 f32mat1; //!&lt; \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
200 <a name="l00172"></a><a class="code" href="a00245.html#gaaffc1dddbdfee9006f65dec7490cef35">00172</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;f32&gt;</a> <a class="code" href="a00245.html#gaaffc1dddbdfee9006f65dec7490cef35" title="Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)">f32mat2</a>;
201 <a name="l00173"></a><a class="code" href="a00245.html#ga2da36e87f1f319cd99d2870ab3be4799">00173</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;f32&gt;</a> <a class="code" href="a00245.html#ga2da36e87f1f319cd99d2870ab3be4799" title="Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)">f32mat3</a>;
202 <a name="l00174"></a><a class="code" href="a00245.html#gae84e6d0a740dbbefeb29c72ca93b9202">00174</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;f32&gt;</a> <a class="code" href="a00245.html#gae84e6d0a740dbbefeb29c72ca93b9202" title="Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)">f32mat4</a>;
203 <a name="l00175"></a>00175
204 <a name="l00176"></a>00176 <span class="comment">//typedef f32 f32mat1x1; //!&lt; \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
205 <a name="l00177"></a><a class="code" href="a00245.html#ga9b851abbec4f37c06604e5b612b764a3">00177</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;f32&gt;</a> <a class="code" href="a00245.html#ga9b851abbec4f37c06604e5b612b764a3" title="Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)">f32mat2x2</a>;
206 <a name="l00178"></a><a class="code" href="a00245.html#gabc06add14a487def0be0a88cb7191310">00178</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;f32&gt;</a> <a class="code" href="a00245.html#gabc06add14a487def0be0a88cb7191310" title="Single-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension)">f32mat2x3</a>;
207 <a name="l00179"></a><a class="code" href="a00245.html#gae7d246881a2b9bbf2933e9aa32c873f9">00179</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;f32&gt;</a> <a class="code" href="a00245.html#gae7d246881a2b9bbf2933e9aa32c873f9" title="Single-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension)">f32mat2x4</a>;
208 <a name="l00180"></a><a class="code" href="a00245.html#ga3c2727aca36e2f45f4eaabc06fe859e5">00180</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;f32&gt;</a> <a class="code" href="a00245.html#ga3c2727aca36e2f45f4eaabc06fe859e5" title="Single-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension)">f32mat3x2</a>;
209 <a name="l00181"></a><a class="code" href="a00245.html#gad60954ab0fcc5d2fdf2573be7d359920">00181</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;f32&gt;</a> <a class="code" href="a00245.html#gad60954ab0fcc5d2fdf2573be7d359920" title="Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)">f32mat3x3</a>;
210 <a name="l00182"></a><a class="code" href="a00245.html#ga76466bef28f20c754b6f25da8138033b">00182</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;f32&gt;</a> <a class="code" href="a00245.html#ga76466bef28f20c754b6f25da8138033b" title="Single-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension)">f32mat3x4</a>;
211 <a name="l00183"></a><a class="code" href="a00245.html#gaf81550e292ce3d4dd2c22960713188f3">00183</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;f32&gt;</a> <a class="code" href="a00245.html#gaf81550e292ce3d4dd2c22960713188f3" title="Single-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension)">f32mat4x2</a>;
212 <a name="l00184"></a><a class="code" href="a00245.html#ga0a78d326a35e18803e7ae7a49d2c738c">00184</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;f32&gt;</a> <a class="code" href="a00245.html#ga0a78d326a35e18803e7ae7a49d2c738c" title="Single-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension)">f32mat4x3</a>;
213 <a name="l00185"></a><a class="code" href="a00245.html#ga390ae17a61ddb8a7702cd92065754633">00185</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;f32&gt;</a> <a class="code" href="a00245.html#ga390ae17a61ddb8a7702cd92065754633" title="Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)">f32mat4x4</a>;
214 <a name="l00186"></a>00186
215 <a name="l00187"></a>00187 <span class="comment">//typedef f64 f64mat1; //!&lt; \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
216 <a name="l00188"></a><a class="code" href="a00245.html#ga8e6af45d08751da72ddb3c8380028d0b">00188</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;f64&gt;</a> <a class="code" href="a00245.html#ga8e6af45d08751da72ddb3c8380028d0b" title="Double-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)">f64mat2</a>;
217 <a name="l00189"></a><a class="code" href="a00245.html#gae394301075475e6759f0835a251d497e">00189</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;f64&gt;</a> <a class="code" href="a00245.html#gae394301075475e6759f0835a251d497e" title="Double-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)">f64mat3</a>;
218 <a name="l00190"></a><a class="code" href="a00245.html#ga4c6042a4ef0df9c92b94dd8a30df3f82">00190</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;f64&gt;</a> <a class="code" href="a00245.html#ga4c6042a4ef0df9c92b94dd8a30df3f82" title="Double-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)">f64mat4</a>;
219 <a name="l00191"></a>00191
220 <a name="l00192"></a>00192 <span class="comment">//typedef f64 f64mat1x1; //!&lt; \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)</span>
221 <a name="l00193"></a><a class="code" href="a00245.html#ga48dfaa0c23e89839f9fd43ae1d03f5de">00193</a> <span class="keyword">typedef</span> <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;f64&gt;</a> <a class="code" href="a00245.html#ga48dfaa0c23e89839f9fd43ae1d03f5de" title="Double-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)">f64mat2x2</a>;
222 <a name="l00194"></a><a class="code" href="a00245.html#ga0ee61da67c73edc53648db680e0a6d59">00194</a> <span class="keyword">typedef</span> <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;f64&gt;</a> <a class="code" href="a00245.html#ga0ee61da67c73edc53648db680e0a6d59" title="Double-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension)">f64mat2x3</a>;
223 <a name="l00195"></a><a class="code" href="a00245.html#ga95a3099cce2b620027a9164324787a14">00195</a> <span class="keyword">typedef</span> <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;f64&gt;</a> <a class="code" href="a00245.html#ga95a3099cce2b620027a9164324787a14" title="Double-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension)">f64mat2x4</a>;
224 <a name="l00196"></a><a class="code" href="a00245.html#ga24ab90298c753e8da92ba333ef2f7f71">00196</a> <span class="keyword">typedef</span> <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;f64&gt;</a> <a class="code" href="a00245.html#ga24ab90298c753e8da92ba333ef2f7f71" title="Double-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension)">f64mat3x2</a>;
225 <a name="l00197"></a><a class="code" href="a00245.html#ga5dfbb37bd5e0a221b1627172e052a168">00197</a> <span class="keyword">typedef</span> <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;f64&gt;</a> <a class="code" href="a00245.html#ga5dfbb37bd5e0a221b1627172e052a168" title="Double-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)">f64mat3x3</a>;
226 <a name="l00198"></a><a class="code" href="a00245.html#gaecc98ee8c67aaca82e817d2cf4028cd7">00198</a> <span class="keyword">typedef</span> <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;f64&gt;</a> <a class="code" href="a00245.html#gaecc98ee8c67aaca82e817d2cf4028cd7" title="Double-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension)">f64mat3x4</a>;
227 <a name="l00199"></a><a class="code" href="a00245.html#gac99d22a5ada54ab33aad0cd208d20e48">00199</a> <span class="keyword">typedef</span> <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;f64&gt;</a> <a class="code" href="a00245.html#gac99d22a5ada54ab33aad0cd208d20e48" title="Double-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension)">f64mat4x2</a>;
228 <a name="l00200"></a><a class="code" href="a00245.html#ga1e10cbf50386189533011ef827204920">00200</a> <span class="keyword">typedef</span> <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;f64&gt;</a> <a class="code" href="a00245.html#ga1e10cbf50386189533011ef827204920" title="Double-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension)">f64mat4x3</a>;
229 <a name="l00201"></a><a class="code" href="a00245.html#ga5efb4fb73bf79baf00cda64d318bfdb5">00201</a> <span class="keyword">typedef</span> <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;f64&gt;</a> <a class="code" href="a00245.html#ga5efb4fb73bf79baf00cda64d318bfdb5" title="Double-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)">f64mat4x4</a>;
230 <a name="l00202"></a>00202
231 <a name="l00204"></a>00204 <span class="comment">// Float quaternion types </span>
232 <a name="l00205"></a>00205
233 <a name="l00206"></a><a class="code" href="a00245.html#ga38cc7dfd875fb2a5d07101972bf96bfb">00206</a> <span class="keyword">typedef</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;f16&gt;</a> <a class="code" href="a00245.html#ga38cc7dfd875fb2a5d07101972bf96bfb" title="Half-precision floating-point quaternion. (from GLM_GTC_type_precision extension)">f16quat</a>;
234 <a name="l00207"></a><a class="code" href="a00245.html#gad073de7365e4b6771de824b18b0ea7a9">00207</a> <span class="keyword">typedef</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;f32&gt;</a> <a class="code" href="a00245.html#gad073de7365e4b6771de824b18b0ea7a9" title="Single-precision floating-point quaternion. (from GLM_GTC_type_precision extension)">f32quat</a>;
235 <a name="l00208"></a><a class="code" href="a00245.html#ga38a458ff317f21cf58ceed99dde5daaa">00208</a> <span class="keyword">typedef</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;f64&gt;</a> <a class="code" href="a00245.html#ga38a458ff317f21cf58ceed99dde5daaa" title="Double-precision floating-point quaternion. (from GLM_GTC_type_precision extension)">f64quat</a>;
236 <a name="l00209"></a>00209
237237 <a name="l00211"></a>00211
238 <a name="l00212"></a><a class="code" href="a00246.html#ga38cc7dfd875fb2a5d07101972bf96bfb">00212</a> <span class="keyword">typedef</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;f16&gt;</a> <a class="code" href="a00246.html#ga38cc7dfd875fb2a5d07101972bf96bfb" title="Half-precision floating-point quaternion. (from GLM_GTC_type_precision extension)">f16quat</a>;
239 <a name="l00213"></a><a class="code" href="a00246.html#gad073de7365e4b6771de824b18b0ea7a9">00213</a> <span class="keyword">typedef</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;f32&gt;</a> <a class="code" href="a00246.html#gad073de7365e4b6771de824b18b0ea7a9" title="Single-precision floating-point quaternion. (from GLM_GTC_type_precision extension)">f32quat</a>;
240 <a name="l00214"></a><a class="code" href="a00246.html#ga38a458ff317f21cf58ceed99dde5daaa">00214</a> <span class="keyword">typedef</span> <a class="code" href="a00019.html" title="Template for quaternion.">detail::tquat&lt;f64&gt;</a> <a class="code" href="a00246.html#ga38a458ff317f21cf58ceed99dde5daaa" title="Double-precision floating-point quaternion. (from GLM_GTC_type_precision extension)">f64quat</a>;
238 <a name="l00212"></a>00212 }<span class="comment">//namespace type_precision</span>
239 <a name="l00213"></a>00213 }<span class="comment">//namespace gtc</span>
240 <a name="l00214"></a>00214 }<span class="comment">//namespace glm</span>
241241 <a name="l00215"></a>00215
242 <a name="l00216"></a>00216 <span class="preprocessor">#include &quot;type_precision.inl&quot;</span>
242243 <a name="l00217"></a>00217
243 <a name="l00218"></a>00218 }<span class="comment">//namespace type_precision</span>
244 <a name="l00219"></a>00219 }<span class="comment">//namespace gtc</span>
245 <a name="l00220"></a>00220 }<span class="comment">//namespace glm</span>
246 <a name="l00221"></a>00221
247 <a name="l00222"></a>00222 <span class="preprocessor">#include &quot;type_precision.inl&quot;</span>
248 <a name="l00223"></a>00223
249 <a name="l00224"></a>00224 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::type_precision;}
250 <a name="l00225"></a>00225
251 <a name="l00226"></a>00226 <span class="preprocessor">#endif//glm_gtc_type_precision</span>
244 <a name="l00218"></a>00218 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::type_precision;}
245 <a name="l00219"></a>00219
246 <a name="l00220"></a>00220 <span class="preprocessor">#endif//glm_gtc_type_precision</span>
252247 </pre></div></div>
253248 </div>
254249 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_type_ptr extension included&quot;)</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span>
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm
60 <a name="l00025"></a>00025 {
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>test{
62 <a name="l00027"></a>00027 <span class="keywordtype">void</span> main_gtc_type_ptr();
63 <a name="l00028"></a>00028 }<span class="comment">//namespace test</span>
64 <a name="l00029"></a>00029
65 <a name="l00030"></a>00030 <span class="keyword">namespace </span>gtc{
66 <a name="l00032"></a><a class="code" href="a00167.html">00032</a> <span class="keyword">namespace </span>type_ptr{
67 <a name="l00033"></a>00033
68 <a name="l00036"></a>00036
69 <a name="l00039"></a>00039 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
70 <a name="l00040"></a>00040 GLM_FUNC_QUALIFIER T <span class="keyword">const</span> * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
71 <a name="l00041"></a><a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08">00041</a> (
72 <a name="l00042"></a>00042 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; vec
73 <a name="l00043"></a>00043 )
74 <a name="l00044"></a>00044 {
75 <a name="l00045"></a>00045 <span class="keywordflow">return</span> &amp;(vec.x);
76 <a name="l00046"></a>00046 }
77 <a name="l00047"></a>00047
78 <a name="l00050"></a>00050 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
79 <a name="l00051"></a>00051 GLM_FUNC_QUALIFIER T * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
80 <a name="l00052"></a><a class="code" href="a00247.html#ga7bf8756cfee3981a93530342efda2a09">00052</a> (
81 <a name="l00053"></a>00053 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> &amp; vec
82 <a name="l00054"></a>00054 )
83 <a name="l00055"></a>00055 {
84 <a name="l00056"></a>00056 <span class="keywordflow">return</span> &amp;(vec.x);
85 <a name="l00057"></a>00057 }
86 <a name="l00058"></a>00058
87 <a name="l00061"></a>00061 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
88 <a name="l00062"></a>00062 GLM_FUNC_QUALIFIER T <span class="keyword">const</span> * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
89 <a name="l00063"></a><a class="code" href="a00247.html#ga3991a9338f71a240c139d2578dc3ce2a">00063</a> (
90 <a name="l00064"></a>00064 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; vec
91 <a name="l00065"></a>00065 )
92 <a name="l00066"></a>00066 {
93 <a name="l00067"></a>00067 <span class="keywordflow">return</span> &amp;(vec.x);
94 <a name="l00068"></a>00068 }
95 <a name="l00069"></a>00069
96 <a name="l00072"></a>00072 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
97 <a name="l00073"></a>00073 GLM_FUNC_QUALIFIER T * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
98 <a name="l00074"></a><a class="code" href="a00247.html#gabd71f400506835e596c2decd6631f124">00074</a> (
99 <a name="l00075"></a>00075 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> &amp; vec
100 <a name="l00076"></a>00076 )
101 <a name="l00077"></a>00077 {
102 <a name="l00078"></a>00078 <span class="keywordflow">return</span> &amp;(vec.x);
103 <a name="l00079"></a>00079 }
104 <a name="l00080"></a>00080
105 <a name="l00083"></a>00083 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
106 <a name="l00084"></a>00084 GLM_FUNC_QUALIFIER T <span class="keyword">const</span> * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
107 <a name="l00085"></a><a class="code" href="a00247.html#gaa8d062cde13a6ab5b87e660301aafcbd">00085</a> (
108 <a name="l00086"></a>00086 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; vec
109 <a name="l00087"></a>00087 )
110 <a name="l00088"></a>00088 {
111 <a name="l00089"></a>00089 <span class="keywordflow">return</span> &amp;(vec.x);
112 <a name="l00090"></a>00090 }
113 <a name="l00091"></a>00091
114 <a name="l00094"></a>00094 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
115 <a name="l00095"></a>00095 GLM_FUNC_QUALIFIER T * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
116 <a name="l00096"></a><a class="code" href="a00247.html#ga3d8f3ed25463d8b7d9f25ba6d7a8acbc">00096</a> (
117 <a name="l00097"></a>00097 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> &amp; vec
118 <a name="l00098"></a>00098 )
119 <a name="l00099"></a>00099 {
120 <a name="l00100"></a>00100 <span class="keywordflow">return</span> &amp;(vec.x);
121 <a name="l00101"></a>00101 }
122 <a name="l00102"></a>00102
123 <a name="l00105"></a>00105 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
124 <a name="l00106"></a>00106 GLM_FUNC_QUALIFIER T <span class="keyword">const</span> * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
125 <a name="l00107"></a><a class="code" href="a00247.html#ga7a39de90fc430c08510ce091ac634a79">00107</a> (
126 <a name="l00108"></a>00108 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
127 <a name="l00109"></a>00109 )
128 <a name="l00110"></a>00110 {
129 <a name="l00111"></a>00111 <span class="keywordflow">return</span> &amp;(mat[0].x);
130 <a name="l00112"></a>00112 }
131 <a name="l00113"></a>00113
132 <a name="l00116"></a>00116 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
133 <a name="l00117"></a>00117 GLM_FUNC_QUALIFIER T * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
134 <a name="l00118"></a><a class="code" href="a00247.html#gaa9206a4b3878b3fd2a904b8147457f77">00118</a> (
135 <a name="l00119"></a>00119 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> &amp; mat
136 <a name="l00120"></a>00120 )
137 <a name="l00121"></a>00121 {
138 <a name="l00122"></a>00122 <span class="keywordflow">return</span> &amp;(mat[0].x);
139 <a name="l00123"></a>00123 }
140 <a name="l00124"></a>00124
141 <a name="l00127"></a>00127 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
142 <a name="l00128"></a>00128 GLM_FUNC_QUALIFIER T <span class="keyword">const</span> * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
143 <a name="l00129"></a><a class="code" href="a00247.html#ga9fc0e1b422d30446d77f7b3b9a4344dd">00129</a> (
144 <a name="l00130"></a>00130 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
145 <a name="l00131"></a>00131 )
146 <a name="l00132"></a>00132 {
147 <a name="l00133"></a>00133 <span class="keywordflow">return</span> &amp;(mat[0].x);
148 <a name="l00134"></a>00134 }
149 <a name="l00135"></a>00135
150 <a name="l00138"></a>00138 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
151 <a name="l00139"></a>00139 GLM_FUNC_QUALIFIER T * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
152 <a name="l00140"></a><a class="code" href="a00247.html#ga830aa0335e6f5e590b1c3ebb642f3e9b">00140</a> (
153 <a name="l00141"></a>00141 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> &amp; mat
154 <a name="l00142"></a>00142 )
155 <a name="l00143"></a>00143 {
156 <a name="l00144"></a>00144 <span class="keywordflow">return</span> &amp;(mat[0].x);
157 <a name="l00145"></a>00145 }
158 <a name="l00146"></a>00146
159 <a name="l00149"></a>00149 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
160 <a name="l00150"></a>00150 GLM_FUNC_QUALIFIER T <span class="keyword">const</span> * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
161 <a name="l00151"></a><a class="code" href="a00247.html#ga56c2e17bbd93738609308c13a515f170">00151</a> (
162 <a name="l00152"></a>00152 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
163 <a name="l00153"></a>00153 )
164 <a name="l00154"></a>00154 {
165 <a name="l00155"></a>00155 <span class="keywordflow">return</span> &amp;(mat[0].x);
166 <a name="l00156"></a>00156 }
167 <a name="l00157"></a>00157
168 <a name="l00160"></a>00160 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
169 <a name="l00161"></a>00161 GLM_FUNC_QUALIFIER T * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
170 <a name="l00162"></a><a class="code" href="a00247.html#ga42469e8bdefe80d3fefa9aa58aad61e8">00162</a> (
171 <a name="l00163"></a>00163 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> &amp; mat
172 <a name="l00164"></a>00164 )
173 <a name="l00165"></a>00165 {
174 <a name="l00166"></a>00166 <span class="keywordflow">return</span> &amp;(mat[0].x);
175 <a name="l00167"></a>00167 }
176 <a name="l00168"></a>00168
177 <a name="l00171"></a>00171 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
178 <a name="l00172"></a>00172 GLM_FUNC_QUALIFIER T <span class="keyword">const</span> * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
179 <a name="l00173"></a><a class="code" href="a00247.html#ga8346668458014141646d1d73b009d8b1">00173</a> (
180 <a name="l00174"></a>00174 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
181 <a name="l00175"></a>00175 )
182 <a name="l00176"></a>00176 {
183 <a name="l00177"></a>00177 <span class="keywordflow">return</span> &amp;(mat[0].x);
184 <a name="l00178"></a>00178 }
185 <a name="l00179"></a>00179
186 <a name="l00182"></a>00182 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
187 <a name="l00183"></a>00183 GLM_FUNC_QUALIFIER T * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
188 <a name="l00184"></a><a class="code" href="a00247.html#ga8cb84075eac2170b71408bd87e360fc5">00184</a> (
189 <a name="l00185"></a>00185 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;T&gt;</a> &amp; mat
190 <a name="l00186"></a>00186 )
191 <a name="l00187"></a>00187 {
192 <a name="l00188"></a>00188 <span class="keywordflow">return</span> &amp;(mat[0].x);
193 <a name="l00189"></a>00189 }
194 <a name="l00190"></a>00190
195 <a name="l00193"></a>00193 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
196 <a name="l00194"></a>00194 GLM_FUNC_QUALIFIER T <span class="keyword">const</span> * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
197 <a name="l00195"></a><a class="code" href="a00247.html#ga35559a6453513f1be0cc693d55058313">00195</a> (
198 <a name="l00196"></a>00196 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
199 <a name="l00197"></a>00197 )
200 <a name="l00198"></a>00198 {
201 <a name="l00199"></a>00199 <span class="keywordflow">return</span> &amp;(mat[0].x);
202 <a name="l00200"></a>00200 }
203 <a name="l00201"></a>00201
204 <a name="l00204"></a>00204 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
205 <a name="l00205"></a>00205 GLM_FUNC_QUALIFIER T * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
206 <a name="l00206"></a><a class="code" href="a00247.html#ga861a6b1ce6a5138d9fd56c03df8831fa">00206</a> (
207 <a name="l00207"></a>00207 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;T&gt;</a> &amp; mat
208 <a name="l00208"></a>00208 )
209 <a name="l00209"></a>00209 {
210 <a name="l00210"></a>00210 <span class="keywordflow">return</span> &amp;(mat[0].x);
211 <a name="l00211"></a>00211 }
212 <a name="l00212"></a>00212
213 <a name="l00215"></a>00215 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
214 <a name="l00216"></a>00216 GLM_FUNC_QUALIFIER T <span class="keyword">const</span> * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
215 <a name="l00217"></a><a class="code" href="a00247.html#ga99bbcb12e6a17ba198faf9259c8abd96">00217</a> (
216 <a name="l00218"></a>00218 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
217 <a name="l00219"></a>00219 )
218 <a name="l00220"></a>00220 {
219 <a name="l00221"></a>00221 <span class="keywordflow">return</span> &amp;(mat[0].x);
220 <a name="l00222"></a>00222 }
221 <a name="l00223"></a>00223
222 <a name="l00226"></a>00226 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
223 <a name="l00227"></a>00227 GLM_FUNC_QUALIFIER T * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
224 <a name="l00228"></a><a class="code" href="a00247.html#ga96d7708293e8bc9904afcc504189bf55">00228</a> (
225 <a name="l00229"></a>00229 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;T&gt;</a> &amp; mat
226 <a name="l00230"></a>00230 )
227 <a name="l00231"></a>00231 {
228 <a name="l00232"></a>00232 <span class="keywordflow">return</span> &amp;(mat[0].x);
229 <a name="l00233"></a>00233 }
230 <a name="l00234"></a>00234
231 <a name="l00237"></a>00237 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
232 <a name="l00238"></a>00238 GLM_FUNC_QUALIFIER T <span class="keyword">const</span> * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
233 <a name="l00239"></a><a class="code" href="a00247.html#ga865263cd65e95cc13ff6a5aa84e3f5e8">00239</a> (
234 <a name="l00240"></a>00240 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
235 <a name="l00241"></a>00241 )
236 <a name="l00242"></a>00242 {
237 <a name="l00243"></a>00243 <span class="keywordflow">return</span> &amp;(mat[0].x);
238 <a name="l00244"></a>00244 }
239 <a name="l00245"></a>00245
240 <a name="l00248"></a>00248 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
241 <a name="l00249"></a>00249 GLM_FUNC_QUALIFIER T * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
242 <a name="l00250"></a><a class="code" href="a00247.html#ga49da2fc0f3db83449a06c47d729ba024">00250</a> (
243 <a name="l00251"></a>00251 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;T&gt;</a> &amp; mat
244 <a name="l00252"></a>00252 )
245 <a name="l00253"></a>00253 {
246 <a name="l00254"></a>00254 <span class="keywordflow">return</span> &amp;(mat[0].x);
247 <a name="l00255"></a>00255 }
248 <a name="l00256"></a>00256
249 <a name="l00259"></a>00259 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
250 <a name="l00260"></a>00260 GLM_FUNC_QUALIFIER T <span class="keyword">const</span> * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
251 <a name="l00261"></a><a class="code" href="a00247.html#ga651f202c716db8b90cefb81b1c0da0c8">00261</a> (
252 <a name="l00262"></a>00262 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
253 <a name="l00263"></a>00263 )
254 <a name="l00264"></a>00264 {
255 <a name="l00265"></a>00265 <span class="keywordflow">return</span> &amp;(mat[0].x);
256 <a name="l00266"></a>00266 }
257 <a name="l00267"></a>00267
258 <a name="l00270"></a>00270 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
259 <a name="l00271"></a>00271 GLM_FUNC_QUALIFIER T * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
260 <a name="l00272"></a><a class="code" href="a00247.html#ga5fa0d0614af4ed2455e652884846fb1d">00272</a> (
261 <a name="l00273"></a>00273 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;T&gt;</a> &amp; mat
262 <a name="l00274"></a>00274 )
263 <a name="l00275"></a>00275 {
264 <a name="l00276"></a>00276 <span class="keywordflow">return</span> &amp;(mat[0].x);
265 <a name="l00277"></a>00277 }
266 <a name="l00278"></a>00278
267 <a name="l00281"></a>00281 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
268 <a name="l00282"></a>00282 GLM_FUNC_QUALIFIER T <span class="keyword">const</span> * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
269 <a name="l00283"></a><a class="code" href="a00247.html#ga2df67ef048ae136e1bcd05f8942fde7a">00283</a> (
270 <a name="l00284"></a>00284 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
271 <a name="l00285"></a>00285 )
272 <a name="l00286"></a>00286 {
273 <a name="l00287"></a>00287 <span class="keywordflow">return</span> &amp;(mat[0].x);
274 <a name="l00288"></a>00288 }
275 <a name="l00289"></a>00289
276 <a name="l00292"></a>00292 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
277 <a name="l00293"></a><a class="code" href="a00247.html#ga05d5fe10da0bee1b1443058e8ed0299f">00293</a> GLM_FUNC_QUALIFIER T * <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;T&gt;</a> &amp; mat)
278 <a name="l00294"></a>00294 {
279 <a name="l00295"></a>00295 <span class="keywordflow">return</span> &amp;(mat[0].x);
280 <a name="l00296"></a>00296 }
281 <a name="l00297"></a>00297
282 <a name="l00300"></a>00300 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
283 <a name="l00301"></a><a class="code" href="a00247.html#ga78da3ea7db8bca3e13559653ce55093b">00301</a> GLM_FUNC_QUALIFIER <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00247.html#ga78da3ea7db8bca3e13559653ce55093b" title="Build a vector from a pointer.">make_vec2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
284 <a name="l00302"></a>00302 {
285 <a name="l00303"></a>00303 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> Result;
286 <a name="l00304"></a>00304 memcpy(<a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>));
287 <a name="l00305"></a>00305 <span class="keywordflow">return</span> Result;
288 <a name="l00306"></a>00306 }
289 <a name="l00307"></a>00307
290 <a name="l00310"></a>00310 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
291 <a name="l00311"></a><a class="code" href="a00247.html#ga2a4f1959e1070f904687739954c4f7ee">00311</a> GLM_FUNC_QUALIFIER <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00247.html#ga2a4f1959e1070f904687739954c4f7ee" title="Build a vector from a pointer.">make_vec3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
292 <a name="l00312"></a>00312 {
293 <a name="l00313"></a>00313 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> Result;
294 <a name="l00314"></a>00314 memcpy(<a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>));
295 <a name="l00315"></a>00315 <span class="keywordflow">return</span> Result;
296 <a name="l00316"></a>00316 }
297 <a name="l00317"></a>00317
298 <a name="l00320"></a>00320 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
299 <a name="l00321"></a><a class="code" href="a00247.html#ga76c09e1e25b8dbb947d10b76f5c4beac">00321</a> GLM_FUNC_QUALIFIER <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00247.html#ga76c09e1e25b8dbb947d10b76f5c4beac" title="Build a vector from a pointer.">make_vec4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
300 <a name="l00322"></a>00322 {
301 <a name="l00323"></a>00323 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> Result;
302 <a name="l00324"></a>00324 memcpy(<a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>));
303 <a name="l00325"></a>00325 <span class="keywordflow">return</span> Result;
304 <a name="l00326"></a>00326 }
305 <a name="l00327"></a>00327
306 <a name="l00330"></a>00330 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
307 <a name="l00331"></a><a class="code" href="a00247.html#ga8ad46b9608226fd1c7eec27890281a72">00331</a> GLM_FUNC_QUALIFIER <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <a class="code" href="a00247.html#ga8ad46b9608226fd1c7eec27890281a72" title="Build a matrix from a pointer.">make_mat2x2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
308 <a name="l00332"></a>00332 {
309 <a name="l00333"></a>00333 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> Result;
310 <a name="l00334"></a>00334 memcpy(<a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a>));
311 <a name="l00335"></a>00335 <span class="keywordflow">return</span> Result;
312 <a name="l00336"></a>00336 }
313 <a name="l00337"></a>00337
314 <a name="l00340"></a>00340 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
315 <a name="l00341"></a><a class="code" href="a00247.html#ga44094e20569c4f5099c099906278ea3d">00341</a> GLM_FUNC_QUALIFIER <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;T&gt;</a> <a class="code" href="a00247.html#ga44094e20569c4f5099c099906278ea3d" title="Build a matrix from a pointer.">make_mat2x3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
316 <a name="l00342"></a>00342 {
317 <a name="l00343"></a>00343 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;T&gt;</a> Result;
318 <a name="l00344"></a>00344 memcpy(<a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;T&gt;</a>));
319 <a name="l00345"></a>00345 <span class="keywordflow">return</span> Result;
320 <a name="l00346"></a>00346 }
321 <a name="l00347"></a>00347
322 <a name="l00350"></a>00350 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
323 <a name="l00351"></a><a class="code" href="a00247.html#ga26642a9d5c0f0a1eaacc8b432516aa99">00351</a> GLM_FUNC_QUALIFIER <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;T&gt;</a> <a class="code" href="a00247.html#ga26642a9d5c0f0a1eaacc8b432516aa99" title="Build a matrix from a pointer.">make_mat2x4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
324 <a name="l00352"></a>00352 {
325 <a name="l00353"></a>00353 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;T&gt;</a> Result;
326 <a name="l00354"></a>00354 memcpy(<a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;T&gt;</a>));
327 <a name="l00355"></a>00355 <span class="keywordflow">return</span> Result;
328 <a name="l00356"></a>00356 }
329 <a name="l00357"></a>00357
330 <a name="l00360"></a>00360 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
331 <a name="l00361"></a><a class="code" href="a00247.html#ga9e82111c23b88953fe05ee8c27c2b1bc">00361</a> GLM_FUNC_QUALIFIER <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;T&gt;</a> <a class="code" href="a00247.html#ga9e82111c23b88953fe05ee8c27c2b1bc" title="Build a matrix from a pointer.">make_mat3x2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
332 <a name="l00362"></a>00362 {
333 <a name="l00363"></a>00363 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;T&gt;</a> Result;
334 <a name="l00364"></a>00364 memcpy(<a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;T&gt;</a>));
335 <a name="l00365"></a>00365 <span class="keywordflow">return</span> Result;
336 <a name="l00366"></a>00366 }
337 <a name="l00367"></a>00367
338 <a name="l00370"></a>00370 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
339 <a name="l00371"></a><a class="code" href="a00247.html#ga225aa7d04b65101d744ef77d95e1a23b">00371</a> GLM_FUNC_QUALIFIER <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00247.html#ga225aa7d04b65101d744ef77d95e1a23b" title="Build a matrix from a pointer.">make_mat3x3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
340 <a name="l00372"></a>00372 {
341 <a name="l00373"></a>00373 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> Result;
342 <a name="l00374"></a>00374 memcpy(<a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a>));
343 <a name="l00375"></a>00375 <span class="keywordflow">return</span> Result;
344 <a name="l00376"></a>00376 }
345 <a name="l00377"></a>00377
346 <a name="l00380"></a>00380 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
347 <a name="l00381"></a><a class="code" href="a00247.html#gaa4708891294a5aee07256ba6441b4889">00381</a> GLM_FUNC_QUALIFIER <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;T&gt;</a> <a class="code" href="a00247.html#gaa4708891294a5aee07256ba6441b4889" title="Build a matrix from a pointer.">make_mat3x4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
348 <a name="l00382"></a>00382 {
349 <a name="l00383"></a>00383 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;T&gt;</a> Result;
350 <a name="l00384"></a>00384 memcpy(<a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;T&gt;</a>));
351 <a name="l00385"></a>00385 <span class="keywordflow">return</span> Result;
352 <a name="l00386"></a>00386 }
353 <a name="l00387"></a>00387
354 <a name="l00388"></a>00388
355 <a name="l00391"></a>00391 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
356 <a name="l00392"></a><a class="code" href="a00247.html#ga2092b5a4cd05f2e39dc1b8e5ee22589c">00392</a> GLM_FUNC_QUALIFIER <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;T&gt;</a> <a class="code" href="a00247.html#ga2092b5a4cd05f2e39dc1b8e5ee22589c" title="Build a matrix from a pointer.">make_mat4x2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
357 <a name="l00393"></a>00393 {
358 <a name="l00394"></a>00394 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;T&gt;</a> Result;
359 <a name="l00395"></a>00395 memcpy(<a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;T&gt;</a>));
360 <a name="l00396"></a>00396 <span class="keywordflow">return</span> Result;
361 <a name="l00397"></a>00397 }
362 <a name="l00398"></a>00398
363 <a name="l00401"></a>00401 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
364 <a name="l00402"></a><a class="code" href="a00247.html#ga0bc483c7f197b07a816682dd0b3981d9">00402</a> GLM_FUNC_QUALIFIER <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;T&gt;</a> <a class="code" href="a00247.html#ga0bc483c7f197b07a816682dd0b3981d9" title="Build a matrix from a pointer.">make_mat4x3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
365 <a name="l00403"></a>00403 {
366 <a name="l00404"></a>00404 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;T&gt;</a> Result;
367 <a name="l00405"></a>00405 memcpy(<a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;T&gt;</a>));
368 <a name="l00406"></a>00406 <span class="keywordflow">return</span> Result;
369 <a name="l00407"></a>00407 }
370 <a name="l00408"></a>00408
371 <a name="l00411"></a>00411 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
372 <a name="l00412"></a><a class="code" href="a00247.html#gac9e742ff5cc9308caabd8236fc11a687">00412</a> GLM_FUNC_QUALIFIER <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00247.html#gac9e742ff5cc9308caabd8236fc11a687" title="Build a matrix from a pointer.">make_mat4x4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
373 <a name="l00413"></a>00413 {
374 <a name="l00414"></a>00414 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> Result;
375 <a name="l00415"></a>00415 memcpy(<a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a>));
376 <a name="l00416"></a>00416 <span class="keywordflow">return</span> Result;
377 <a name="l00417"></a>00417 }
378 <a name="l00418"></a>00418
379 <a name="l00421"></a>00421 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
380 <a name="l00422"></a><a class="code" href="a00247.html#ga28e2cb93a1d741f43d116ae597ffcc91">00422</a> GLM_FUNC_QUALIFIER <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <a class="code" href="a00247.html#ga28e2cb93a1d741f43d116ae597ffcc91" title="Build a matrix from a pointer.">make_mat2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
381 <a name="l00423"></a>00423 {
382 <a name="l00424"></a>00424 <span class="keywordflow">return</span> <a class="code" href="a00247.html#ga8ad46b9608226fd1c7eec27890281a72" title="Build a matrix from a pointer.">make_mat2x2</a>(ptr);
383 <a name="l00425"></a>00425 }
384 <a name="l00426"></a>00426
385 <a name="l00429"></a>00429 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
386 <a name="l00430"></a><a class="code" href="a00247.html#ga3012728a59d487ef0e19e0f0fff79b64">00430</a> GLM_FUNC_QUALIFIER <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00247.html#ga3012728a59d487ef0e19e0f0fff79b64" title="Build a matrix from a pointer.">make_mat3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
387 <a name="l00431"></a>00431 {
388 <a name="l00432"></a>00432 <span class="keywordflow">return</span> <a class="code" href="a00247.html#ga225aa7d04b65101d744ef77d95e1a23b" title="Build a matrix from a pointer.">make_mat3x3</a>(ptr);
389 <a name="l00433"></a>00433 }
390 <a name="l00434"></a>00434
391 <a name="l00437"></a>00437 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
392 <a name="l00438"></a><a class="code" href="a00247.html#ga208ed9a335cf79366b278deedd83f32b">00438</a> GLM_FUNC_QUALIFIER <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00247.html#ga208ed9a335cf79366b278deedd83f32b" title="Build a matrix from a pointer.">make_mat4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
393 <a name="l00439"></a>00439 {
394 <a name="l00440"></a>00440 <span class="keywordflow">return</span> <a class="code" href="a00247.html#gac9e742ff5cc9308caabd8236fc11a687" title="Build a matrix from a pointer.">make_mat4x4</a>(ptr);
395 <a name="l00441"></a>00441 }
396 <a name="l00442"></a>00442
397 <a name="l00444"></a>00444
398 <a name="l00445"></a>00445 }<span class="comment">//namespace type_ptr</span>
399 <a name="l00446"></a>00446 }<span class="comment">//namespace gtc</span>
400 <a name="l00447"></a>00447 }<span class="comment">//namespace glm</span>
401 <a name="l00448"></a>00448
402 <a name="l00449"></a>00449 <span class="preprocessor">#include &quot;type_ptr.inl&quot;</span>
403 <a name="l00450"></a>00450
404 <a name="l00451"></a>00451 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::type_ptr;}
405 <a name="l00452"></a>00452
406 <a name="l00453"></a>00453 <span class="preprocessor">#endif//glm_gtx_type_ptr</span>
407 <a name="l00454"></a>00454 <span class="preprocessor"></span>
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm{
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtc{
61 <a name="l00026"></a><a class="code" href="a00167.html">00026</a> <span class="keyword">namespace </span>type_ptr
62 <a name="l00027"></a>00027 {
63 <a name="l00028"></a>00028
64 <a name="l00031"></a>00031
65 <a name="l00034"></a>00034 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
66 <a name="l00035"></a>00035 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
67 <a name="l00036"></a><a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08">00036</a> (
68 <a name="l00037"></a>00037 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; vec
69 <a name="l00038"></a>00038 )
70 <a name="l00039"></a>00039 {
71 <a name="l00040"></a>00040 <span class="keywordflow">return</span> &amp;(vec.x);
72 <a name="l00041"></a>00041 }
73 <a name="l00042"></a>00042
74 <a name="l00045"></a>00045 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
75 <a name="l00046"></a>00046 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
76 <a name="l00047"></a><a class="code" href="a00246.html#ga7bf8756cfee3981a93530342efda2a09">00047</a> (
77 <a name="l00048"></a>00048 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> &amp; vec
78 <a name="l00049"></a>00049 )
79 <a name="l00050"></a>00050 {
80 <a name="l00051"></a>00051 <span class="keywordflow">return</span> &amp;(vec.x);
81 <a name="l00052"></a>00052 }
82 <a name="l00053"></a>00053
83 <a name="l00056"></a>00056 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
84 <a name="l00057"></a>00057 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
85 <a name="l00058"></a><a class="code" href="a00246.html#ga3991a9338f71a240c139d2578dc3ce2a">00058</a> (
86 <a name="l00059"></a>00059 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; vec
87 <a name="l00060"></a>00060 )
88 <a name="l00061"></a>00061 {
89 <a name="l00062"></a>00062 <span class="keywordflow">return</span> &amp;(vec.x);
90 <a name="l00063"></a>00063 }
91 <a name="l00064"></a>00064
92 <a name="l00067"></a>00067 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
93 <a name="l00068"></a>00068 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
94 <a name="l00069"></a><a class="code" href="a00246.html#gabd71f400506835e596c2decd6631f124">00069</a> (
95 <a name="l00070"></a>00070 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> &amp; vec
96 <a name="l00071"></a>00071 )
97 <a name="l00072"></a>00072 {
98 <a name="l00073"></a>00073 <span class="keywordflow">return</span> &amp;(vec.x);
99 <a name="l00074"></a>00074 }
100 <a name="l00075"></a>00075
101 <a name="l00078"></a>00078 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
102 <a name="l00079"></a>00079 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
103 <a name="l00080"></a><a class="code" href="a00246.html#gaa8d062cde13a6ab5b87e660301aafcbd">00080</a> (
104 <a name="l00081"></a>00081 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; vec
105 <a name="l00082"></a>00082 )
106 <a name="l00083"></a>00083 {
107 <a name="l00084"></a>00084 <span class="keywordflow">return</span> &amp;(vec.x);
108 <a name="l00085"></a>00085 }
109 <a name="l00086"></a>00086
110 <a name="l00089"></a>00089 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
111 <a name="l00090"></a>00090 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
112 <a name="l00091"></a><a class="code" href="a00246.html#ga3d8f3ed25463d8b7d9f25ba6d7a8acbc">00091</a> (
113 <a name="l00092"></a>00092 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> &amp; vec
114 <a name="l00093"></a>00093 )
115 <a name="l00094"></a>00094 {
116 <a name="l00095"></a>00095 <span class="keywordflow">return</span> &amp;(vec.x);
117 <a name="l00096"></a>00096 }
118 <a name="l00097"></a>00097
119 <a name="l00100"></a>00100 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
120 <a name="l00101"></a>00101 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
121 <a name="l00102"></a><a class="code" href="a00246.html#ga7a39de90fc430c08510ce091ac634a79">00102</a> (
122 <a name="l00103"></a>00103 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
123 <a name="l00104"></a>00104 )
124 <a name="l00105"></a>00105 {
125 <a name="l00106"></a>00106 <span class="keywordflow">return</span> &amp;(mat[0].x);
126 <a name="l00107"></a>00107 }
127 <a name="l00108"></a>00108
128 <a name="l00111"></a>00111 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
129 <a name="l00112"></a>00112 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
130 <a name="l00113"></a><a class="code" href="a00246.html#gaa9206a4b3878b3fd2a904b8147457f77">00113</a> (
131 <a name="l00114"></a>00114 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> &amp; mat
132 <a name="l00115"></a>00115 )
133 <a name="l00116"></a>00116 {
134 <a name="l00117"></a>00117 <span class="keywordflow">return</span> &amp;(mat[0].x);
135 <a name="l00118"></a>00118 }
136 <a name="l00119"></a>00119
137 <a name="l00122"></a>00122 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
138 <a name="l00123"></a>00123 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
139 <a name="l00124"></a><a class="code" href="a00246.html#ga9fc0e1b422d30446d77f7b3b9a4344dd">00124</a> (
140 <a name="l00125"></a>00125 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
141 <a name="l00126"></a>00126 )
142 <a name="l00127"></a>00127 {
143 <a name="l00128"></a>00128 <span class="keywordflow">return</span> &amp;(mat[0].x);
144 <a name="l00129"></a>00129 }
145 <a name="l00130"></a>00130
146 <a name="l00133"></a>00133 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
147 <a name="l00134"></a>00134 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
148 <a name="l00135"></a><a class="code" href="a00246.html#ga830aa0335e6f5e590b1c3ebb642f3e9b">00135</a> (
149 <a name="l00136"></a>00136 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> &amp; mat
150 <a name="l00137"></a>00137 )
151 <a name="l00138"></a>00138 {
152 <a name="l00139"></a>00139 <span class="keywordflow">return</span> &amp;(mat[0].x);
153 <a name="l00140"></a>00140 }
154 <a name="l00141"></a>00141
155 <a name="l00144"></a>00144 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
156 <a name="l00145"></a>00145 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
157 <a name="l00146"></a><a class="code" href="a00246.html#ga56c2e17bbd93738609308c13a515f170">00146</a> (
158 <a name="l00147"></a>00147 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
159 <a name="l00148"></a>00148 )
160 <a name="l00149"></a>00149 {
161 <a name="l00150"></a>00150 <span class="keywordflow">return</span> &amp;(mat[0].x);
162 <a name="l00151"></a>00151 }
163 <a name="l00152"></a>00152
164 <a name="l00155"></a>00155 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
165 <a name="l00156"></a>00156 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
166 <a name="l00157"></a><a class="code" href="a00246.html#ga42469e8bdefe80d3fefa9aa58aad61e8">00157</a> (
167 <a name="l00158"></a>00158 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> &amp; mat
168 <a name="l00159"></a>00159 )
169 <a name="l00160"></a>00160 {
170 <a name="l00161"></a>00161 <span class="keywordflow">return</span> &amp;(mat[0].x);
171 <a name="l00162"></a>00162 }
172 <a name="l00163"></a>00163
173 <a name="l00166"></a>00166 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
174 <a name="l00167"></a>00167 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
175 <a name="l00168"></a><a class="code" href="a00246.html#ga8346668458014141646d1d73b009d8b1">00168</a> (
176 <a name="l00169"></a>00169 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
177 <a name="l00170"></a>00170 )
178 <a name="l00171"></a>00171 {
179 <a name="l00172"></a>00172 <span class="keywordflow">return</span> &amp;(mat[0].x);
180 <a name="l00173"></a>00173 }
181 <a name="l00174"></a>00174
182 <a name="l00177"></a>00177 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
183 <a name="l00178"></a>00178 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
184 <a name="l00179"></a><a class="code" href="a00246.html#ga8cb84075eac2170b71408bd87e360fc5">00179</a> (
185 <a name="l00180"></a>00180 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;T&gt;</a> &amp; mat
186 <a name="l00181"></a>00181 )
187 <a name="l00182"></a>00182 {
188 <a name="l00183"></a>00183 <span class="keywordflow">return</span> &amp;(mat[0].x);
189 <a name="l00184"></a>00184 }
190 <a name="l00185"></a>00185
191 <a name="l00188"></a>00188 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
192 <a name="l00189"></a>00189 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
193 <a name="l00190"></a><a class="code" href="a00246.html#ga35559a6453513f1be0cc693d55058313">00190</a> (
194 <a name="l00191"></a>00191 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
195 <a name="l00192"></a>00192 )
196 <a name="l00193"></a>00193 {
197 <a name="l00194"></a>00194 <span class="keywordflow">return</span> &amp;(mat[0].x);
198 <a name="l00195"></a>00195 }
199 <a name="l00196"></a>00196
200 <a name="l00199"></a>00199 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
201 <a name="l00200"></a>00200 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
202 <a name="l00201"></a><a class="code" href="a00246.html#ga861a6b1ce6a5138d9fd56c03df8831fa">00201</a> (
203 <a name="l00202"></a>00202 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;T&gt;</a> &amp; mat
204 <a name="l00203"></a>00203 )
205 <a name="l00204"></a>00204 {
206 <a name="l00205"></a>00205 <span class="keywordflow">return</span> &amp;(mat[0].x);
207 <a name="l00206"></a>00206 }
208 <a name="l00207"></a>00207
209 <a name="l00210"></a>00210 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
210 <a name="l00211"></a>00211 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
211 <a name="l00212"></a><a class="code" href="a00246.html#ga99bbcb12e6a17ba198faf9259c8abd96">00212</a> (
212 <a name="l00213"></a>00213 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
213 <a name="l00214"></a>00214 )
214 <a name="l00215"></a>00215 {
215 <a name="l00216"></a>00216 <span class="keywordflow">return</span> &amp;(mat[0].x);
216 <a name="l00217"></a>00217 }
217 <a name="l00218"></a>00218
218 <a name="l00221"></a>00221 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
219 <a name="l00222"></a>00222 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
220 <a name="l00223"></a><a class="code" href="a00246.html#ga96d7708293e8bc9904afcc504189bf55">00223</a> (
221 <a name="l00224"></a>00224 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;T&gt;</a> &amp; mat
222 <a name="l00225"></a>00225 )
223 <a name="l00226"></a>00226 {
224 <a name="l00227"></a>00227 <span class="keywordflow">return</span> &amp;(mat[0].x);
225 <a name="l00228"></a>00228 }
226 <a name="l00229"></a>00229
227 <a name="l00232"></a>00232 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
228 <a name="l00233"></a>00233 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
229 <a name="l00234"></a><a class="code" href="a00246.html#ga865263cd65e95cc13ff6a5aa84e3f5e8">00234</a> (
230 <a name="l00235"></a>00235 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
231 <a name="l00236"></a>00236 )
232 <a name="l00237"></a>00237 {
233 <a name="l00238"></a>00238 <span class="keywordflow">return</span> &amp;(mat[0].x);
234 <a name="l00239"></a>00239 }
235 <a name="l00240"></a>00240
236 <a name="l00243"></a>00243 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
237 <a name="l00244"></a>00244 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
238 <a name="l00245"></a><a class="code" href="a00246.html#ga49da2fc0f3db83449a06c47d729ba024">00245</a> (
239 <a name="l00246"></a>00246 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;T&gt;</a> &amp; mat
240 <a name="l00247"></a>00247 )
241 <a name="l00248"></a>00248 {
242 <a name="l00249"></a>00249 <span class="keywordflow">return</span> &amp;(mat[0].x);
243 <a name="l00250"></a>00250 }
244 <a name="l00251"></a>00251
245 <a name="l00254"></a>00254 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
246 <a name="l00255"></a>00255 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
247 <a name="l00256"></a><a class="code" href="a00246.html#ga651f202c716db8b90cefb81b1c0da0c8">00256</a> (
248 <a name="l00257"></a>00257 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
249 <a name="l00258"></a>00258 )
250 <a name="l00259"></a>00259 {
251 <a name="l00260"></a>00260 <span class="keywordflow">return</span> &amp;(mat[0].x);
252 <a name="l00261"></a>00261 }
253 <a name="l00262"></a>00262
254 <a name="l00265"></a>00265 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
255 <a name="l00266"></a>00266 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
256 <a name="l00267"></a><a class="code" href="a00246.html#ga5fa0d0614af4ed2455e652884846fb1d">00267</a> (
257 <a name="l00268"></a>00268 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;T&gt;</a> &amp; mat
258 <a name="l00269"></a>00269 )
259 <a name="l00270"></a>00270 {
260 <a name="l00271"></a>00271 <span class="keywordflow">return</span> &amp;(mat[0].x);
261 <a name="l00272"></a>00272 }
262 <a name="l00273"></a>00273
263 <a name="l00276"></a>00276 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
264 <a name="l00277"></a>00277 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>
265 <a name="l00278"></a><a class="code" href="a00246.html#ga2df67ef048ae136e1bcd05f8942fde7a">00278</a> (
266 <a name="l00279"></a>00279 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;T&gt;</a> <span class="keyword">const</span> &amp; mat
267 <a name="l00280"></a>00280 )
268 <a name="l00281"></a>00281 {
269 <a name="l00282"></a>00282 <span class="keywordflow">return</span> &amp;(mat[0].x);
270 <a name="l00283"></a>00283 }
271 <a name="l00284"></a>00284
272 <a name="l00287"></a>00287 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
273 <a name="l00288"></a><a class="code" href="a00246.html#ga05d5fe10da0bee1b1443058e8ed0299f">00288</a> GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> * <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;T&gt;</a> &amp; mat)
274 <a name="l00289"></a>00289 {
275 <a name="l00290"></a>00290 <span class="keywordflow">return</span> &amp;(mat[0].x);
276 <a name="l00291"></a>00291 }
277 <a name="l00292"></a>00292
278 <a name="l00295"></a>00295 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
279 <a name="l00296"></a><a class="code" href="a00246.html#ga78da3ea7db8bca3e13559653ce55093b">00296</a> GLM_FUNC_QUALIFIER <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <a class="code" href="a00246.html#ga78da3ea7db8bca3e13559653ce55093b" title="Build a vector from a pointer.">make_vec2</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
280 <a name="l00297"></a>00297 {
281 <a name="l00298"></a>00298 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> Result;
282 <a name="l00299"></a>00299 memcpy(<a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a>));
283 <a name="l00300"></a>00300 <span class="keywordflow">return</span> Result;
284 <a name="l00301"></a>00301 }
285 <a name="l00302"></a>00302
286 <a name="l00305"></a>00305 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
287 <a name="l00306"></a><a class="code" href="a00246.html#ga2a4f1959e1070f904687739954c4f7ee">00306</a> GLM_FUNC_QUALIFIER <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <a class="code" href="a00246.html#ga2a4f1959e1070f904687739954c4f7ee" title="Build a vector from a pointer.">make_vec3</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
288 <a name="l00307"></a>00307 {
289 <a name="l00308"></a>00308 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> Result;
290 <a name="l00309"></a>00309 memcpy(<a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a>));
291 <a name="l00310"></a>00310 <span class="keywordflow">return</span> Result;
292 <a name="l00311"></a>00311 }
293 <a name="l00312"></a>00312
294 <a name="l00315"></a>00315 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
295 <a name="l00316"></a><a class="code" href="a00246.html#ga76c09e1e25b8dbb947d10b76f5c4beac">00316</a> GLM_FUNC_QUALIFIER <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> <a class="code" href="a00246.html#ga76c09e1e25b8dbb947d10b76f5c4beac" title="Build a vector from a pointer.">make_vec4</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
296 <a name="l00317"></a>00317 {
297 <a name="l00318"></a>00318 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a> Result;
298 <a name="l00319"></a>00319 memcpy(<a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;T&gt;</a>));
299 <a name="l00320"></a>00320 <span class="keywordflow">return</span> Result;
300 <a name="l00321"></a>00321 }
301 <a name="l00322"></a>00322
302 <a name="l00325"></a>00325 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
303 <a name="l00326"></a><a class="code" href="a00246.html#ga8ad46b9608226fd1c7eec27890281a72">00326</a> GLM_FUNC_QUALIFIER <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <a class="code" href="a00246.html#ga8ad46b9608226fd1c7eec27890281a72" title="Build a matrix from a pointer.">make_mat2x2</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
304 <a name="l00327"></a>00327 {
305 <a name="l00328"></a>00328 <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> Result;
306 <a name="l00329"></a>00329 memcpy(<a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a>));
307 <a name="l00330"></a>00330 <span class="keywordflow">return</span> Result;
308 <a name="l00331"></a>00331 }
309 <a name="l00332"></a>00332
310 <a name="l00335"></a>00335 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
311 <a name="l00336"></a><a class="code" href="a00246.html#ga44094e20569c4f5099c099906278ea3d">00336</a> GLM_FUNC_QUALIFIER <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;T&gt;</a> <a class="code" href="a00246.html#ga44094e20569c4f5099c099906278ea3d" title="Build a matrix from a pointer.">make_mat2x3</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
312 <a name="l00337"></a>00337 {
313 <a name="l00338"></a>00338 <a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;T&gt;</a> Result;
314 <a name="l00339"></a>00339 memcpy(<a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00011.html" title="Template for 2 columns and 3 rows matrix of floating-point numbers.">detail::tmat2x3&lt;T&gt;</a>));
315 <a name="l00340"></a>00340 <span class="keywordflow">return</span> Result;
316 <a name="l00341"></a>00341 }
317 <a name="l00342"></a>00342
318 <a name="l00345"></a>00345 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
319 <a name="l00346"></a><a class="code" href="a00246.html#ga26642a9d5c0f0a1eaacc8b432516aa99">00346</a> GLM_FUNC_QUALIFIER <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;T&gt;</a> <a class="code" href="a00246.html#ga26642a9d5c0f0a1eaacc8b432516aa99" title="Build a matrix from a pointer.">make_mat2x4</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
320 <a name="l00347"></a>00347 {
321 <a name="l00348"></a>00348 <a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;T&gt;</a> Result;
322 <a name="l00349"></a>00349 memcpy(<a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00012.html" title="Template for 2 columns and 4 rows matrix of floating-point numbers.">detail::tmat2x4&lt;T&gt;</a>));
323 <a name="l00350"></a>00350 <span class="keywordflow">return</span> Result;
324 <a name="l00351"></a>00351 }
325 <a name="l00352"></a>00352
326 <a name="l00355"></a>00355 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
327 <a name="l00356"></a><a class="code" href="a00246.html#ga9e82111c23b88953fe05ee8c27c2b1bc">00356</a> GLM_FUNC_QUALIFIER <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;T&gt;</a> <a class="code" href="a00246.html#ga9e82111c23b88953fe05ee8c27c2b1bc" title="Build a matrix from a pointer.">make_mat3x2</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
328 <a name="l00357"></a>00357 {
329 <a name="l00358"></a>00358 <a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;T&gt;</a> Result;
330 <a name="l00359"></a>00359 memcpy(<a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00013.html" title="Template for 3 columns and 2 rows matrix of floating-point numbers.">detail::tmat3x2&lt;T&gt;</a>));
331 <a name="l00360"></a>00360 <span class="keywordflow">return</span> Result;
332 <a name="l00361"></a>00361 }
333 <a name="l00362"></a>00362
334 <a name="l00365"></a>00365 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
335 <a name="l00366"></a><a class="code" href="a00246.html#ga225aa7d04b65101d744ef77d95e1a23b">00366</a> GLM_FUNC_QUALIFIER <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00246.html#ga225aa7d04b65101d744ef77d95e1a23b" title="Build a matrix from a pointer.">make_mat3x3</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
336 <a name="l00367"></a>00367 {
337 <a name="l00368"></a>00368 <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> Result;
338 <a name="l00369"></a>00369 memcpy(<a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a>));
339 <a name="l00370"></a>00370 <span class="keywordflow">return</span> Result;
340 <a name="l00371"></a>00371 }
341 <a name="l00372"></a>00372
342 <a name="l00375"></a>00375 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
343 <a name="l00376"></a><a class="code" href="a00246.html#gaa4708891294a5aee07256ba6441b4889">00376</a> GLM_FUNC_QUALIFIER <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;T&gt;</a> <a class="code" href="a00246.html#gaa4708891294a5aee07256ba6441b4889" title="Build a matrix from a pointer.">make_mat3x4</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
344 <a name="l00377"></a>00377 {
345 <a name="l00378"></a>00378 <a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;T&gt;</a> Result;
346 <a name="l00379"></a>00379 memcpy(<a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00015.html" title="Template for 3 columns and 4 rows matrix of floating-point numbers.">detail::tmat3x4&lt;T&gt;</a>));
347 <a name="l00380"></a>00380 <span class="keywordflow">return</span> Result;
348 <a name="l00381"></a>00381 }
349 <a name="l00382"></a>00382
350 <a name="l00383"></a>00383
351 <a name="l00386"></a>00386 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
352 <a name="l00387"></a><a class="code" href="a00246.html#ga2092b5a4cd05f2e39dc1b8e5ee22589c">00387</a> GLM_FUNC_QUALIFIER <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;T&gt;</a> <a class="code" href="a00246.html#ga2092b5a4cd05f2e39dc1b8e5ee22589c" title="Build a matrix from a pointer.">make_mat4x2</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
353 <a name="l00388"></a>00388 {
354 <a name="l00389"></a>00389 <a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;T&gt;</a> Result;
355 <a name="l00390"></a>00390 memcpy(<a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00016.html" title="Template for 4 columns and 2 rows matrix of floating-point numbers.">detail::tmat4x2&lt;T&gt;</a>));
356 <a name="l00391"></a>00391 <span class="keywordflow">return</span> Result;
357 <a name="l00392"></a>00392 }
358 <a name="l00393"></a>00393
359 <a name="l00396"></a>00396 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
360 <a name="l00397"></a><a class="code" href="a00246.html#ga0bc483c7f197b07a816682dd0b3981d9">00397</a> GLM_FUNC_QUALIFIER <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;T&gt;</a> <a class="code" href="a00246.html#ga0bc483c7f197b07a816682dd0b3981d9" title="Build a matrix from a pointer.">make_mat4x3</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
361 <a name="l00398"></a>00398 {
362 <a name="l00399"></a>00399 <a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;T&gt;</a> Result;
363 <a name="l00400"></a>00400 memcpy(<a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00017.html" title="Template for 4 columns and 3 rows matrix of floating-point numbers.">detail::tmat4x3&lt;T&gt;</a>));
364 <a name="l00401"></a>00401 <span class="keywordflow">return</span> Result;
365 <a name="l00402"></a>00402 }
366 <a name="l00403"></a>00403
367 <a name="l00406"></a>00406 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
368 <a name="l00407"></a><a class="code" href="a00246.html#gac9e742ff5cc9308caabd8236fc11a687">00407</a> GLM_FUNC_QUALIFIER <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00246.html#gac9e742ff5cc9308caabd8236fc11a687" title="Build a matrix from a pointer.">make_mat4x4</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
369 <a name="l00408"></a>00408 {
370 <a name="l00409"></a>00409 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> Result;
371 <a name="l00410"></a>00410 memcpy(<a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">value_ptr</a>(Result), ptr, <span class="keyword">sizeof</span>(<a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a>));
372 <a name="l00411"></a>00411 <span class="keywordflow">return</span> Result;
373 <a name="l00412"></a>00412 }
374 <a name="l00413"></a>00413
375 <a name="l00416"></a>00416 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
376 <a name="l00417"></a><a class="code" href="a00246.html#ga28e2cb93a1d741f43d116ae597ffcc91">00417</a> GLM_FUNC_QUALIFIER <a class="code" href="a00010.html" title="Template for 2 * 2 matrix of floating-point numbers.">detail::tmat2x2&lt;T&gt;</a> <a class="code" href="a00246.html#ga28e2cb93a1d741f43d116ae597ffcc91" title="Build a matrix from a pointer.">make_mat2</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
377 <a name="l00418"></a>00418 {
378 <a name="l00419"></a>00419 <span class="keywordflow">return</span> <a class="code" href="a00246.html#ga8ad46b9608226fd1c7eec27890281a72" title="Build a matrix from a pointer.">make_mat2x2</a>(ptr);
379 <a name="l00420"></a>00420 }
380 <a name="l00421"></a>00421
381 <a name="l00424"></a>00424 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
382 <a name="l00425"></a><a class="code" href="a00246.html#ga3012728a59d487ef0e19e0f0fff79b64">00425</a> GLM_FUNC_QUALIFIER <a class="code" href="a00014.html" title="Template for 3 * 3 matrix of floating-point numbers.">detail::tmat3x3&lt;T&gt;</a> <a class="code" href="a00246.html#ga3012728a59d487ef0e19e0f0fff79b64" title="Build a matrix from a pointer.">make_mat3</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
383 <a name="l00426"></a>00426 {
384 <a name="l00427"></a>00427 <span class="keywordflow">return</span> <a class="code" href="a00246.html#ga225aa7d04b65101d744ef77d95e1a23b" title="Build a matrix from a pointer.">make_mat3x3</a>(ptr);
385 <a name="l00428"></a>00428 }
386 <a name="l00429"></a>00429
387 <a name="l00432"></a>00432 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
388 <a name="l00433"></a><a class="code" href="a00246.html#ga208ed9a335cf79366b278deedd83f32b">00433</a> GLM_FUNC_QUALIFIER <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">detail::tmat4x4&lt;T&gt;</a> <a class="code" href="a00246.html#ga208ed9a335cf79366b278deedd83f32b" title="Build a matrix from a pointer.">make_mat4</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> * <span class="keyword">const</span> ptr)
389 <a name="l00434"></a>00434 {
390 <a name="l00435"></a>00435 <span class="keywordflow">return</span> <a class="code" href="a00246.html#gac9e742ff5cc9308caabd8236fc11a687" title="Build a matrix from a pointer.">make_mat4x4</a>(ptr);
391 <a name="l00436"></a>00436 }
392 <a name="l00437"></a>00437
393 <a name="l00439"></a>00439
394 <a name="l00440"></a>00440 }<span class="comment">//namespace type_ptr</span>
395 <a name="l00441"></a>00441 }<span class="comment">//namespace gtc</span>
396 <a name="l00442"></a>00442 }<span class="comment">//namespace glm</span>
397 <a name="l00443"></a>00443
398 <a name="l00444"></a>00444 <span class="preprocessor">#include &quot;type_ptr.inl&quot;</span>
399 <a name="l00445"></a>00445
400 <a name="l00446"></a>00446 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtc::type_ptr;}
401 <a name="l00447"></a>00447
402 <a name="l00448"></a>00448 <span class="preprocessor">#endif//glm_gtx_type_ptr</span>
403 <a name="l00449"></a>00449 <span class="preprocessor"></span>
408404 </pre></div></div>
409405 </div>
410406 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5252 <a name="l00016"></a>00016 <span class="preprocessor">#include &quot;type_size.hpp&quot;</span>
5353 <a name="l00017"></a>00017 <span class="preprocessor">#include &quot;_swizzle.hpp&quot;</span>
5454 <a name="l00018"></a>00018
55 <a name="l00019"></a>00019 <span class="keyword">namespace </span>glm
56 <a name="l00020"></a>00020 {
57 <a name="l00021"></a>00021 <span class="keyword">namespace </span>test
58 <a name="l00022"></a>00022 {
59 <a name="l00023"></a>00023 <span class="keywordtype">void</span> main_vec1();
60 <a name="l00024"></a>00024 }<span class="comment">//namespace test</span>
61 <a name="l00025"></a>00025
62 <a name="l00026"></a>00026 <span class="keyword">namespace </span>detail
63 <a name="l00027"></a>00027 {
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref1;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref2;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref3;
67 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref4;
68 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
69 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
70 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
71 <a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
72 <a name="l00036"></a>00036
73 <a name="l00037"></a>00037 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
74 <a name="l00038"></a>00038 <span class="keyword">struct </span>tvec1
75 <a name="l00039"></a>00039 {
76 <a name="l00040"></a>00040 <span class="keyword">enum</span> ctor{null};
77 <a name="l00041"></a>00041
78 <a name="l00042"></a>00042 <span class="keyword">typedef</span> T value_type;
79 <a name="l00043"></a>00043 <span class="keyword">typedef</span> std::size_t size_type;
80 <a name="l00044"></a>00044 GLM_FUNC_DECL size_type <a class="code" href="a00238.html#ga10ee9a1d18c6da61cab61d8637d23847" title="Returns the length of x, i.e., sqrt(x * x).">length</a>() <span class="keyword">const</span>;
81 <a name="l00045"></a>00045 <span class="keyword">static</span> GLM_FUNC_DECL size_type value_size();
55 <a name="l00019"></a>00019 <span class="keyword">namespace </span>glm{
56 <a name="l00020"></a>00020 <span class="keyword">namespace </span>detail
57 <a name="l00021"></a>00021 {
58 <a name="l00022"></a>00022 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref1;
59 <a name="l00023"></a>00023 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref2;
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref3;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref4;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec1;
63 <a name="l00027"></a>00027 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
66 <a name="l00030"></a>00030
67 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
68 <a name="l00032"></a>00032 <span class="keyword">struct </span>tvec1
69 <a name="l00033"></a>00033 {
70 <a name="l00034"></a>00034 <span class="keyword">enum</span> ctor{null};
71 <a name="l00035"></a>00035
72 <a name="l00036"></a>00036 <span class="keyword">typedef</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> value_type;
73 <a name="l00037"></a>00037 <span class="keyword">typedef</span> std::size_t size_type;
74 <a name="l00038"></a>00038 GLM_FUNC_DECL size_type <a class="code" href="a00237.html#ga10ee9a1d18c6da61cab61d8637d23847" title="Returns the length of x, i.e., sqrt(x * x).">length</a>() <span class="keyword">const</span>;
75 <a name="l00039"></a>00039 <span class="keyword">static</span> GLM_FUNC_DECL size_type value_size();
76 <a name="l00040"></a>00040
77 <a name="l00041"></a>00041 <span class="keyword">typedef</span> tvec1&lt;T&gt; type;
78 <a name="l00042"></a>00042 <span class="keyword">typedef</span> tvec1&lt;bool&gt; bool_type;
79 <a name="l00043"></a>00043
80 <a name="l00045"></a>00045 <span class="comment">// Data</span>
8281 <a name="l00046"></a>00046
83 <a name="l00047"></a>00047 <span class="keyword">typedef</span> tvec1&lt;T&gt; type;
84 <a name="l00048"></a>00048 <span class="keyword">typedef</span> tvec1&lt;bool&gt; bool_type;
85 <a name="l00049"></a>00049
86 <a name="l00051"></a>00051 <span class="comment">// Data</span>
87 <a name="l00052"></a>00052
88 <a name="l00053"></a>00053 <span class="preprocessor"># if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)</span>
89 <a name="l00054"></a>00054 <span class="preprocessor"></span> value_type x;
90 <a name="l00055"></a>00055 <span class="preprocessor"># else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)</span>
91 <a name="l00056"></a>00056 <span class="preprocessor"></span> <span class="keyword">union </span>{value_type x, r, s;};
92 <a name="l00057"></a>00057 <span class="preprocessor"># endif//GLM_COMPONENT</span>
93 <a name="l00058"></a>00058 <span class="preprocessor"></span>
94 <a name="l00060"></a>00060 <span class="comment">// Accesses</span>
82 <a name="l00047"></a>00047 <span class="preprocessor"># if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)</span>
83 <a name="l00048"></a>00048 <span class="preprocessor"></span> value_type x;
84 <a name="l00049"></a>00049 <span class="preprocessor"># else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)</span>
85 <a name="l00050"></a>00050 <span class="preprocessor"></span> <span class="keyword">union </span>{value_type x, r, s;};
86 <a name="l00051"></a>00051 <span class="preprocessor"># endif//GLM_COMPONENT</span>
87 <a name="l00052"></a>00052 <span class="preprocessor"></span>
88 <a name="l00054"></a>00054 <span class="comment">// Accesses</span>
89 <a name="l00055"></a>00055
90 <a name="l00056"></a>00056 GLM_FUNC_DECL value_type &amp; operator[](size_type i);
91 <a name="l00057"></a>00057 GLM_FUNC_DECL value_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
92 <a name="l00058"></a>00058
93 <a name="l00060"></a>00060 <span class="comment">// Implicit basic constructors</span>
9594 <a name="l00061"></a>00061
96 <a name="l00062"></a>00062 GLM_FUNC_DECL value_type &amp; operator[](size_type i);
97 <a name="l00063"></a>00063 GLM_FUNC_DECL value_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
95 <a name="l00062"></a>00062 GLM_FUNC_DECL tvec1();
96 <a name="l00063"></a>00063 GLM_FUNC_DECL tvec1(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
9897 <a name="l00064"></a>00064
99 <a name="l00066"></a>00066 <span class="comment">// Implicit basic constructors</span>
98 <a name="l00066"></a>00066 <span class="comment">// Explicit basic constructors</span>
10099 <a name="l00067"></a>00067
101 <a name="l00068"></a>00068 GLM_FUNC_DECL tvec1();
102 <a name="l00069"></a>00069 GLM_FUNC_DECL tvec1(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
103 <a name="l00070"></a>00070
104 <a name="l00072"></a>00072 <span class="comment">// Explicit basic constructors</span>
105 <a name="l00073"></a>00073
106 <a name="l00074"></a>00074 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec1(
107 <a name="l00075"></a>00075 ctor);
108 <a name="l00076"></a>00076 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec1(
109 <a name="l00077"></a>00077 value_type <span class="keyword">const</span> &amp; s);
110 <a name="l00078"></a>00078
111 <a name="l00080"></a>00080 <span class="comment">// Swizzle constructors</span>
112 <a name="l00081"></a>00081
113 <a name="l00082"></a>00082 GLM_FUNC_DECL tvec1(tref1&lt;T&gt; <span class="keyword">const</span> &amp; r);
114 <a name="l00083"></a>00083
115 <a name="l00085"></a>00085 <span class="comment">// Convertion scalar constructors</span>
116 <a name="l00086"></a>00086
117 <a name="l00088"></a>00088 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
118 <a name="l00089"></a>00089 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec1(U <span class="keyword">const</span> &amp; s);
119 <a name="l00090"></a>00090
120 <a name="l00092"></a>00092 <span class="comment">// Convertion vector constructors</span>
121 <a name="l00093"></a>00093
122 <a name="l00095"></a>00095 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
123 <a name="l00096"></a>00096 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec1(tvec2&lt;U&gt; <span class="keyword">const</span> &amp; v);
124 <a name="l00098"></a>00098 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
125 <a name="l00099"></a>00099 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec1(tvec3&lt;U&gt; <span class="keyword">const</span> &amp; v);
126 <a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
127 <a name="l00102"></a>00102 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec1(tvec4&lt;U&gt; <span class="keyword">const</span> &amp; v);
128 <a name="l00103"></a>00103
129 <a name="l00105"></a>00105 <span class="comment">// Unary arithmetic operators</span>
130 <a name="l00106"></a>00106
131 <a name="l00107"></a>00107 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator= (tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
132 <a name="l00108"></a>00108
133 <a name="l00109"></a>00109 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator+=(value_type <span class="keyword">const</span> &amp; s);
134 <a name="l00110"></a>00110 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator+=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
135 <a name="l00111"></a>00111 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator-=(value_type <span class="keyword">const</span> &amp; s);
136 <a name="l00112"></a>00112 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator-=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
137 <a name="l00113"></a>00113 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator*=(value_type <span class="keyword">const</span> &amp; s);
138 <a name="l00114"></a>00114 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator*=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
139 <a name="l00115"></a>00115 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator/=(value_type <span class="keyword">const</span> &amp; s);
140 <a name="l00116"></a>00116 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator/=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
141 <a name="l00117"></a>00117 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator++();
142 <a name="l00118"></a>00118 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator--();
143 <a name="l00119"></a>00119
144 <a name="l00121"></a>00121 <span class="comment">// Unary bit operators</span>
145 <a name="l00122"></a>00122
146 <a name="l00123"></a>00123 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator%=(value_type <span class="keyword">const</span> &amp; s);
147 <a name="l00124"></a>00124 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator%=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
148 <a name="l00125"></a>00125 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator&amp;=(value_type <span class="keyword">const</span> &amp; s);
149 <a name="l00126"></a>00126 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator&amp;=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
150 <a name="l00127"></a>00127 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator|=(value_type <span class="keyword">const</span> &amp; s);
151 <a name="l00128"></a>00128 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator|=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
152 <a name="l00129"></a>00129 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator^=(value_type <span class="keyword">const</span> &amp; s);
153 <a name="l00130"></a>00130 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator^=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
154 <a name="l00131"></a>00131 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator&lt;&lt;=(value_type <span class="keyword">const</span> &amp; s);
155 <a name="l00132"></a>00132 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator&lt;&lt;=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
156 <a name="l00133"></a>00133 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator&gt;&gt;=(value_type <span class="keyword">const</span> &amp; s);
157 <a name="l00134"></a>00134 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator&gt;&gt;=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
158 <a name="l00135"></a>00135
159 <a name="l00137"></a>00137 <span class="comment">// Swizzle operators</span>
160 <a name="l00138"></a>00138
161 <a name="l00139"></a>00139 GLM_FUNC_DECL value_type swizzle(comp X) <span class="keyword">const</span>;
162 <a name="l00140"></a>00140 GLM_FUNC_DECL tvec2&lt;T&gt; swizzle(comp X, comp Y) <span class="keyword">const</span>;
163 <a name="l00141"></a>00141 GLM_FUNC_DECL tvec3&lt;T&gt; swizzle(comp X, comp Y, comp Z) <span class="keyword">const</span>;
164 <a name="l00142"></a>00142 GLM_FUNC_DECL tvec4&lt;T&gt; swizzle(comp X, comp Y, comp Z, comp W) <span class="keyword">const</span>;
165 <a name="l00143"></a>00143 GLM_FUNC_DECL tref1&lt;T&gt; swizzle(comp X);
166 <a name="l00144"></a>00144 };
167 <a name="l00145"></a>00145
168 <a name="l00146"></a>00146 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
169 <a name="l00147"></a>00147 <span class="keyword">struct </span>tref1
170 <a name="l00148"></a>00148 {
171 <a name="l00149"></a>00149 GLM_FUNC_DECL tref1(T &amp; x);
172 <a name="l00150"></a>00150 GLM_FUNC_DECL tref1(tref1&lt;T&gt; <span class="keyword">const</span> &amp; r);
173 <a name="l00151"></a>00151 GLM_FUNC_DECL tref1(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
100 <a name="l00068"></a>00068 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec1(
101 <a name="l00069"></a>00069 ctor);
102 <a name="l00070"></a>00070 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec1(
103 <a name="l00071"></a>00071 value_type <span class="keyword">const</span> &amp; s);
104 <a name="l00072"></a>00072
105 <a name="l00074"></a>00074 <span class="comment">// Swizzle constructors</span>
106 <a name="l00075"></a>00075
107 <a name="l00076"></a>00076 GLM_FUNC_DECL tvec1(tref1&lt;T&gt; <span class="keyword">const</span> &amp; r);
108 <a name="l00077"></a>00077
109 <a name="l00079"></a>00079 <span class="comment">// Convertion scalar constructors</span>
110 <a name="l00080"></a>00080
111 <a name="l00082"></a>00082 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
112 <a name="l00083"></a>00083 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec1(U <span class="keyword">const</span> &amp; s);
113 <a name="l00084"></a>00084
114 <a name="l00086"></a>00086 <span class="comment">// Convertion vector constructors</span>
115 <a name="l00087"></a>00087
116 <a name="l00089"></a>00089 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
117 <a name="l00090"></a>00090 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec1(tvec2&lt;U&gt; <span class="keyword">const</span> &amp; v);
118 <a name="l00092"></a>00092 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
119 <a name="l00093"></a>00093 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec1(tvec3&lt;U&gt; <span class="keyword">const</span> &amp; v);
120 <a name="l00095"></a>00095 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
121 <a name="l00096"></a>00096 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec1(tvec4&lt;U&gt; <span class="keyword">const</span> &amp; v);
122 <a name="l00097"></a>00097
123 <a name="l00099"></a>00099 <span class="comment">// Unary arithmetic operators</span>
124 <a name="l00100"></a>00100
125 <a name="l00101"></a>00101 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator= (tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
126 <a name="l00102"></a>00102
127 <a name="l00103"></a>00103 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator+=(value_type <span class="keyword">const</span> &amp; s);
128 <a name="l00104"></a>00104 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator+=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
129 <a name="l00105"></a>00105 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator-=(value_type <span class="keyword">const</span> &amp; s);
130 <a name="l00106"></a>00106 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator-=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
131 <a name="l00107"></a>00107 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator*=(value_type <span class="keyword">const</span> &amp; s);
132 <a name="l00108"></a>00108 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator*=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
133 <a name="l00109"></a>00109 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator/=(value_type <span class="keyword">const</span> &amp; s);
134 <a name="l00110"></a>00110 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator/=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
135 <a name="l00111"></a>00111 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator++();
136 <a name="l00112"></a>00112 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator--();
137 <a name="l00113"></a>00113
138 <a name="l00115"></a>00115 <span class="comment">// Unary bit operators</span>
139 <a name="l00116"></a>00116
140 <a name="l00117"></a>00117 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator%=(value_type <span class="keyword">const</span> &amp; s);
141 <a name="l00118"></a>00118 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator%=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
142 <a name="l00119"></a>00119 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator&amp;=(value_type <span class="keyword">const</span> &amp; s);
143 <a name="l00120"></a>00120 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator&amp;=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
144 <a name="l00121"></a>00121 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator|=(value_type <span class="keyword">const</span> &amp; s);
145 <a name="l00122"></a>00122 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator|=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
146 <a name="l00123"></a>00123 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator^=(value_type <span class="keyword">const</span> &amp; s);
147 <a name="l00124"></a>00124 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator^=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
148 <a name="l00125"></a>00125 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator&lt;&lt;=(value_type <span class="keyword">const</span> &amp; s);
149 <a name="l00126"></a>00126 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator&lt;&lt;=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
150 <a name="l00127"></a>00127 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator&gt;&gt;=(value_type <span class="keyword">const</span> &amp; s);
151 <a name="l00128"></a>00128 GLM_FUNC_DECL tvec1&lt;T&gt; &amp; operator&gt;&gt;=(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
152 <a name="l00129"></a>00129
153 <a name="l00131"></a>00131 <span class="comment">// Swizzle operators</span>
154 <a name="l00132"></a>00132
155 <a name="l00133"></a>00133 GLM_FUNC_DECL value_type swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X) <span class="keyword">const</span>;
156 <a name="l00134"></a>00134 GLM_FUNC_DECL tvec2&lt;T&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y) <span class="keyword">const</span>;
157 <a name="l00135"></a>00135 GLM_FUNC_DECL tvec3&lt;T&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z) <span class="keyword">const</span>;
158 <a name="l00136"></a>00136 GLM_FUNC_DECL tvec4&lt;T&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> W) <span class="keyword">const</span>;
159 <a name="l00137"></a>00137 GLM_FUNC_DECL tref1&lt;T&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X);
160 <a name="l00138"></a>00138 };
161 <a name="l00139"></a>00139
162 <a name="l00140"></a>00140 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
163 <a name="l00141"></a>00141 <span class="keyword">struct </span>tref1
164 <a name="l00142"></a>00142 {
165 <a name="l00143"></a>00143 GLM_FUNC_DECL tref1(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; x);
166 <a name="l00144"></a>00144 GLM_FUNC_DECL tref1(tref1&lt;T&gt; <span class="keyword">const</span> &amp; r);
167 <a name="l00145"></a>00145 GLM_FUNC_DECL tref1(tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
168 <a name="l00146"></a>00146
169 <a name="l00147"></a>00147 GLM_FUNC_DECL tref1&lt;T&gt; &amp; operator= (tref1&lt;T&gt; <span class="keyword">const</span> &amp; r);
170 <a name="l00148"></a>00148 GLM_FUNC_DECL tref1&lt;T&gt; &amp; operator= (tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
171 <a name="l00149"></a>00149
172 <a name="l00150"></a>00150 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; x;
173 <a name="l00151"></a>00151 };
174174 <a name="l00152"></a>00152
175 <a name="l00153"></a>00153 GLM_FUNC_DECL tref1&lt;T&gt; &amp; operator= (tref1&lt;T&gt; <span class="keyword">const</span> &amp; r);
176 <a name="l00154"></a>00154 GLM_FUNC_DECL tref1&lt;T&gt; &amp; operator= (tvec1&lt;T&gt; <span class="keyword">const</span> &amp; v);
177 <a name="l00155"></a>00155
178 <a name="l00156"></a>00156 T&amp; x;
179 <a name="l00157"></a>00157 };
180 <a name="l00158"></a>00158
181 <a name="l00159"></a>00159 GLM_DETAIL_IS_VECTOR(tvec1);
182 <a name="l00160"></a>00160
183 <a name="l00161"></a>00161 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::highp_float&gt; highp_vec1_t;
184 <a name="l00162"></a>00162 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::mediump_float&gt; mediump_vec1_t;
185 <a name="l00163"></a>00163 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::lowp_float&gt; lowp_vec1_t;
186 <a name="l00164"></a>00164 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::highp_int&gt; highp_ivec1_t;
187 <a name="l00165"></a>00165 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::mediump_int&gt; mediump_ivec1_t;
188 <a name="l00166"></a>00166 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::lowp_int&gt; lowp_ivec1_t;
189 <a name="l00167"></a>00167 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::highp_uint&gt; highp_uvec1_t;
190 <a name="l00168"></a>00168 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::mediump_uint&gt; mediump_uvec1_t;
191 <a name="l00169"></a>00169 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::lowp_uint&gt; lowp_uvec1_t;
192 <a name="l00170"></a>00170
193 <a name="l00171"></a>00171 } <span class="comment">//namespace detail</span>
194 <a name="l00172"></a>00172 }<span class="comment">//namespace glm</span>
195 <a name="l00173"></a>00173
196 <a name="l00174"></a>00174 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
197 <a name="l00175"></a>00175 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_vec1.inl&quot;</span>
198 <a name="l00176"></a>00176 <span class="preprocessor">#endif</span>
199 <a name="l00177"></a>00177 <span class="preprocessor"></span>
200 <a name="l00178"></a>00178 <span class="preprocessor">#endif//glm_core_type_gentype1</span>
175 <a name="l00153"></a>00153 GLM_DETAIL_IS_VECTOR(tvec1);
176 <a name="l00154"></a>00154
177 <a name="l00155"></a>00155 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::highp_float&gt; highp_vec1_t;
178 <a name="l00156"></a>00156 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::mediump_float&gt; mediump_vec1_t;
179 <a name="l00157"></a>00157 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::lowp_float&gt; lowp_vec1_t;
180 <a name="l00158"></a>00158 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::highp_int&gt; highp_ivec1_t;
181 <a name="l00159"></a>00159 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::mediump_int&gt; mediump_ivec1_t;
182 <a name="l00160"></a>00160 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::lowp_int&gt; lowp_ivec1_t;
183 <a name="l00161"></a>00161 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::highp_uint&gt; highp_uvec1_t;
184 <a name="l00162"></a>00162 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::mediump_uint&gt; mediump_uvec1_t;
185 <a name="l00163"></a>00163 <span class="keyword">typedef</span> detail::tvec1&lt;core::type::precision::lowp_uint&gt; lowp_uvec1_t;
186 <a name="l00164"></a>00164
187 <a name="l00165"></a>00165 }<span class="comment">//namespace detail</span>
188 <a name="l00166"></a>00166 }<span class="comment">//namespace glm</span>
189 <a name="l00167"></a>00167
190 <a name="l00168"></a>00168 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
191 <a name="l00169"></a>00169 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_vec1.inl&quot;</span>
192 <a name="l00170"></a>00170 <span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span>
193 <a name="l00171"></a>00171 <span class="preprocessor"></span>
194 <a name="l00172"></a>00172 <span class="preprocessor">#endif//glm_core_type_gentype1</span>
201195 </pre></div></div>
202196 </div>
203197 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5252 <a name="l00016"></a>00016 <span class="preprocessor">#include &quot;type_size.hpp&quot;</span>
5353 <a name="l00017"></a>00017 <span class="preprocessor">#include &quot;_swizzle.hpp&quot;</span>
5454 <a name="l00018"></a>00018
55 <a name="l00019"></a>00019 <span class="keyword">namespace </span>glm
56 <a name="l00020"></a>00020 {
57 <a name="l00021"></a>00021 <span class="keyword">namespace </span>test
58 <a name="l00022"></a>00022 {
59 <a name="l00023"></a>00023 <span class="keywordtype">void</span> main_vec2();
60 <a name="l00024"></a>00024 }
61 <a name="l00025"></a>00025 <span class="comment">//namespace test</span>
62 <a name="l00026"></a>00026
63 <a name="l00027"></a>00027 <span class="keyword">namespace </span>detail
64 <a name="l00028"></a>00028 {
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref2;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref3;
67 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref4;
68 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
69 <a name="l00033"></a>00033 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
55 <a name="l00019"></a>00019 <span class="keyword">namespace </span>glm{
56 <a name="l00020"></a>00020 <span class="keyword">namespace </span>detail
57 <a name="l00021"></a>00021 {
58 <a name="l00022"></a>00022 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref2;
59 <a name="l00023"></a>00023 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref3;
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref4;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
63 <a name="l00027"></a>00027
64 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
65 <a name="l00031"></a><a class="code" href="a00020.html">00031</a> <span class="keyword">struct </span><a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2</a>
66 <a name="l00032"></a>00032 {
67 <a name="l00033"></a>00033 <span class="keyword">enum</span> ctor{null};
7068 <a name="l00034"></a>00034
71 <a name="l00037"></a>00037 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
72 <a name="l00038"></a><a class="code" href="a00020.html">00038</a> <span class="keyword">struct </span><a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2</a>
73 <a name="l00039"></a>00039 {
74 <a name="l00040"></a>00040 <span class="keyword">enum</span> ctor{null};
75 <a name="l00041"></a>00041
76 <a name="l00042"></a>00042 <span class="keyword">typedef</span> T value_type;
77 <a name="l00043"></a>00043 <span class="keyword">typedef</span> std::size_t size_type;
78 <a name="l00044"></a>00044 GLM_FUNC_DECL size_type length() <span class="keyword">const</span>;
79 <a name="l00045"></a>00045 <span class="keyword">static</span> GLM_FUNC_DECL size_type value_size();
80 <a name="l00046"></a>00046
81 <a name="l00047"></a>00047 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">type</a>;
82 <a name="l00048"></a>00048 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;bool&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">bool_type</a>;
83 <a name="l00049"></a>00049
84 <a name="l00051"></a>00051 <span class="comment">// Data</span>
85 <a name="l00052"></a>00052
86 <a name="l00053"></a>00053 <span class="preprocessor"># if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)</span>
87 <a name="l00054"></a>00054 <span class="preprocessor"></span> value_type x, y;
88 <a name="l00055"></a>00055 <span class="preprocessor"># elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)</span>
89 <a name="l00056"></a>00056 <span class="preprocessor"></span> <span class="keyword">union </span>
90 <a name="l00057"></a>00057 {
91 <a name="l00058"></a>00058 <span class="keyword">struct</span>{value_type x, y;};
92 <a name="l00059"></a>00059 <span class="keyword">struct</span>{value_type r, g;};
93 <a name="l00060"></a>00060 <span class="keyword">struct</span>{value_type s, t;};
94 <a name="l00061"></a>00061 };
95 <a name="l00062"></a>00062 <span class="preprocessor"># else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)</span>
96 <a name="l00063"></a>00063 <span class="preprocessor"></span> <span class="keyword">union </span>{value_type x, r, s;};
97 <a name="l00064"></a>00064 <span class="keyword">union </span>{value_type y, g, t;};
98 <a name="l00065"></a>00065 <span class="preprocessor"># endif//GLM_COMPONENT</span>
99 <a name="l00066"></a>00066 <span class="preprocessor"></span>
100 <a name="l00068"></a>00068 <span class="comment">// Accesses</span>
101 <a name="l00069"></a>00069
102 <a name="l00070"></a>00070 GLM_FUNC_DECL value_type &amp; operator[](size_type i);
103 <a name="l00071"></a>00071 GLM_FUNC_DECL value_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
104 <a name="l00072"></a>00072
105 <a name="l00074"></a>00074 <span class="comment">// Implicit basic constructors</span>
106 <a name="l00075"></a>00075
107 <a name="l00076"></a>00076 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2</a>();
108 <a name="l00077"></a>00077 GLM_FUNC_DECL tvec2(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
109 <a name="l00078"></a>00078
110 <a name="l00080"></a>00080 <span class="comment">// Explicit basic constructors</span>
111 <a name="l00081"></a>00081
112 <a name="l00082"></a>00082 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec2(
113 <a name="l00083"></a>00083 ctor);
114 <a name="l00084"></a>00084 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec2(
115 <a name="l00085"></a>00085 value_type <span class="keyword">const</span> &amp; s);
116 <a name="l00086"></a>00086 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec2(
117 <a name="l00087"></a>00087 value_type <span class="keyword">const</span> &amp; s1,
118 <a name="l00088"></a>00088 value_type <span class="keyword">const</span> &amp; s2);
119 <a name="l00089"></a>00089
120 <a name="l00091"></a>00091 <span class="comment">// Swizzle constructors</span>
121 <a name="l00092"></a>00092
122 <a name="l00093"></a>00093 tvec2(tref2&lt;T&gt; <span class="keyword">const</span> &amp; r);
123 <a name="l00094"></a>00094
124 <a name="l00096"></a>00096 <span class="comment">// Convertion scalar constructors</span>
125 <a name="l00097"></a>00097
126 <a name="l00099"></a>00099 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
127 <a name="l00100"></a>00100 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec2(
128 <a name="l00101"></a>00101 U <span class="keyword">const</span> &amp; x);
129 <a name="l00103"></a>00103 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, <span class="keyword">typename</span> V&gt;
130 <a name="l00104"></a>00104 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec2(
131 <a name="l00105"></a>00105 U <span class="keyword">const</span> &amp; x,
132 <a name="l00106"></a>00106 V <span class="keyword">const</span> &amp; y);
133 <a name="l00107"></a>00107
134 <a name="l00109"></a>00109 <span class="comment">// Convertion vector constructors</span>
135 <a name="l00110"></a>00110
136 <a name="l00112"></a>00112 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
137 <a name="l00113"></a>00113 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec2(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
138 <a name="l00115"></a>00115 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
139 <a name="l00116"></a>00116 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec2(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
140 <a name="l00118"></a>00118 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
141 <a name="l00119"></a>00119 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec2(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
69 <a name="l00035"></a>00035 <span class="keyword">typedef</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> value_type;
70 <a name="l00036"></a>00036 <span class="keyword">typedef</span> std::size_t size_type;
71 <a name="l00037"></a>00037 GLM_FUNC_DECL size_type length() <span class="keyword">const</span>;
72 <a name="l00038"></a>00038 <span class="keyword">static</span> GLM_FUNC_DECL size_type value_size();
73 <a name="l00039"></a>00039
74 <a name="l00040"></a>00040 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">type</a>;
75 <a name="l00041"></a>00041 <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;bool&gt;</a> <a class="code" href="a00020.html" title="The basic 2D vector type.">bool_type</a>;
76 <a name="l00042"></a>00042
77 <a name="l00044"></a>00044 <span class="comment">// Data</span>
78 <a name="l00045"></a>00045
79 <a name="l00046"></a>00046 <span class="preprocessor"># if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)</span>
80 <a name="l00047"></a>00047 <span class="preprocessor"></span> value_type x, y;
81 <a name="l00048"></a>00048 <span class="preprocessor"># elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)</span>
82 <a name="l00049"></a>00049 <span class="preprocessor"></span> <span class="keyword">union </span>
83 <a name="l00050"></a>00050 {
84 <a name="l00051"></a>00051 <span class="keyword">struct</span>{value_type x, y;};
85 <a name="l00052"></a>00052 <span class="keyword">struct</span>{value_type r, g;};
86 <a name="l00053"></a>00053 <span class="keyword">struct</span>{value_type s, t;};
87 <a name="l00054"></a>00054 };
88 <a name="l00055"></a>00055 <span class="preprocessor"># else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)</span>
89 <a name="l00056"></a>00056 <span class="preprocessor"></span> <span class="keyword">union </span>{value_type x, r, s;};
90 <a name="l00057"></a>00057 <span class="keyword">union </span>{value_type y, g, t;};
91 <a name="l00058"></a>00058 <span class="preprocessor"># endif//GLM_COMPONENT</span>
92 <a name="l00059"></a>00059 <span class="preprocessor"></span>
93 <a name="l00061"></a>00061 <span class="comment">// Accesses</span>
94 <a name="l00062"></a>00062
95 <a name="l00063"></a>00063 GLM_FUNC_DECL value_type &amp; operator[](size_type i);
96 <a name="l00064"></a>00064 GLM_FUNC_DECL value_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
97 <a name="l00065"></a>00065
98 <a name="l00067"></a>00067 <span class="comment">// Implicit basic constructors</span>
99 <a name="l00068"></a>00068
100 <a name="l00069"></a>00069 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2</a>();
101 <a name="l00070"></a>00070 GLM_FUNC_DECL tvec2(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
102 <a name="l00071"></a>00071
103 <a name="l00073"></a>00073 <span class="comment">// Explicit basic constructors</span>
104 <a name="l00074"></a>00074
105 <a name="l00075"></a>00075 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec2(
106 <a name="l00076"></a>00076 ctor);
107 <a name="l00077"></a>00077 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec2(
108 <a name="l00078"></a>00078 value_type <span class="keyword">const</span> &amp; s);
109 <a name="l00079"></a>00079 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec2(
110 <a name="l00080"></a>00080 value_type <span class="keyword">const</span> &amp; s1,
111 <a name="l00081"></a>00081 value_type <span class="keyword">const</span> &amp; s2);
112 <a name="l00082"></a>00082
113 <a name="l00084"></a>00084 <span class="comment">// Swizzle constructors</span>
114 <a name="l00085"></a>00085
115 <a name="l00086"></a>00086 tvec2(tref2&lt;T&gt; <span class="keyword">const</span> &amp; r);
116 <a name="l00087"></a>00087
117 <a name="l00089"></a>00089 <span class="comment">// Convertion constructors</span>
118 <a name="l00090"></a>00090
119 <a name="l00092"></a>00092 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
120 <a name="l00093"></a>00093 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec2(
121 <a name="l00094"></a>00094 U <span class="keyword">const</span> &amp; x);
122 <a name="l00096"></a>00096 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, <span class="keyword">typename</span> V&gt;
123 <a name="l00097"></a>00097 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec2(
124 <a name="l00098"></a>00098 U <span class="keyword">const</span> &amp; x,
125 <a name="l00099"></a>00099 V <span class="keyword">const</span> &amp; y);
126 <a name="l00100"></a>00100
127 <a name="l00102"></a>00102 <span class="comment">// Convertion vector constructors</span>
128 <a name="l00103"></a>00103
129 <a name="l00105"></a>00105 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
130 <a name="l00106"></a>00106 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec2(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
131 <a name="l00108"></a>00108 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
132 <a name="l00109"></a>00109 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec2(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
133 <a name="l00111"></a>00111 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
134 <a name="l00112"></a>00112 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec2(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
135 <a name="l00113"></a>00113
136 <a name="l00115"></a>00115 <span class="comment">// Unary arithmetic operators</span>
137 <a name="l00116"></a>00116
138 <a name="l00117"></a>00117 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
139 <a name="l00118"></a>00118 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
140 <a name="l00119"></a>00119 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
142141 <a name="l00120"></a>00120
143 <a name="l00122"></a>00122 <span class="comment">// Unary arithmetic operators</span>
144 <a name="l00123"></a>00123
145 <a name="l00124"></a>00124 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
146 <a name="l00125"></a>00125 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
147 <a name="l00126"></a>00126 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
148 <a name="l00127"></a>00127
149 <a name="l00128"></a>00128 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
150 <a name="l00129"></a>00129 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator+=(U <span class="keyword">const</span> &amp; s);
151 <a name="l00130"></a>00130 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
152 <a name="l00131"></a>00131 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator+=(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
153 <a name="l00132"></a>00132 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
154 <a name="l00133"></a>00133 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator-=(U <span class="keyword">const</span> &amp; s);
155 <a name="l00134"></a>00134 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
156 <a name="l00135"></a>00135 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator-=(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
157 <a name="l00136"></a>00136 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
158 <a name="l00137"></a>00137 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator*=(U <span class="keyword">const</span> &amp; s);
159 <a name="l00138"></a>00138 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
160 <a name="l00139"></a>00139 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator*=(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
161 <a name="l00140"></a>00140 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
162 <a name="l00141"></a>00141 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator/=(U <span class="keyword">const</span> &amp; s);
163 <a name="l00142"></a>00142 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
164 <a name="l00143"></a>00143 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator/=(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
165 <a name="l00144"></a>00144 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator++();
166 <a name="l00145"></a>00145 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator--();
167 <a name="l00146"></a>00146
168 <a name="l00148"></a>00148 <span class="comment">// Unary bit operators</span>
169 <a name="l00149"></a>00149
170 <a name="l00150"></a>00150 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
171 <a name="l00151"></a>00151 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator%= (U <span class="keyword">const</span> &amp; s);
172 <a name="l00152"></a>00152 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
173 <a name="l00153"></a>00153 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator%= (<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
174 <a name="l00154"></a>00154 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
175 <a name="l00155"></a>00155 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator&amp;= (U <span class="keyword">const</span> &amp; s);
176 <a name="l00156"></a>00156 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
177 <a name="l00157"></a>00157 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator&amp;= (<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
178 <a name="l00158"></a>00158 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
179 <a name="l00159"></a>00159 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator|= (U <span class="keyword">const</span> &amp; s);
180 <a name="l00160"></a>00160 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
181 <a name="l00161"></a>00161 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator|= (<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
182 <a name="l00162"></a>00162 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
183 <a name="l00163"></a>00163 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator^= (U <span class="keyword">const</span> &amp; s);
184 <a name="l00164"></a>00164 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
185 <a name="l00165"></a>00165 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator^= (<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
186 <a name="l00166"></a>00166 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
187 <a name="l00167"></a>00167 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator&lt;&lt;=(U <span class="keyword">const</span> &amp; s);
188 <a name="l00168"></a>00168 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
189 <a name="l00169"></a>00169 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator&lt;&lt;=(tvec2&lt;U&gt; <span class="keyword">const</span> &amp; v);
190 <a name="l00170"></a>00170 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
191 <a name="l00171"></a>00171 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator&gt;&gt;=(U <span class="keyword">const</span> &amp; s);
192 <a name="l00172"></a>00172 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
193 <a name="l00173"></a>00173 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator&gt;&gt;=(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
194 <a name="l00174"></a>00174
195 <a name="l00176"></a>00176 <span class="comment">// Swizzle operators</span>
142 <a name="l00121"></a>00121 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
143 <a name="l00122"></a>00122 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator+=(U <span class="keyword">const</span> &amp; s);
144 <a name="l00123"></a>00123 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
145 <a name="l00124"></a>00124 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator+=(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
146 <a name="l00125"></a>00125 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
147 <a name="l00126"></a>00126 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator-=(U <span class="keyword">const</span> &amp; s);
148 <a name="l00127"></a>00127 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
149 <a name="l00128"></a>00128 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator-=(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
150 <a name="l00129"></a>00129 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
151 <a name="l00130"></a>00130 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator*=(U <span class="keyword">const</span> &amp; s);
152 <a name="l00131"></a>00131 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
153 <a name="l00132"></a>00132 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator*=(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
154 <a name="l00133"></a>00133 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
155 <a name="l00134"></a>00134 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator/=(U <span class="keyword">const</span> &amp; s);
156 <a name="l00135"></a>00135 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
157 <a name="l00136"></a>00136 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator/=(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
158 <a name="l00137"></a>00137 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator++();
159 <a name="l00138"></a>00138 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator--();
160 <a name="l00139"></a>00139
161 <a name="l00141"></a>00141 <span class="comment">// Unary bit operators</span>
162 <a name="l00142"></a>00142
163 <a name="l00143"></a>00143 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
164 <a name="l00144"></a>00144 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator%= (U <span class="keyword">const</span> &amp; s);
165 <a name="l00145"></a>00145 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
166 <a name="l00146"></a>00146 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator%= (<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
167 <a name="l00147"></a>00147 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
168 <a name="l00148"></a>00148 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator&amp;= (U <span class="keyword">const</span> &amp; s);
169 <a name="l00149"></a>00149 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
170 <a name="l00150"></a>00150 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator&amp;= (<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
171 <a name="l00151"></a>00151 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
172 <a name="l00152"></a>00152 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator|= (U <span class="keyword">const</span> &amp; s);
173 <a name="l00153"></a>00153 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
174 <a name="l00154"></a>00154 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator|= (<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
175 <a name="l00155"></a>00155 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
176 <a name="l00156"></a>00156 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator^= (U <span class="keyword">const</span> &amp; s);
177 <a name="l00157"></a>00157 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
178 <a name="l00158"></a>00158 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator^= (<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
179 <a name="l00159"></a>00159 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
180 <a name="l00160"></a>00160 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator&lt;&lt;=(U <span class="keyword">const</span> &amp; s);
181 <a name="l00161"></a>00161 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
182 <a name="l00162"></a>00162 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator&lt;&lt;=(tvec2&lt;U&gt; <span class="keyword">const</span> &amp; v);
183 <a name="l00163"></a>00163 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
184 <a name="l00164"></a>00164 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator&gt;&gt;=(U <span class="keyword">const</span> &amp; s);
185 <a name="l00165"></a>00165 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
186 <a name="l00166"></a>00166 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> &amp; operator&gt;&gt;=(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
187 <a name="l00167"></a>00167
188 <a name="l00169"></a>00169 <span class="comment">// Swizzle operators</span>
189 <a name="l00170"></a>00170
190 <a name="l00171"></a>00171 GLM_FUNC_DECL value_type swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X) <span class="keyword">const</span>;
191 <a name="l00172"></a>00172 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y) <span class="keyword">const</span>;
192 <a name="l00173"></a>00173 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z) <span class="keyword">const</span>;
193 <a name="l00174"></a>00174 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> W) <span class="keyword">const</span>;
194 <a name="l00175"></a>00175 GLM_FUNC_DECL tref2&lt;T&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y);
195 <a name="l00176"></a>00176 };
196196 <a name="l00177"></a>00177
197 <a name="l00178"></a>00178 GLM_FUNC_DECL value_type swizzle(comp X) <span class="keyword">const</span>;
198 <a name="l00179"></a>00179 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> swizzle(comp X, comp Y) <span class="keyword">const</span>;
199 <a name="l00180"></a>00180 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> swizzle(comp X, comp Y, comp Z) <span class="keyword">const</span>;
200 <a name="l00181"></a>00181 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> swizzle(comp X, comp Y, comp Z, comp W) <span class="keyword">const</span>;
201 <a name="l00182"></a>00182 GLM_FUNC_DECL tref2&lt;T&gt; swizzle(comp X, comp Y);
202 <a name="l00183"></a>00183 };
197 <a name="l00178"></a>00178 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
198 <a name="l00179"></a>00179 <span class="keyword">struct </span>tref2
199 <a name="l00180"></a>00180 {
200 <a name="l00181"></a>00181 GLM_FUNC_DECL tref2(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; y);
201 <a name="l00182"></a>00182 GLM_FUNC_DECL tref2(tref2&lt;T&gt; <span class="keyword">const</span> &amp; r);
202 <a name="l00183"></a>00183 GLM_FUNC_DECL tref2(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
203203 <a name="l00184"></a>00184
204 <a name="l00185"></a>00185 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
205 <a name="l00186"></a>00186 <span class="keyword">struct </span>tref2
206 <a name="l00187"></a>00187 {
207 <a name="l00188"></a>00188 GLM_FUNC_DECL tref2(T &amp; x, T &amp; y);
208 <a name="l00189"></a>00189 GLM_FUNC_DECL tref2(tref2&lt;T&gt; <span class="keyword">const</span> &amp; r);
209 <a name="l00190"></a>00190 GLM_FUNC_DECL tref2(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
204 <a name="l00185"></a>00185 GLM_FUNC_DECL tref2&lt;T&gt; &amp; operator= (tref2&lt;T&gt; <span class="keyword">const</span> &amp; r);
205 <a name="l00186"></a>00186 GLM_FUNC_DECL tref2&lt;T&gt; &amp; operator= (<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
206 <a name="l00187"></a>00187
207 <a name="l00188"></a>00188 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; x;
208 <a name="l00189"></a>00189 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a>&amp; y;
209 <a name="l00190"></a>00190 };
210210 <a name="l00191"></a>00191
211 <a name="l00192"></a>00192 GLM_FUNC_DECL tref2&lt;T&gt; &amp; operator= (tref2&lt;T&gt; <span class="keyword">const</span> &amp; r);
212 <a name="l00193"></a>00193 GLM_FUNC_DECL tref2&lt;T&gt; &amp; operator= (<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
213 <a name="l00194"></a>00194
214 <a name="l00195"></a>00195 T&amp; x;
215 <a name="l00196"></a>00196 T&amp; y;
216 <a name="l00197"></a>00197 };
217 <a name="l00198"></a>00198
218 <a name="l00199"></a>00199 GLM_DETAIL_IS_VECTOR(tvec2);
219 <a name="l00200"></a>00200
220 <a name="l00201"></a>00201 } <span class="comment">//namespace detail</span>
221 <a name="l00202"></a>00202
222 <a name="l00203"></a>00203 <span class="keyword">namespace </span>core{
223 <a name="l00204"></a>00204 <span class="keyword">namespace </span>type{
211 <a name="l00192"></a>00192 GLM_DETAIL_IS_VECTOR(tvec2);
212 <a name="l00193"></a>00193
213 <a name="l00194"></a>00194 } <span class="comment">//namespace detail</span>
214 <a name="l00195"></a>00195
215 <a name="l00196"></a>00196 <span class="keyword">namespace </span>core{
216 <a name="l00197"></a>00197 <span class="keyword">namespace </span>type{
217 <a name="l00198"></a>00198 <span class="keyword">namespace </span>precision
218 <a name="l00199"></a>00199 {
219 <a name="l00204"></a><a class="code" href="a00235.html#ga9b65d7afd0783a02f5b3d1b75d1d872e">00204</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;highp_float&gt;</a> <a class="code" href="a00235.html#ga9b65d7afd0783a02f5b3d1b75d1d872e" title="2 components vector of high precision floating-point numbers.">highp_vec2</a>;
224220 <a name="l00205"></a>00205
225 <a name="l00206"></a>00206 <span class="keyword">namespace </span>precision
226 <a name="l00207"></a>00207 {
227 <a name="l00212"></a><a class="code" href="a00236.html#ga9b65d7afd0783a02f5b3d1b75d1d872e">00212</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;highp_float&gt;</a> <a class="code" href="a00236.html#ga9b65d7afd0783a02f5b3d1b75d1d872e" title="2 components vector of high precision floating-point numbers.">highp_vec2</a>;
228 <a name="l00217"></a><a class="code" href="a00236.html#ga9a8a10fce5852b088dd631b34e942b7d">00217</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;mediump_float&gt;</a> <a class="code" href="a00236.html#ga9a8a10fce5852b088dd631b34e942b7d" title="2 components vector of medium precision floating-point numbers.">mediump_vec2</a>;
229 <a name="l00222"></a><a class="code" href="a00236.html#ga4df6c67742cd65d6d0a885b3a539d9ff">00222</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;lowp_float&gt;</a> <a class="code" href="a00236.html#ga4df6c67742cd65d6d0a885b3a539d9ff" title="2 components vector of low precision floating-point numbers.">lowp_vec2</a>;
221 <a name="l00210"></a><a class="code" href="a00235.html#ga9a8a10fce5852b088dd631b34e942b7d">00210</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;mediump_float&gt;</a> <a class="code" href="a00235.html#ga9a8a10fce5852b088dd631b34e942b7d" title="2 components vector of medium precision floating-point numbers.">mediump_vec2</a>;
222 <a name="l00211"></a>00211
223 <a name="l00216"></a><a class="code" href="a00235.html#ga4df6c67742cd65d6d0a885b3a539d9ff">00216</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;lowp_float&gt;</a> <a class="code" href="a00235.html#ga4df6c67742cd65d6d0a885b3a539d9ff" title="2 components vector of low precision floating-point numbers.">lowp_vec2</a>;
224 <a name="l00217"></a>00217
225 <a name="l00222"></a><a class="code" href="a00235.html#ga306173e656477f59bf0164a623780236">00222</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;highp_int&gt;</a> <a class="code" href="a00235.html#ga306173e656477f59bf0164a623780236" title="2 components vector of high precision signed integer numbers.">highp_ivec2</a>;
230226 <a name="l00223"></a>00223
231 <a name="l00228"></a><a class="code" href="a00236.html#ga306173e656477f59bf0164a623780236">00228</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;highp_int&gt;</a> <a class="code" href="a00236.html#ga306173e656477f59bf0164a623780236" title="2 components vector of high precision signed integer numbers.">highp_ivec2</a>;
232 <a name="l00233"></a><a class="code" href="a00236.html#ga269315792504783f450b829161f2bccf">00233</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;mediump_int&gt;</a> <a class="code" href="a00236.html#ga269315792504783f450b829161f2bccf" title="2 components vector of medium precision signed integer numbers.">mediump_ivec2</a>;
233 <a name="l00238"></a><a class="code" href="a00236.html#ga26364654fd75ba6c7f11a65967a7fbee">00238</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;lowp_int&gt;</a> <a class="code" href="a00236.html#ga26364654fd75ba6c7f11a65967a7fbee" title="2 components vector of low precision signed integer numbers.">lowp_ivec2</a>;
234 <a name="l00239"></a>00239
235 <a name="l00244"></a><a class="code" href="a00236.html#gad4a5243fc438d0f2efbc22d075b4e399">00244</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;highp_uint&gt;</a> <a class="code" href="a00236.html#gad4a5243fc438d0f2efbc22d075b4e399" title="2 components vector of high precision unsigned integer numbers.">highp_uvec2</a>;
236 <a name="l00249"></a><a class="code" href="a00236.html#ga5cd4f5f5667de09c7c12df85d138f599">00249</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;mediump_uint&gt;</a> <a class="code" href="a00236.html#ga5cd4f5f5667de09c7c12df85d138f599" title="2 components vector of medium precision unsigned integer numbers.">mediump_uvec2</a>;
237 <a name="l00254"></a><a class="code" href="a00236.html#ga9cb9b78162fca09f7ce9d08758f8b3c1">00254</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;lowp_uint&gt;</a> <a class="code" href="a00236.html#ga9cb9b78162fca09f7ce9d08758f8b3c1" title="2 components vector of low precision unsigned integer numbers.">lowp_uvec2</a>;
238 <a name="l00255"></a>00255 }
239 <a name="l00256"></a>00256 <span class="comment">//namespace precision</span>
240 <a name="l00257"></a>00257
241 <a name="l00258"></a>00258 }<span class="comment">//namespace type</span>
242 <a name="l00259"></a>00259 }<span class="comment">//namespace core</span>
243 <a name="l00260"></a>00260 }<span class="comment">//namespace glm</span>
244 <a name="l00261"></a>00261
245 <a name="l00262"></a>00262 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
246 <a name="l00263"></a>00263 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_vec2.inl&quot;</span>
247 <a name="l00264"></a>00264 <span class="preprocessor">#endif</span>
248 <a name="l00265"></a>00265 <span class="preprocessor"></span>
249 <a name="l00266"></a>00266 <span class="preprocessor">#endif//glm_core_type_gentype2</span>
227 <a name="l00228"></a><a class="code" href="a00235.html#ga269315792504783f450b829161f2bccf">00228</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;mediump_int&gt;</a> <a class="code" href="a00235.html#ga269315792504783f450b829161f2bccf" title="2 components vector of medium precision signed integer numbers.">mediump_ivec2</a>;
228 <a name="l00229"></a>00229
229 <a name="l00234"></a><a class="code" href="a00235.html#ga26364654fd75ba6c7f11a65967a7fbee">00234</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;lowp_int&gt;</a> <a class="code" href="a00235.html#ga26364654fd75ba6c7f11a65967a7fbee" title="2 components vector of low precision signed integer numbers.">lowp_ivec2</a>;
230 <a name="l00235"></a>00235
231 <a name="l00240"></a><a class="code" href="a00235.html#gad4a5243fc438d0f2efbc22d075b4e399">00240</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;highp_uint&gt;</a> <a class="code" href="a00235.html#gad4a5243fc438d0f2efbc22d075b4e399" title="2 components vector of high precision unsigned integer numbers.">highp_uvec2</a>;
232 <a name="l00241"></a>00241
233 <a name="l00246"></a><a class="code" href="a00235.html#ga5cd4f5f5667de09c7c12df85d138f599">00246</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;mediump_uint&gt;</a> <a class="code" href="a00235.html#ga5cd4f5f5667de09c7c12df85d138f599" title="2 components vector of medium precision unsigned integer numbers.">mediump_uvec2</a>;
234 <a name="l00247"></a>00247
235 <a name="l00252"></a><a class="code" href="a00235.html#ga9cb9b78162fca09f7ce9d08758f8b3c1">00252</a> <span class="keyword">typedef</span> <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;lowp_uint&gt;</a> <a class="code" href="a00235.html#ga9cb9b78162fca09f7ce9d08758f8b3c1" title="2 components vector of low precision unsigned integer numbers.">lowp_uvec2</a>;
236 <a name="l00253"></a>00253
237 <a name="l00254"></a>00254 }<span class="comment">//namespace precision</span>
238 <a name="l00255"></a>00255 }<span class="comment">//namespace type</span>
239 <a name="l00256"></a>00256 }<span class="comment">//namespace core</span>
240 <a name="l00257"></a>00257 }<span class="comment">//namespace glm</span>
241 <a name="l00258"></a>00258
242 <a name="l00259"></a>00259 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
243 <a name="l00260"></a>00260 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_vec2.inl&quot;</span>
244 <a name="l00261"></a>00261 <span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span>
245 <a name="l00262"></a>00262 <span class="preprocessor"></span>
246 <a name="l00263"></a>00263 <span class="preprocessor">#endif//glm_core_type_gentype2</span>
250247 </pre></div></div>
251248 </div>
252249 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5252 <a name="l00016"></a>00016 <span class="preprocessor">#include &quot;type_size.hpp&quot;</span>
5353 <a name="l00017"></a>00017 <span class="preprocessor">#include &quot;_swizzle.hpp&quot;</span>
5454 <a name="l00018"></a>00018
55 <a name="l00019"></a>00019 <span class="keyword">namespace </span>glm
56 <a name="l00020"></a>00020 {
57 <a name="l00021"></a>00021 <span class="keyword">namespace </span>test
58 <a name="l00022"></a>00022 {
59 <a name="l00023"></a>00023 <span class="keywordtype">void</span> main_vec3();
60 <a name="l00024"></a>00024 }<span class="comment">//namespace test</span>
61 <a name="l00025"></a>00025
62 <a name="l00026"></a>00026 <span class="keyword">namespace </span>detail
63 <a name="l00027"></a>00027 {
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref4;
67 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
68 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
69 <a name="l00033"></a>00033
70 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
71 <a name="l00037"></a><a class="code" href="a00021.html">00037</a> <span class="keyword">struct </span><a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3</a>
72 <a name="l00038"></a>00038 {
73 <a name="l00039"></a>00039 <span class="keyword">enum</span> ctor{null};
74 <a name="l00040"></a>00040
75 <a name="l00041"></a>00041 <span class="keyword">typedef</span> T value_type;
76 <a name="l00042"></a>00042 <span class="keyword">typedef</span> std::size_t size_type;
77 <a name="l00043"></a>00043 GLM_FUNC_DECL size_type length() <span class="keyword">const</span>;
78 <a name="l00044"></a>00044 <span class="keyword">static</span> GLM_FUNC_DECL size_type value_size();
55 <a name="l00019"></a>00019 <span class="keyword">namespace </span>glm{
56 <a name="l00020"></a>00020 <span class="keyword">namespace </span>detail
57 <a name="l00021"></a>00021 {
58 <a name="l00022"></a>00022 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref2;
59 <a name="l00023"></a>00023 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref3;
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref4;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec4;
63 <a name="l00027"></a>00027
64 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
65 <a name="l00031"></a><a class="code" href="a00021.html">00031</a> <span class="keyword">struct </span><a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3</a>
66 <a name="l00032"></a>00032 {
67 <a name="l00033"></a>00033 <span class="keyword">enum</span> ctor{null};
68 <a name="l00034"></a>00034
69 <a name="l00035"></a>00035 <span class="keyword">typedef</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> value_type;
70 <a name="l00036"></a>00036 <span class="keyword">typedef</span> std::size_t size_type;
71 <a name="l00037"></a>00037 GLM_FUNC_DECL size_type length() <span class="keyword">const</span>;
72 <a name="l00038"></a>00038 <span class="keyword">static</span> GLM_FUNC_DECL size_type value_size();
73 <a name="l00039"></a>00039
74 <a name="l00040"></a>00040 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">type</a>;
75 <a name="l00041"></a>00041 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;bool&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">bool_type</a>;
76 <a name="l00042"></a>00042
77 <a name="l00044"></a>00044 <span class="comment">// Data</span>
7978 <a name="l00045"></a>00045
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">type</a>;
81 <a name="l00047"></a>00047 <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;bool&gt;</a> <a class="code" href="a00021.html" title="Basic 3D vector type.">bool_type</a>;
82 <a name="l00048"></a>00048
83 <a name="l00050"></a>00050 <span class="comment">// Data</span>
84 <a name="l00051"></a>00051
85 <a name="l00052"></a>00052 <span class="preprocessor"># if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)</span>
86 <a name="l00053"></a>00053 <span class="preprocessor"></span> value_type x, y, z;
87 <a name="l00054"></a>00054 <span class="preprocessor"># elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)</span>
88 <a name="l00055"></a>00055 <span class="preprocessor"></span> <span class="keyword">union </span>
89 <a name="l00056"></a>00056 {
90 <a name="l00057"></a>00057 <span class="keyword">struct</span>{value_type x, y, z;};
91 <a name="l00058"></a>00058 <span class="keyword">struct</span>{value_type r, g, b;};
92 <a name="l00059"></a>00059 <span class="keyword">struct</span>{value_type s, t, p;};
93 <a name="l00060"></a>00060 };
94 <a name="l00061"></a>00061 <span class="preprocessor"># else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)</span>
95 <a name="l00062"></a>00062 <span class="preprocessor"></span> <span class="keyword">union </span>{value_type x, r, s;};
96 <a name="l00063"></a>00063 <span class="keyword">union </span>{value_type y, g, t;};
97 <a name="l00064"></a>00064 <span class="keyword">union </span>{value_type z, b, p;};
98 <a name="l00065"></a>00065 <span class="preprocessor"># endif//GLM_COMPONENT</span>
99 <a name="l00066"></a>00066 <span class="preprocessor"></span>
100 <a name="l00068"></a>00068 <span class="comment">// Accesses</span>
79 <a name="l00046"></a>00046 <span class="preprocessor"># if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)</span>
80 <a name="l00047"></a>00047 <span class="preprocessor"></span> value_type x, y, z;
81 <a name="l00048"></a>00048 <span class="preprocessor"># elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)</span>
82 <a name="l00049"></a>00049 <span class="preprocessor"></span> <span class="keyword">union </span>
83 <a name="l00050"></a>00050 {
84 <a name="l00051"></a>00051 <span class="keyword">struct</span>{value_type x, y, z;};
85 <a name="l00052"></a>00052 <span class="keyword">struct</span>{value_type r, g, b;};
86 <a name="l00053"></a>00053 <span class="keyword">struct</span>{value_type s, t, p;};
87 <a name="l00054"></a>00054 };
88 <a name="l00055"></a>00055 <span class="preprocessor"># else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)</span>
89 <a name="l00056"></a>00056 <span class="preprocessor"></span> <span class="keyword">union </span>{value_type x, r, s;};
90 <a name="l00057"></a>00057 <span class="keyword">union </span>{value_type y, g, t;};
91 <a name="l00058"></a>00058 <span class="keyword">union </span>{value_type z, b, p;};
92 <a name="l00059"></a>00059 <span class="preprocessor"># endif//GLM_COMPONENT</span>
93 <a name="l00060"></a>00060 <span class="preprocessor"></span>
94 <a name="l00062"></a>00062 <span class="comment">// Accesses</span>
95 <a name="l00063"></a>00063
96 <a name="l00064"></a>00064 GLM_FUNC_DECL value_type &amp; operator[](size_type i);
97 <a name="l00065"></a>00065 GLM_FUNC_DECL value_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
98 <a name="l00066"></a>00066
99 <a name="l00068"></a>00068 <span class="comment">// Implicit basic constructors</span>
101100 <a name="l00069"></a>00069
102 <a name="l00070"></a>00070 GLM_FUNC_DECL value_type &amp; operator[](size_type i);
103 <a name="l00071"></a>00071 GLM_FUNC_DECL value_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
101 <a name="l00070"></a>00070 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3</a>();
102 <a name="l00071"></a>00071 GLM_FUNC_DECL tvec3(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
104103 <a name="l00072"></a>00072
105 <a name="l00074"></a>00074 <span class="comment">// Implicit basic constructors</span>
104 <a name="l00074"></a>00074 <span class="comment">// Explicit basic constructors</span>
106105 <a name="l00075"></a>00075
107 <a name="l00076"></a>00076 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3</a>();
108 <a name="l00077"></a>00077 GLM_FUNC_DECL tvec3(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
109 <a name="l00078"></a>00078
110 <a name="l00080"></a>00080 <span class="comment">// Explicit basic constructors</span>
111 <a name="l00081"></a>00081
112 <a name="l00082"></a>00082 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(
113 <a name="l00083"></a>00083 ctor);
114 <a name="l00084"></a>00084 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(
115 <a name="l00085"></a>00085 value_type <span class="keyword">const</span> &amp; s);
116 <a name="l00086"></a>00086 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(
117 <a name="l00087"></a>00087 value_type <span class="keyword">const</span> &amp; s1,
118 <a name="l00088"></a>00088 value_type <span class="keyword">const</span> &amp; s2,
119 <a name="l00089"></a>00089 value_type <span class="keyword">const</span> &amp; s3);
120 <a name="l00090"></a>00090
121 <a name="l00092"></a>00092 <span class="comment">// Swizzle constructors</span>
122 <a name="l00093"></a>00093
123 <a name="l00094"></a>00094 GLM_FUNC_DECL tvec3(tref3&lt;T&gt; <span class="keyword">const</span> &amp; r);
124 <a name="l00095"></a>00095
125 <a name="l00097"></a>00097 <span class="comment">// Convertion scalar constructors</span>
126 <a name="l00098"></a>00098
127 <a name="l00100"></a>00100 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
128 <a name="l00101"></a>00101 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(
129 <a name="l00102"></a>00102 U <span class="keyword">const</span> &amp; x);
130 <a name="l00104"></a>00104 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, <span class="keyword">typename</span> V, <span class="keyword">typename</span> W&gt;
131 <a name="l00105"></a>00105 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(
132 <a name="l00106"></a>00106 U <span class="keyword">const</span> &amp; x,
133 <a name="l00107"></a>00107 V <span class="keyword">const</span> &amp; y,
134 <a name="l00108"></a>00108 W <span class="keyword">const</span> &amp; z);
135 <a name="l00109"></a>00109
136 <a name="l00111"></a>00111 <span class="comment">// Convertion vector constructors</span>
137 <a name="l00112"></a>00112
138 <a name="l00114"></a>00114 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
139 <a name="l00115"></a>00115 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;A&gt;</a> <span class="keyword">const</span> &amp; v, B <span class="keyword">const</span> &amp; s);
140 <a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
141 <a name="l00118"></a>00118 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(A <span class="keyword">const</span> &amp; s, <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;B&gt;</a> <span class="keyword">const</span> &amp; v);
142 <a name="l00120"></a>00120 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
143 <a name="l00121"></a>00121 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
144 <a name="l00123"></a>00123 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
145 <a name="l00124"></a>00124 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
146 <a name="l00125"></a>00125
147 <a name="l00127"></a>00127 <span class="comment">// Unary arithmetic operators</span>
148 <a name="l00128"></a>00128
149 <a name="l00129"></a>00129 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
150 <a name="l00130"></a>00130 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
151 <a name="l00131"></a>00131 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
152 <a name="l00132"></a>00132
153 <a name="l00133"></a>00133 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
154 <a name="l00134"></a>00134 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator+=(U <span class="keyword">const</span> &amp; s);
155 <a name="l00135"></a>00135 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
156 <a name="l00136"></a>00136 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator+=(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
157 <a name="l00137"></a>00137 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
158 <a name="l00138"></a>00138 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator-=(U <span class="keyword">const</span> &amp; s);
159 <a name="l00139"></a>00139 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
160 <a name="l00140"></a>00140 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator-=(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
161 <a name="l00141"></a>00141 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
162 <a name="l00142"></a>00142 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator*=(U <span class="keyword">const</span> &amp; s);
163 <a name="l00143"></a>00143 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
164 <a name="l00144"></a>00144 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator*=(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
165 <a name="l00145"></a>00145 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
166 <a name="l00146"></a>00146 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator/=(U <span class="keyword">const</span> &amp; s);
167 <a name="l00147"></a>00147 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
168 <a name="l00148"></a>00148 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator/=(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
169 <a name="l00149"></a>00149 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator++();
170 <a name="l00150"></a>00150 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator--();
171 <a name="l00151"></a>00151
172 <a name="l00153"></a>00153 <span class="comment">// Unary bit operators</span>
173 <a name="l00154"></a>00154
174 <a name="l00155"></a>00155 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
175 <a name="l00156"></a>00156 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator%= (U <span class="keyword">const</span> &amp; s);
176 <a name="l00157"></a>00157 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
177 <a name="l00158"></a>00158 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator%= (<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
178 <a name="l00159"></a>00159 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
179 <a name="l00160"></a>00160 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator&amp;= (U <span class="keyword">const</span> &amp; s);
180 <a name="l00161"></a>00161 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
181 <a name="l00162"></a>00162 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator&amp;= (<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
182 <a name="l00163"></a>00163 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
183 <a name="l00164"></a>00164 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator|= (U <span class="keyword">const</span> &amp; s);
184 <a name="l00165"></a>00165 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
185 <a name="l00166"></a>00166 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator|= (<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
186 <a name="l00167"></a>00167 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
187 <a name="l00168"></a>00168 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator^= (U <span class="keyword">const</span> &amp; s);
188 <a name="l00169"></a>00169 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
189 <a name="l00170"></a>00170 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator^= (<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
190 <a name="l00171"></a>00171 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
191 <a name="l00172"></a>00172 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator&lt;&lt;=(U <span class="keyword">const</span> &amp; s);
192 <a name="l00173"></a>00173 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
193 <a name="l00174"></a>00174 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator&lt;&lt;=(tvec3&lt;U&gt; <span class="keyword">const</span> &amp; v);
194 <a name="l00175"></a>00175 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
195 <a name="l00176"></a>00176 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator&gt;&gt;=(U <span class="keyword">const</span> &amp; s);
196 <a name="l00177"></a>00177 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
197 <a name="l00178"></a>00178 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator&gt;&gt;=(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
198 <a name="l00179"></a>00179
199 <a name="l00181"></a>00181 <span class="comment">// Swizzle operators</span>
200 <a name="l00182"></a>00182
201 <a name="l00183"></a>00183 GLM_FUNC_DECL value_type swizzle(comp X) <span class="keyword">const</span>;
202 <a name="l00184"></a>00184 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> swizzle(comp X, comp Y) <span class="keyword">const</span>;
203 <a name="l00185"></a>00185 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> swizzle(comp X, comp Y, comp Z) <span class="keyword">const</span>;
204 <a name="l00186"></a>00186 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> swizzle(comp X, comp Y, comp Z, comp W) <span class="keyword">const</span>;
205 <a name="l00187"></a>00187 GLM_FUNC_DECL tref3&lt;T&gt; swizzle(comp X, comp Y, comp Z);
206 <a name="l00188"></a>00188 };
207 <a name="l00189"></a>00189
208 <a name="l00190"></a>00190 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
209 <a name="l00191"></a>00191 <span class="keyword">struct </span>tref3
210 <a name="l00192"></a>00192 {
211 <a name="l00193"></a>00193 GLM_FUNC_DECL tref3(T &amp; x, T &amp; y, T &amp; z);
212 <a name="l00194"></a>00194 GLM_FUNC_DECL tref3(tref3&lt;T&gt; <span class="keyword">const</span> &amp; r);
213 <a name="l00195"></a>00195 GLM_FUNC_DECL tref3(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
214 <a name="l00196"></a>00196
215 <a name="l00197"></a>00197 GLM_FUNC_DECL tref3&lt;T&gt; &amp; operator= (tref3&lt;T&gt; <span class="keyword">const</span> &amp; r);
216 <a name="l00198"></a>00198 GLM_FUNC_DECL tref3&lt;T&gt; &amp; operator= (<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
217 <a name="l00199"></a>00199
218 <a name="l00200"></a>00200 T &amp; x;
219 <a name="l00201"></a>00201 T &amp; y;
220 <a name="l00202"></a>00202 T &amp; z;
221 <a name="l00203"></a>00203 };
222 <a name="l00204"></a>00204
223 <a name="l00205"></a>00205 GLM_DETAIL_IS_VECTOR(tvec3);
224 <a name="l00206"></a>00206 } <span class="comment">//namespace detail</span>
225 <a name="l00207"></a>00207
226 <a name="l00208"></a>00208 <span class="keyword">namespace </span>core{
227 <a name="l00209"></a>00209 <span class="keyword">namespace </span>type{
228 <a name="l00210"></a>00210
229 <a name="l00211"></a>00211 <span class="keyword">namespace </span>precision
230 <a name="l00212"></a>00212 {
231 <a name="l00217"></a><a class="code" href="a00236.html#ga0d3129f5f6644cb7552f520ff0dfa789">00217</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;highp_float&gt;</a> <a class="code" href="a00236.html#ga0d3129f5f6644cb7552f520ff0dfa789" title="3 components vector of high precision floating-point numbers.">highp_vec3</a>;
232 <a name="l00222"></a><a class="code" href="a00236.html#gaf6aa71f085a150f42929a4b77458143e">00222</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;mediump_float&gt;</a> <a class="code" href="a00236.html#gaf6aa71f085a150f42929a4b77458143e" title="3 components vector of medium precision floating-point numbers.">mediump_vec3</a>;
233 <a name="l00227"></a><a class="code" href="a00236.html#gab9e39d9db144322c1ad30ab3141084ad">00227</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;lowp_float&gt;</a> <a class="code" href="a00236.html#gab9e39d9db144322c1ad30ab3141084ad" title="3 components vector of low precision floating-point numbers.">lowp_vec3</a>;
234 <a name="l00228"></a>00228
235 <a name="l00233"></a><a class="code" href="a00236.html#gaccca78e0907313665d47af163c17c5bb">00233</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;highp_int&gt;</a> <a class="code" href="a00236.html#gaccca78e0907313665d47af163c17c5bb" title="3 components vector of high precision signed integer numbers.">highp_ivec3</a>;
236 <a name="l00238"></a><a class="code" href="a00236.html#ga1d8ae738ed79d71f8d381f472d366913">00238</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;mediump_int&gt;</a> <a class="code" href="a00236.html#ga1d8ae738ed79d71f8d381f472d366913" title="3 components vector of medium precision signed integer numbers.">mediump_ivec3</a>;
237 <a name="l00243"></a><a class="code" href="a00236.html#gac246e3a1a470974283d6618ad77fd477">00243</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;lowp_int&gt;</a> <a class="code" href="a00236.html#gac246e3a1a470974283d6618ad77fd477" title="3 components vector of low precision signed integer numbers.">lowp_ivec3</a>;
238 <a name="l00244"></a>00244
239 <a name="l00249"></a><a class="code" href="a00236.html#gaf4b32075ad193e4f47c8bfc367593d8c">00249</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;highp_uint&gt;</a> <a class="code" href="a00236.html#gaf4b32075ad193e4f47c8bfc367593d8c" title="3 components vector of high precision unsigned integer numbers.">highp_uvec3</a>;
240 <a name="l00254"></a><a class="code" href="a00236.html#ga70d49eff07e7988447c93a83f9f311b6">00254</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;mediump_uint&gt;</a> <a class="code" href="a00236.html#ga70d49eff07e7988447c93a83f9f311b6" title="3 components vector of medium precision unsigned integer numbers.">mediump_uvec3</a>;
241 <a name="l00259"></a><a class="code" href="a00236.html#gaefdce0fe4ed79b26ed2b5f00bbf39075">00259</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;lowp_uint&gt;</a> <a class="code" href="a00236.html#gaefdce0fe4ed79b26ed2b5f00bbf39075" title="3 components vector of low precision unsigned integer numbers.">lowp_uvec3</a>;
242 <a name="l00260"></a>00260 }
243 <a name="l00261"></a>00261 <span class="comment">//namespace precision</span>
244 <a name="l00262"></a>00262
245 <a name="l00263"></a>00263 }<span class="comment">//namespace type</span>
246 <a name="l00264"></a>00264 }<span class="comment">//namespace core</span>
247 <a name="l00265"></a>00265 }<span class="comment">//namespace glm</span>
248 <a name="l00266"></a>00266
249 <a name="l00267"></a>00267 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
250 <a name="l00268"></a>00268 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_vec3.inl&quot;</span>
251 <a name="l00269"></a>00269 <span class="preprocessor">#endif</span>
252 <a name="l00270"></a>00270 <span class="preprocessor"></span>
253 <a name="l00271"></a>00271 <span class="preprocessor">#endif//glm_core_type_gentype3</span>
106 <a name="l00076"></a>00076 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(
107 <a name="l00077"></a>00077 ctor);
108 <a name="l00078"></a>00078 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(
109 <a name="l00079"></a>00079 value_type <span class="keyword">const</span> &amp; s);
110 <a name="l00080"></a>00080 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(
111 <a name="l00081"></a>00081 value_type <span class="keyword">const</span> &amp; s1,
112 <a name="l00082"></a>00082 value_type <span class="keyword">const</span> &amp; s2,
113 <a name="l00083"></a>00083 value_type <span class="keyword">const</span> &amp; s3);
114 <a name="l00084"></a>00084
115 <a name="l00086"></a>00086 <span class="comment">// Swizzle constructors</span>
116 <a name="l00087"></a>00087
117 <a name="l00088"></a>00088 GLM_FUNC_DECL tvec3(tref3&lt;T&gt; <span class="keyword">const</span> &amp; r);
118 <a name="l00089"></a>00089
119 <a name="l00091"></a>00091 <span class="comment">// Convertion scalar constructors</span>
120 <a name="l00092"></a>00092
121 <a name="l00094"></a>00094 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
122 <a name="l00095"></a>00095 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(
123 <a name="l00096"></a>00096 U <span class="keyword">const</span> &amp; x);
124 <a name="l00098"></a>00098 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, <span class="keyword">typename</span> V, <span class="keyword">typename</span> W&gt;
125 <a name="l00099"></a>00099 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(
126 <a name="l00100"></a>00100 U <span class="keyword">const</span> &amp; x,
127 <a name="l00101"></a>00101 V <span class="keyword">const</span> &amp; y,
128 <a name="l00102"></a>00102 W <span class="keyword">const</span> &amp; z);
129 <a name="l00103"></a>00103
130 <a name="l00105"></a>00105 <span class="comment">// Convertion vector constructors</span>
131 <a name="l00106"></a>00106
132 <a name="l00108"></a>00108 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
133 <a name="l00109"></a>00109 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;A&gt;</a> <span class="keyword">const</span> &amp; v, B <span class="keyword">const</span> &amp; s);
134 <a name="l00111"></a>00111 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
135 <a name="l00112"></a>00112 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(A <span class="keyword">const</span> &amp; s, <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;B&gt;</a> <span class="keyword">const</span> &amp; v);
136 <a name="l00114"></a>00114 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
137 <a name="l00115"></a>00115 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
138 <a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
139 <a name="l00118"></a>00118 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec3(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
140 <a name="l00119"></a>00119
141 <a name="l00121"></a>00121 <span class="comment">// Unary arithmetic operators</span>
142 <a name="l00122"></a>00122
143 <a name="l00123"></a>00123 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
144 <a name="l00124"></a>00124 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
145 <a name="l00125"></a>00125 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
146 <a name="l00126"></a>00126
147 <a name="l00127"></a>00127 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
148 <a name="l00128"></a>00128 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator+=(U <span class="keyword">const</span> &amp; s);
149 <a name="l00129"></a>00129 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
150 <a name="l00130"></a>00130 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator+=(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
151 <a name="l00131"></a>00131 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
152 <a name="l00132"></a>00132 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator-=(U <span class="keyword">const</span> &amp; s);
153 <a name="l00133"></a>00133 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
154 <a name="l00134"></a>00134 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator-=(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
155 <a name="l00135"></a>00135 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
156 <a name="l00136"></a>00136 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator*=(U <span class="keyword">const</span> &amp; s);
157 <a name="l00137"></a>00137 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
158 <a name="l00138"></a>00138 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator*=(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
159 <a name="l00139"></a>00139 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
160 <a name="l00140"></a>00140 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator/=(U <span class="keyword">const</span> &amp; s);
161 <a name="l00141"></a>00141 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
162 <a name="l00142"></a>00142 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator/=(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
163 <a name="l00143"></a>00143 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator++();
164 <a name="l00144"></a>00144 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator--();
165 <a name="l00145"></a>00145
166 <a name="l00147"></a>00147 <span class="comment">// Unary bit operators</span>
167 <a name="l00148"></a>00148
168 <a name="l00149"></a>00149 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
169 <a name="l00150"></a>00150 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator%= (U <span class="keyword">const</span> &amp; s);
170 <a name="l00151"></a>00151 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
171 <a name="l00152"></a>00152 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator%= (<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
172 <a name="l00153"></a>00153 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
173 <a name="l00154"></a>00154 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator&amp;= (U <span class="keyword">const</span> &amp; s);
174 <a name="l00155"></a>00155 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
175 <a name="l00156"></a>00156 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator&amp;= (<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
176 <a name="l00157"></a>00157 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
177 <a name="l00158"></a>00158 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator|= (U <span class="keyword">const</span> &amp; s);
178 <a name="l00159"></a>00159 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
179 <a name="l00160"></a>00160 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator|= (<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
180 <a name="l00161"></a>00161 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
181 <a name="l00162"></a>00162 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator^= (U <span class="keyword">const</span> &amp; s);
182 <a name="l00163"></a>00163 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
183 <a name="l00164"></a>00164 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator^= (<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
184 <a name="l00165"></a>00165 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
185 <a name="l00166"></a>00166 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator&lt;&lt;=(U <span class="keyword">const</span> &amp; s);
186 <a name="l00167"></a>00167 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
187 <a name="l00168"></a>00168 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator&lt;&lt;=(tvec3&lt;U&gt; <span class="keyword">const</span> &amp; v);
188 <a name="l00169"></a>00169 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
189 <a name="l00170"></a>00170 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator&gt;&gt;=(U <span class="keyword">const</span> &amp; s);
190 <a name="l00171"></a>00171 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
191 <a name="l00172"></a>00172 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> &amp; operator&gt;&gt;=(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
192 <a name="l00173"></a>00173
193 <a name="l00175"></a>00175 <span class="comment">// Swizzle operators</span>
194 <a name="l00176"></a>00176
195 <a name="l00177"></a>00177 GLM_FUNC_DECL value_type swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X) <span class="keyword">const</span>;
196 <a name="l00178"></a>00178 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y) <span class="keyword">const</span>;
197 <a name="l00179"></a>00179 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z) <span class="keyword">const</span>;
198 <a name="l00180"></a>00180 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> W) <span class="keyword">const</span>;
199 <a name="l00181"></a>00181 GLM_FUNC_DECL tref3&lt;T&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z);
200 <a name="l00182"></a>00182 };
201 <a name="l00183"></a>00183
202 <a name="l00184"></a>00184 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
203 <a name="l00185"></a>00185 <span class="keyword">struct </span>tref3
204 <a name="l00186"></a>00186 {
205 <a name="l00187"></a>00187 GLM_FUNC_DECL tref3(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; z);
206 <a name="l00188"></a>00188 GLM_FUNC_DECL tref3(tref3&lt;T&gt; <span class="keyword">const</span> &amp; r);
207 <a name="l00189"></a>00189 GLM_FUNC_DECL tref3(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
208 <a name="l00190"></a>00190
209 <a name="l00191"></a>00191 GLM_FUNC_DECL tref3&lt;T&gt; &amp; operator= (tref3&lt;T&gt; <span class="keyword">const</span> &amp; r);
210 <a name="l00192"></a>00192 GLM_FUNC_DECL tref3&lt;T&gt; &amp; operator= (<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
211 <a name="l00193"></a>00193
212 <a name="l00194"></a>00194 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; x;
213 <a name="l00195"></a>00195 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; y;
214 <a name="l00196"></a>00196 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; z;
215 <a name="l00197"></a>00197 };
216 <a name="l00198"></a>00198
217 <a name="l00199"></a>00199 GLM_DETAIL_IS_VECTOR(tvec3);
218 <a name="l00200"></a>00200 } <span class="comment">//namespace detail</span>
219 <a name="l00201"></a>00201
220 <a name="l00202"></a>00202 <span class="keyword">namespace </span>core{
221 <a name="l00203"></a>00203 <span class="keyword">namespace </span>type{
222 <a name="l00204"></a>00204 <span class="keyword">namespace </span>precision
223 <a name="l00205"></a>00205 {
224 <a name="l00210"></a><a class="code" href="a00235.html#ga0d3129f5f6644cb7552f520ff0dfa789">00210</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;highp_float&gt;</a> <a class="code" href="a00235.html#ga0d3129f5f6644cb7552f520ff0dfa789" title="3 components vector of high precision floating-point numbers.">highp_vec3</a>;
225 <a name="l00211"></a>00211
226 <a name="l00216"></a><a class="code" href="a00235.html#gaf6aa71f085a150f42929a4b77458143e">00216</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;mediump_float&gt;</a> <a class="code" href="a00235.html#gaf6aa71f085a150f42929a4b77458143e" title="3 components vector of medium precision floating-point numbers.">mediump_vec3</a>;
227 <a name="l00217"></a>00217
228 <a name="l00222"></a><a class="code" href="a00235.html#gab9e39d9db144322c1ad30ab3141084ad">00222</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;lowp_float&gt;</a> <a class="code" href="a00235.html#gab9e39d9db144322c1ad30ab3141084ad" title="3 components vector of low precision floating-point numbers.">lowp_vec3</a>;
229 <a name="l00223"></a>00223
230 <a name="l00228"></a><a class="code" href="a00235.html#gaccca78e0907313665d47af163c17c5bb">00228</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;highp_int&gt;</a> <a class="code" href="a00235.html#gaccca78e0907313665d47af163c17c5bb" title="3 components vector of high precision signed integer numbers.">highp_ivec3</a>;
231 <a name="l00229"></a>00229
232 <a name="l00234"></a><a class="code" href="a00235.html#ga1d8ae738ed79d71f8d381f472d366913">00234</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;mediump_int&gt;</a> <a class="code" href="a00235.html#ga1d8ae738ed79d71f8d381f472d366913" title="3 components vector of medium precision signed integer numbers.">mediump_ivec3</a>;
233 <a name="l00235"></a>00235
234 <a name="l00240"></a><a class="code" href="a00235.html#gac246e3a1a470974283d6618ad77fd477">00240</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;lowp_int&gt;</a> <a class="code" href="a00235.html#gac246e3a1a470974283d6618ad77fd477" title="3 components vector of low precision signed integer numbers.">lowp_ivec3</a>;
235 <a name="l00241"></a>00241
236 <a name="l00246"></a><a class="code" href="a00235.html#gaf4b32075ad193e4f47c8bfc367593d8c">00246</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;highp_uint&gt;</a> <a class="code" href="a00235.html#gaf4b32075ad193e4f47c8bfc367593d8c" title="3 components vector of high precision unsigned integer numbers.">highp_uvec3</a>;
237 <a name="l00247"></a>00247
238 <a name="l00252"></a><a class="code" href="a00235.html#ga70d49eff07e7988447c93a83f9f311b6">00252</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;mediump_uint&gt;</a> <a class="code" href="a00235.html#ga70d49eff07e7988447c93a83f9f311b6" title="3 components vector of medium precision unsigned integer numbers.">mediump_uvec3</a>;
239 <a name="l00253"></a>00253
240 <a name="l00258"></a><a class="code" href="a00235.html#gaefdce0fe4ed79b26ed2b5f00bbf39075">00258</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;lowp_uint&gt;</a> <a class="code" href="a00235.html#gaefdce0fe4ed79b26ed2b5f00bbf39075" title="3 components vector of low precision unsigned integer numbers.">lowp_uvec3</a>;
241 <a name="l00259"></a>00259
242 <a name="l00260"></a>00260 }<span class="comment">//namespace precision</span>
243 <a name="l00261"></a>00261 }<span class="comment">//namespace type</span>
244 <a name="l00262"></a>00262 }<span class="comment">//namespace core</span>
245 <a name="l00263"></a>00263 }<span class="comment">//namespace glm</span>
246 <a name="l00264"></a>00264
247 <a name="l00265"></a>00265 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
248 <a name="l00266"></a>00266 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_vec3.inl&quot;</span>
249 <a name="l00267"></a>00267 <span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span>
250 <a name="l00268"></a>00268 <span class="preprocessor"></span>
251 <a name="l00269"></a>00269 <span class="preprocessor">#endif//glm_core_type_gentype3</span>
254252 </pre></div></div>
255253 </div>
256254 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5252 <a name="l00016"></a>00016 <span class="preprocessor">#include &quot;type_size.hpp&quot;</span>
5353 <a name="l00017"></a>00017 <span class="preprocessor">#include &quot;_swizzle.hpp&quot;</span>
5454 <a name="l00018"></a>00018
55 <a name="l00019"></a>00019 <span class="keyword">namespace </span>glm
56 <a name="l00020"></a>00020 {
57 <a name="l00021"></a>00021 <span class="keyword">namespace </span>test
58 <a name="l00022"></a>00022 {
59 <a name="l00023"></a>00023 <span class="keywordtype">void</span> main_vec4();
60 <a name="l00024"></a>00024 }<span class="comment">//namespace test</span>
61 <a name="l00025"></a>00025
62 <a name="l00026"></a>00026 <span class="keyword">namespace </span>detail
63 <a name="l00027"></a>00027 {
64 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref2;
65 <a name="l00029"></a>00029 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref3;
66 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref4;
67 <a name="l00031"></a>00031 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
68 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
69 <a name="l00033"></a>00033
70 <a name="l00036"></a>00036 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
71 <a name="l00037"></a><a class="code" href="a00022.html">00037</a> <span class="keyword">struct </span><a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4</a>
72 <a name="l00038"></a>00038 {
73 <a name="l00039"></a>00039 <span class="keyword">enum</span> ctor{null};
74 <a name="l00040"></a>00040
75 <a name="l00041"></a>00041 <span class="keyword">typedef</span> T value_type;
76 <a name="l00042"></a>00042 <span class="keyword">typedef</span> std::size_t size_type;
77 <a name="l00043"></a>00043 GLM_FUNC_DECL size_type length() <span class="keyword">const</span>;
78 <a name="l00044"></a>00044 <span class="keyword">static</span> GLM_FUNC_DECL size_type value_size();
55 <a name="l00019"></a>00019 <span class="keyword">namespace </span>glm{
56 <a name="l00020"></a>00020 <span class="keyword">namespace </span>detail
57 <a name="l00021"></a>00021 {
58 <a name="l00022"></a>00022 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref2;
59 <a name="l00023"></a>00023 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref3;
60 <a name="l00024"></a>00024 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tref4;
61 <a name="l00025"></a>00025 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec2;
62 <a name="l00026"></a>00026 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>tvec3;
63 <a name="l00027"></a>00027
64 <a name="l00030"></a>00030 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
65 <a name="l00031"></a><a class="code" href="a00022.html">00031</a> <span class="keyword">struct </span><a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4</a>
66 <a name="l00032"></a>00032 {
67 <a name="l00033"></a>00033 <span class="keyword">enum</span> ctor{null};
68 <a name="l00034"></a>00034
69 <a name="l00035"></a>00035 <span class="keyword">typedef</span> <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> value_type;
70 <a name="l00036"></a>00036 <span class="keyword">typedef</span> std::size_t size_type;
71 <a name="l00037"></a>00037 GLM_FUNC_DECL size_type length() <span class="keyword">const</span>;
72 <a name="l00038"></a>00038 <span class="keyword">static</span> GLM_FUNC_DECL size_type value_size();
73 <a name="l00039"></a>00039
74 <a name="l00040"></a>00040 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">type</a>;
75 <a name="l00041"></a>00041 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;bool&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">bool_type</a>;
76 <a name="l00042"></a>00042
77 <a name="l00044"></a>00044 <span class="comment">// Data</span>
7978 <a name="l00045"></a>00045
80 <a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">type</a>;
81 <a name="l00047"></a>00047 <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;bool&gt;</a> <a class="code" href="a00022.html" title="Basic 4D vector type.">bool_type</a>;
82 <a name="l00048"></a>00048
83 <a name="l00050"></a>00050 <span class="comment">// Data</span>
84 <a name="l00051"></a>00051
85 <a name="l00052"></a>00052 <span class="preprocessor"># if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)</span>
86 <a name="l00053"></a>00053 <span class="preprocessor"></span> value_type x, y, z, w;
87 <a name="l00054"></a>00054 <span class="preprocessor"># elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)</span>
88 <a name="l00055"></a>00055 <span class="preprocessor"></span> <span class="keyword">union </span>
89 <a name="l00056"></a>00056 {
90 <a name="l00057"></a>00057 <span class="keyword">struct</span>{value_type x, y, z, w;};
91 <a name="l00058"></a>00058 <span class="keyword">struct</span>{value_type r, g, b, a;};
92 <a name="l00059"></a>00059 <span class="keyword">struct</span>{value_type s, t, p, q;};
93 <a name="l00060"></a>00060 };
94 <a name="l00061"></a>00061 <span class="preprocessor"># else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)</span>
95 <a name="l00062"></a>00062 <span class="preprocessor"></span> <span class="keyword">union </span>{value_type x, r, s;};
96 <a name="l00063"></a>00063 <span class="keyword">union </span>{value_type y, g, t;};
97 <a name="l00064"></a>00064 <span class="keyword">union </span>{value_type z, b, p;};
98 <a name="l00065"></a>00065 <span class="keyword">union </span>{value_type w, a, q;};
99 <a name="l00066"></a>00066 <span class="preprocessor"># endif//GLM_COMPONENT</span>
100 <a name="l00067"></a>00067 <span class="preprocessor"></span>
101 <a name="l00069"></a>00069 <span class="comment">// Accesses</span>
79 <a name="l00046"></a>00046 <span class="preprocessor"># if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)</span>
80 <a name="l00047"></a>00047 <span class="preprocessor"></span> value_type x, y, z, w;
81 <a name="l00048"></a>00048 <span class="preprocessor"># elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)</span>
82 <a name="l00049"></a>00049 <span class="preprocessor"></span> <span class="keyword">union </span>
83 <a name="l00050"></a>00050 {
84 <a name="l00051"></a>00051 <span class="keyword">struct</span>{value_type x, y, z, w;};
85 <a name="l00052"></a>00052 <span class="keyword">struct</span>{value_type r, g, b, a;};
86 <a name="l00053"></a>00053 <span class="keyword">struct</span>{value_type s, t, p, q;};
87 <a name="l00054"></a>00054 };
88 <a name="l00055"></a>00055 <span class="preprocessor"># else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)</span>
89 <a name="l00056"></a>00056 <span class="preprocessor"></span> <span class="keyword">union </span>{value_type x, r, s;};
90 <a name="l00057"></a>00057 <span class="keyword">union </span>{value_type y, g, t;};
91 <a name="l00058"></a>00058 <span class="keyword">union </span>{value_type z, b, p;};
92 <a name="l00059"></a>00059 <span class="keyword">union </span>{value_type w, a, q;};
93 <a name="l00060"></a>00060 <span class="preprocessor"># endif//GLM_COMPONENT</span>
94 <a name="l00061"></a>00061 <span class="preprocessor"></span>
95 <a name="l00063"></a>00063 <span class="comment">// Accesses</span>
96 <a name="l00064"></a>00064
97 <a name="l00065"></a>00065 GLM_FUNC_DECL value_type &amp; operator[](size_type i);
98 <a name="l00066"></a>00066 GLM_FUNC_DECL value_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
99 <a name="l00067"></a>00067
100 <a name="l00069"></a>00069 <span class="comment">// Implicit basic constructors</span>
102101 <a name="l00070"></a>00070
103 <a name="l00071"></a>00071 GLM_FUNC_DECL value_type &amp; operator[](size_type i);
104 <a name="l00072"></a>00072 GLM_FUNC_DECL value_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
102 <a name="l00071"></a>00071 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4</a>();
103 <a name="l00072"></a>00072 GLM_FUNC_DECL tvec4(<a class="code" href="a00022.html" title="Basic 4D vector type.">type</a> <span class="keyword">const</span> &amp; v);
105104 <a name="l00073"></a>00073
106 <a name="l00075"></a>00075 <span class="comment">// Implicit basic constructors</span>
105 <a name="l00075"></a>00075 <span class="comment">// Explicit basic constructors</span>
107106 <a name="l00076"></a>00076
108 <a name="l00077"></a>00077 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4</a>();
109 <a name="l00078"></a>00078 GLM_FUNC_DECL tvec4(<a class="code" href="a00022.html" title="Basic 4D vector type.">type</a> <span class="keyword">const</span> &amp; v);
110 <a name="l00079"></a>00079
111 <a name="l00081"></a>00081 <span class="comment">// Explicit basic constructors</span>
112 <a name="l00082"></a>00082
113 <a name="l00083"></a>00083 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(
114 <a name="l00084"></a>00084 ctor);
115 <a name="l00085"></a>00085 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(
116 <a name="l00086"></a>00086 value_type <span class="keyword">const</span> &amp; s);
117 <a name="l00087"></a>00087 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(
118 <a name="l00088"></a>00088 value_type <span class="keyword">const</span> &amp; s0,
119 <a name="l00089"></a>00089 value_type <span class="keyword">const</span> &amp; s1,
120 <a name="l00090"></a>00090 value_type <span class="keyword">const</span> &amp; s2,
121 <a name="l00091"></a>00091 value_type <span class="keyword">const</span> &amp; s3);
122 <a name="l00092"></a>00092
123 <a name="l00094"></a>00094 <span class="comment">// Swizzle constructors</span>
124 <a name="l00095"></a>00095
125 <a name="l00096"></a>00096 GLM_FUNC_DECL tvec4(tref4&lt;T&gt; <span class="keyword">const</span> &amp; r);
126 <a name="l00097"></a>00097
127 <a name="l00099"></a>00099 <span class="comment">// Convertion scalar constructors</span>
128 <a name="l00100"></a>00100
129 <a name="l00102"></a>00102 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
130 <a name="l00103"></a>00103 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(
131 <a name="l00104"></a>00104 U <span class="keyword">const</span> &amp; x);
132 <a name="l00106"></a>00106 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B, <span class="keyword">typename</span> C, <span class="keyword">typename</span> D&gt;
133 <a name="l00107"></a>00107 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(
134 <a name="l00108"></a>00108 A <span class="keyword">const</span> &amp; x,
135 <a name="l00109"></a>00109 B <span class="keyword">const</span> &amp; y,
136 <a name="l00110"></a>00110 C <span class="keyword">const</span> &amp; z,
137 <a name="l00111"></a>00111 D <span class="keyword">const</span> &amp; w);
138 <a name="l00112"></a>00112
139 <a name="l00114"></a>00114 <span class="comment">// Convertion vector constructors</span>
140 <a name="l00115"></a>00115
141 <a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B, <span class="keyword">typename</span> C&gt;
142 <a name="l00118"></a>00118 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;A&gt;</a> <span class="keyword">const</span> &amp; v, B <span class="keyword">const</span> &amp; s1, C <span class="keyword">const</span> &amp; s2);
143 <a name="l00120"></a>00120 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B, <span class="keyword">typename</span> C&gt;
144 <a name="l00121"></a>00121 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(A <span class="keyword">const</span> &amp; s1, <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;B&gt;</a> <span class="keyword">const</span> &amp; v, C <span class="keyword">const</span> &amp; s2);
145 <a name="l00123"></a>00123 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B, <span class="keyword">typename</span> C&gt;
146 <a name="l00124"></a>00124 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(A <span class="keyword">const</span> &amp; s1, B <span class="keyword">const</span> &amp; s2, <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;C&gt;</a> <span class="keyword">const</span> &amp; v);
147 <a name="l00126"></a>00126 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
148 <a name="l00127"></a>00127 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;A&gt;</a> <span class="keyword">const</span> &amp; v, B <span class="keyword">const</span> &amp; s);
149 <a name="l00129"></a>00129 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
150 <a name="l00130"></a>00130 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(A <span class="keyword">const</span> &amp; s, <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;B&gt;</a> <span class="keyword">const</span> &amp; v);
151 <a name="l00132"></a>00132 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
152 <a name="l00133"></a>00133 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;A&gt;</a> <span class="keyword">const</span> &amp; v1, <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;B&gt;</a> <span class="keyword">const</span> &amp; v2);
153 <a name="l00135"></a>00135 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
154 <a name="l00136"></a>00136 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
155 <a name="l00137"></a>00137
156 <a name="l00139"></a>00139 <span class="comment">// Unary arithmetic operators</span>
157 <a name="l00140"></a>00140
158 <a name="l00141"></a>00141 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
159 <a name="l00142"></a>00142 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
160 <a name="l00143"></a>00143 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
161 <a name="l00144"></a>00144
162 <a name="l00145"></a>00145 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
163 <a name="l00146"></a>00146 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator+=(U <span class="keyword">const</span> &amp; s);
164 <a name="l00147"></a>00147 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
165 <a name="l00148"></a>00148 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator+=(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
166 <a name="l00149"></a>00149 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
167 <a name="l00150"></a>00150 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator-=(U <span class="keyword">const</span> &amp; s);
168 <a name="l00151"></a>00151 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
169 <a name="l00152"></a>00152 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator-=(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
170 <a name="l00153"></a>00153 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
171 <a name="l00154"></a>00154 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator*=(U <span class="keyword">const</span> &amp; s);
172 <a name="l00155"></a>00155 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
173 <a name="l00156"></a>00156 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator*=(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
174 <a name="l00157"></a>00157 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
175 <a name="l00158"></a>00158 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator/=(U <span class="keyword">const</span> &amp; s);
176 <a name="l00159"></a>00159 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
177 <a name="l00160"></a>00160 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator/=(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
178 <a name="l00161"></a>00161 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator++();
179 <a name="l00162"></a>00162 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator--();
180 <a name="l00163"></a>00163
181 <a name="l00165"></a>00165 <span class="comment">// Unary bit operators</span>
182 <a name="l00166"></a>00166
183 <a name="l00167"></a>00167 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
184 <a name="l00168"></a>00168 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator%= (U <span class="keyword">const</span> &amp; s);
185 <a name="l00169"></a>00169 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
186 <a name="l00170"></a>00170 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator%= (<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
187 <a name="l00171"></a>00171 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
188 <a name="l00172"></a>00172 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator&amp;= (U <span class="keyword">const</span> &amp; s);
189 <a name="l00173"></a>00173 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
190 <a name="l00174"></a>00174 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator&amp;= (<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
191 <a name="l00175"></a>00175 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
192 <a name="l00176"></a>00176 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator|= (U <span class="keyword">const</span> &amp; s);
193 <a name="l00177"></a>00177 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
194 <a name="l00178"></a>00178 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator|= (<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
195 <a name="l00179"></a>00179 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
196 <a name="l00180"></a>00180 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator^= (U <span class="keyword">const</span> &amp; s);
197 <a name="l00181"></a>00181 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
198 <a name="l00182"></a>00182 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator^= (<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
199 <a name="l00183"></a>00183 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
200 <a name="l00184"></a>00184 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator&lt;&lt;=(U <span class="keyword">const</span> &amp; s);
201 <a name="l00185"></a>00185 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
202 <a name="l00186"></a>00186 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator&lt;&lt;=(tvec4&lt;U&gt; <span class="keyword">const</span> &amp; v);
203 <a name="l00187"></a>00187 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
204 <a name="l00188"></a>00188 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator&gt;&gt;=(U <span class="keyword">const</span> &amp; s);
205 <a name="l00189"></a>00189 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
206 <a name="l00190"></a>00190 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator&gt;&gt;=(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
207 <a name="l00191"></a>00191
208 <a name="l00193"></a>00193 <span class="comment">// Swizzle operators</span>
209 <a name="l00194"></a>00194
210 <a name="l00195"></a>00195 GLM_FUNC_DECL value_type swizzle(comp X) <span class="keyword">const</span>;
211 <a name="l00196"></a>00196 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> swizzle(comp X, comp Y) <span class="keyword">const</span>;
212 <a name="l00197"></a>00197 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> swizzle(comp X, comp Y, comp Z) <span class="keyword">const</span>;
213 <a name="l00198"></a>00198 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> swizzle(comp X, comp Y, comp Z, comp W) <span class="keyword">const</span>;
214 <a name="l00199"></a>00199 GLM_FUNC_DECL tref4&lt;T&gt; swizzle(comp X, comp Y, comp Z, comp W);
215 <a name="l00200"></a>00200 };
216 <a name="l00201"></a>00201
217 <a name="l00202"></a>00202 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
218 <a name="l00203"></a>00203 <span class="keyword">struct </span>tref4
219 <a name="l00204"></a>00204 {
220 <a name="l00205"></a>00205 GLM_FUNC_DECL tref4(T &amp; x, T &amp; y, T &amp; z, T &amp; w);
221 <a name="l00206"></a>00206 GLM_FUNC_DECL tref4(tref4&lt;T&gt; <span class="keyword">const</span> &amp; r);
222 <a name="l00207"></a>00207 GLM_FUNC_DECL tref4(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
223 <a name="l00208"></a>00208
224 <a name="l00209"></a>00209 GLM_FUNC_DECL tref4&lt;T&gt; &amp; operator= (tref4&lt;T&gt; <span class="keyword">const</span> &amp; r);
225 <a name="l00210"></a>00210 GLM_FUNC_DECL tref4&lt;T&gt; &amp; operator= (<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
107 <a name="l00077"></a>00077 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(
108 <a name="l00078"></a>00078 ctor);
109 <a name="l00079"></a>00079 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(
110 <a name="l00080"></a>00080 value_type <span class="keyword">const</span> &amp; s);
111 <a name="l00081"></a>00081 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(
112 <a name="l00082"></a>00082 value_type <span class="keyword">const</span> &amp; s0,
113 <a name="l00083"></a>00083 value_type <span class="keyword">const</span> &amp; s1,
114 <a name="l00084"></a>00084 value_type <span class="keyword">const</span> &amp; s2,
115 <a name="l00085"></a>00085 value_type <span class="keyword">const</span> &amp; s3);
116 <a name="l00086"></a>00086
117 <a name="l00088"></a>00088 <span class="comment">// Swizzle constructors</span>
118 <a name="l00089"></a>00089
119 <a name="l00090"></a>00090 GLM_FUNC_DECL tvec4(tref4&lt;T&gt; <span class="keyword">const</span> &amp; r);
120 <a name="l00091"></a>00091
121 <a name="l00093"></a>00093 <span class="comment">// Convertion scalar constructors</span>
122 <a name="l00094"></a>00094
123 <a name="l00096"></a>00096 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
124 <a name="l00097"></a>00097 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(
125 <a name="l00098"></a>00098 U <span class="keyword">const</span> &amp; x);
126 <a name="l00100"></a>00100 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B, <span class="keyword">typename</span> C, <span class="keyword">typename</span> D&gt;
127 <a name="l00101"></a>00101 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(
128 <a name="l00102"></a>00102 A <span class="keyword">const</span> &amp; x,
129 <a name="l00103"></a>00103 B <span class="keyword">const</span> &amp; y,
130 <a name="l00104"></a>00104 C <span class="keyword">const</span> &amp; z,
131 <a name="l00105"></a>00105 D <span class="keyword">const</span> &amp; w);
132 <a name="l00106"></a>00106
133 <a name="l00108"></a>00108 <span class="comment">// Convertion vector constructors</span>
134 <a name="l00109"></a>00109
135 <a name="l00111"></a>00111 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B, <span class="keyword">typename</span> C&gt;
136 <a name="l00112"></a>00112 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;A&gt;</a> <span class="keyword">const</span> &amp; v, B <span class="keyword">const</span> &amp; s1, C <span class="keyword">const</span> &amp; s2);
137 <a name="l00114"></a>00114 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B, <span class="keyword">typename</span> C&gt;
138 <a name="l00115"></a>00115 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(A <span class="keyword">const</span> &amp; s1, <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;B&gt;</a> <span class="keyword">const</span> &amp; v, C <span class="keyword">const</span> &amp; s2);
139 <a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B, <span class="keyword">typename</span> C&gt;
140 <a name="l00118"></a>00118 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(A <span class="keyword">const</span> &amp; s1, B <span class="keyword">const</span> &amp; s2, <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;C&gt;</a> <span class="keyword">const</span> &amp; v);
141 <a name="l00120"></a>00120 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
142 <a name="l00121"></a>00121 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(<a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;A&gt;</a> <span class="keyword">const</span> &amp; v, B <span class="keyword">const</span> &amp; s);
143 <a name="l00123"></a>00123 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
144 <a name="l00124"></a>00124 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(A <span class="keyword">const</span> &amp; s, <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;B&gt;</a> <span class="keyword">const</span> &amp; v);
145 <a name="l00126"></a>00126 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt;
146 <a name="l00127"></a>00127 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(<a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;A&gt;</a> <span class="keyword">const</span> &amp; v1, <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;B&gt;</a> <span class="keyword">const</span> &amp; v2);
147 <a name="l00129"></a>00129 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
148 <a name="l00130"></a>00130 GLM_FUNC_DECL <span class="keyword">explicit</span> tvec4(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
149 <a name="l00131"></a>00131
150 <a name="l00133"></a>00133 <span class="comment">// Unary arithmetic operators</span>
151 <a name="l00134"></a>00134
152 <a name="l00135"></a>00135 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
153 <a name="l00136"></a>00136 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
154 <a name="l00137"></a>00137 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator= (<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
155 <a name="l00138"></a>00138
156 <a name="l00139"></a>00139 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
157 <a name="l00140"></a>00140 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator+=(U <span class="keyword">const</span> &amp; s);
158 <a name="l00141"></a>00141 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
159 <a name="l00142"></a>00142 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator+=(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
160 <a name="l00143"></a>00143 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
161 <a name="l00144"></a>00144 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator-=(U <span class="keyword">const</span> &amp; s);
162 <a name="l00145"></a>00145 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
163 <a name="l00146"></a>00146 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator-=(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
164 <a name="l00147"></a>00147 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
165 <a name="l00148"></a>00148 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator*=(U <span class="keyword">const</span> &amp; s);
166 <a name="l00149"></a>00149 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
167 <a name="l00150"></a>00150 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator*=(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
168 <a name="l00151"></a>00151 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
169 <a name="l00152"></a>00152 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator/=(U <span class="keyword">const</span> &amp; s);
170 <a name="l00153"></a>00153 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
171 <a name="l00154"></a>00154 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator/=(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
172 <a name="l00155"></a>00155 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator++();
173 <a name="l00156"></a>00156 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator--();
174 <a name="l00157"></a>00157
175 <a name="l00159"></a>00159 <span class="comment">// Unary bit operators</span>
176 <a name="l00160"></a>00160
177 <a name="l00161"></a>00161 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
178 <a name="l00162"></a>00162 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator%= (U <span class="keyword">const</span> &amp; s);
179 <a name="l00163"></a>00163 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
180 <a name="l00164"></a>00164 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator%= (<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
181 <a name="l00165"></a>00165 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
182 <a name="l00166"></a>00166 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator&amp;= (U <span class="keyword">const</span> &amp; s);
183 <a name="l00167"></a>00167 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
184 <a name="l00168"></a>00168 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator&amp;= (<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
185 <a name="l00169"></a>00169 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
186 <a name="l00170"></a>00170 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator|= (U <span class="keyword">const</span> &amp; s);
187 <a name="l00171"></a>00171 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
188 <a name="l00172"></a>00172 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator|= (<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
189 <a name="l00173"></a>00173 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
190 <a name="l00174"></a>00174 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator^= (U <span class="keyword">const</span> &amp; s);
191 <a name="l00175"></a>00175 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
192 <a name="l00176"></a>00176 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator^= (<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
193 <a name="l00177"></a>00177 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
194 <a name="l00178"></a>00178 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator&lt;&lt;=(U <span class="keyword">const</span> &amp; s);
195 <a name="l00179"></a>00179 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
196 <a name="l00180"></a>00180 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator&lt;&lt;=(tvec4&lt;U&gt; <span class="keyword">const</span> &amp; v);
197 <a name="l00181"></a>00181 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
198 <a name="l00182"></a>00182 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator&gt;&gt;=(U <span class="keyword">const</span> &amp; s);
199 <a name="l00183"></a>00183 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;
200 <a name="l00184"></a>00184 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> &amp; operator&gt;&gt;=(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;U&gt;</a> <span class="keyword">const</span> &amp; v);
201 <a name="l00185"></a>00185
202 <a name="l00187"></a>00187 <span class="comment">// Swizzle operators</span>
203 <a name="l00188"></a>00188
204 <a name="l00189"></a>00189 GLM_FUNC_DECL value_type swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X) <span class="keyword">const</span>;
205 <a name="l00190"></a>00190 GLM_FUNC_DECL <a class="code" href="a00020.html" title="The basic 2D vector type.">tvec2&lt;T&gt;</a> swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y) <span class="keyword">const</span>;
206 <a name="l00191"></a>00191 GLM_FUNC_DECL <a class="code" href="a00021.html" title="Basic 3D vector type.">tvec3&lt;T&gt;</a> swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z) <span class="keyword">const</span>;
207 <a name="l00192"></a>00192 GLM_FUNC_DECL <a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> W) <span class="keyword">const</span>;
208 <a name="l00193"></a>00193 GLM_FUNC_DECL tref4&lt;T&gt; swizzle(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> X, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> Z, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> W);
209 <a name="l00194"></a>00194 };
210 <a name="l00195"></a>00195
211 <a name="l00196"></a>00196 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
212 <a name="l00197"></a>00197 <span class="keyword">struct </span>tref4
213 <a name="l00198"></a>00198 {
214 <a name="l00199"></a>00199 GLM_FUNC_DECL tref4(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; y, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; z, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; w);
215 <a name="l00200"></a>00200 GLM_FUNC_DECL tref4(tref4&lt;T&gt; <span class="keyword">const</span> &amp; r);
216 <a name="l00201"></a>00201 GLM_FUNC_DECL tref4(<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
217 <a name="l00202"></a>00202
218 <a name="l00203"></a>00203 GLM_FUNC_DECL tref4&lt;T&gt; &amp; operator= (tref4&lt;T&gt; <span class="keyword">const</span> &amp; r);
219 <a name="l00204"></a>00204 GLM_FUNC_DECL tref4&lt;T&gt; &amp; operator= (<a class="code" href="a00022.html" title="Basic 4D vector type.">tvec4&lt;T&gt;</a> <span class="keyword">const</span> &amp; v);
220 <a name="l00205"></a>00205
221 <a name="l00206"></a>00206 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; x;
222 <a name="l00207"></a>00207 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; y;
223 <a name="l00208"></a>00208 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; z;
224 <a name="l00209"></a>00209 <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> &amp; w;
225 <a name="l00210"></a>00210 };
226226 <a name="l00211"></a>00211
227 <a name="l00212"></a>00212 T &amp; x;
228 <a name="l00213"></a>00213 T &amp; y;
229 <a name="l00214"></a>00214 T &amp; z;
230 <a name="l00215"></a>00215 T &amp; w;
231 <a name="l00216"></a>00216 };
232 <a name="l00217"></a>00217
233 <a name="l00218"></a>00218 GLM_DETAIL_IS_VECTOR(tvec4);
234 <a name="l00219"></a>00219 } <span class="comment">//namespace detail</span>
235 <a name="l00220"></a>00220
236 <a name="l00221"></a>00221 <span class="keyword">namespace </span>core{
237 <a name="l00222"></a>00222 <span class="keyword">namespace </span>type{
238 <a name="l00223"></a>00223
239 <a name="l00225"></a>00225 <span class="comment">// Float definition</span>
240 <a name="l00226"></a>00226
241 <a name="l00227"></a>00227 <span class="keyword">namespace </span>precision
242 <a name="l00228"></a>00228 {
243 <a name="l00233"></a><a class="code" href="a00236.html#gaaef692a5e2eae7dad32ca2f8ed0d16d8">00233</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;highp_float&gt;</a> <a class="code" href="a00236.html#gaaef692a5e2eae7dad32ca2f8ed0d16d8" title="4 components vector of high precision floating-point numbers.">highp_vec4</a>;
244 <a name="l00238"></a><a class="code" href="a00236.html#gafddaa69a1d46a27e2767b780e0e6b4b0">00238</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;mediump_float&gt;</a> <a class="code" href="a00236.html#gafddaa69a1d46a27e2767b780e0e6b4b0" title="4 components vector of medium precision floating-point numbers.">mediump_vec4</a>;
245 <a name="l00243"></a><a class="code" href="a00236.html#ga653b0bf7ff2cb590f6e1338682fd0327">00243</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;lowp_float&gt;</a> <a class="code" href="a00236.html#ga653b0bf7ff2cb590f6e1338682fd0327" title="4 components vector of low precision floating-point numbers.">lowp_vec4</a>;
246 <a name="l00244"></a>00244
247 <a name="l00249"></a><a class="code" href="a00236.html#ga320e40ad19a7be26cff134cce4f15a51">00249</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;highp_int&gt;</a> <a class="code" href="a00236.html#ga320e40ad19a7be26cff134cce4f15a51" title="4 components vector of high precision signed integer numbers.">highp_ivec4</a>;
248 <a name="l00254"></a><a class="code" href="a00236.html#ga5f624d3f93fa1a197ba767f9b1d6d7aa">00254</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;mediump_int&gt;</a> <a class="code" href="a00236.html#ga5f624d3f93fa1a197ba767f9b1d6d7aa" title="4 components vector of medium precision signed integer numbers.">mediump_ivec4</a>;
249 <a name="l00259"></a><a class="code" href="a00236.html#gafc7521507e40fbc269149475a725dbbe">00259</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;lowp_int&gt;</a> <a class="code" href="a00236.html#gafc7521507e40fbc269149475a725dbbe" title="4 components vector of low precision signed integer numbers.">lowp_ivec4</a>;
227 <a name="l00212"></a>00212 GLM_DETAIL_IS_VECTOR(tvec4);
228 <a name="l00213"></a>00213 }<span class="comment">//namespace detail</span>
229 <a name="l00214"></a>00214
230 <a name="l00215"></a>00215 <span class="keyword">namespace </span>core{
231 <a name="l00216"></a>00216 <span class="keyword">namespace </span>type{
232 <a name="l00217"></a>00217 <span class="keyword">namespace </span>precision
233 <a name="l00218"></a>00218 {
234 <a name="l00223"></a><a class="code" href="a00235.html#gaaef692a5e2eae7dad32ca2f8ed0d16d8">00223</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;highp_float&gt;</a> <a class="code" href="a00235.html#gaaef692a5e2eae7dad32ca2f8ed0d16d8" title="4 components vector of high precision floating-point numbers.">highp_vec4</a>;
235 <a name="l00224"></a>00224
236 <a name="l00229"></a><a class="code" href="a00235.html#gafddaa69a1d46a27e2767b780e0e6b4b0">00229</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;mediump_float&gt;</a> <a class="code" href="a00235.html#gafddaa69a1d46a27e2767b780e0e6b4b0" title="4 components vector of medium precision floating-point numbers.">mediump_vec4</a>;
237 <a name="l00230"></a>00230
238 <a name="l00235"></a><a class="code" href="a00235.html#ga653b0bf7ff2cb590f6e1338682fd0327">00235</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;lowp_float&gt;</a> <a class="code" href="a00235.html#ga653b0bf7ff2cb590f6e1338682fd0327" title="4 components vector of low precision floating-point numbers.">lowp_vec4</a>;
239 <a name="l00236"></a>00236
240 <a name="l00241"></a><a class="code" href="a00235.html#ga320e40ad19a7be26cff134cce4f15a51">00241</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;highp_int&gt;</a> <a class="code" href="a00235.html#ga320e40ad19a7be26cff134cce4f15a51" title="4 components vector of high precision signed integer numbers.">highp_ivec4</a>;
241 <a name="l00242"></a>00242
242 <a name="l00247"></a><a class="code" href="a00235.html#ga5f624d3f93fa1a197ba767f9b1d6d7aa">00247</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;mediump_int&gt;</a> <a class="code" href="a00235.html#ga5f624d3f93fa1a197ba767f9b1d6d7aa" title="4 components vector of medium precision signed integer numbers.">mediump_ivec4</a>;
243 <a name="l00248"></a>00248
244 <a name="l00253"></a><a class="code" href="a00235.html#gafc7521507e40fbc269149475a725dbbe">00253</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;lowp_int&gt;</a> <a class="code" href="a00235.html#gafc7521507e40fbc269149475a725dbbe" title="4 components vector of low precision signed integer numbers.">lowp_ivec4</a>;
245 <a name="l00254"></a>00254
246 <a name="l00259"></a><a class="code" href="a00235.html#ga5ad6375e810e3050a6c845b600422b70">00259</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;highp_uint&gt;</a> <a class="code" href="a00235.html#ga5ad6375e810e3050a6c845b600422b70" title="4 components vector of high precision unsigned integer numbers.">highp_uvec4</a>;
250247 <a name="l00260"></a>00260
251 <a name="l00265"></a><a class="code" href="a00236.html#ga5ad6375e810e3050a6c845b600422b70">00265</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;highp_uint&gt;</a> <a class="code" href="a00236.html#ga5ad6375e810e3050a6c845b600422b70" title="4 components vector of high precision unsigned integer numbers.">highp_uvec4</a>;
252 <a name="l00270"></a><a class="code" href="a00236.html#ga4b2bc896ec01198bdc4f9dc896e5f06d">00270</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;mediump_uint&gt;</a> <a class="code" href="a00236.html#ga4b2bc896ec01198bdc4f9dc896e5f06d" title="4 components vector of medium precision unsigned integer numbers.">mediump_uvec4</a>;
253 <a name="l00275"></a><a class="code" href="a00236.html#ga3ebda7e36e3948ceea0cbc90061c643d">00275</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;lowp_uint&gt;</a> <a class="code" href="a00236.html#ga3ebda7e36e3948ceea0cbc90061c643d" title="4 components vector of low precision unsigned integer numbers.">lowp_uvec4</a>;
254 <a name="l00276"></a>00276 }
255 <a name="l00277"></a>00277 <span class="comment">//namespace precision</span>
256 <a name="l00278"></a>00278
257 <a name="l00279"></a>00279 }<span class="comment">//namespace type</span>
258 <a name="l00280"></a>00280 }<span class="comment">//namespace core</span>
259 <a name="l00281"></a>00281
260 <a name="l00282"></a>00282 <span class="keyword">using namespace </span>core::type;
261 <a name="l00283"></a>00283
262 <a name="l00284"></a>00284 }<span class="comment">//namespace glm</span>
263 <a name="l00285"></a>00285
264 <a name="l00286"></a>00286 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
265 <a name="l00287"></a>00287 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_vec4.inl&quot;</span>
266 <a name="l00288"></a>00288 <span class="preprocessor">#endif</span>
267 <a name="l00289"></a>00289 <span class="preprocessor"></span>
268 <a name="l00290"></a>00290 <span class="preprocessor">#endif//glm_core_type_gentype4</span>
248 <a name="l00265"></a><a class="code" href="a00235.html#ga4b2bc896ec01198bdc4f9dc896e5f06d">00265</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;mediump_uint&gt;</a> <a class="code" href="a00235.html#ga4b2bc896ec01198bdc4f9dc896e5f06d" title="4 components vector of medium precision unsigned integer numbers.">mediump_uvec4</a>;
249 <a name="l00266"></a>00266
250 <a name="l00271"></a><a class="code" href="a00235.html#ga3ebda7e36e3948ceea0cbc90061c643d">00271</a> <span class="keyword">typedef</span> <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;lowp_uint&gt;</a> <a class="code" href="a00235.html#ga3ebda7e36e3948ceea0cbc90061c643d" title="4 components vector of low precision unsigned integer numbers.">lowp_uvec4</a>;
251 <a name="l00272"></a>00272
252 <a name="l00273"></a>00273 }<span class="comment">//namespace precision</span>
253 <a name="l00274"></a>00274 }<span class="comment">//namespace type</span>
254 <a name="l00275"></a>00275 }<span class="comment">//namespace core</span>
255 <a name="l00276"></a>00276 }<span class="comment">//namespace glm</span>
256 <a name="l00277"></a>00277
257 <a name="l00278"></a>00278 <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span>
258 <a name="l00279"></a>00279 <span class="preprocessor"></span><span class="preprocessor">#include &quot;type_vec4.inl&quot;</span>
259 <a name="l00280"></a>00280 <span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span>
260 <a name="l00281"></a>00281 <span class="preprocessor"></span>
261 <a name="l00282"></a>00282 <span class="preprocessor">#endif//glm_core_type_gentype4</span>
269262 </pre></div></div>
270263 </div>
271264 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_ulp extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtx{
61 <a name="l00027"></a><a class="code" href="a00221.html">00027</a> <span class="keyword">namespace </span>ulp
62 <a name="l00028"></a>00028 {
63 <a name="l00031"></a>00031
64 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
65 <a name="l00035"></a>00035 genType <a class="code" href="a00307.html#gafbc30acc96f02e05cdbce1c035304e89" title="Return the next ULP value(s) after the input value(s).">next_float</a>(genType <span class="keyword">const</span> &amp; x);
66 <a name="l00036"></a>00036
67 <a name="l00039"></a>00039 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
68 <a name="l00040"></a>00040 genType <a class="code" href="a00307.html#ga5684a773c89402ea0c9fc71d17d2d54e" title="Return the previous ULP value(s) before the input value(s).">prev_float</a>(genType <span class="keyword">const</span> &amp; x);
69 <a name="l00041"></a>00041
70 <a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
71 <a name="l00045"></a>00045 genType <a class="code" href="a00307.html#gafbc30acc96f02e05cdbce1c035304e89" title="Return the next ULP value(s) after the input value(s).">next_float</a>(genType <span class="keyword">const</span> &amp; x, <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> <span class="keyword">const</span> &amp; Distance);
72 <a name="l00046"></a>00046
73 <a name="l00049"></a>00049 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
74 <a name="l00050"></a>00050 genType <a class="code" href="a00307.html#ga5684a773c89402ea0c9fc71d17d2d54e" title="Return the previous ULP value(s) before the input value(s).">prev_float</a>(genType <span class="keyword">const</span> &amp; x, <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> <span class="keyword">const</span> &amp; Distance);
75 <a name="l00051"></a>00051
76 <a name="l00054"></a>00054 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
77 <a name="l00055"></a>00055 <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> <a class="code" href="a00307.html#ga4c11d1ac2c81fd5d35229565c648db4d" title="Return the distance in the number of ULP between 2 scalars.">float_distance</a>(T <span class="keyword">const</span> &amp; x, T <span class="keyword">const</span> &amp; y);
78 <a name="l00056"></a>00056
79 <a name="l00059"></a>00059 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">template</span>&lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
80 <a name="l00060"></a>00060 vecType&lt;uint&gt; <a class="code" href="a00307.html#ga4c11d1ac2c81fd5d35229565c648db4d" title="Return the distance in the number of ULP between 2 scalars.">float_distance</a>(vecType&lt;T&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T&gt; <span class="keyword">const</span> &amp; y);
81 <a name="l00061"></a>00061
82 <a name="l00063"></a>00063
83 <a name="l00064"></a>00064 }<span class="comment">//namespace ulp</span>
84 <a name="l00065"></a>00065 }<span class="comment">//namespace gtx</span>
85 <a name="l00066"></a>00066 }<span class="comment">//namespace glm</span>
86 <a name="l00067"></a>00067
87 <a name="l00068"></a>00068 <span class="preprocessor">#include &quot;ulp.inl&quot;</span>
88 <a name="l00069"></a>00069
89 <a name="l00070"></a>00070 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::ulp;}
90 <a name="l00071"></a>00071
91 <a name="l00072"></a>00072 <span class="preprocessor">#endif//glm_gtx_ulp</span>
92 <a name="l00073"></a>00073 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00221.html">00025</a> <span class="keyword">namespace </span>ulp
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
64 <a name="l00033"></a>00033 genType <a class="code" href="a00307.html#gafbc30acc96f02e05cdbce1c035304e89" title="Return the next ULP value(s) after the input value(s).">next_float</a>(genType <span class="keyword">const</span> &amp; x);
65 <a name="l00034"></a>00034
66 <a name="l00037"></a>00037 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
67 <a name="l00038"></a>00038 genType <a class="code" href="a00307.html#ga5684a773c89402ea0c9fc71d17d2d54e" title="Return the previous ULP value(s) before the input value(s).">prev_float</a>(genType <span class="keyword">const</span> &amp; x);
68 <a name="l00039"></a>00039
69 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
70 <a name="l00043"></a>00043 genType <a class="code" href="a00307.html#gafbc30acc96f02e05cdbce1c035304e89" title="Return the next ULP value(s) after the input value(s).">next_float</a>(genType <span class="keyword">const</span> &amp; x, <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> <span class="keyword">const</span> &amp; Distance);
71 <a name="l00044"></a>00044
72 <a name="l00047"></a>00047 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
73 <a name="l00048"></a>00048 genType <a class="code" href="a00307.html#ga5684a773c89402ea0c9fc71d17d2d54e" title="Return the previous ULP value(s) before the input value(s).">prev_float</a>(genType <span class="keyword">const</span> &amp; x, <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> <span class="keyword">const</span> &amp; Distance);
74 <a name="l00049"></a>00049
75 <a name="l00052"></a>00052 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
76 <a name="l00053"></a>00053 <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> <a class="code" href="a00307.html#ga4c11d1ac2c81fd5d35229565c648db4d" title="Return the distance in the number of ULP between 2 scalars.">float_distance</a>(<a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; x, <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <span class="keyword">const</span> &amp; y);
77 <a name="l00054"></a>00054
78 <a name="l00057"></a>00057 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">template</span>&lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;
79 <a name="l00058"></a>00058 vecType&lt;uint&gt; <a class="code" href="a00307.html#ga4c11d1ac2c81fd5d35229565c648db4d" title="Return the distance in the number of ULP between 2 scalars.">float_distance</a>(vecType&lt;T&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T&gt; <span class="keyword">const</span> &amp; y);
80 <a name="l00059"></a>00059
81 <a name="l00061"></a>00061 }<span class="comment">// namespace ulp</span>
82 <a name="l00062"></a>00062 }<span class="comment">// namespace gtx</span>
83 <a name="l00063"></a>00063 }<span class="comment">// namespace glm</span>
84 <a name="l00064"></a>00064
85 <a name="l00065"></a>00065 <span class="preprocessor">#include &quot;ulp.inl&quot;</span>
86 <a name="l00066"></a>00066
87 <a name="l00067"></a>00067 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::ulp;}
88 <a name="l00068"></a>00068
89 <a name="l00069"></a>00069 <span class="preprocessor">#endif//glm_gtx_ulp</span>
90 <a name="l00070"></a>00070 <span class="preprocessor"></span>
9391 </pre></div></div>
9492 </div>
9593 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_unsigned_int extension included&quot;)</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5959 <a name="l00024"></a>00024 <span class="preprocessor"></span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm
61 <a name="l00026"></a>00026 {
62 <a name="l00027"></a>00027 <span class="keyword">namespace </span>test{
63 <a name="l00028"></a>00028 <span class="keywordtype">void</span> main_gtx_unsigned_int();
64 <a name="l00029"></a>00029 }<span class="comment">//namespace test</span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm{
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>gtx{
62 <a name="l00027"></a><a class="code" href="a00222.html">00027</a> <span class="keyword">namespace </span>unsigned_int
63 <a name="l00028"></a>00028 {
64 <a name="l00029"></a>00029 <span class="keyword">using namespace </span>gtx::integer;
6565 <a name="l00030"></a>00030
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>gtx{
67 <a name="l00033"></a><a class="code" href="a00222.html">00033</a> <span class="keyword">namespace </span>unsigned_int
68 <a name="l00034"></a>00034 {
69 <a name="l00035"></a>00035 <span class="keyword">using namespace </span>gtx::integer;
70 <a name="l00036"></a>00036
71 <a name="l00039"></a>00039
72 <a name="l00042"></a><a class="code" href="a00297.html#gada7e83fdfe943aba4f1d5bf80cb66f40">00042</a> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> <a class="code" href="a00297.html#gada7e83fdfe943aba4f1d5bf80cb66f40" title="32bit signed integer.">sint</a>;
73 <a name="l00043"></a>00043
74 <a name="l00046"></a>00046 <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> <a class="code" href="a00297.html#ga9f8b197b576d9b2f0b5bfe63dc1f638f" title="Returns x raised to the y power.">pow</a>(<a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> x, <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> y);
75 <a name="l00047"></a>00047
76 <a name="l00050"></a>00050 <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> <a class="code" href="a00297.html#ga0fe1b8123e6661dda5969ee76a2b23df" title="Returns the positive square root of x.">sqrt</a>(<a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> x);
77 <a name="l00051"></a>00051
78 <a name="l00054"></a>00054 <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> <a class="code" href="a00297.html#ga61b96cbe026915bfa3f471d7d1e8d0e7" title="Modulus.">mod</a>(<a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> x, <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> y);
79 <a name="l00055"></a>00055
80 <a name="l00057"></a>00057
81 <a name="l00058"></a>00058 }<span class="comment">//namespace unsigned_int</span>
82 <a name="l00059"></a>00059 }<span class="comment">//namespace gtx</span>
83 <a name="l00060"></a>00060 }<span class="comment">//namespace glm</span>
84 <a name="l00061"></a>00061
85 <a name="l00062"></a>00062 <span class="preprocessor">#include &quot;unsigned_int.inl&quot;</span>
86 <a name="l00063"></a>00063
87 <a name="l00064"></a>00064 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::unsigned_int;}
88 <a name="l00065"></a>00065
89 <a name="l00066"></a>00066 <span class="preprocessor">#endif//glm_gtx_unsigned_int</span>
66 <a name="l00033"></a>00033
67 <a name="l00036"></a><a class="code" href="a00296.html#gada7e83fdfe943aba4f1d5bf80cb66f40">00036</a> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> <a class="code" href="a00296.html#gada7e83fdfe943aba4f1d5bf80cb66f40" title="32bit signed integer.">sint</a>;
68 <a name="l00037"></a>00037
69 <a name="l00040"></a>00040 <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> <a class="code" href="a00296.html#ga9f8b197b576d9b2f0b5bfe63dc1f638f" title="Returns x raised to the y power.">pow</a>(<a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> x, <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> y);
70 <a name="l00041"></a>00041
71 <a name="l00044"></a>00044 <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> <a class="code" href="a00296.html#ga0fe1b8123e6661dda5969ee76a2b23df" title="Returns the positive square root of x.">sqrt</a>(<a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> x);
72 <a name="l00045"></a>00045
73 <a name="l00048"></a>00048 <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> <a class="code" href="a00296.html#ga61b96cbe026915bfa3f471d7d1e8d0e7" title="Modulus.">mod</a>(<a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> x, <a class="code" href="a00155.html#a4d16da297112d05af72fc456a1c4f386" title="Unsigned integer.">uint</a> y);
74 <a name="l00049"></a>00049
75 <a name="l00051"></a>00051 }<span class="comment">//namespace unsigned_int</span>
76 <a name="l00052"></a>00052 }<span class="comment">//namespace gtx</span>
77 <a name="l00053"></a>00053 }<span class="comment">//namespace glm</span>
78 <a name="l00054"></a>00054
79 <a name="l00055"></a>00055 <span class="preprocessor">#include &quot;unsigned_int.inl&quot;</span>
80 <a name="l00056"></a>00056
81 <a name="l00057"></a>00057 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::unsigned_int;}
82 <a name="l00058"></a>00058
83 <a name="l00059"></a>00059 <span class="preprocessor">#endif//glm_gtx_unsigned_int</span>
9084 </pre></div></div>
9185 </div>
9286 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_vec1 extension included&quot;)</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span>
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm
60 <a name="l00025"></a>00025 {
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>test{
62 <a name="l00027"></a>00027 <span class="keywordtype">void</span> main_gtx_vector1();
63 <a name="l00028"></a>00028 }<span class="comment">//namespace test</span>
64 <a name="l00029"></a>00029
65 <a name="l00030"></a>00030 <span class="keyword">namespace </span>gtx{
66 <a name="l00032"></a><a class="code" href="a00223.html">00032</a> <span class="keyword">namespace </span>vector1
67 <a name="l00033"></a>00033 {
68 <a name="l00034"></a>00034 <span class="keyword">namespace </span>precision
69 <a name="l00035"></a>00035 {
70 <a name="l00039"></a>00039 <span class="keyword">typedef</span> detail::highp_vec1_t highp_vec1;
71 <a name="l00043"></a>00043 <span class="keyword">typedef</span> detail::mediump_vec1_t mediump_vec1;
72 <a name="l00047"></a>00047 <span class="keyword">typedef</span> detail::lowp_vec1_t lowp_vec1;
73 <a name="l00048"></a>00048
74 <a name="l00052"></a>00052 <span class="keyword">typedef</span> detail::highp_ivec1_t highp_ivec1;
75 <a name="l00056"></a>00056 <span class="keyword">typedef</span> detail::mediump_ivec1_t mediump_ivec1;
76 <a name="l00060"></a>00060 <span class="keyword">typedef</span> detail::lowp_ivec1_t lowp_ivec1;
77 <a name="l00061"></a>00061
78 <a name="l00065"></a>00065 <span class="keyword">typedef</span> detail::highp_uvec1_t highp_uvec1;
79 <a name="l00069"></a>00069 <span class="keyword">typedef</span> detail::mediump_uvec1_t mediump_uvec1;
80 <a name="l00073"></a>00073 <span class="keyword">typedef</span> detail::lowp_uvec1_t lowp_uvec1;
81 <a name="l00074"></a>00074 }<span class="comment">//namespace precision</span>
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>glm{
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>gtx{
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>vector1{
62 <a name="l00027"></a><a class="code" href="a00224.html">00027</a> <span class="keyword">namespace </span>precision
63 <a name="l00028"></a>00028 {
64 <a name="l00032"></a><a class="code" href="a00224.html#a26cc70c8e50dcdbd7fba41515d3f3f4e">00032</a> <span class="keyword">typedef</span> detail::highp_vec1_t <a class="code" href="a00224.html#a26cc70c8e50dcdbd7fba41515d3f3f4e" title="1 component vector of high precision floating-point numbers.">highp_vec1</a>;
65 <a name="l00036"></a><a class="code" href="a00224.html#ada105899989019a13f333e271677ab52">00036</a> <span class="keyword">typedef</span> detail::mediump_vec1_t <a class="code" href="a00224.html#ada105899989019a13f333e271677ab52" title="1 component vector of medium precision floating-point numbers.">mediump_vec1</a>;
66 <a name="l00040"></a><a class="code" href="a00224.html#a0b7ff5513e300963adbdda29f20a71d5">00040</a> <span class="keyword">typedef</span> detail::lowp_vec1_t <a class="code" href="a00224.html#a0b7ff5513e300963adbdda29f20a71d5" title="1 component vector of low precision floating-point numbers.">lowp_vec1</a>;
67 <a name="l00041"></a>00041
68 <a name="l00045"></a><a class="code" href="a00224.html#a7b3964cbe14cee973bc856b81708fb36">00045</a> <span class="keyword">typedef</span> detail::highp_ivec1_t <a class="code" href="a00224.html#a7b3964cbe14cee973bc856b81708fb36" title="1 component vector of high precision signed integer numbers.">highp_ivec1</a>;
69 <a name="l00049"></a><a class="code" href="a00224.html#a9ee2fea9ceb3f51ca2ec46047bbd0203">00049</a> <span class="keyword">typedef</span> detail::mediump_ivec1_t <a class="code" href="a00224.html#a9ee2fea9ceb3f51ca2ec46047bbd0203" title="1 component vector of medium precision signed integer numbers.">mediump_ivec1</a>;
70 <a name="l00053"></a><a class="code" href="a00224.html#a12a4c27c1cc45db7cd062d3e1e7ad443">00053</a> <span class="keyword">typedef</span> detail::lowp_ivec1_t <a class="code" href="a00224.html#a12a4c27c1cc45db7cd062d3e1e7ad443" title="1 component vector of low precision signed integer numbers.">lowp_ivec1</a>;
71 <a name="l00054"></a>00054
72 <a name="l00058"></a><a class="code" href="a00224.html#a9ada3d09911046c294f83bdaebd7ce8e">00058</a> <span class="keyword">typedef</span> detail::highp_uvec1_t <a class="code" href="a00224.html#a9ada3d09911046c294f83bdaebd7ce8e" title="1 component vector of high precision unsigned integer numbers.">highp_uvec1</a>;
73 <a name="l00062"></a><a class="code" href="a00224.html#a17b8da90f5d16810910a9c8429987cbc">00062</a> <span class="keyword">typedef</span> detail::mediump_uvec1_t <a class="code" href="a00224.html#a17b8da90f5d16810910a9c8429987cbc" title="1 component vector of medium precision unsigned integer numbers.">mediump_uvec1</a>;
74 <a name="l00066"></a><a class="code" href="a00224.html#acc4c5715d5f36547163197c72ebc7b89">00066</a> <span class="keyword">typedef</span> detail::lowp_uvec1_t <a class="code" href="a00224.html#acc4c5715d5f36547163197c72ebc7b89" title="1 component vector of low precision unsigned integer numbers.">lowp_uvec1</a>;
75 <a name="l00067"></a>00067 }<span class="comment">//namespace precision</span>
76 <a name="l00068"></a>00068
77 <a name="l00070"></a>00070 <span class="comment">// vec1 definition</span>
78 <a name="l00071"></a>00071
79 <a name="l00074"></a>00074 <span class="keyword">typedef</span> detail::tvec1&lt;bool&gt; bvec1;
8280 <a name="l00075"></a>00075
83 <a name="l00077"></a>00077 <span class="comment">// vec1 definition</span>
84 <a name="l00078"></a>00078
85 <a name="l00081"></a><a class="code" href="a00223.html#a4cb77cff76a0649661d8909ac19bdec8">00081</a> <span class="keyword">typedef</span> detail::tvec1&lt;bool&gt; <a class="code" href="a00223.html#a4cb77cff76a0649661d8909ac19bdec8" title="1 component vector of boolean.">bvec1</a>;
86 <a name="l00082"></a>00082
87 <a name="l00083"></a>00083 <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_FLOAT))</span>
88 <a name="l00084"></a>00084 <span class="preprocessor"></span> <span class="keyword">typedef</span> precision::highp_vec1 <a class="code" href="a00223.html#ac60e77a28be159c8f883242b991dd5fb" title="1 component vector of floating-point numbers.">vec1</a>;
89 <a name="l00085"></a>00085 <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span>
90 <a name="l00086"></a>00086 <span class="preprocessor"></span> <span class="keyword">typedef</span> precision::mediump_vec1 <a class="code" href="a00223.html#ac60e77a28be159c8f883242b991dd5fb" title="1 component vector of floating-point numbers.">vec1</a>;
91 <a name="l00087"></a>00087 <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_FLOAT))</span>
92 <a name="l00088"></a>00088 <span class="preprocessor"></span> <span class="keyword">typedef</span> precision::lowp_vec1 <a class="code" href="a00223.html#ac60e77a28be159c8f883242b991dd5fb" title="1 component vector of floating-point numbers.">vec1</a>;
93 <a name="l00089"></a>00089 <span class="preprocessor">#else</span>
94 <a name="l00090"></a>00090 <span class="preprocessor"></span>
95 <a name="l00091"></a>00091
96 <a name="l00092"></a><a class="code" href="a00223.html#ac60e77a28be159c8f883242b991dd5fb">00092</a> <span class="keyword">typedef</span> precision::mediump_vec1 <a class="code" href="a00223.html#ac60e77a28be159c8f883242b991dd5fb" title="1 component vector of floating-point numbers.">vec1</a>;
97 <a name="l00093"></a>00093 <span class="preprocessor">#endif//GLM_PRECISION</span>
98 <a name="l00094"></a>00094 <span class="preprocessor"></span>
99 <a name="l00095"></a>00095 <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_INT))</span>
100 <a name="l00096"></a>00096 <span class="preprocessor"></span> <span class="keyword">typedef</span> precision::highp_ivec1 <a class="code" href="a00223.html#acad21ad05f36e9ca36c040086837987e" title="1 component vector of signed integer numbers.">ivec1</a>;
101 <a name="l00097"></a>00097 <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span>
102 <a name="l00098"></a>00098 <span class="preprocessor"></span> <span class="keyword">typedef</span> precision::mediump_ivec1 <a class="code" href="a00223.html#acad21ad05f36e9ca36c040086837987e" title="1 component vector of signed integer numbers.">ivec1</a>;
103 <a name="l00099"></a>00099 <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_INT))</span>
104 <a name="l00100"></a>00100 <span class="preprocessor"></span> <span class="keyword">typedef</span> precision::lowp_ivec1 <a class="code" href="a00223.html#acad21ad05f36e9ca36c040086837987e" title="1 component vector of signed integer numbers.">ivec1</a>;
105 <a name="l00101"></a>00101 <span class="preprocessor">#else</span>
106 <a name="l00102"></a>00102 <span class="preprocessor"></span>
107 <a name="l00103"></a>00103
108 <a name="l00104"></a><a class="code" href="a00223.html#acad21ad05f36e9ca36c040086837987e">00104</a> <span class="keyword">typedef</span> precision::mediump_ivec1 <a class="code" href="a00223.html#acad21ad05f36e9ca36c040086837987e" title="1 component vector of signed integer numbers.">ivec1</a>;
109 <a name="l00105"></a>00105 <span class="preprocessor">#endif//GLM_PRECISION</span>
110 <a name="l00106"></a>00106 <span class="preprocessor"></span>
111 <a name="l00107"></a>00107 <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_UINT))</span>
112 <a name="l00108"></a>00108 <span class="preprocessor"></span> <span class="keyword">typedef</span> precision::highp_uvec1 <a class="code" href="a00223.html#a3e65e37bdbada1e13e0c66883bb449eb" title="1 component vector of unsigned integer numbers.">uvec1</a>;
113 <a name="l00109"></a>00109 <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span>
114 <a name="l00110"></a>00110 <span class="preprocessor"></span> <span class="keyword">typedef</span> precision::mediump_uvec1 <a class="code" href="a00223.html#a3e65e37bdbada1e13e0c66883bb449eb" title="1 component vector of unsigned integer numbers.">uvec1</a>;
115 <a name="l00111"></a>00111 <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_UINT))</span>
116 <a name="l00112"></a>00112 <span class="preprocessor"></span> <span class="keyword">typedef</span> precision::lowp_uvec1 <a class="code" href="a00223.html#a3e65e37bdbada1e13e0c66883bb449eb" title="1 component vector of unsigned integer numbers.">uvec1</a>;
117 <a name="l00113"></a>00113 <span class="preprocessor">#else</span>
118 <a name="l00114"></a>00114 <span class="preprocessor"></span>
81 <a name="l00076"></a>00076 <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_FLOAT))</span>
82 <a name="l00077"></a>00077 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00224.html#a26cc70c8e50dcdbd7fba41515d3f3f4e" title="1 component vector of high precision floating-point numbers.">precision::highp_vec1</a> vec1;
83 <a name="l00078"></a>00078 <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span>
84 <a name="l00079"></a>00079 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00224.html#ada105899989019a13f333e271677ab52" title="1 component vector of medium precision floating-point numbers.">precision::mediump_vec1</a> vec1;
85 <a name="l00080"></a>00080 <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_FLOAT))</span>
86 <a name="l00081"></a>00081 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00224.html#a0b7ff5513e300963adbdda29f20a71d5" title="1 component vector of low precision floating-point numbers.">precision::lowp_vec1</a> vec1;
87 <a name="l00082"></a>00082 <span class="preprocessor">#else</span>
88 <a name="l00083"></a>00083 <span class="preprocessor"></span>
89 <a name="l00084"></a>00084
90 <a name="l00085"></a>00085 <span class="keyword">typedef</span> <a class="code" href="a00224.html#ada105899989019a13f333e271677ab52" title="1 component vector of medium precision floating-point numbers.">precision::mediump_vec1</a> vec1;
91 <a name="l00086"></a>00086 <span class="preprocessor">#endif//GLM_PRECISION</span>
92 <a name="l00087"></a>00087 <span class="preprocessor"></span>
93 <a name="l00088"></a>00088 <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_INT))</span>
94 <a name="l00089"></a>00089 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00224.html#a7b3964cbe14cee973bc856b81708fb36" title="1 component vector of high precision signed integer numbers.">precision::highp_ivec1</a> ivec1;
95 <a name="l00090"></a>00090 <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span>
96 <a name="l00091"></a>00091 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00224.html#a9ee2fea9ceb3f51ca2ec46047bbd0203" title="1 component vector of medium precision signed integer numbers.">precision::mediump_ivec1</a> ivec1;
97 <a name="l00092"></a>00092 <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_INT))</span>
98 <a name="l00093"></a>00093 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00224.html#a12a4c27c1cc45db7cd062d3e1e7ad443" title="1 component vector of low precision signed integer numbers.">precision::lowp_ivec1</a> ivec1;
99 <a name="l00094"></a>00094 <span class="preprocessor">#else</span>
100 <a name="l00095"></a>00095 <span class="preprocessor"></span>
101 <a name="l00096"></a>00096
102 <a name="l00097"></a>00097 <span class="keyword">typedef</span> <a class="code" href="a00224.html#a9ee2fea9ceb3f51ca2ec46047bbd0203" title="1 component vector of medium precision signed integer numbers.">precision::mediump_ivec1</a> ivec1;
103 <a name="l00098"></a>00098 <span class="preprocessor">#endif//GLM_PRECISION</span>
104 <a name="l00099"></a>00099 <span class="preprocessor"></span>
105 <a name="l00100"></a>00100 <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_UINT))</span>
106 <a name="l00101"></a>00101 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00224.html#a9ada3d09911046c294f83bdaebd7ce8e" title="1 component vector of high precision unsigned integer numbers.">precision::highp_uvec1</a> uvec1;
107 <a name="l00102"></a>00102 <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span>
108 <a name="l00103"></a>00103 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00224.html#a17b8da90f5d16810910a9c8429987cbc" title="1 component vector of medium precision unsigned integer numbers.">precision::mediump_uvec1</a> uvec1;
109 <a name="l00104"></a>00104 <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_UINT))</span>
110 <a name="l00105"></a>00105 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00224.html#acc4c5715d5f36547163197c72ebc7b89" title="1 component vector of low precision unsigned integer numbers.">precision::lowp_uvec1</a> uvec1;
111 <a name="l00106"></a>00106 <span class="preprocessor">#else</span>
112 <a name="l00107"></a>00107 <span class="preprocessor"></span>
113 <a name="l00108"></a>00108
114 <a name="l00109"></a>00109 <span class="keyword">typedef</span> <a class="code" href="a00224.html#a17b8da90f5d16810910a9c8429987cbc" title="1 component vector of medium precision unsigned integer numbers.">precision::mediump_uvec1</a> uvec1;
115 <a name="l00110"></a>00110 <span class="preprocessor">#endif//GLM_PRECISION</span>
116 <a name="l00111"></a>00111 <span class="preprocessor"></span>
117 <a name="l00112"></a>00112 }<span class="comment">// namespace vec1</span>
118 <a name="l00113"></a>00113 }<span class="comment">// namespace gtx</span>
119 <a name="l00114"></a>00114 }<span class="comment">// namespace glm</span>
119120 <a name="l00115"></a>00115
120 <a name="l00116"></a><a class="code" href="a00223.html#a3e65e37bdbada1e13e0c66883bb449eb">00116</a> <span class="keyword">typedef</span> precision::mediump_uvec1 <a class="code" href="a00223.html#a3e65e37bdbada1e13e0c66883bb449eb" title="1 component vector of unsigned integer numbers.">uvec1</a>;
121 <a name="l00117"></a>00117 <span class="preprocessor">#endif//GLM_PRECISION</span>
122 <a name="l00118"></a>00118 <span class="preprocessor"></span>
123 <a name="l00119"></a>00119 }<span class="comment">//namespace vec1</span>
124 <a name="l00120"></a>00120 }<span class="comment">//namespace gtx</span>
125 <a name="l00121"></a>00121 }<span class="comment">//namespace glm</span>
126 <a name="l00122"></a>00122
127 <a name="l00123"></a>00123 <span class="preprocessor">#include &quot;vec1.inl&quot;</span>
128 <a name="l00124"></a>00124
129 <a name="l00125"></a>00125 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::vector1;}
130 <a name="l00126"></a>00126
131 <a name="l00127"></a>00127 <span class="preprocessor">#endif//glm_gtx_vec1</span>
132 <a name="l00128"></a>00128 <span class="preprocessor"></span>
121 <a name="l00116"></a>00116 <span class="preprocessor">#include &quot;vec1.inl&quot;</span>
122 <a name="l00117"></a>00117
123 <a name="l00118"></a>00118 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::vector1;}
124 <a name="l00119"></a>00119
125 <a name="l00120"></a>00120 <span class="preprocessor">#endif//glm_gtx_vec1</span>
126 <a name="l00121"></a>00121 <span class="preprocessor"></span>
133127 </pre></div></div>
134128 </div>
135129 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_vector_access extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">void</span> main_gtx_vector_access();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00225.html">00031</a> <span class="keyword">namespace </span>vector_access
66 <a name="l00032"></a>00032 {
67 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
69 <a name="l00039"></a>00039 <span class="keywordtype">void</span> <span class="keyword">set</span>(
70 <a name="l00040"></a>00040 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;valType&gt;</a> &amp; v,
71 <a name="l00041"></a>00041 valType <span class="keyword">const</span> &amp; x,
72 <a name="l00042"></a>00042 valType <span class="keyword">const</span> &amp; y);
73 <a name="l00043"></a>00043
74 <a name="l00046"></a>00046 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
75 <a name="l00047"></a>00047 <span class="keywordtype">void</span> <span class="keyword">set</span>(
76 <a name="l00048"></a>00048 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> &amp; v,
77 <a name="l00049"></a>00049 valType <span class="keyword">const</span> &amp; x,
78 <a name="l00050"></a>00050 valType <span class="keyword">const</span> &amp; y,
79 <a name="l00051"></a>00051 valType <span class="keyword">const</span> &amp; z);
80 <a name="l00052"></a>00052
81 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
82 <a name="l00056"></a>00056 <span class="keywordtype">void</span> <span class="keyword">set</span>(
83 <a name="l00057"></a>00057 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;valType&gt;</a> &amp; v,
84 <a name="l00058"></a>00058 valType <span class="keyword">const</span> &amp; x,
85 <a name="l00059"></a>00059 valType <span class="keyword">const</span> &amp; y,
86 <a name="l00060"></a>00060 valType <span class="keyword">const</span> &amp; z,
87 <a name="l00061"></a>00061 valType <span class="keyword">const</span> &amp; w);
88 <a name="l00062"></a>00062
89 <a name="l00064"></a>00064
90 <a name="l00065"></a>00065 }<span class="comment">//namespace vector_access</span>
91 <a name="l00066"></a>00066 }<span class="comment">//namespace gtx</span>
92 <a name="l00067"></a>00067 }<span class="comment">//namespace glm</span>
93 <a name="l00068"></a>00068
94 <a name="l00069"></a>00069 <span class="preprocessor">#include &quot;vector_access.inl&quot;</span>
95 <a name="l00070"></a>00070
96 <a name="l00071"></a>00071 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::vector_access;}
97 <a name="l00072"></a>00072
98 <a name="l00073"></a>00073 <span class="preprocessor">#endif//glm_gtx_vector_access</span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00225.html">00025</a> <span class="keyword">namespace </span>vector_access
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
64 <a name="l00033"></a>00033 <span class="keywordtype">void</span> <span class="keyword">set</span>(
65 <a name="l00034"></a>00034 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;valType&gt;</a> &amp; v,
66 <a name="l00035"></a>00035 valType <span class="keyword">const</span> &amp; x,
67 <a name="l00036"></a>00036 valType <span class="keyword">const</span> &amp; y);
68 <a name="l00037"></a>00037
69 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
70 <a name="l00041"></a>00041 <span class="keywordtype">void</span> <span class="keyword">set</span>(
71 <a name="l00042"></a>00042 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;valType&gt;</a> &amp; v,
72 <a name="l00043"></a>00043 valType <span class="keyword">const</span> &amp; x,
73 <a name="l00044"></a>00044 valType <span class="keyword">const</span> &amp; y,
74 <a name="l00045"></a>00045 valType <span class="keyword">const</span> &amp; z);
75 <a name="l00046"></a>00046
76 <a name="l00049"></a>00049 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
77 <a name="l00050"></a>00050 <span class="keywordtype">void</span> <span class="keyword">set</span>(
78 <a name="l00051"></a>00051 <a class="code" href="a00022.html" title="Basic 4D vector type.">detail::tvec4&lt;valType&gt;</a> &amp; v,
79 <a name="l00052"></a>00052 valType <span class="keyword">const</span> &amp; x,
80 <a name="l00053"></a>00053 valType <span class="keyword">const</span> &amp; y,
81 <a name="l00054"></a>00054 valType <span class="keyword">const</span> &amp; z,
82 <a name="l00055"></a>00055 valType <span class="keyword">const</span> &amp; w);
83 <a name="l00056"></a>00056
84 <a name="l00058"></a>00058 }<span class="comment">//namespace vector_access</span>
85 <a name="l00059"></a>00059 }<span class="comment">//namespace gtx</span>
86 <a name="l00060"></a>00060 }<span class="comment">//namespace glm</span>
87 <a name="l00061"></a>00061
88 <a name="l00062"></a>00062 <span class="preprocessor">#include &quot;vector_access.inl&quot;</span>
89 <a name="l00063"></a>00063
90 <a name="l00064"></a>00064 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::vector_access;}
91 <a name="l00065"></a>00065
92 <a name="l00066"></a>00066 <span class="preprocessor">#endif//glm_gtx_vector_access</span>
9993 </pre></div></div>
10094 </div>
10195 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5252 <a name="l00017"></a>00017 <span class="preprocessor"></span>
5353 <a name="l00018"></a>00018 <span class="comment">// Dependency:</span>
5454 <a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
55 <a name="l00020"></a>00020 <span class="preprocessor">#include &quot;../gtx/quaternion.hpp&quot;</span>
56 <a name="l00021"></a>00021 <span class="preprocessor">#include &quot;../gtx/epsilon.hpp&quot;</span>
57 <a name="l00022"></a>00022
58 <a name="l00023"></a>00023 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
59 <a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_vector_angle extension included&quot;)</span>
60 <a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
61 <a name="l00026"></a>00026 <span class="preprocessor"></span>
62 <a name="l00027"></a>00027 <span class="keyword">namespace </span>glm
63 <a name="l00028"></a>00028 {
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>test{
65 <a name="l00030"></a>00030 <span class="keywordtype">void</span> main_gtx_vector_angle();
66 <a name="l00031"></a>00031 }<span class="comment">//namespace test</span>
67 <a name="l00032"></a>00032
68 <a name="l00033"></a>00033 <span class="keyword">namespace </span>gtx{
69 <a name="l00035"></a><a class="code" href="a00226.html">00035</a> <span class="keyword">namespace </span>vector_angle
70 <a name="l00036"></a>00036 {
71 <a name="l00037"></a>00037 <span class="keyword">using namespace </span>quaternion;
72 <a name="l00038"></a>00038 <span class="keyword">using namespace </span>epsilon;
73 <a name="l00039"></a>00039
74 <a name="l00042"></a>00042
75 <a name="l00046"></a>00046 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt;
76 <a name="l00047"></a>00047 <span class="keyword">typename</span> vecType::value_type <a class="code" href="a00299.html#ga279a2aed9a8061eb517a59fecdb6196a" title="Returns the absolute angle between x and y.">angle</a>(
77 <a name="l00048"></a>00048 vecType <span class="keyword">const</span> &amp; x,
78 <a name="l00049"></a>00049 vecType <span class="keyword">const</span> &amp; y);
79 <a name="l00050"></a>00050
80 <a name="l00054"></a>00054 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt;
81 <a name="l00055"></a>00055 <span class="keyword">typename</span> vecType::value_type <a class="code" href="a00299.html#gae5ca5e80b176900509b0f12a6ca8b164" title="Returns the oriented angle between x and y Parameters need to be normalized.">orientedAngle</a>(
82 <a name="l00056"></a>00056 vecType <span class="keyword">const</span> &amp; x,
83 <a name="l00057"></a>00057 vecType <span class="keyword">const</span> &amp; y);
84 <a name="l00058"></a>00058
85 <a name="l00062"></a>00062 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt;
86 <a name="l00063"></a>00063 <span class="keyword">typename</span> vecType::value_type <a class="code" href="a00299.html#gad9f384cfa3b7879dc5926fad0023cce9" title="Returns the orientation of a two vector base from a normal.">orientedAngleFromRef</a>(
87 <a name="l00064"></a>00064 vecType <span class="keyword">const</span> &amp; x,
88 <a name="l00065"></a>00065 vecType <span class="keyword">const</span> &amp; y,
89 <a name="l00066"></a>00066 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;typename vecType::value_type&gt;</a> <span class="keyword">const</span> &amp; ref);
55 <a name="l00020"></a>00020 <span class="preprocessor">#include &quot;../gtx/epsilon.hpp&quot;</span>
56 <a name="l00021"></a>00021 <span class="preprocessor">#include &quot;../gtx/quaternion.hpp&quot;</span>
57 <a name="l00022"></a>00022 <span class="preprocessor">#include &quot;../gtx/rotate_vector.hpp&quot;</span>
58 <a name="l00023"></a>00023
59 <a name="l00024"></a>00024 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
60 <a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_vector_angle extension included&quot;)</span>
61 <a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
62 <a name="l00027"></a>00027 <span class="preprocessor"></span>
63 <a name="l00028"></a>00028 <span class="keyword">namespace </span>glm{
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00030"></a><a class="code" href="a00226.html">00030</a> <span class="keyword">namespace </span>vector_angle
66 <a name="l00031"></a>00031 {
67 <a name="l00032"></a>00032 <span class="keyword">using namespace </span>quaternion;
68 <a name="l00033"></a>00033 <span class="keyword">using namespace </span>epsilon;
69 <a name="l00034"></a>00034
70 <a name="l00037"></a>00037
71 <a name="l00041"></a>00041 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt;
72 <a name="l00042"></a>00042 GLM_FUNC_QUALIFIER <span class="keyword">typename</span> vecType::value_type <a class="code" href="a00298.html#ga772681c48065b380295f25ded4c9a70e" title="Returns the absolute angle between two vectors Parameters need to be normalized.">angle</a>(
73 <a name="l00043"></a>00043 vecType <span class="keyword">const</span> &amp; x,
74 <a name="l00044"></a>00044 vecType <span class="keyword">const</span> &amp; y);
75 <a name="l00045"></a>00045
76 <a name="l00049"></a>00049 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
77 <a name="l00050"></a>00050 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00298.html#ga4ac0ffd1ca09ae58ff79486240296663" title="Returns the oriented angle between two 2d vectors Parameters need to be normalized.">orientedAngle</a>(
78 <a name="l00051"></a>00051 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
79 <a name="l00052"></a>00052 <a class="code" href="a00020.html" title="The basic 2D vector type.">detail::tvec2&lt;T&gt;</a> <span class="keyword">const</span> &amp; y);
80 <a name="l00053"></a>00053
81 <a name="l00057"></a>00057 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
82 <a name="l00058"></a>00058 GLM_FUNC_QUALIFIER <a class="code" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" title="Returns the component-wise comparison of result x &amp;lt;= y.">T</a> <a class="code" href="a00298.html#ga4ac0ffd1ca09ae58ff79486240296663" title="Returns the oriented angle between two 2d vectors Parameters need to be normalized.">orientedAngle</a>(
83 <a name="l00059"></a>00059 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; x,
84 <a name="l00060"></a>00060 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; y,
85 <a name="l00061"></a>00061 <a class="code" href="a00021.html" title="Basic 3D vector type.">detail::tvec3&lt;T&gt;</a> <span class="keyword">const</span> &amp; ref);
86 <a name="l00062"></a>00062
87 <a name="l00064"></a>00064 }<span class="comment">// namespace vector_angle</span>
88 <a name="l00065"></a>00065 }<span class="comment">// namespace gtx</span>
89 <a name="l00066"></a>00066 }<span class="comment">// namespace glm</span>
9090 <a name="l00067"></a>00067
91 <a name="l00069"></a>00069 }<span class="comment">//namespace vector_angle</span>
92 <a name="l00070"></a>00070 }<span class="comment">//namespace gtx</span>
93 <a name="l00071"></a>00071 }<span class="comment">//namespace glm</span>
94 <a name="l00072"></a>00072
95 <a name="l00073"></a>00073 <span class="preprocessor">#include &quot;vector_angle.inl&quot;</span>
96 <a name="l00074"></a>00074
97 <a name="l00075"></a>00075 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::vector_angle;}
98 <a name="l00076"></a>00076
99 <a name="l00077"></a>00077 <span class="preprocessor">#endif//glm_gtx_vector_angle</span>
91 <a name="l00068"></a>00068 <span class="preprocessor">#include &quot;vector_angle.inl&quot;</span>
92 <a name="l00069"></a>00069
93 <a name="l00070"></a>00070 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::vector_angle;}
94 <a name="l00071"></a>00071
95 <a name="l00072"></a>00072 <span class="preprocessor">#endif//glm_gtx_vector_angle</span>
10096 </pre></div></div>
10197 </div>
10298 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_vector_query extension included&quot;)</span>
5858 <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5959 <a name="l00024"></a>00024 <span class="preprocessor"></span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm
61 <a name="l00026"></a>00026 {
62 <a name="l00027"></a>00027 <span class="keyword">namespace </span>test{
63 <a name="l00028"></a>00028 <span class="keywordtype">void</span> main_ext_gtx_vector_query();
64 <a name="l00029"></a>00029 }<span class="comment">//namespace test</span>
65 <a name="l00030"></a>00030
66 <a name="l00031"></a>00031 <span class="keyword">namespace </span>gtx{
67 <a name="l00033"></a><a class="code" href="a00227.html">00033</a> <span class="keyword">namespace </span>vector_query
68 <a name="l00034"></a>00034 {
69 <a name="l00037"></a>00037
70 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
71 <a name="l00041"></a>00041 <span class="keywordtype">bool</span> <a class="code" href="a00300.html#gadf4603b05ea58193d1f63f128160757e" title="Check if two vectors are collinears.">areCollinear</a>(
72 <a name="l00042"></a>00042 genType <span class="keyword">const</span> &amp; v0,
73 <a name="l00043"></a>00043 genType <span class="keyword">const</span> &amp; v1,
74 <a name="l00044"></a>00044 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
75 <a name="l00045"></a>00045
76 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
77 <a name="l00049"></a>00049 <span class="keywordtype">bool</span> <a class="code" href="a00300.html#gacac4975ef9ab28dafe0b07f543fd1d35" title="Check if two vectors are opposites.">areOpposite</a>(
78 <a name="l00050"></a>00050 genType <span class="keyword">const</span> &amp; v0,
79 <a name="l00051"></a>00051 genType <span class="keyword">const</span> &amp; v1,
80 <a name="l00052"></a>00052 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
81 <a name="l00053"></a>00053
82 <a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
83 <a name="l00057"></a>00057 <span class="keywordtype">bool</span> <a class="code" href="a00300.html#ga6d56f0cfc253d49844bac10cefb1ec92" title="Check if two vectors are orthogonals.">areOrthogonal</a>(
84 <a name="l00058"></a>00058 genType <span class="keyword">const</span> &amp; v0,
85 <a name="l00059"></a>00059 genType <span class="keyword">const</span> &amp; v1,
86 <a name="l00060"></a>00060 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
87 <a name="l00061"></a>00061
88 <a name="l00064"></a>00064 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
89 <a name="l00065"></a>00065 <span class="keywordtype">bool</span> <a class="code" href="a00300.html#ga727dbe962529a68632f779ccc79e2cef" title="Check if a vector is normalized.">isNormalized</a>(
90 <a name="l00066"></a>00066 genType <span class="keyword">const</span> &amp; v,
91 <a name="l00067"></a>00067 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
92 <a name="l00068"></a>00068
93 <a name="l00071"></a>00071 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
94 <a name="l00072"></a>00072 <span class="keywordtype">bool</span> <a class="code" href="a00300.html#gab8f7a48850ba11f19dbbfcc0429b116c" title="Check if a vector is null.">isNull</a>(
95 <a name="l00073"></a>00073 genType <span class="keyword">const</span> &amp; v,
96 <a name="l00074"></a>00074 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
97 <a name="l00075"></a>00075
98 <a name="l00078"></a>00078 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
99 <a name="l00079"></a>00079 <span class="keywordtype">bool</span> <a class="code" href="a00300.html#ga300e715a70b718689fd405e65b09f26a" title="Check if two vectors are orthonormal.">areOrthonormal</a>(
100 <a name="l00080"></a>00080 genType <span class="keyword">const</span> &amp; v0,
101 <a name="l00081"></a>00081 genType <span class="keyword">const</span> &amp; v1,
102 <a name="l00082"></a>00082 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
103 <a name="l00083"></a>00083
104 <a name="l00086"></a>00086 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
105 <a name="l00087"></a>00087 <span class="keywordtype">bool</span> <a class="code" href="a00300.html#gac91707dd854ae62484e9670311105545" title="Check if two vectors are similar.">areSimilar</a>(
106 <a name="l00088"></a>00088 genType <span class="keyword">const</span> &amp; v0,
107 <a name="l00089"></a>00089 genType <span class="keyword">const</span> &amp; v1,
108 <a name="l00090"></a>00090 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
109 <a name="l00091"></a>00091
110 <a name="l00093"></a>00093
111 <a name="l00094"></a>00094 }<span class="comment">//namespace vector_query</span>
112 <a name="l00095"></a>00095 }<span class="comment">//namespace gtx</span>
113 <a name="l00096"></a>00096 }<span class="comment">//namespace glm</span>
114 <a name="l00097"></a>00097
115 <a name="l00098"></a>00098 <span class="preprocessor">#include &quot;vector_query.inl&quot;</span>
116 <a name="l00099"></a>00099
117 <a name="l00100"></a>00100 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::vector_query;}
118 <a name="l00101"></a>00101
119 <a name="l00102"></a>00102 <span class="preprocessor">#endif//glm_gtx_vector_query</span>
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>glm{
61 <a name="l00026"></a>00026 <span class="keyword">namespace </span>gtx{
62 <a name="l00027"></a><a class="code" href="a00227.html">00027</a> <span class="keyword">namespace </span>vector_query
63 <a name="l00028"></a>00028 {
64 <a name="l00031"></a>00031
65 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
66 <a name="l00035"></a>00035 <span class="keywordtype">bool</span> <a class="code" href="a00299.html#gadf4603b05ea58193d1f63f128160757e" title="Check if two vectors are collinears.">areCollinear</a>(
67 <a name="l00036"></a>00036 genType <span class="keyword">const</span> &amp; v0,
68 <a name="l00037"></a>00037 genType <span class="keyword">const</span> &amp; v1,
69 <a name="l00038"></a>00038 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
70 <a name="l00039"></a>00039
71 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
72 <a name="l00043"></a>00043 <span class="keywordtype">bool</span> <a class="code" href="a00299.html#gacac4975ef9ab28dafe0b07f543fd1d35" title="Check if two vectors are opposites.">areOpposite</a>(
73 <a name="l00044"></a>00044 genType <span class="keyword">const</span> &amp; v0,
74 <a name="l00045"></a>00045 genType <span class="keyword">const</span> &amp; v1,
75 <a name="l00046"></a>00046 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
76 <a name="l00047"></a>00047
77 <a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
78 <a name="l00051"></a>00051 <span class="keywordtype">bool</span> <a class="code" href="a00299.html#ga6d56f0cfc253d49844bac10cefb1ec92" title="Check if two vectors are orthogonals.">areOrthogonal</a>(
79 <a name="l00052"></a>00052 genType <span class="keyword">const</span> &amp; v0,
80 <a name="l00053"></a>00053 genType <span class="keyword">const</span> &amp; v1,
81 <a name="l00054"></a>00054 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
82 <a name="l00055"></a>00055
83 <a name="l00058"></a>00058 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
84 <a name="l00059"></a>00059 <span class="keywordtype">bool</span> <a class="code" href="a00299.html#ga727dbe962529a68632f779ccc79e2cef" title="Check if a vector is normalized.">isNormalized</a>(
85 <a name="l00060"></a>00060 genType <span class="keyword">const</span> &amp; v,
86 <a name="l00061"></a>00061 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
87 <a name="l00062"></a>00062
88 <a name="l00065"></a>00065 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
89 <a name="l00066"></a>00066 <span class="keywordtype">bool</span> <a class="code" href="a00299.html#gab8f7a48850ba11f19dbbfcc0429b116c" title="Check if a vector is null.">isNull</a>(
90 <a name="l00067"></a>00067 genType <span class="keyword">const</span> &amp; v,
91 <a name="l00068"></a>00068 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
92 <a name="l00069"></a>00069
93 <a name="l00072"></a>00072 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
94 <a name="l00073"></a>00073 <span class="keywordtype">bool</span> <a class="code" href="a00299.html#ga300e715a70b718689fd405e65b09f26a" title="Check if two vectors are orthonormal.">areOrthonormal</a>(
95 <a name="l00074"></a>00074 genType <span class="keyword">const</span> &amp; v0,
96 <a name="l00075"></a>00075 genType <span class="keyword">const</span> &amp; v1,
97 <a name="l00076"></a>00076 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
98 <a name="l00077"></a>00077
99 <a name="l00080"></a>00080 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
100 <a name="l00081"></a>00081 <span class="keywordtype">bool</span> <a class="code" href="a00299.html#gac91707dd854ae62484e9670311105545" title="Check if two vectors are similar.">areSimilar</a>(
101 <a name="l00082"></a>00082 genType <span class="keyword">const</span> &amp; v0,
102 <a name="l00083"></a>00083 genType <span class="keyword">const</span> &amp; v1,
103 <a name="l00084"></a>00084 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; epsilon = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon());
104 <a name="l00085"></a>00085
105 <a name="l00087"></a>00087 }<span class="comment">// namespace vector_query</span>
106 <a name="l00088"></a>00088 }<span class="comment">// namespace gtx</span>
107 <a name="l00089"></a>00089 }<span class="comment">// namespace glm</span>
108 <a name="l00090"></a>00090
109 <a name="l00091"></a>00091 <span class="preprocessor">#include &quot;vector_query.inl&quot;</span>
110 <a name="l00092"></a>00092
111 <a name="l00093"></a>00093 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::vector_query;}
112 <a name="l00094"></a>00094
113 <a name="l00095"></a>00095 <span class="preprocessor">#endif//glm_gtx_vector_query</span>
120114 </pre></div></div>
121115 </div>
122116 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_verbose_operator extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">void</span> main_ext_gtx_verbose_operator();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00228.html">00031</a> <span class="keyword">namespace </span>verbose_operator
66 <a name="l00032"></a>00032 {
67 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
69 <a name="l00039"></a>00039 genTypeT <a class="code" href="a00301.html#ga43dc29338ef121abd4a47c93dcd822f7" title="Addition of two values From GLM_GTX_verbose_operator extension.">add</a>(genTypeT <span class="keyword">const</span> &amp; a, genTypeU <span class="keyword">const</span> &amp; b);
70 <a name="l00040"></a>00040
71 <a name="l00043"></a>00043 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
72 <a name="l00044"></a>00044 genTypeT <a class="code" href="a00301.html#gae0f130b059368ee8ef65522b0d434e7e" title="Substration of two values From GLM_GTX_verbose_operator extension.">sub</a>(genTypeT <span class="keyword">const</span> &amp; a, genTypeU <span class="keyword">const</span> &amp; b);
73 <a name="l00045"></a>00045
74 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
75 <a name="l00049"></a>00049 genTypeT <a class="code" href="a00301.html#gac87bf44315f4f2b57ace7dc9eb2cf851" title="Multiplication of two values From GLM_GTX_verbose_operator extension.">mul</a>(genTypeT <span class="keyword">const</span> &amp; a, genTypeU <span class="keyword">const</span> &amp; b);
76 <a name="l00050"></a>00050
77 <a name="l00053"></a>00053 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
78 <a name="l00054"></a>00054 genTypeT <a class="code" href="a00301.html#gac3fc94c8ffc6cdbfd36cffc6d06c8072" title="Division of two values From GLM_GTX_verbose_operator extension.">div</a>(genTypeT <span class="keyword">const</span> &amp; a, genTypeU <span class="keyword">const</span> &amp; b);
79 <a name="l00055"></a>00055
80 <a name="l00058"></a>00058 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU, <span class="keyword">typename</span> genTypeV&gt;
81 <a name="l00059"></a>00059 genTypeT <a class="code" href="a00301.html#ga4997f51a19fbe8f947fd5589af27619f" title="Multiplication and addition of three values From GLM_GTX_verbose_operator extension.">mad</a>(genTypeT <span class="keyword">const</span> &amp; a, genTypeU <span class="keyword">const</span> &amp; b, genTypeV <span class="keyword">const</span> &amp; c);
82 <a name="l00060"></a>00060
83 <a name="l00062"></a>00062 }<span class="comment">//namespace verbose_operator</span>
84 <a name="l00063"></a>00063 }<span class="comment">//namespace gtx</span>
85 <a name="l00064"></a>00064 }<span class="comment">//namespace glm</span>
86 <a name="l00065"></a>00065
87 <a name="l00066"></a>00066 <span class="preprocessor">#include &quot;verbose_operator.inl&quot;</span>
88 <a name="l00067"></a>00067
89 <a name="l00068"></a>00068 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::verbose_operator;}
90 <a name="l00069"></a>00069
91 <a name="l00070"></a>00070 <span class="preprocessor">#endif//glm_gtx_verbose_operator</span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00228.html">00025</a> <span class="keyword">namespace </span>verbose_operator
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
64 <a name="l00033"></a>00033 genTypeT <a class="code" href="a00300.html#ga43dc29338ef121abd4a47c93dcd822f7" title="Addition of two values From GLM_GTX_verbose_operator extension.">add</a>(genTypeT <span class="keyword">const</span> &amp; a, genTypeU <span class="keyword">const</span> &amp; b);
65 <a name="l00034"></a>00034
66 <a name="l00037"></a>00037 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
67 <a name="l00038"></a>00038 genTypeT <a class="code" href="a00300.html#gae0f130b059368ee8ef65522b0d434e7e" title="Substration of two values From GLM_GTX_verbose_operator extension.">sub</a>(genTypeT <span class="keyword">const</span> &amp; a, genTypeU <span class="keyword">const</span> &amp; b);
68 <a name="l00039"></a>00039
69 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
70 <a name="l00043"></a>00043 genTypeT <a class="code" href="a00300.html#gac87bf44315f4f2b57ace7dc9eb2cf851" title="Multiplication of two values From GLM_GTX_verbose_operator extension.">mul</a>(genTypeT <span class="keyword">const</span> &amp; a, genTypeU <span class="keyword">const</span> &amp; b);
71 <a name="l00044"></a>00044
72 <a name="l00047"></a>00047 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
73 <a name="l00048"></a>00048 genTypeT <a class="code" href="a00300.html#gac3fc94c8ffc6cdbfd36cffc6d06c8072" title="Division of two values From GLM_GTX_verbose_operator extension.">div</a>(genTypeT <span class="keyword">const</span> &amp; a, genTypeU <span class="keyword">const</span> &amp; b);
74 <a name="l00049"></a>00049
75 <a name="l00052"></a>00052 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU, <span class="keyword">typename</span> genTypeV&gt;
76 <a name="l00053"></a>00053 genTypeT <a class="code" href="a00300.html#ga4997f51a19fbe8f947fd5589af27619f" title="Multiplication and addition of three values From GLM_GTX_verbose_operator extension.">mad</a>(genTypeT <span class="keyword">const</span> &amp; a, genTypeU <span class="keyword">const</span> &amp; b, genTypeV <span class="keyword">const</span> &amp; c);
77 <a name="l00054"></a>00054
78 <a name="l00056"></a>00056 }<span class="comment">// namespace verbose_operator</span>
79 <a name="l00057"></a>00057 }<span class="comment">// namespace gtx</span>
80 <a name="l00058"></a>00058 }<span class="comment">// namespace glm</span>
81 <a name="l00059"></a>00059
82 <a name="l00060"></a>00060 <span class="preprocessor">#include &quot;verbose_operator.inl&quot;</span>
83 <a name="l00061"></a>00061
84 <a name="l00062"></a>00062 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::verbose_operator;}
85 <a name="l00063"></a>00063
86 <a name="l00064"></a>00064 <span class="preprocessor">#endif//glm_gtx_verbose_operator</span>
9287 </pre></div></div>
9388 </div>
9489 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5555 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_wrap extension included&quot;)</span>
5656 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
5757 <a name="l00022"></a>00022 <span class="preprocessor"></span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm
59 <a name="l00024"></a>00024 {
60 <a name="l00025"></a>00025 <span class="keyword">namespace </span>test{
61 <a name="l00026"></a>00026 <span class="keywordtype">bool</span> main_gtx_wrap();
62 <a name="l00027"></a>00027 }<span class="comment">//namespace test</span>
63 <a name="l00028"></a>00028
64 <a name="l00029"></a>00029 <span class="keyword">namespace </span>gtx{
65 <a name="l00031"></a><a class="code" href="a00229.html">00031</a> <span class="keyword">namespace </span>wrap
66 <a name="l00032"></a>00032 {
67 <a name="l00035"></a>00035
68 <a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
69 <a name="l00039"></a>00039 genType <a class="code" href="a00302.html#ga4cadbe69771221fe96b15a747b89948e" title="Simulate GL_CLAMP OpenGL wrap mode From GLM_GTX_wrap extension.">clamp</a>(genType <span class="keyword">const</span> &amp; Texcoord);
70 <a name="l00040"></a>00040
71 <a name="l00043"></a>00043 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
72 <a name="l00044"></a>00044 genType <a class="code" href="a00302.html#ga3a80250939448f34862edddfb763e2ce" title="Simulate GL_REPEAT OpenGL wrap mode From GLM_GTX_wrap extension.">repeat</a>(genType <span class="keyword">const</span> &amp; Texcoord);
73 <a name="l00045"></a>00045
74 <a name="l00048"></a>00048 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
75 <a name="l00049"></a>00049 genType <a class="code" href="a00302.html#gae158e6e90ba29f07f3fe590b3e9a077e" title="Simulate GL_MIRROR_REPEAT OpenGL wrap mode From GLM_GTX_wrap extension.">mirrorRepeat</a>(genType <span class="keyword">const</span> &amp; Texcoord);
76 <a name="l00050"></a>00050
77 <a name="l00052"></a>00052
78 <a name="l00053"></a>00053 }<span class="comment">//namespace wrap</span>
79 <a name="l00054"></a>00054 }<span class="comment">//namespace gtx</span>
80 <a name="l00055"></a>00055 }<span class="comment">//namespace glm</span>
81 <a name="l00056"></a>00056
82 <a name="l00057"></a>00057 <span class="preprocessor">#include &quot;wrap.inl&quot;</span>
83 <a name="l00058"></a>00058
84 <a name="l00059"></a>00059 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::wrap;}
85 <a name="l00060"></a>00060
86 <a name="l00061"></a>00061 <span class="preprocessor">#endif//glm_img_wrap</span>
58 <a name="l00023"></a>00023 <span class="keyword">namespace </span>glm{
59 <a name="l00024"></a>00024 <span class="keyword">namespace </span>gtx{
60 <a name="l00025"></a><a class="code" href="a00229.html">00025</a> <span class="keyword">namespace </span>wrap
61 <a name="l00026"></a>00026 {
62 <a name="l00029"></a>00029
63 <a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
64 <a name="l00033"></a>00033 genType <a class="code" href="a00301.html#ga4cadbe69771221fe96b15a747b89948e" title="Simulate GL_CLAMP OpenGL wrap mode From GLM_GTX_wrap extension.">clamp</a>(genType <span class="keyword">const</span> &amp; Texcoord);
65 <a name="l00034"></a>00034
66 <a name="l00037"></a>00037 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
67 <a name="l00038"></a>00038 genType <a class="code" href="a00301.html#ga3a80250939448f34862edddfb763e2ce" title="Simulate GL_REPEAT OpenGL wrap mode From GLM_GTX_wrap extension.">repeat</a>(genType <span class="keyword">const</span> &amp; Texcoord);
68 <a name="l00039"></a>00039
69 <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
70 <a name="l00043"></a>00043 genType <a class="code" href="a00301.html#gae158e6e90ba29f07f3fe590b3e9a077e" title="Simulate GL_MIRROR_REPEAT OpenGL wrap mode From GLM_GTX_wrap extension.">mirrorRepeat</a>(genType <span class="keyword">const</span> &amp; Texcoord);
71 <a name="l00044"></a>00044
72 <a name="l00046"></a>00046 }<span class="comment">// namespace wrap</span>
73 <a name="l00047"></a>00047 }<span class="comment">// namespace gtx</span>
74 <a name="l00048"></a>00048 }<span class="comment">// namespace glm</span>
75 <a name="l00049"></a>00049
76 <a name="l00050"></a>00050 <span class="preprocessor">#include &quot;wrap.inl&quot;</span>
77 <a name="l00051"></a>00051
78 <a name="l00052"></a>00052 <span class="keyword">namespace </span>glm{<span class="keyword">using namespace </span>gtx::wrap;}
79 <a name="l00053"></a>00053
80 <a name="l00054"></a>00054 <span class="preprocessor">#endif//glm_img_wrap</span>
8781 </pre></div></div>
8882 </div>
8983 <hr class="footer"/><address class="footer"><small>Generated by&#160;
3636 <h1>xstream.hpp</h1> </div>
3737 </div>
3838 <div class="contents">
39 <div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef GLM_EXT_VIRTREV_XSTREAM_HPP</span>
40 <a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define GLM_EXT_VIRTREV_XSTREAM_HPP</span>
41 <a name="l00003"></a>00003 <span class="preprocessor"></span>
42 <a name="l00005"></a>00005 <span class="comment">// OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)</span>
43 <a name="l00006"></a>00006 <span class="comment">// Virtrev SDK copyright matrem (matrem84.free.fr)</span>
44 <a name="l00008"></a>00008 <span class="comment"></span><span class="comment">// Created : 2008-05-24</span>
45 <a name="l00009"></a>00009 <span class="comment">// Updated : 2008-05-26</span>
46 <a name="l00010"></a>00010 <span class="comment">// Licence : This source is under MIT License</span>
47 <a name="l00011"></a>00011 <span class="comment">// File : glm/ext/virtrev/xstream.hpp</span>
48 <a name="l00013"></a>00013 <span class="comment"></span><span class="comment">// Dependency:</span>
49 <a name="l00014"></a>00014 <span class="comment">// - GLM core</span>
50 <a name="l00015"></a>00015 <span class="comment">// - GLM_GTX_matrix_selection</span>
51 <a name="l00017"></a>00017 <span class="comment"></span>
39 <div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
40 <a name="l00002"></a>00002 <span class="comment">// OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)</span>
41 <a name="l00003"></a>00003 <span class="comment">// Virtrev SDK copyright matrem (matrem84.free.fr)</span>
42 <a name="l00005"></a>00005 <span class="comment"></span><span class="comment">// Created : 2008-05-24</span>
43 <a name="l00006"></a>00006 <span class="comment">// Updated : 2008-05-26</span>
44 <a name="l00007"></a>00007 <span class="comment">// Licence : This source is under MIT License</span>
45 <a name="l00008"></a>00008 <span class="comment">// File : glm/ext/virtrev/xstream.hpp</span>
46 <a name="l00010"></a>00010 <span class="comment"></span><span class="comment">// Dependency:</span>
47 <a name="l00011"></a>00011 <span class="comment">// - GLM core</span>
48 <a name="l00012"></a>00012 <span class="comment">// - GLM_GTX_matrix_selection</span>
49 <a name="l00014"></a>00014 <span class="comment"></span>
50 <a name="l00015"></a>00015 <span class="preprocessor">#ifndef GLM_EXT_VIRTREV_XSTREAM_HPP</span>
51 <a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define GLM_EXT_VIRTREV_XSTREAM_HPP</span>
52 <a name="l00017"></a>00017 <span class="preprocessor"></span>
5253 <a name="l00018"></a>00018 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
5354 <a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../gtc/matrix_access.hpp&quot;</span>
5455 <a name="l00020"></a>00020 <span class="preprocessor">#include &lt;iostream&gt;</span>
6162 <a name="l00027"></a>00027 {
6263 <a name="l00028"></a>00028 <span class="keyword">namespace </span>virtrev_glmext
6364 <a name="l00029"></a>00029 {
64 <a name="l00031"></a><a class="code" href="a00233.html">00031</a> <span class="keyword">namespace </span>xstream
65 <a name="l00031"></a><a class="code" href="a00232.html">00031</a> <span class="keyword">namespace </span>xstream
6566 <a name="l00032"></a>00032 {
6667 <a name="l00033"></a>00033 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
6768 <a name="l00034"></a>00034 std::ostream &amp; operator &lt;&lt; (std::ostream &amp; stream, glm::detail::tvec2&lt;T&gt; <span class="keyword">const</span> &amp; vec)
104105 <a name="l00071"></a>00071 {
105106 <a name="l00072"></a>00072 stream &lt;&lt; <span class="stringliteral">&quot;&lt;glm_mat2&gt;&quot;</span> &lt;&lt; std::endl;
106107 <a name="l00073"></a>00073 stream &lt;&lt; <span class="stringliteral">&quot;&lt;row &quot;</span>;
107 <a name="l00074"></a>00074 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
108 <a name="l00075"></a>00075 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
108 <a name="l00074"></a>00074 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
109 <a name="l00075"></a>00075 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
109110 <a name="l00076"></a>00076 stream &lt;&lt; <span class="stringliteral">&quot;/&gt;&quot;</span> &lt;&lt; std::endl;
110111 <a name="l00077"></a>00077 stream &lt;&lt; <span class="stringliteral">&quot;&lt;row &quot;</span>;
111 <a name="l00078"></a>00078 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
112 <a name="l00079"></a>00079 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
112 <a name="l00078"></a>00078 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
113 <a name="l00079"></a>00079 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
113114 <a name="l00080"></a>00080 stream &lt;&lt; <span class="stringliteral">&quot;/&gt;&quot;</span> &lt;&lt; std::endl;
114115 <a name="l00081"></a>00081 stream &lt;&lt; <span class="stringliteral">&quot;&lt;/glm_mat2&gt;&quot;</span>;
115116 <a name="l00082"></a>00082
121122 <a name="l00088"></a>00088 {
122123 <a name="l00089"></a>00089 stream &lt;&lt; <span class="stringliteral">&quot;&lt;glm_mat3&gt;&quot;</span> &lt;&lt; std::endl;
123124 <a name="l00090"></a>00090 stream &lt;&lt; <span class="stringliteral">&quot;&lt;row &quot;</span>;
124 <a name="l00091"></a>00091 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
125 <a name="l00092"></a>00092 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
126 <a name="l00093"></a>00093 stream &lt;&lt; <span class="stringliteral">&quot;z=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[2] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
125 <a name="l00091"></a>00091 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
126 <a name="l00092"></a>00092 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
127 <a name="l00093"></a>00093 stream &lt;&lt; <span class="stringliteral">&quot;z=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[2] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
127128 <a name="l00094"></a>00094 stream &lt;&lt; <span class="stringliteral">&quot;/&gt;&quot;</span> &lt;&lt; std::endl;
128129 <a name="l00095"></a>00095 stream &lt;&lt; <span class="stringliteral">&quot;&lt;row &quot;</span>;
129 <a name="l00096"></a>00096 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
130 <a name="l00097"></a>00097 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
131 <a name="l00098"></a>00098 stream &lt;&lt; <span class="stringliteral">&quot;z=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[2] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
130 <a name="l00096"></a>00096 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
131 <a name="l00097"></a>00097 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
132 <a name="l00098"></a>00098 stream &lt;&lt; <span class="stringliteral">&quot;z=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[2] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
132133 <a name="l00099"></a>00099 stream &lt;&lt; <span class="stringliteral">&quot;/&gt;&quot;</span> &lt;&lt; std::endl;
133134 <a name="l00100"></a>00100 stream &lt;&lt; <span class="stringliteral">&quot;&lt;row &quot;</span>;
134 <a name="l00101"></a>00101 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 2)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
135 <a name="l00102"></a>00102 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 2)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
136 <a name="l00103"></a>00103 stream &lt;&lt; <span class="stringliteral">&quot;z=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 2)[2] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
135 <a name="l00101"></a>00101 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 2)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
136 <a name="l00102"></a>00102 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 2)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
137 <a name="l00103"></a>00103 stream &lt;&lt; <span class="stringliteral">&quot;z=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 2)[2] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
137138 <a name="l00104"></a>00104 stream &lt;&lt; <span class="stringliteral">&quot;/&gt;&quot;</span> &lt;&lt; std::endl;
138139 <a name="l00105"></a>00105 stream &lt;&lt; <span class="stringliteral">&quot;&lt;/glm_mat3&gt;&quot;</span>;
139140 <a name="l00106"></a>00106
145146 <a name="l00112"></a>00112 {
146147 <a name="l00113"></a>00113 stream &lt;&lt; <span class="stringliteral">&quot;&lt;glm_mat4&gt;&quot;</span> &lt;&lt; std::endl;
147148 <a name="l00114"></a>00114 stream &lt;&lt; <span class="stringliteral">&quot;&lt;row &quot;</span>;
148 <a name="l00115"></a>00115 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
149 <a name="l00116"></a>00116 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
150 <a name="l00117"></a>00117 stream &lt;&lt; <span class="stringliteral">&quot;z=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[2] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
151 <a name="l00118"></a>00118 stream &lt;&lt; <span class="stringliteral">&quot;w=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[3] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
149 <a name="l00115"></a>00115 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
150 <a name="l00116"></a>00116 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
151 <a name="l00117"></a>00117 stream &lt;&lt; <span class="stringliteral">&quot;z=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[2] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
152 <a name="l00118"></a>00118 stream &lt;&lt; <span class="stringliteral">&quot;w=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 0)[3] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
152153 <a name="l00119"></a>00119 stream &lt;&lt; <span class="stringliteral">&quot;/&gt;&quot;</span> &lt;&lt; std::endl;
153154 <a name="l00120"></a>00120 stream &lt;&lt; <span class="stringliteral">&quot;&lt;row &quot;</span>;
154 <a name="l00121"></a>00121 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
155 <a name="l00122"></a>00122 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
156 <a name="l00123"></a>00123 stream &lt;&lt; <span class="stringliteral">&quot;z=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[2] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
157 <a name="l00124"></a>00124 stream &lt;&lt; <span class="stringliteral">&quot;w=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[3] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
155 <a name="l00121"></a>00121 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
156 <a name="l00122"></a>00122 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
157 <a name="l00123"></a>00123 stream &lt;&lt; <span class="stringliteral">&quot;z=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[2] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
158 <a name="l00124"></a>00124 stream &lt;&lt; <span class="stringliteral">&quot;w=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 1)[3] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
158159 <a name="l00125"></a>00125 stream &lt;&lt; <span class="stringliteral">&quot;/&gt;&quot;</span> &lt;&lt; std::endl;
159160 <a name="l00126"></a>00126 stream &lt;&lt; <span class="stringliteral">&quot;&lt;row &quot;</span>;
160 <a name="l00127"></a>00127 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 2)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
161 <a name="l00128"></a>00128 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 2)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
162 <a name="l00129"></a>00129 stream &lt;&lt; <span class="stringliteral">&quot;z=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 2)[2] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
163 <a name="l00130"></a>00130 stream &lt;&lt; <span class="stringliteral">&quot;w=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 2)[3] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
161 <a name="l00127"></a>00127 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 2)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
162 <a name="l00128"></a>00128 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 2)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
163 <a name="l00129"></a>00129 stream &lt;&lt; <span class="stringliteral">&quot;z=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 2)[2] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
164 <a name="l00130"></a>00130 stream &lt;&lt; <span class="stringliteral">&quot;w=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 2)[3] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
164165 <a name="l00131"></a>00131 stream &lt;&lt; <span class="stringliteral">&quot;/&gt;&quot;</span> &lt;&lt; std::endl;
165166 <a name="l00132"></a>00132 stream &lt;&lt; <span class="stringliteral">&quot;&lt;row &quot;</span>;
166 <a name="l00133"></a>00133 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 3)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
167 <a name="l00134"></a>00134 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 3)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
168 <a name="l00135"></a>00135 stream &lt;&lt; <span class="stringliteral">&quot;z=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 3)[2] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
169 <a name="l00136"></a>00136 stream &lt;&lt; <span class="stringliteral">&quot;w=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 3)[3] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
167 <a name="l00133"></a>00133 stream &lt;&lt; <span class="stringliteral">&quot;x=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 3)[0] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
168 <a name="l00134"></a>00134 stream &lt;&lt; <span class="stringliteral">&quot;y=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 3)[1] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
169 <a name="l00135"></a>00135 stream &lt;&lt; <span class="stringliteral">&quot;z=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 3)[2] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
170 <a name="l00136"></a>00136 stream &lt;&lt; <span class="stringliteral">&quot;w=\&quot;&quot;</span> &lt;&lt; <a class="code" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe" title="Get a specific row of a matrix.">glm::row</a>(mat, 3)[3] &lt;&lt; <span class="stringliteral">&quot;\&quot; &quot;</span>;
170171 <a name="l00137"></a>00137 stream &lt;&lt; <span class="stringliteral">&quot;/&gt;&quot;</span> &lt;&lt; std::endl;
171172 <a name="l00138"></a>00138 stream &lt;&lt; <span class="stringliteral">&quot;&lt;/glm_mat4&gt;&quot;</span>;
172173 <a name="l00139"></a>00139
+0
-103
doc/html/a00143.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>glm Namespace Reference</title>
5 <link href="tabs.css" rel="stylesheet" type="text/css"/>
6 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
7 </head>
8 <body>
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td id="projectlogo"><img alt="Logo" src="logo-mini.png"></td>
16 </tr>
17 </tbody>
18 </table>
19 </div>
20 <div id="navrow1" class="tabs">
21 <ul class="tablist">
22 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
23 <li><a href="modules.html"><span>Modules</span></a></li>
24 <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
25 <li><a href="annotated.html"><span>Classes</span></a></li>
26 <li><a href="files.html"><span>Files</span></a></li>
27 </ul>
28 </div>
29 <div id="navrow2" class="tabs2">
30 <ul class="tablist">
31 <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
32 <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
33 </ul>
34 </div>
35 </div>
36 <div class="header">
37 <div class="summary">
38 <a href="#namespaces">Namespaces</a> &#124;
39 <a href="#typedef-members">Typedefs</a> </div>
40 <div class="headertitle">
41 <h1>glm Namespace Reference</h1> </div>
42 </div>
43 <div class="contents">
44
45 <p>GLM namespace, it contains all GLSL based features.
46 <a href="#_details">More...</a></p>
47 <table class="memberdecls">
48 <tr><td colspan="2"><h2><a name="namespaces"></a>
49 Namespaces</h2></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00144.html">core</a></td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html">gtc</a></td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00168.html">gtx</a></td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html">img</a></td></tr>
54 <tr><td colspan="2"><h2><a name="typedef-members"></a>
55 Typedefs</h2></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga3bdc45d8289530ec60f8b0afd86dec9d">bvec2</a></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaa6930ec345061c66a5fcb4839bbc23b2">bvec3</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga3b7e171999130bbe808335a4e41356a0">bvec4</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gac47a6148fdae0fe40858fb357aa9e9c5">dmat2</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga154eeba579bb2792509d4f68d7269116">dmat2x2</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga6722002d2b3591b9617696009cb92d7d">dmat2x3</a></td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga839ae2cf7dd0064e97529dfe10017ad2">dmat2x4</a></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga92c12ba0463edf4aa5d6d0e506591cf0">dmat3</a></td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga94c2f5b05e0be254d81b53fdea6602d7">dmat3x2</a></td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaf72ab1d43dc5d437d2c9ea53ea038e3b">dmat3x3</a></td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga04f2a951763897578c4c08e61989f1d1">dmat3x4</a></td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga5db20fe7521b2e5bfa67a3131bdd0623">dmat4</a></td></tr>
68 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga1c381a2410bbabe8464254b1ff76173c">dmat4x2</a></td></tr>
69 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga250ca1110cb3df02e122705e0df801f3">dmat4x3</a></td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gae2cf7fdac82b788e8f4d4145f6c963f1">dmat4x4</a></td></tr>
71 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga88bf1a60f35314a6b3f2c5adc97004cf">dvec2</a></td></tr>
72 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga0f0fcb7b631cbbac4341badb01d84218">dvec3</a></td></tr>
73 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga6f62aca8ddbdb3badf9d52885e7dcfb6">dvec4</a></td></tr>
74 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">precision::mediump_ivec2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gae34ec1dcb70458421c150176537dca90">ivec2</a></td></tr>
75 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">precision::mediump_ivec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga8772f4d0808ec3571b0b21c7514ae626">ivec3</a></td></tr>
76 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">precision::mediump_ivec4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga4ca78493e6bc3274eb996a783f6336ec">ivec4</a></td></tr>
77 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">mat2x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a></td></tr>
78 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">precision::mediump_mat2x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gac0430f4e1a8747774bcfbd0ea7c7df7b">mat2x2</a></td></tr>
79 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00011.html">precision::mediump_mat2x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga166bc1c922bedbb7f655bd348ff2f97b">mat2x3</a></td></tr>
80 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00012.html">precision::mediump_mat2x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga0c9a783f321486534bd3a2fd3701a374">mat2x4</a></td></tr>
81 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">mat3x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga6dd3ec98a548755676267e59142911f8">mat3</a></td></tr>
82 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00013.html">precision::mediump_mat3x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga839dac056fcbc087c6c161eb0d7fbe1b">mat3x2</a></td></tr>
83 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">precision::mediump_mat3x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaf188822f2db83067facc9fa922416ad9">mat3x3</a></td></tr>
84 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00015.html">precision::mediump_mat3x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga70f8918f1c21ead733c8f089c09d353a">mat3x4</a></td></tr>
85 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">mat4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gade0eb47c01f79384a6f38017ede17446">mat4</a></td></tr>
86 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00016.html">precision::mediump_mat4x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga2c797007acc18027b65dad6e1f2d7b77">mat4x2</a></td></tr>
87 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00017.html">precision::mediump_mat4x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga73f97cdfb274c84ac7115b8e03c6b54a">mat4x3</a></td></tr>
88 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">precision::mediump_mat4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga214f3d771188cb5b9ec6b5485ac082dc">mat4x4</a></td></tr>
89 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">precision::mediump_uvec2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga3fae7e520beaa9bca6625b98d782f47e">uvec2</a></td></tr>
90 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">precision::mediump_uvec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga48a100077cb128b9c790c71ac1d1d7d2">uvec3</a></td></tr>
91 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">precision::mediump_uvec4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gafbb266d616ea71ad5099994980f8651d">uvec4</a></td></tr>
92 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">precision::mediump_vec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gac422c7058a7c9963b55ad70764c62752">vec3</a></td></tr>
93 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">precision::mediump_vec4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga8fad5ffc01ba6dea689f2a38bf30bda4">vec4</a></td></tr>
94 </table>
95 <hr/><a name="_details"></a><h2>Detailed Description</h2>
96 <div class="textblock"><p>GLM namespace, it contains all GLSL based features. </p>
97 </div></div>
98 <hr class="footer"/><address class="footer"><small>Generated by&#160;
99 <a href="http://www.doxygen.org/index.html">
100 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
101 </body>
102 </html>
+0
-66
doc/html/a00144.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>glm::core Namespace Reference</title>
5 <link href="tabs.css" rel="stylesheet" type="text/css"/>
6 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
7 </head>
8 <body>
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td id="projectlogo"><img alt="Logo" src="logo-mini.png"></td>
16 </tr>
17 </tbody>
18 </table>
19 </div>
20 <div id="navrow1" class="tabs">
21 <ul class="tablist">
22 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
23 <li><a href="modules.html"><span>Modules</span></a></li>
24 <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
25 <li><a href="annotated.html"><span>Classes</span></a></li>
26 <li><a href="files.html"><span>Files</span></a></li>
27 </ul>
28 </div>
29 <div id="navrow2" class="tabs2">
30 <ul class="tablist">
31 <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
32 <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
33 </ul>
34 </div>
35 <div id="nav-path" class="navpath">
36 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00144.html">core</a> </li>
39 </ul>
40 </div>
41 </div>
42 <div class="header">
43 <div class="summary">
44 <a href="#namespaces">Namespaces</a> </div>
45 <div class="headertitle">
46 <h1>glm::core Namespace Reference</h1> </div>
47 </div>
48 <div class="contents">
49
50 <p>GLM core. Namespace that includes all the feature define by GLSL 4.10.6 specification. This namespace is included in glm namespace.
51 <a href="#_details">More...</a></p>
52 <table class="memberdecls">
53 <tr><td colspan="2"><h2><a name="namespaces"></a>
54 Namespaces</h2></td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00145.html">function</a></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00155.html">type</a></td></tr>
57 </table>
58 <hr/><a name="_details"></a><h2>Detailed Description</h2>
59 <div class="textblock"><p>GLM core. Namespace that includes all the feature define by GLSL 4.10.6 specification. This namespace is included in glm namespace. </p>
60 </div></div>
61 <hr class="footer"/><address class="footer"><small>Generated by&#160;
62 <a href="http://www.doxygen.org/index.html">
63 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
64 </body>
65 </html>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>glm::core::function Namespace Reference</title>
4 <title>glm Namespace Reference</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3232 <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
3333 </ul>
3434 </div>
35 <div id="nav-path" class="navpath">
36 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00144.html">core</a> </li>
39 <li class="navelem"><a class="el" href="a00145.html">function</a> </li>
40 </ul>
41 </div>
4235 </div>
4336 <div class="header">
4437 <div class="summary">
45 <a href="#namespaces">Namespaces</a> </div>
38 <a href="#namespaces">Namespaces</a> &#124;
39 <a href="#typedef-members">Typedefs</a> &#124;
40 <a href="#enum-members">Enumerations</a> &#124;
41 <a href="#func-members">Functions</a> </div>
4642 <div class="headertitle">
47 <h1>glm::core::function Namespace Reference</h1> </div>
43 <h1>glm Namespace Reference</h1> </div>
4844 </div>
4945 <div class="contents">
5046
51 <p>Some of the functions defined in section 8 Built-in Functions of GLSL 1.30.8 specification.
47 <p>GLM namespace, it contains all GLSL based features.
5248 <a href="#_details">More...</a></p>
5349 <table class="memberdecls">
5450 <tr><td colspan="2"><h2><a name="namespaces"></a>
5551 Namespaces</h2></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00146.html">common</a></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html">exponential</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html">geometric</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html">integer</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html">matrix</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00152.html">packing</a></td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html">trigonometric</a></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00154.html">vector_relational</a></td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00146.html">core</a></td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html">gtc</a></td></tr>
54 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00168.html">gtx</a></td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html">virtrev</a></td></tr>
56 <tr><td colspan="2"><h2><a name="typedef-members"></a>
57 Typedefs</h2></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga3bdc45d8289530ec60f8b0afd86dec9d">bvec2</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa6930ec345061c66a5fcb4839bbc23b2">bvec3</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga3b7e171999130bbe808335a4e41356a0">bvec4</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac47a6148fdae0fe40858fb357aa9e9c5">dmat2</a></td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga154eeba579bb2792509d4f68d7269116">dmat2x2</a></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6722002d2b3591b9617696009cb92d7d">dmat2x3</a></td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga839ae2cf7dd0064e97529dfe10017ad2">dmat2x4</a></td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga92c12ba0463edf4aa5d6d0e506591cf0">dmat3</a></td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga94c2f5b05e0be254d81b53fdea6602d7">dmat3x2</a></td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf72ab1d43dc5d437d2c9ea53ea038e3b">dmat3x3</a></td></tr>
68 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga04f2a951763897578c4c08e61989f1d1">dmat3x4</a></td></tr>
69 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga5db20fe7521b2e5bfa67a3131bdd0623">dmat4</a></td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1c381a2410bbabe8464254b1ff76173c">dmat4x2</a></td></tr>
71 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga250ca1110cb3df02e122705e0df801f3">dmat4x3</a></td></tr>
72 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gae2cf7fdac82b788e8f4d4145f6c963f1">dmat4x4</a></td></tr>
73 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga88bf1a60f35314a6b3f2c5adc97004cf">dvec2</a></td></tr>
74 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0f0fcb7b631cbbac4341badb01d84218">dvec3</a></td></tr>
75 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6f62aca8ddbdb3badf9d52885e7dcfb6">dvec4</a></td></tr>
76 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">precision::mediump_ivec2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gae34ec1dcb70458421c150176537dca90">ivec2</a></td></tr>
77 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">precision::mediump_ivec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8772f4d0808ec3571b0b21c7514ae626">ivec3</a></td></tr>
78 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">precision::mediump_ivec4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga4ca78493e6bc3274eb996a783f6336ec">ivec4</a></td></tr>
79 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">mat2x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a></td></tr>
80 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">precision::mediump_mat2x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac0430f4e1a8747774bcfbd0ea7c7df7b">mat2x2</a></td></tr>
81 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00011.html">precision::mediump_mat2x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga166bc1c922bedbb7f655bd348ff2f97b">mat2x3</a></td></tr>
82 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00012.html">precision::mediump_mat2x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0c9a783f321486534bd3a2fd3701a374">mat2x4</a></td></tr>
83 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">mat3x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6dd3ec98a548755676267e59142911f8">mat3</a></td></tr>
84 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00013.html">precision::mediump_mat3x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga839dac056fcbc087c6c161eb0d7fbe1b">mat3x2</a></td></tr>
85 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">precision::mediump_mat3x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf188822f2db83067facc9fa922416ad9">mat3x3</a></td></tr>
86 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00015.html">precision::mediump_mat3x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga70f8918f1c21ead733c8f089c09d353a">mat3x4</a></td></tr>
87 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">mat4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gade0eb47c01f79384a6f38017ede17446">mat4</a></td></tr>
88 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00016.html">precision::mediump_mat4x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2c797007acc18027b65dad6e1f2d7b77">mat4x2</a></td></tr>
89 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00017.html">precision::mediump_mat4x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga73f97cdfb274c84ac7115b8e03c6b54a">mat4x3</a></td></tr>
90 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">precision::mediump_mat4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga214f3d771188cb5b9ec6b5485ac082dc">mat4x4</a></td></tr>
91 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">precision::mediump_uvec2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga3fae7e520beaa9bca6625b98d782f47e">uvec2</a></td></tr>
92 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">precision::mediump_uvec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga48a100077cb128b9c790c71ac1d1d7d2">uvec3</a></td></tr>
93 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">precision::mediump_uvec4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gafbb266d616ea71ad5099994980f8651d">uvec4</a></td></tr>
94 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">precision::mediump_vec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac422c7058a7c9963b55ad70764c62752">vec3</a></td></tr>
95 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">precision::mediump_vec4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8fad5ffc01ba6dea689f2a38bf30bda4">vec4</a></td></tr>
96 <tr><td colspan="2"><h2><a name="enum-members"></a>
97 Enumerations</h2></td></tr>
98 <tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a> { , <a class="el" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c">T</a> = 1
99 }</td></tr>
100 <tr><td colspan="2"><h2><a name="func-members"></a>
101 Functions</h2></td></tr>
102 <tr><td class="memTemplParams" colspan="2">template&lt;template&lt; typename &gt; class vecType&gt; </td></tr>
103 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#aa83bb5852e369786314325d5a72dfe68">all</a> (vecType&lt; bool &gt; const &amp;v)</td></tr>
104 <tr><td class="memTemplParams" colspan="2">template&lt;template&lt; typename &gt; class vecType&gt; </td></tr>
105 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ad41f4d0d62de8c9a484dfc5dcd1531f0">any</a> (vecType&lt; bool &gt; const &amp;v)</td></tr>
106 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
107 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#a396a09decf9e7856783a9376604cc1d7">ceil</a> (genType const &amp;x)</td></tr>
108 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
109 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#a3f3febbf65f3a1f5695aae62f0e89694">clamp</a> (genType const &amp;x, genType const &amp;minVal, genType const &amp;maxVal)</td></tr>
110 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
111 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; T &gt;<br class="typebreak"/>
112 ::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ac07ee1974405deae4b81d16064748768">equal</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
113 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
114 <tr><td class="memTemplItemLeft" align="right" valign="top">genIType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ac0c97c144df6712b064c7a1b9c68ff49">floatBitsToInt</a> (genType const &amp;value)</td></tr>
115 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genUType &gt; </td></tr>
116 <tr><td class="memTemplItemLeft" align="right" valign="top">genUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#afdf3bec43bb2852e27175ee61a1df7c0">floatBitsToUint</a> (genType const &amp;value)</td></tr>
117 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
118 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#aa59c036229bc74f96c5c014a179eac7c">floor</a> (genType const &amp;x)</td></tr>
119 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
120 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#abfe96f2b10113d099cc3758b604fa339">fma</a> (genType const &amp;a, genType const &amp;b, genType const &amp;c)</td></tr>
121 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
122 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#a2ed2478da306c5ccc99ddae4f47e5d70">fract</a> (genType const &amp;x)</td></tr>
123 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
124 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ae38cef3c84f2cd4cac8e19ffe4be9981">frexp</a> (genType const &amp;x, genIType &amp;exp)</td></tr>
125 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
126 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; T &gt;<br class="typebreak"/>
127 ::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#acb6f64ca9f1649d4bc4dfa301f59020d">greaterThan</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
128 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
129 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; T &gt;<br class="typebreak"/>
130 ::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#a5075e99290081e0bb74ff6c18035735f">greaterThanEqual</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
131 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
132 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#a3d2881860ac44f93763bc31582e3818c">intBitsToFloat</a> (genIType const &amp;value)</td></tr>
133 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
134 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ad5d3227e612c93a7d98e2dc4d72a4efc">isinf</a> (genType const &amp;x)</td></tr>
135 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
136 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#aa8f4b13390decbfaaa0ca1c521d50c3d">isnan</a> (genType const &amp;x)</td></tr>
137 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
138 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#a6c90cad9fe6a58162ac474a4df261d06">ldexp</a> (genType const &amp;x, genIType const &amp;exp)</td></tr>
139 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
140 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#a60f960e757f8e07b105696ba1b43a3ba">max</a> (genType const &amp;x, genType const &amp;y)</td></tr>
141 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
142 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#a0fcafc1c8cd3961014e3f00d6a8a649e">min</a> (genType const &amp;x, genType const &amp;y)</td></tr>
143 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
144 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#aa0e50f7c66dbac1eb55e8ff6635f8cf1">mix</a> (genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;a)</td></tr>
145 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
146 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#a37a51d5fed454a8e32168cab48510086">mod</a> (genType const &amp;x, typename genType::value_type const &amp;y)</td></tr>
147 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
148 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#a43f85499b31f6bd4cfa7fca5f0762d53">mod</a> (genType const &amp;x, genType const &amp;y)</td></tr>
149 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
150 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ae64aea185c3a5209716fb33bac274fe3">modf</a> (genType const &amp;x, genType &amp;i)</td></tr>
151 <tr><td class="memTemplParams" colspan="2">template&lt;template&lt; typename &gt; class vecType&gt; </td></tr>
152 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ad6e2c2cb8a811dfcf0c29d515d463a66">not_</a> (vecType&lt; bool &gt; const &amp;v)</td></tr>
153 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
154 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; T &gt;<br class="typebreak"/>
155 ::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#afa73db4ea5a8e4548eb7984a7dd6b690">notEqual</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
156 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
157 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#a76670d4897bcb1cf29956d48a5eb1841">round</a> (genType const &amp;x)</td></tr>
158 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
159 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ab36c846a2b5c10ad70c45101c70893b7">roundEven</a> (genType const &amp;x)</td></tr>
160 <tr><td class="memTemplParams" colspan="2">template&lt;typename genFIType &gt; </td></tr>
161 <tr><td class="memTemplItemLeft" align="right" valign="top">genFIType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#a0b7728fc27b611270eada9f278051cb6">sign</a> (genFIType const &amp;x)</td></tr>
162 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
163 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#a15314aa4f9d5db43a35367fb7c0ae50a">smoothstep</a> (genType const &amp;edge0, genType const &amp;edge1, genType const &amp;x)</td></tr>
164 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
165 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#af2b4a76ca689c24fe70b2f9b97816502">step</a> (genType const &amp;edge, genType const &amp;x)</td></tr>
166 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
167 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#a658fa96882dd07b523c48c88bf73d59c">trunc</a> (genType const &amp;x)</td></tr>
168 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genUType &gt; </td></tr>
169 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#a74b00f232062a3de845fdf3e24312196">uintBitsToFloat</a> (genUType const &amp;value)</td></tr>
64170 </table>
65171 <hr/><a name="_details"></a><h2>Detailed Description</h2>
66 <div class="textblock"><p>Some of the functions defined in section 8 Built-in Functions of GLSL 1.30.8 specification. </p>
67 <p>Angle and trigonometry, exponential, common, geometric, matrix and vector relational functions. </p>
68 </div></div>
172 <div class="textblock"><p>GLM namespace, it contains all GLSL based features. </p>
173 </div><hr/><h2>Enumeration Type Documentation</h2>
174 <a class="anchor" id="a50b69e8e55167990c85f65e0a656e294"></a><!-- doxytag: member="glm::comp" ref="a50b69e8e55167990c85f65e0a656e294" args="" -->
175 <div class="memitem">
176 <div class="memproto">
177 <table class="memname">
178 <tr>
179 <td class="memname">enum <a class="el" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">comp</a></td>
180 </tr>
181 </table>
182 </div>
183 <div class="memdoc">
184 <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
185 <tr><td valign="top"><em><a class="anchor" id="a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c"></a><!-- doxytag: member="T" ref="a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c" args="" -->T</em>&nbsp;</td><td>
186 <p>Returns the component-wise comparison of result x &lt;= y. </p>
187 <ul>
188 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/lessThanEqual.xml">GLSL lessThanEqual man page</a> </li>
189 <li>GLSL 1.30.08 specification, section 8.6 </li>
190 </ul>
191 </td></tr>
192 </table>
193 </dd>
194 </dl>
195
196 <p>Definition at line <a class="el" href="a00025_source.html#l00015">15</a> of file <a class="el" href="a00025_source.html">_swizzle.hpp</a>.</p>
197
198 </div>
199 </div>
200 <hr/><h2>Function Documentation</h2>
201 <a class="anchor" id="aa83bb5852e369786314325d5a72dfe68"></a><!-- doxytag: member="glm::all" ref="aa83bb5852e369786314325d5a72dfe68" args="(vecType&lt; bool &gt; const &amp;v)" -->
202 <div class="memitem">
203 <div class="memproto">
204 <table class="memname">
205 <tr>
206 <td class="memname">GLM_FUNC_QUALIFIER bool glm::all </td>
207 <td>(</td>
208 <td class="paramtype">vecType&lt; bool &gt; const &amp;&#160;</td>
209 <td class="paramname"><em>v</em></td><td>)</td>
210 <td></td>
211 </tr>
212 </table>
213 </div>
214 <div class="memdoc">
215
216 <p>Returns true if all components of x are true. </p>
217 <ul>
218 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/all.xml">GLSL all man page</a> </li>
219 <li>GLSL 1.30.08 specification, section 8.6 </li>
220 </ul>
221
222 <p>Definition at line <a class="el" href="a00051_source.html#l00177">177</a> of file <a class="el" href="a00051_source.html">func_vector_relational.hpp</a>.</p>
223
224 </div>
225 </div>
226 <a class="anchor" id="ad41f4d0d62de8c9a484dfc5dcd1531f0"></a><!-- doxytag: member="glm::any" ref="ad41f4d0d62de8c9a484dfc5dcd1531f0" args="(vecType&lt; bool &gt; const &amp;v)" -->
227 <div class="memitem">
228 <div class="memproto">
229 <table class="memname">
230 <tr>
231 <td class="memname">GLM_FUNC_QUALIFIER bool glm::any </td>
232 <td>(</td>
233 <td class="paramtype">vecType&lt; bool &gt; const &amp;&#160;</td>
234 <td class="paramname"><em>v</em></td><td>)</td>
235 <td></td>
236 </tr>
237 </table>
238 </div>
239 <div class="memdoc">
240
241 <p>Returns true if any component of x is true. </p>
242 <ul>
243 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/any.xml">GLSL any man page</a> </li>
244 <li>GLSL 1.30.08 specification, section 8.6 </li>
245 </ul>
246
247 <p>Definition at line <a class="el" href="a00051_source.html#l00161">161</a> of file <a class="el" href="a00051_source.html">func_vector_relational.hpp</a>.</p>
248
249 </div>
250 </div>
251 <a class="anchor" id="a396a09decf9e7856783a9376604cc1d7"></a><!-- doxytag: member="glm::ceil" ref="a396a09decf9e7856783a9376604cc1d7" args="(genType const &amp;x)" -->
252 <div class="memitem">
253 <div class="memproto">
254 <table class="memname">
255 <tr>
256 <td class="memname">genType glm::ceil </td>
257 <td>(</td>
258 <td class="paramtype">genType const &amp;&#160;</td>
259 <td class="paramname"><em>x</em></td><td>)</td>
260 <td></td>
261 </tr>
262 </table>
263 </div>
264 <div class="memdoc">
265
266 <p>Returns a value equal to the nearest integer that is greater than or equal to x. </p>
267 <ul>
268 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/ceil.xml">GLSL ceil man page</a> </li>
269 <li>GLSL 1.30.08 specification, section 8.3 </li>
270 </ul>
271
272 </div>
273 </div>
274 <a class="anchor" id="a3f3febbf65f3a1f5695aae62f0e89694"></a><!-- doxytag: member="glm::clamp" ref="a3f3febbf65f3a1f5695aae62f0e89694" args="(genType const &amp;x, genType const &amp;minVal, genType const &amp;maxVal)" -->
275 <div class="memitem">
276 <div class="memproto">
277 <table class="memname">
278 <tr>
279 <td class="memname">genType glm::clamp </td>
280 <td>(</td>
281 <td class="paramtype">genType const &amp;&#160;</td>
282 <td class="paramname"><em>x</em>, </td>
283 </tr>
284 <tr>
285 <td class="paramkey"></td>
286 <td></td>
287 <td class="paramtype">genType const &amp;&#160;</td>
288 <td class="paramname"><em>minVal</em>, </td>
289 </tr>
290 <tr>
291 <td class="paramkey"></td>
292 <td></td>
293 <td class="paramtype">genType const &amp;&#160;</td>
294 <td class="paramname"><em>maxVal</em>&#160;</td>
295 </tr>
296 <tr>
297 <td></td>
298 <td>)</td>
299 <td></td><td></td>
300 </tr>
301 </table>
302 </div>
303 <div class="memdoc">
304
305 <p>Returns min(max(x, minVal), maxVal) for each component in x. </p>
306 <p>using the floating-point values minVal and maxVal. </p>
307 <ul>
308 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/clamp.xml">GLSL clamp man page</a> </li>
309 <li>GLSL 1.30.08 specification, section 8.3 </li>
310 </ul>
311
312 <p>Referenced by <a class="el" href="a00032_source.html#l00046">glm::gtx::compatibility::saturate()</a>.</p>
313
314 </div>
315 </div>
316 <a class="anchor" id="ac07ee1974405deae4b81d16064748768"></a><!-- doxytag: member="glm::equal" ref="ac07ee1974405deae4b81d16064748768" args="(vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)" -->
317 <div class="memitem">
318 <div class="memproto">
319 <table class="memname">
320 <tr>
321 <td class="memname">GLM_FUNC_QUALIFIER vecType&lt;T&gt;::bool_type glm::equal </td>
322 <td>(</td>
323 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
324 <td class="paramname"><em>x</em>, </td>
325 </tr>
326 <tr>
327 <td class="paramkey"></td>
328 <td></td>
329 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
330 <td class="paramname"><em>y</em>&#160;</td>
331 </tr>
332 <tr>
333 <td></td>
334 <td>)</td>
335 <td></td><td></td>
336 </tr>
337 </table>
338 </div>
339 <div class="memdoc">
340
341 <p>Returns the component-wise comparison of result x == y. </p>
342 <ul>
343 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/equal.xml">GLSL equal man page</a> </li>
344 <li>GLSL 1.30.08 specification, section 8.6 </li>
345 </ul>
346
347 <p>Definition at line <a class="el" href="a00051_source.html#l00122">122</a> of file <a class="el" href="a00051_source.html">func_vector_relational.hpp</a>.</p>
348
349 </div>
350 </div>
351 <a class="anchor" id="ac0c97c144df6712b064c7a1b9c68ff49"></a><!-- doxytag: member="glm::floatBitsToInt" ref="ac0c97c144df6712b064c7a1b9c68ff49" args="(genType const &amp;value)" -->
352 <div class="memitem">
353 <div class="memproto">
354 <table class="memname">
355 <tr>
356 <td class="memname">genIType glm::floatBitsToInt </td>
357 <td>(</td>
358 <td class="paramtype">genType const &amp;&#160;</td>
359 <td class="paramname"><em>value</em></td><td>)</td>
360 <td></td>
361 </tr>
362 </table>
363 </div>
364 <div class="memdoc">
365
366 <p>Returns a signed integer value representing the encoding of a floating-point value. </p>
367 <p>The floatingpoint value's bit-level representation is preserved. </p>
368 <ul>
369 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToInt.xml">GLSL floatBitsToInt man page</a> </li>
370 <li>GLSL 4.00.08 specification, section 8.3 </li>
371 </ul>
372
373 </div>
374 </div>
375 <a class="anchor" id="afdf3bec43bb2852e27175ee61a1df7c0"></a><!-- doxytag: member="glm::floatBitsToUint" ref="afdf3bec43bb2852e27175ee61a1df7c0" args="(genType const &amp;value)" -->
376 <div class="memitem">
377 <div class="memproto">
378 <table class="memname">
379 <tr>
380 <td class="memname">genUType glm::floatBitsToUint </td>
381 <td>(</td>
382 <td class="paramtype">genType const &amp;&#160;</td>
383 <td class="paramname"><em>value</em></td><td>)</td>
384 <td></td>
385 </tr>
386 </table>
387 </div>
388 <div class="memdoc">
389
390 <p>Returns a unsigned integer value representing the encoding of a floating-point value. </p>
391 <p>The floatingpoint value's bit-level representation is preserved. </p>
392 <ul>
393 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToUint.xml">GLSL floatBitsToUint man page</a> </li>
394 <li>GLSL 4.00.08 specification, section 8.3 </li>
395 </ul>
396
397 </div>
398 </div>
399 <a class="anchor" id="aa59c036229bc74f96c5c014a179eac7c"></a><!-- doxytag: member="glm::floor" ref="aa59c036229bc74f96c5c014a179eac7c" args="(genType const &amp;x)" -->
400 <div class="memitem">
401 <div class="memproto">
402 <table class="memname">
403 <tr>
404 <td class="memname">genType glm::floor </td>
405 <td>(</td>
406 <td class="paramtype">genType const &amp;&#160;</td>
407 <td class="paramname"><em>x</em></td><td>)</td>
408 <td></td>
409 </tr>
410 </table>
411 </div>
412 <div class="memdoc">
413
414 <p>Returns a value equal to the nearest integer that is less then or equal to x. </p>
415 <ul>
416 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floor.xml">GLSL floor man page</a> </li>
417 <li>GLSL 1.30.08 specification, section 8.3 </li>
418 </ul>
419
420 </div>
421 </div>
422 <a class="anchor" id="abfe96f2b10113d099cc3758b604fa339"></a><!-- doxytag: member="glm::fma" ref="abfe96f2b10113d099cc3758b604fa339" args="(genType const &amp;a, genType const &amp;b, genType const &amp;c)" -->
423 <div class="memitem">
424 <div class="memproto">
425 <table class="memname">
426 <tr>
427 <td class="memname">genType glm::fma </td>
428 <td>(</td>
429 <td class="paramtype">genType const &amp;&#160;</td>
430 <td class="paramname"><em>a</em>, </td>
431 </tr>
432 <tr>
433 <td class="paramkey"></td>
434 <td></td>
435 <td class="paramtype">genType const &amp;&#160;</td>
436 <td class="paramname"><em>b</em>, </td>
437 </tr>
438 <tr>
439 <td class="paramkey"></td>
440 <td></td>
441 <td class="paramtype">genType const &amp;&#160;</td>
442 <td class="paramname"><em>c</em>&#160;</td>
443 </tr>
444 <tr>
445 <td></td>
446 <td>)</td>
447 <td></td><td></td>
448 </tr>
449 </table>
450 </div>
451 <div class="memdoc">
452
453 <p>Computes and returns a * b + c. </p>
454 <ul>
455 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/fma.xml">GLSL fma man page</a> </li>
456 <li>GLSL 4.00.08 specification, section 8.3 </li>
457 </ul>
458
459 </div>
460 </div>
461 <a class="anchor" id="a2ed2478da306c5ccc99ddae4f47e5d70"></a><!-- doxytag: member="glm::fract" ref="a2ed2478da306c5ccc99ddae4f47e5d70" args="(genType const &amp;x)" -->
462 <div class="memitem">
463 <div class="memproto">
464 <table class="memname">
465 <tr>
466 <td class="memname">genType glm::fract </td>
467 <td>(</td>
468 <td class="paramtype">genType const &amp;&#160;</td>
469 <td class="paramname"><em>x</em></td><td>)</td>
470 <td></td>
471 </tr>
472 </table>
473 </div>
474 <div class="memdoc">
475
476 <p>Return x - floor(x). </p>
477 <ul>
478 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/fract.xml">GLSL fract man page</a> </li>
479 <li>GLSL 1.30.08 specification, section 8.3 </li>
480 </ul>
481
482 </div>
483 </div>
484 <a class="anchor" id="ae38cef3c84f2cd4cac8e19ffe4be9981"></a><!-- doxytag: member="glm::frexp" ref="ae38cef3c84f2cd4cac8e19ffe4be9981" args="(genType const &amp;x, genIType &amp;exp)" -->
485 <div class="memitem">
486 <div class="memproto">
487 <table class="memname">
488 <tr>
489 <td class="memname">genType glm::frexp </td>
490 <td>(</td>
491 <td class="paramtype">genType const &amp;&#160;</td>
492 <td class="paramname"><em>x</em>, </td>
493 </tr>
494 <tr>
495 <td class="paramkey"></td>
496 <td></td>
497 <td class="paramtype">genIType &amp;&#160;</td>
498 <td class="paramname"><em>exp</em>&#160;</td>
499 </tr>
500 <tr>
501 <td></td>
502 <td>)</td>
503 <td></td><td></td>
504 </tr>
505 </table>
506 </div>
507 <div class="memdoc">
508
509 <p>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) </p>
510 <p>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.</p>
511 <ul>
512 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/frexp.xml">GLSL frexp man page</a> </li>
513 <li>GLSL 4.00.08 specification, section 8.3 </li>
514 </ul>
515
516 </div>
517 </div>
518 <a class="anchor" id="acb6f64ca9f1649d4bc4dfa301f59020d"></a><!-- doxytag: member="glm::greaterThan" ref="acb6f64ca9f1649d4bc4dfa301f59020d" args="(vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)" -->
519 <div class="memitem">
520 <div class="memproto">
521 <table class="memname">
522 <tr>
523 <td class="memname">GLM_FUNC_QUALIFIER vecType&lt;T&gt;::bool_type glm::greaterThan </td>
524 <td>(</td>
525 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
526 <td class="paramname"><em>x</em>, </td>
527 </tr>
528 <tr>
529 <td class="paramkey"></td>
530 <td></td>
531 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
532 <td class="paramname"><em>y</em>&#160;</td>
533 </tr>
534 <tr>
535 <td></td>
536 <td>)</td>
537 <td></td><td></td>
538 </tr>
539 </table>
540 </div>
541 <div class="memdoc">
542
543 <p>Returns the component-wise comparison of result x &gt; y. </p>
544 <ul>
545 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/greaterThan.xml">GLSL greaterThan man page</a> </li>
546 <li>GLSL 1.30.08 specification, section 8.6 </li>
547 </ul>
548
549 <p>Definition at line <a class="el" href="a00051_source.html#l00078">78</a> of file <a class="el" href="a00051_source.html">func_vector_relational.hpp</a>.</p>
550
551 </div>
552 </div>
553 <a class="anchor" id="a5075e99290081e0bb74ff6c18035735f"></a><!-- doxytag: member="glm::greaterThanEqual" ref="a5075e99290081e0bb74ff6c18035735f" args="(vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)" -->
554 <div class="memitem">
555 <div class="memproto">
556 <table class="memname">
557 <tr>
558 <td class="memname">GLM_FUNC_QUALIFIER vecType&lt;T&gt;::bool_type glm::greaterThanEqual </td>
559 <td>(</td>
560 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
561 <td class="paramname"><em>x</em>, </td>
562 </tr>
563 <tr>
564 <td class="paramkey"></td>
565 <td></td>
566 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
567 <td class="paramname"><em>y</em>&#160;</td>
568 </tr>
569 <tr>
570 <td></td>
571 <td>)</td>
572 <td></td><td></td>
573 </tr>
574 </table>
575 </div>
576 <div class="memdoc">
577
578 <p>Returns the component-wise comparison of result x &gt;= y. </p>
579 <ul>
580 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/greaterThanEqual.xml">GLSL greaterThanEqual man page</a> </li>
581 <li>GLSL 1.30.08 specification, section 8.6 </li>
582 </ul>
583
584 <p>Definition at line <a class="el" href="a00051_source.html#l00100">100</a> of file <a class="el" href="a00051_source.html">func_vector_relational.hpp</a>.</p>
585
586 </div>
587 </div>
588 <a class="anchor" id="a3d2881860ac44f93763bc31582e3818c"></a><!-- doxytag: member="glm::intBitsToFloat" ref="a3d2881860ac44f93763bc31582e3818c" args="(genIType const &amp;value)" -->
589 <div class="memitem">
590 <div class="memproto">
591 <table class="memname">
592 <tr>
593 <td class="memname">genType glm::intBitsToFloat </td>
594 <td>(</td>
595 <td class="paramtype">genIType const &amp;&#160;</td>
596 <td class="paramname"><em>value</em></td><td>)</td>
597 <td></td>
598 </tr>
599 </table>
600 </div>
601 <div class="memdoc">
602
603 <p>Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. </p>
604 <p>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. </p>
605 <ul>
606 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/intBitsToFloat.xml">GLSL intBitsToFloat man page</a> </li>
607 <li>GLSL 4.00.08 specification, section 8.3 </li>
608 </ul>
609
610 </div>
611 </div>
612 <a class="anchor" id="ad5d3227e612c93a7d98e2dc4d72a4efc"></a><!-- doxytag: member="glm::isinf" ref="ad5d3227e612c93a7d98e2dc4d72a4efc" args="(genType const &amp;x)" -->
613 <div class="memitem">
614 <div class="memproto">
615 <table class="memname">
616 <tr>
617 <td class="memname">genType::bool_type glm::isinf </td>
618 <td>(</td>
619 <td class="paramtype">genType const &amp;&#160;</td>
620 <td class="paramname"><em>x</em></td><td>)</td>
621 <td></td>
622 </tr>
623 </table>
624 </div>
625 <div class="memdoc">
626
627 <p>Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. </p>
628 <p>Returns false otherwise, including for implementations with no infinity representations. </p>
629 <ul>
630 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isinf.xml">GLSL isinf man page</a> </li>
631 <li>GLSL 1.30.08 specification, section 8.3 </li>
632 </ul>
633
634 </div>
635 </div>
636 <a class="anchor" id="aa8f4b13390decbfaaa0ca1c521d50c3d"></a><!-- doxytag: member="glm::isnan" ref="aa8f4b13390decbfaaa0ca1c521d50c3d" args="(genType const &amp;x)" -->
637 <div class="memitem">
638 <div class="memproto">
639 <table class="memname">
640 <tr>
641 <td class="memname">genType::bool_type glm::isnan </td>
642 <td>(</td>
643 <td class="paramtype">genType const &amp;&#160;</td>
644 <td class="paramname"><em>x</em></td><td>)</td>
645 <td></td>
646 </tr>
647 </table>
648 </div>
649 <div class="memdoc">
650
651 <p>Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. </p>
652 <p>Returns false otherwise, including for implementations with no NaN representations. </p>
653 <ul>
654 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isnan.xml">GLSL isnan man page</a> </li>
655 <li>GLSL 1.30.08 specification, section 8.3 </li>
656 </ul>
657
658 </div>
659 </div>
660 <a class="anchor" id="a6c90cad9fe6a58162ac474a4df261d06"></a><!-- doxytag: member="glm::ldexp" ref="a6c90cad9fe6a58162ac474a4df261d06" args="(genType const &amp;x, genIType const &amp;exp)" -->
661 <div class="memitem">
662 <div class="memproto">
663 <table class="memname">
664 <tr>
665 <td class="memname">genType glm::ldexp </td>
666 <td>(</td>
667 <td class="paramtype">genType const &amp;&#160;</td>
668 <td class="paramname"><em>x</em>, </td>
669 </tr>
670 <tr>
671 <td class="paramkey"></td>
672 <td></td>
673 <td class="paramtype">genIType const &amp;&#160;</td>
674 <td class="paramname"><em>exp</em>&#160;</td>
675 </tr>
676 <tr>
677 <td></td>
678 <td>)</td>
679 <td></td><td></td>
680 </tr>
681 </table>
682 </div>
683 <div class="memdoc">
684
685 <p>Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent) </p>
686 <p>If this product is too large to be represented in the floating-point type, the result is undefined.</p>
687 <ul>
688 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/ldexp.xml">GLSL ldexp man page</a>; </li>
689 <li>GLSL 4.00.08 specification, section 8.3 </li>
690 </ul>
691
692 </div>
693 </div>
694 <a class="anchor" id="a60f960e757f8e07b105696ba1b43a3ba"></a><!-- doxytag: member="glm::max" ref="a60f960e757f8e07b105696ba1b43a3ba" args="(genType const &amp;x, genType const &amp;y)" -->
695 <div class="memitem">
696 <div class="memproto">
697 <table class="memname">
698 <tr>
699 <td class="memname">genType glm::max </td>
700 <td>(</td>
701 <td class="paramtype">genType const &amp;&#160;</td>
702 <td class="paramname"><em>x</em>, </td>
703 </tr>
704 <tr>
705 <td class="paramkey"></td>
706 <td></td>
707 <td class="paramtype">genType const &amp;&#160;</td>
708 <td class="paramname"><em>y</em>&#160;</td>
709 </tr>
710 <tr>
711 <td></td>
712 <td>)</td>
713 <td></td><td></td>
714 </tr>
715 </table>
716 </div>
717 <div class="memdoc">
718
719 <p>Returns y if x &lt; y; otherwise, it returns x. </p>
720 <ul>
721 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/max.xml">GLSL max man page</a> </li>
722 <li>GLSL 1.30.08 specification, section 8.3 </li>
723 </ul>
724
725 </div>
726 </div>
727 <a class="anchor" id="a0fcafc1c8cd3961014e3f00d6a8a649e"></a><!-- doxytag: member="glm::min" ref="a0fcafc1c8cd3961014e3f00d6a8a649e" args="(genType const &amp;x, genType const &amp;y)" -->
728 <div class="memitem">
729 <div class="memproto">
730 <table class="memname">
731 <tr>
732 <td class="memname">genType glm::min </td>
733 <td>(</td>
734 <td class="paramtype">genType const &amp;&#160;</td>
735 <td class="paramname"><em>x</em>, </td>
736 </tr>
737 <tr>
738 <td class="paramkey"></td>
739 <td></td>
740 <td class="paramtype">genType const &amp;&#160;</td>
741 <td class="paramname"><em>y</em>&#160;</td>
742 </tr>
743 <tr>
744 <td></td>
745 <td>)</td>
746 <td></td><td></td>
747 </tr>
748 </table>
749 </div>
750 <div class="memdoc">
751
752 <p>Returns y if y &lt; x; otherwise, it returns x. </p>
753 <ul>
754 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/min.xml">GLSL min man page</a> </li>
755 <li>GLSL 1.30.08 specification, section 8.3 </li>
756 </ul>
757
758 </div>
759 </div>
760 <a class="anchor" id="aa0e50f7c66dbac1eb55e8ff6635f8cf1"></a><!-- doxytag: member="glm::mix" ref="aa0e50f7c66dbac1eb55e8ff6635f8cf1" args="(genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;a)" -->
761 <div class="memitem">
762 <div class="memproto">
763 <table class="memname">
764 <tr>
765 <td class="memname">genTypeT glm::mix </td>
766 <td>(</td>
767 <td class="paramtype">genTypeT const &amp;&#160;</td>
768 <td class="paramname"><em>x</em>, </td>
769 </tr>
770 <tr>
771 <td class="paramkey"></td>
772 <td></td>
773 <td class="paramtype">genTypeT const &amp;&#160;</td>
774 <td class="paramname"><em>y</em>, </td>
775 </tr>
776 <tr>
777 <td class="paramkey"></td>
778 <td></td>
779 <td class="paramtype">genTypeU const &amp;&#160;</td>
780 <td class="paramname"><em>a</em>&#160;</td>
781 </tr>
782 <tr>
783 <td></td>
784 <td>)</td>
785 <td></td><td></td>
786 </tr>
787 </table>
788 </div>
789 <div class="memdoc">
790 <dl class="return"><dt><b>Returns:</b></dt><dd>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].</dd>
791 <dd>
792 If genTypeU is a boolean scalar or vector: Selects which vector each returned component comes from. For a component of a 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. <ul>
793 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mix.xml">GLSL mix man page</a> </li>
794 <li>GLSL 1.30.08 specification, section 8.3 </li>
795 </ul>
796 </dd></dl>
797 <dl><dt><b>Parameters:</b></dt><dd>
798 <table class="params">
799 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Floating point scalar or vector. </td></tr>
800 <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Floating point scalar or vector. </td></tr>
801 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Floating point or boolean scalar or vector. </td></tr>
802 </table>
803 </dd>
804 </dl>
805
806 <p>Referenced by <a class="el" href="a00032_source.html#l00038">glm::gtx::compatibility::lerp()</a>.</p>
807
808 </div>
809 </div>
810 <a class="anchor" id="a37a51d5fed454a8e32168cab48510086"></a><!-- doxytag: member="glm::mod" ref="a37a51d5fed454a8e32168cab48510086" args="(genType const &amp;x, typename genType::value_type const &amp;y)" -->
811 <div class="memitem">
812 <div class="memproto">
813 <table class="memname">
814 <tr>
815 <td class="memname">genType glm::mod </td>
816 <td>(</td>
817 <td class="paramtype">genType const &amp;&#160;</td>
818 <td class="paramname"><em>x</em>, </td>
819 </tr>
820 <tr>
821 <td class="paramkey"></td>
822 <td></td>
823 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
824 <td class="paramname"><em>y</em>&#160;</td>
825 </tr>
826 <tr>
827 <td></td>
828 <td>)</td>
829 <td></td><td></td>
830 </tr>
831 </table>
832 </div>
833 <div class="memdoc">
834
835 <p>Modulus. </p>
836 <p>Returns x - y * floor(x / y) for each component in x using the floating point value y. </p>
837 <ul>
838 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </li>
839 <li>GLSL 1.30.08 specification, section 8.3 </li>
840 </ul>
841
842 </div>
843 </div>
844 <a class="anchor" id="a43f85499b31f6bd4cfa7fca5f0762d53"></a><!-- doxytag: member="glm::mod" ref="a43f85499b31f6bd4cfa7fca5f0762d53" args="(genType const &amp;x, genType const &amp;y)" -->
845 <div class="memitem">
846 <div class="memproto">
847 <table class="memname">
848 <tr>
849 <td class="memname">genType glm::mod </td>
850 <td>(</td>
851 <td class="paramtype">genType const &amp;&#160;</td>
852 <td class="paramname"><em>x</em>, </td>
853 </tr>
854 <tr>
855 <td class="paramkey"></td>
856 <td></td>
857 <td class="paramtype">genType const &amp;&#160;</td>
858 <td class="paramname"><em>y</em>&#160;</td>
859 </tr>
860 <tr>
861 <td></td>
862 <td>)</td>
863 <td></td><td></td>
864 </tr>
865 </table>
866 </div>
867 <div class="memdoc">
868
869 <p>Modulus. </p>
870 <p>Returns x - y * floor(x / y) for each component in x using the floating point value y. </p>
871 <ul>
872 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </li>
873 <li>GLSL 1.30.08 specification, section 8.3 </li>
874 </ul>
875
876 </div>
877 </div>
878 <a class="anchor" id="ae64aea185c3a5209716fb33bac274fe3"></a><!-- doxytag: member="glm::modf" ref="ae64aea185c3a5209716fb33bac274fe3" args="(genType const &amp;x, genType &amp;i)" -->
879 <div class="memitem">
880 <div class="memproto">
881 <table class="memname">
882 <tr>
883 <td class="memname">genType glm::modf </td>
884 <td>(</td>
885 <td class="paramtype">genType const &amp;&#160;</td>
886 <td class="paramname"><em>x</em>, </td>
887 </tr>
888 <tr>
889 <td class="paramkey"></td>
890 <td></td>
891 <td class="paramtype">genType &amp;&#160;</td>
892 <td class="paramname"><em>i</em>&#160;</td>
893 </tr>
894 <tr>
895 <td></td>
896 <td>)</td>
897 <td></td><td></td>
898 </tr>
899 </table>
900 </div>
901 <div class="memdoc">
902
903 <p>Returns the fractional part of x and sets i to the integer part (as a whole number floating point value). </p>
904 <p>Both the return value and the output parameter will have the same sign as x. </p>
905 <ul>
906 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/modf.xml">GLSL modf man page</a> </li>
907 <li>GLSL 1.30.08 specification, section 8.3 </li>
908 </ul>
909
910 </div>
911 </div>
912 <a class="anchor" id="ad6e2c2cb8a811dfcf0c29d515d463a66"></a><!-- doxytag: member="glm::not_" ref="ad6e2c2cb8a811dfcf0c29d515d463a66" args="(vecType&lt; bool &gt; const &amp;v)" -->
913 <div class="memitem">
914 <div class="memproto">
915 <table class="memname">
916 <tr>
917 <td class="memname">GLM_FUNC_QUALIFIER vecType&lt;bool&gt; glm::not_ </td>
918 <td>(</td>
919 <td class="paramtype">vecType&lt; bool &gt; const &amp;&#160;</td>
920 <td class="paramname"><em>v</em></td><td>)</td>
921 <td></td>
922 </tr>
923 </table>
924 </div>
925 <div class="memdoc">
926
927 <p>Returns the component-wise logical complement of x. </p>
928 <p>/!\ Because of language incompatibilities between C++ and GLSL, GLM defines the function not but not_ instead.</p>
929 <ul>
930 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/not.xml">GLSL not man page</a> </li>
931 <li>GLSL 1.30.08 specification, section 8.6 </li>
932 </ul>
933
934 <p>Definition at line <a class="el" href="a00051_source.html#l00194">194</a> of file <a class="el" href="a00051_source.html">func_vector_relational.hpp</a>.</p>
935
936 </div>
937 </div>
938 <a class="anchor" id="afa73db4ea5a8e4548eb7984a7dd6b690"></a><!-- doxytag: member="glm::notEqual" ref="afa73db4ea5a8e4548eb7984a7dd6b690" args="(vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)" -->
939 <div class="memitem">
940 <div class="memproto">
941 <table class="memname">
942 <tr>
943 <td class="memname">GLM_FUNC_QUALIFIER vecType&lt;T&gt;::bool_type glm::notEqual </td>
944 <td>(</td>
945 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
946 <td class="paramname"><em>x</em>, </td>
947 </tr>
948 <tr>
949 <td class="paramkey"></td>
950 <td></td>
951 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
952 <td class="paramname"><em>y</em>&#160;</td>
953 </tr>
954 <tr>
955 <td></td>
956 <td>)</td>
957 <td></td><td></td>
958 </tr>
959 </table>
960 </div>
961 <div class="memdoc">
962
963 <p>Returns the component-wise comparison of result x != y. </p>
964 <ul>
965 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/notEqual.xml">GLSL notEqual man page</a> </li>
966 <li>GLSL 1.30.08 specification, section 8.6 </li>
967 </ul>
968
969 <p>Definition at line <a class="el" href="a00051_source.html#l00142">142</a> of file <a class="el" href="a00051_source.html">func_vector_relational.hpp</a>.</p>
970
971 </div>
972 </div>
973 <a class="anchor" id="a76670d4897bcb1cf29956d48a5eb1841"></a><!-- doxytag: member="glm::round" ref="a76670d4897bcb1cf29956d48a5eb1841" args="(genType const &amp;x)" -->
974 <div class="memitem">
975 <div class="memproto">
976 <table class="memname">
977 <tr>
978 <td class="memname">genType glm::round </td>
979 <td>(</td>
980 <td class="paramtype">genType const &amp;&#160;</td>
981 <td class="paramname"><em>x</em></td><td>)</td>
982 <td></td>
983 </tr>
984 </table>
985 </div>
986 <div class="memdoc">
987
988 <p>Returns a value equal to the nearest integer to x. </p>
989 <p>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. </p>
990 <ul>
991 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/round.xml">GLSL round man page</a> </li>
992 <li>GLSL 1.30.08 specification, section 8.3 </li>
993 </ul>
994
995 </div>
996 </div>
997 <a class="anchor" id="ab36c846a2b5c10ad70c45101c70893b7"></a><!-- doxytag: member="glm::roundEven" ref="ab36c846a2b5c10ad70c45101c70893b7" args="(genType const &amp;x)" -->
998 <div class="memitem">
999 <div class="memproto">
1000 <table class="memname">
1001 <tr>
1002 <td class="memname">genType glm::roundEven </td>
1003 <td>(</td>
1004 <td class="paramtype">genType const &amp;&#160;</td>
1005 <td class="paramname"><em>x</em></td><td>)</td>
1006 <td></td>
1007 </tr>
1008 </table>
1009 </div>
1010 <div class="memdoc">
1011
1012 <p>Returns a value equal to the nearest integer to x. </p>
1013 <p>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.) </p>
1014 <ul>
1015 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/roundEven.xml">GLSL roundEven man page</a> </li>
1016 <li>GLSL 1.30.08 specification, section 8.3 </li>
1017 </ul>
1018
1019 </div>
1020 </div>
1021 <a class="anchor" id="a0b7728fc27b611270eada9f278051cb6"></a><!-- doxytag: member="glm::sign" ref="a0b7728fc27b611270eada9f278051cb6" args="(genFIType const &amp;x)" -->
1022 <div class="memitem">
1023 <div class="memproto">
1024 <table class="memname">
1025 <tr>
1026 <td class="memname">genFIType glm::sign </td>
1027 <td>(</td>
1028 <td class="paramtype">genFIType const &amp;&#160;</td>
1029 <td class="paramname"><em>x</em></td><td>)</td>
1030 <td></td>
1031 </tr>
1032 </table>
1033 </div>
1034 <div class="memdoc">
1035
1036 <p>Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0. </p>
1037 <ul>
1038 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sign.xml">GLSL sign man page</a> </li>
1039 <li>GLSL 1.30.08 specification, section 8.3 </li>
1040 </ul>
1041
1042 </div>
1043 </div>
1044 <a class="anchor" id="a15314aa4f9d5db43a35367fb7c0ae50a"></a><!-- doxytag: member="glm::smoothstep" ref="a15314aa4f9d5db43a35367fb7c0ae50a" args="(genType const &amp;edge0, genType const &amp;edge1, genType const &amp;x)" -->
1045 <div class="memitem">
1046 <div class="memproto">
1047 <table class="memname">
1048 <tr>
1049 <td class="memname">genType glm::smoothstep </td>
1050 <td>(</td>
1051 <td class="paramtype">genType const &amp;&#160;</td>
1052 <td class="paramname"><em>edge0</em>, </td>
1053 </tr>
1054 <tr>
1055 <td class="paramkey"></td>
1056 <td></td>
1057 <td class="paramtype">genType const &amp;&#160;</td>
1058 <td class="paramname"><em>edge1</em>, </td>
1059 </tr>
1060 <tr>
1061 <td class="paramkey"></td>
1062 <td></td>
1063 <td class="paramtype">genType const &amp;&#160;</td>
1064 <td class="paramname"><em>x</em>&#160;</td>
1065 </tr>
1066 <tr>
1067 <td></td>
1068 <td>)</td>
1069 <td></td><td></td>
1070 </tr>
1071 </table>
1072 </div>
1073 <div class="memdoc">
1074
1075 <p>Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 &lt; x &lt; edge1. </p>
1076 <p>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 &gt;= edge1. </p>
1077 <ul>
1078 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/smoothstep.xml">GLSL smoothstep man page</a> </li>
1079 <li>GLSL 1.30.08 specification, section 8.3 </li>
1080 </ul>
1081
1082 </div>
1083 </div>
1084 <a class="anchor" id="af2b4a76ca689c24fe70b2f9b97816502"></a><!-- doxytag: member="glm::step" ref="af2b4a76ca689c24fe70b2f9b97816502" args="(genType const &amp;edge, genType const &amp;x)" -->
1085 <div class="memitem">
1086 <div class="memproto">
1087 <table class="memname">
1088 <tr>
1089 <td class="memname">genType glm::step </td>
1090 <td>(</td>
1091 <td class="paramtype">genType const &amp;&#160;</td>
1092 <td class="paramname"><em>edge</em>, </td>
1093 </tr>
1094 <tr>
1095 <td class="paramkey"></td>
1096 <td></td>
1097 <td class="paramtype">genType const &amp;&#160;</td>
1098 <td class="paramname"><em>x</em>&#160;</td>
1099 </tr>
1100 <tr>
1101 <td></td>
1102 <td>)</td>
1103 <td></td><td></td>
1104 </tr>
1105 </table>
1106 </div>
1107 <div class="memdoc">
1108
1109 <p>Returns 0.0 if x &lt; edge, otherwise it returns 1.0. </p>
1110 <ul>
1111 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/step.xml">GLSL step man page</a> </li>
1112 <li>GLSL 1.30.08 specification, section 8.3 </li>
1113 </ul>
1114
1115 </div>
1116 </div>
1117 <a class="anchor" id="a658fa96882dd07b523c48c88bf73d59c"></a><!-- doxytag: member="glm::trunc" ref="a658fa96882dd07b523c48c88bf73d59c" args="(genType const &amp;x)" -->
1118 <div class="memitem">
1119 <div class="memproto">
1120 <table class="memname">
1121 <tr>
1122 <td class="memname">genType glm::trunc </td>
1123 <td>(</td>
1124 <td class="paramtype">genType const &amp;&#160;</td>
1125 <td class="paramname"><em>x</em></td><td>)</td>
1126 <td></td>
1127 </tr>
1128 </table>
1129 </div>
1130 <div class="memdoc">
1131
1132 <p>Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x. </p>
1133 <ul>
1134 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/trunc.xml">GLSL trunc man page</a> </li>
1135 <li>GLSL 1.30.08 specification, section 8.3 </li>
1136 </ul>
1137
1138 </div>
1139 </div>
1140 <a class="anchor" id="a74b00f232062a3de845fdf3e24312196"></a><!-- doxytag: member="glm::uintBitsToFloat" ref="a74b00f232062a3de845fdf3e24312196" args="(genUType const &amp;value)" -->
1141 <div class="memitem">
1142 <div class="memproto">
1143 <table class="memname">
1144 <tr>
1145 <td class="memname">genType glm::uintBitsToFloat </td>
1146 <td>(</td>
1147 <td class="paramtype">genUType const &amp;&#160;</td>
1148 <td class="paramname"><em>value</em></td><td>)</td>
1149 <td></td>
1150 </tr>
1151 </table>
1152 </div>
1153 <div class="memdoc">
1154
1155 <p>Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. </p>
1156 <p>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.</p>
1157 <ul>
1158 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/uintBitsToFloat.xml">GLSL uintBitsToFloat man page</a> </li>
1159 <li>GLSL 4.00.08 specification, section 8.3 </li>
1160 </ul>
1161
1162 </div>
1163 </div>
1164 </div>
691165 <hr class="footer"/><address class="footer"><small>Generated by&#160;
701166 <a href="http://www.doxygen.org/index.html">
711167 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>glm::core::function::common Namespace Reference</title>
4 <title>glm::core Namespace Reference</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00144.html">core</a> </li>
39 <li class="navelem"><a class="el" href="a00145.html">function</a> </li>
40 <li class="navelem"><a class="el" href="a00146.html">common</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00146.html">core</a> </li>
4139 </ul>
4240 </div>
4341 </div>
4442 <div class="header">
4543 <div class="summary">
46 <a href="#func-members">Functions</a> </div>
44 <a href="#namespaces">Namespaces</a> </div>
4745 <div class="headertitle">
48 <h1>glm::core::function::common Namespace Reference</h1> </div>
46 <h1>glm::core Namespace Reference</h1> </div>
4947 </div>
5048 <div class="contents">
5149
52 <p>Define common functions from Section 8.3 of GLSL 1.30.8 specification. Included in glm namespace.
50 <p>GLM core. Namespace that includes all the feature define by GLSL 4.10.6 specification. This namespace is included in glm namespace.
5351 <a href="#_details">More...</a></p>
5452 <table class="memberdecls">
55 <tr><td colspan="2"><h2><a name="func-members"></a>
56 Functions</h2></td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename genFIType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">genFIType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga5206aa60ce61ad1d7d1b53d5028c7a2a">abs</a> (genFIType const &amp;x)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga828376ee58b02d80d91eee97c50323f8">ceil</a> (genType const &amp;x)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga8d9331a9bd3aa06e1d10eb7fa0dbb9e5">clamp</a> (genType const &amp;x, genType const &amp;minVal, genType const &amp;maxVal)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">genIType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga2508259e7d3093603f4c6d3c132a704c">floatBitsToInt</a> (genType const &amp;value)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genUType &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">genUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga17f59f3a2dd5b93e32ff1057be188681">floatBitsToUint</a> (genType const &amp;value)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga4206a98e812c2bd4801e4d299c83f6c7">floor</a> (genType const &amp;x)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gad0278428ad872e7be378c3b2ad66b0ba">fma</a> (genType const &amp;a, genType const &amp;b, genType const &amp;c)</td></tr>
71 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga67dda5fd839bc489827be9e225847a45">fract</a> (genType const &amp;x)</td></tr>
73 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
74 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga51135c18fa3b70b67478e546258caa64">frexp</a> (genType const &amp;x, genIType &amp;exp)</td></tr>
75 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
76 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga3b76eab7091983e936c894b1976e90be">intBitsToFloat</a> (genIType const &amp;value)</td></tr>
77 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
78 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga7194c89cf656614f231e11c46d906465">isinf</a> (genType const &amp;x)</td></tr>
79 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
80 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga873db92807cc955cf98030c94a342d5a">isnan</a> (genType const &amp;x)</td></tr>
81 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
82 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaa99c16ada9e61cca03a8a00938a3c330">ldexp</a> (genType const &amp;x, genIType const &amp;exp)</td></tr>
83 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
84 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga33a594380eeb7ac803c747298563d084">max</a> (genType const &amp;x, genType const &amp;y)</td></tr>
85 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
86 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gacbc721d96bff24d97ed7989d35f27067">min</a> (genType const &amp;x, genType const &amp;y)</td></tr>
87 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
88 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga11288dc43a2a1833766728a3eb81ac63">mix</a> (genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;a)</td></tr>
89 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
90 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga73fa91f6041b135083b0dea6e88c7aba">mod</a> (genType const &amp;x, genType const &amp;y)</td></tr>
91 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
92 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gacf6e2a9cb28a36f92338e82f3bf5755e">mod</a> (genType const &amp;x, typename genType::value_type const &amp;y)</td></tr>
93 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
94 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga3f3cec79cc1542950cd4cddb7ab67584">modf</a> (genType const &amp;x, genType &amp;i)</td></tr>
95 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
96 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaa4cb0836cd9457ac6cedd3366333b16f">round</a> (genType const &amp;x)</td></tr>
97 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
98 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga656ce625ba1dc1d137bfc7cc7b2ab50b">roundEven</a> (genType const &amp;x)</td></tr>
99 <tr><td class="memTemplParams" colspan="2">template&lt;typename genFIType &gt; </td></tr>
100 <tr><td class="memTemplItemLeft" align="right" valign="top">genFIType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga992a45e46af5dc123e688808d1bae48f">sign</a> (genFIType const &amp;x)</td></tr>
101 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
102 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaec459c912160fa6d9c18acd52976bb4d">smoothstep</a> (genType const &amp;edge0, genType const &amp;edge1, genType const &amp;x)</td></tr>
103 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
104 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaf1c0aac0585f62db8db44e407478c434">step</a> (genType const &amp;edge, genType const &amp;x)</td></tr>
105 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
106 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga2303d814e83b34ee2d5f34fcff7fa275">trunc</a> (genType const &amp;x)</td></tr>
107 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genUType &gt; </td></tr>
108 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga1a38039b00f182b6b22e909ea5a87bab">uintBitsToFloat</a> (genUType const &amp;value)</td></tr>
53 <tr><td colspan="2"><h2><a name="namespaces"></a>
54 Namespaces</h2></td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html">function</a></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00155.html">type</a></td></tr>
10957 </table>
11058 <hr/><a name="_details"></a><h2>Detailed Description</h2>
111 <div class="textblock"><p>Define common functions from Section 8.3 of GLSL 1.30.8 specification. Included in glm namespace. </p>
59 <div class="textblock"><p>GLM core. Namespace that includes all the feature define by GLSL 4.10.6 specification. This namespace is included in glm namespace. </p>
11260 </div></div>
11361 <hr class="footer"/><address class="footer"><small>Generated by&#160;
11462 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>glm::core::function::exponential Namespace Reference</title>
4 <title>glm::core::function Namespace Reference</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00144.html">core</a> </li>
39 <li class="navelem"><a class="el" href="a00145.html">function</a> </li>
40 <li class="navelem"><a class="el" href="a00147.html">exponential</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00146.html">core</a> </li>
39 <li class="navelem"><a class="el" href="a00147.html">function</a> </li>
4140 </ul>
4241 </div>
4342 </div>
4443 <div class="header">
4544 <div class="summary">
46 <a href="#func-members">Functions</a> </div>
45 <a href="#namespaces">Namespaces</a> </div>
4746 <div class="headertitle">
48 <h1>glm::core::function::exponential Namespace Reference</h1> </div>
47 <h1>glm::core::function Namespace Reference</h1> </div>
4948 </div>
5049 <div class="contents">
5150
52 <p>Define all exponential functions from Section 8.2 of GLSL 1.30.8 specification. Included in glm namespace.
51 <p>Some of the functions defined in section 8 Built-in Functions of GLSL 1.30.8 specification.
5352 <a href="#_details">More...</a></p>
5453 <table class="memberdecls">
55 <tr><td colspan="2"><h2><a name="func-members"></a>
56 Functions</h2></td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gac96b81360552e233031fd06390576ebf">exp</a> (genType const &amp;x)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga79adbdfa6f2e6ce59816c9b0bd1aebe3">exp2</a> (genType const &amp;x)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gadce520af7df2c97aea9f689ad620fabe">inversesqrt</a> (genType const &amp;x)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga50b7859bfe87c2f075fe7a04e4c68cc3">log</a> (genType const &amp;x)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga956c24e59912196d4b3714789e57c077">log2</a> (genType const &amp;x)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga8eb76dfbf0fed3397c0327915279f06f">pow</a> (genType const &amp;x, genType const &amp;y)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga29d9d4ccbca8f2168ac6534fbb65cbad">sqrt</a> (genType const &amp;x)</td></tr>
54 <tr><td colspan="2"><h2><a name="namespaces"></a>
55 Namespaces</h2></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html">exponential</a></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html">integer</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html">matrix</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html">packing</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00154.html">trigonometric</a></td></tr>
7161 </table>
7262 <hr/><a name="_details"></a><h2>Detailed Description</h2>
73 <div class="textblock"><p>Define all exponential functions from Section 8.2 of GLSL 1.30.8 specification. Included in glm namespace. </p>
63 <div class="textblock"><p>Some of the functions defined in section 8 Built-in Functions of GLSL 1.30.8 specification. </p>
64 <p>Angle and trigonometry, exponential, common, geometric, matrix and vector relational functions. </p>
7465 </div></div>
7566 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7667 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>glm::core::function::geometric Namespace Reference</title>
4 <title>glm::core::function::exponential Namespace Reference</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00144.html">core</a> </li>
39 <li class="navelem"><a class="el" href="a00145.html">function</a> </li>
40 <li class="navelem"><a class="el" href="a00148.html">geometric</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00146.html">core</a> </li>
39 <li class="navelem"><a class="el" href="a00147.html">function</a> </li>
40 <li class="navelem"><a class="el" href="a00148.html">exponential</a> </li>
4141 </ul>
4242 </div>
4343 </div>
4545 <div class="summary">
4646 <a href="#func-members">Functions</a> </div>
4747 <div class="headertitle">
48 <h1>glm::core::function::geometric Namespace Reference</h1> </div>
48 <h1>glm::core::function::exponential Namespace Reference</h1> </div>
4949 </div>
5050 <div class="contents">
5151
52 <p>Define all geometric functions from Section 8.4 of GLSL 1.30.8 specification. Included in glm namespace.
52 <p>Define all exponential functions from Section 8.2 of GLSL 1.30.8 specification. Included in glm namespace.
5353 <a href="#_details">More...</a></p>
5454 <table class="memberdecls">
5555 <tr><td colspan="2"><h2><a name="func-members"></a>
5656 Functions</h2></td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga63272179a066d755953bcfbe38666257">cross</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;x, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;y)</td></tr>
5957 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaa7cb6dbe9b8224c25345f1fd6fc09e77">distance</a> (genType const &amp;p0, genType const &amp;p1)</td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gac96b81360552e233031fd06390576ebf">exp</a> (genType const &amp;x)</td></tr>
6159 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga38e1f1538ac0fedc9d6ac14910105421">dot</a> (genType const &amp;x, genType const &amp;y)</td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga79adbdfa6f2e6ce59816c9b0bd1aebe3">exp2</a> (genType const &amp;x)</td></tr>
6361 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gad591e8f7b1a5e311d3439dda2bb82aea">faceforward</a> (genType const &amp;N, genType const &amp;I, genType const &amp;Nref)</td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gadce520af7df2c97aea9f689ad620fabe">inversesqrt</a> (genType const &amp;x)</td></tr>
6563 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga10ee9a1d18c6da61cab61d8637d23847">length</a> (genType const &amp;x)</td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga50b7859bfe87c2f075fe7a04e4c68cc3">log</a> (genType const &amp;x)</td></tr>
6765 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga07ff16965f11fa17122ac874ed492276">normalize</a> (genType const &amp;x)</td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga956c24e59912196d4b3714789e57c077">log2</a> (genType const &amp;x)</td></tr>
6967 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga2863d2331eb3752a5a17244c604c1d07">reflect</a> (genType const &amp;I, genType const &amp;N)</td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga8eb76dfbf0fed3397c0327915279f06f">pow</a> (genType const &amp;x, genType const &amp;y)</td></tr>
7169 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga895392ad98499a450e2cc8579d76a84d">refract</a> (genType const &amp;I, genType const &amp;N, typename genType::value_type const &amp;eta)</td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga29d9d4ccbca8f2168ac6534fbb65cbad">sqrt</a> (genType const &amp;x)</td></tr>
7371 </table>
7472 <hr/><a name="_details"></a><h2>Detailed Description</h2>
75 <div class="textblock"><p>Define all geometric functions from Section 8.4 of GLSL 1.30.8 specification. Included in glm namespace. </p>
73 <div class="textblock"><p>Define all exponential functions from Section 8.2 of GLSL 1.30.8 specification. Included in glm namespace. </p>
7674 </div></div>
7775 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7876 <a href="http://www.doxygen.org/index.html">
+0
-86
doc/html/a00149.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>glm::core::function::integer Namespace Reference</title>
5 <link href="tabs.css" rel="stylesheet" type="text/css"/>
6 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
7 </head>
8 <body>
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td id="projectlogo"><img alt="Logo" src="logo-mini.png"></td>
16 </tr>
17 </tbody>
18 </table>
19 </div>
20 <div id="navrow1" class="tabs">
21 <ul class="tablist">
22 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
23 <li><a href="modules.html"><span>Modules</span></a></li>
24 <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
25 <li><a href="annotated.html"><span>Classes</span></a></li>
26 <li><a href="files.html"><span>Files</span></a></li>
27 </ul>
28 </div>
29 <div id="navrow2" class="tabs2">
30 <ul class="tablist">
31 <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
32 <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
33 </ul>
34 </div>
35 <div id="nav-path" class="navpath">
36 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00144.html">core</a> </li>
39 <li class="navelem"><a class="el" href="a00145.html">function</a> </li>
40 <li class="navelem"><a class="el" href="a00149.html">integer</a> </li>
41 </ul>
42 </div>
43 </div>
44 <div class="header">
45 <div class="summary">
46 <a href="#func-members">Functions</a> </div>
47 <div class="headertitle">
48 <h1>glm::core::function::integer Namespace Reference</h1> </div>
49 </div>
50 <div class="contents">
51
52 <p>Define integer functions from Section 8.8 of GLSL 4.00.8 specification.
53 <a href="#_details">More...</a></p>
54 <table class="memberdecls">
55 <tr><td colspan="2"><h2><a name="func-members"></a>
56 Functions</h2></td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga29cfb04fafbaa1939955f11fef28ff38">bitCount</a> (C&lt; T &gt; const &amp;Value)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga3b4804e700ade895189ea8bde142c822">bitfieldExtract</a> (genIUType const &amp;Value, int const &amp;Offset, int const &amp;Bits)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga90d0bc8e79f637da58b8fad2fc8f3275">bitfieldInsert</a> (genIUType const &amp;Base, genIUType const &amp;Insert, int const &amp;Offset, int const &amp;Bits)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga68bdb2c3debc414d5567935b4cbca62f">bitfieldReverse</a> (genIUType const &amp;value)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga9890456d065156a3c3c9786b14638486">findLSB</a> (C&lt; T &gt; const &amp;Value)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga0f50b6fe121f170c3725a8abb53ff077">findMSB</a> (C&lt; T &gt; const &amp;Value)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIType &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gac01a66145ce9472afb6a3bee837c0bd6">imulExtended</a> (genIType const &amp;x, genIType const &amp;y, genIType &amp;msb, genIType &amp;lsb)</td></tr>
71 <tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">genUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga8d63fd56743cc93286f09742baed4002">uaddCarry</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;carry)</td></tr>
73 <tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
74 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gad9b60d1c7e161b78682b7f8b071e213e">umulExtended</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;msb, genUType &amp;lsb)</td></tr>
75 <tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
76 <tr><td class="memTemplItemLeft" align="right" valign="top">genUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga5ea2ea51e7cf73056069ce7583d61560">usubBorrow</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;borrow)</td></tr>
77 </table>
78 <hr/><a name="_details"></a><h2>Detailed Description</h2>
79 <div class="textblock"><p>Define integer functions from Section 8.8 of GLSL 4.00.8 specification. </p>
80 </div></div>
81 <hr class="footer"/><address class="footer"><small>Generated by&#160;
82 <a href="http://www.doxygen.org/index.html">
83 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
84 </body>
85 </html>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>glm::core::function::matrix Namespace Reference</title>
4 <title>glm::core::function::integer Namespace Reference</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00144.html">core</a> </li>
39 <li class="navelem"><a class="el" href="a00145.html">function</a> </li>
40 <li class="navelem"><a class="el" href="a00150.html">matrix</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00146.html">core</a> </li>
39 <li class="navelem"><a class="el" href="a00147.html">function</a> </li>
40 <li class="navelem"><a class="el" href="a00150.html">integer</a> </li>
4141 </ul>
4242 </div>
4343 </div>
4545 <div class="summary">
4646 <a href="#func-members">Functions</a> </div>
4747 <div class="headertitle">
48 <h1>glm::core::function::matrix Namespace Reference</h1> </div>
48 <h1>glm::core::function::integer Namespace Reference</h1> </div>
4949 </div>
5050 <div class="contents">
5151
52 <p>Define all matrix functions from Section 8.5 of GLSL 1.30.8 specification. Included in glm namespace.
52 <p>Define integer functions from Section 8.8 of GLSL 4.00.8 specification.
5353 <a href="#_details">More...</a></p>
5454 <table class="memberdecls">
5555 <tr><td colspan="2"><h2><a name="func-members"></a>
5656 Functions</h2></td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga0159ae2542b5bba80743694122247c15">determinant</a> (<a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt; const &amp;m)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaadf033715cbf1171a599aa7ac7f633be">determinant</a> (<a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; const &amp;m)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga4a33b6d96bedaa0cf250c1ef152a41a3">determinant</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gad5b3f7a92c8243ec53aa0704b979856b">inverse</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaa1bce3aab32b8949beb8160f72f1b631">inverse</a> (<a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; const &amp;m)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga21de0684ba52d03625b43eac0c2b866a">inverse</a> (<a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt; const &amp;m)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename matType &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">matType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gad27896f9d5be202b8d39552eeb352c87">matrixCompMult</a> (matType const &amp;x, matType const &amp;y)</td></tr>
71 <tr><td class="memTemplParams" colspan="2">template&lt;typename vecType , typename matType &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">matType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga04b83f76e97124e8e91d923dd7ba326c">outerProduct</a> (vecType const &amp;c, vecType const &amp;r)</td></tr>
73 <tr><td class="memTemplParams" colspan="2">template&lt;typename matType &gt; </td></tr>
74 <tr><td class="memTemplItemLeft" align="right" valign="top">matType::transpose_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga8b1a22512f73b0176ad062d3d480e906">transpose</a> (matType const &amp;x)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga29cfb04fafbaa1939955f11fef28ff38">bitCount</a> (C&lt; T &gt; const &amp;Value)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga3b4804e700ade895189ea8bde142c822">bitfieldExtract</a> (genIUType const &amp;Value, int const &amp;Offset, int const &amp;Bits)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga90d0bc8e79f637da58b8fad2fc8f3275">bitfieldInsert</a> (genIUType const &amp;Base, genIUType const &amp;Insert, int const &amp;Offset, int const &amp;Bits)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga68bdb2c3debc414d5567935b4cbca62f">bitfieldReverse</a> (genIUType const &amp;value)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga9890456d065156a3c3c9786b14638486">findLSB</a> (C&lt; T &gt; const &amp;Value)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga0f50b6fe121f170c3725a8abb53ff077">findMSB</a> (C&lt; T &gt; const &amp;Value)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIType &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gac01a66145ce9472afb6a3bee837c0bd6">imulExtended</a> (genIType const &amp;x, genIType const &amp;y, genIType &amp;msb, genIType &amp;lsb)</td></tr>
71 <tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">genUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga8d63fd56743cc93286f09742baed4002">uaddCarry</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;carry)</td></tr>
73 <tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
74 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gad9b60d1c7e161b78682b7f8b071e213e">umulExtended</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;msb, genUType &amp;lsb)</td></tr>
75 <tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
76 <tr><td class="memTemplItemLeft" align="right" valign="top">genUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga5ea2ea51e7cf73056069ce7583d61560">usubBorrow</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;borrow)</td></tr>
7577 </table>
7678 <hr/><a name="_details"></a><h2>Detailed Description</h2>
77 <div class="textblock"><p>Define all matrix functions from Section 8.5 of GLSL 1.30.8 specification. Included in glm namespace. </p>
79 <div class="textblock"><p>Define integer functions from Section 8.8 of GLSL 4.00.8 specification. </p>
7880 </div></div>
7981 <hr class="footer"/><address class="footer"><small>Generated by&#160;
8082 <a href="http://www.doxygen.org/index.html">
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>glm::core::function::matrix Namespace Reference</title>
5 <link href="tabs.css" rel="stylesheet" type="text/css"/>
6 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
7 </head>
8 <body>
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td id="projectlogo"><img alt="Logo" src="logo-mini.png"></td>
16 </tr>
17 </tbody>
18 </table>
19 </div>
20 <div id="navrow1" class="tabs">
21 <ul class="tablist">
22 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
23 <li><a href="modules.html"><span>Modules</span></a></li>
24 <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
25 <li><a href="annotated.html"><span>Classes</span></a></li>
26 <li><a href="files.html"><span>Files</span></a></li>
27 </ul>
28 </div>
29 <div id="navrow2" class="tabs2">
30 <ul class="tablist">
31 <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
32 <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
33 </ul>
34 </div>
35 <div id="nav-path" class="navpath">
36 <ul>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00146.html">core</a> </li>
39 <li class="navelem"><a class="el" href="a00147.html">function</a> </li>
40 <li class="navelem"><a class="el" href="a00151.html">matrix</a> </li>
41 </ul>
42 </div>
43 </div>
44 <div class="header">
45 <div class="summary">
46 <a href="#func-members">Functions</a> </div>
47 <div class="headertitle">
48 <h1>glm::core::function::matrix Namespace Reference</h1> </div>
49 </div>
50 <div class="contents">
51
52 <p>Define all matrix functions from Section 8.5 of GLSL 1.30.8 specification. Included in glm namespace.
53 <a href="#_details">More...</a></p>
54 <table class="memberdecls">
55 <tr><td colspan="2"><h2><a name="func-members"></a>
56 Functions</h2></td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga0159ae2542b5bba80743694122247c15">determinant</a> (<a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt; const &amp;m)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gaadf033715cbf1171a599aa7ac7f633be">determinant</a> (<a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; const &amp;m)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga4a33b6d96bedaa0cf250c1ef152a41a3">determinant</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gad5b3f7a92c8243ec53aa0704b979856b">inverse</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gaa1bce3aab32b8949beb8160f72f1b631">inverse</a> (<a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; const &amp;m)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga21de0684ba52d03625b43eac0c2b866a">inverse</a> (<a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt; const &amp;m)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename matType &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">matType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gad27896f9d5be202b8d39552eeb352c87">matrixCompMult</a> (matType const &amp;x, matType const &amp;y)</td></tr>
71 <tr><td class="memTemplParams" colspan="2">template&lt;typename vecType , typename matType &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">matType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga04b83f76e97124e8e91d923dd7ba326c">outerProduct</a> (vecType const &amp;c, vecType const &amp;r)</td></tr>
73 <tr><td class="memTemplParams" colspan="2">template&lt;typename matType &gt; </td></tr>
74 <tr><td class="memTemplItemLeft" align="right" valign="top">matType::transpose_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga8b1a22512f73b0176ad062d3d480e906">transpose</a> (matType const &amp;x)</td></tr>
75 </table>
76 <hr/><a name="_details"></a><h2>Detailed Description</h2>
77 <div class="textblock"><p>Define all matrix functions from Section 8.5 of GLSL 1.30.8 specification. Included in glm namespace. </p>
78 </div></div>
79 <hr class="footer"/><address class="footer"><small>Generated by&#160;
80 <a href="http://www.doxygen.org/index.html">
81 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
82 </body>
83 </html>
+0
-74
doc/html/a00152.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>glm::core::function::packing Namespace Reference</title>
5 <link href="tabs.css" rel="stylesheet" type="text/css"/>
6 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
7 </head>
8 <body>
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td id="projectlogo"><img alt="Logo" src="logo-mini.png"></td>
16 </tr>
17 </tbody>
18 </table>
19 </div>
20 <div id="navrow1" class="tabs">
21 <ul class="tablist">
22 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
23 <li><a href="modules.html"><span>Modules</span></a></li>
24 <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
25 <li><a href="annotated.html"><span>Classes</span></a></li>
26 <li><a href="files.html"><span>Files</span></a></li>
27 </ul>
28 </div>
29 <div id="navrow2" class="tabs2">
30 <ul class="tablist">
31 <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
32 <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
33 </ul>
34 </div>
35 <div id="nav-path" class="navpath">
36 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00144.html">core</a> </li>
39 <li class="navelem"><a class="el" href="a00145.html">function</a> </li>
40 <li class="navelem"><a class="el" href="a00152.html">packing</a> </li>
41 </ul>
42 </div>
43 </div>
44 <div class="header">
45 <div class="summary">
46 <a href="#func-members">Functions</a> </div>
47 <div class="headertitle">
48 <h1>glm::core::function::packing Namespace Reference</h1> </div>
49 </div>
50 <div class="contents">
51
52 <p>Define packing functions from section 8.4 floating-point pack and unpack functions of GLSL 4.00.8 specification.
53 <a href="#_details">More...</a></p>
54 <table class="memberdecls">
55 <tr><td colspan="2"><h2><a name="func-members"></a>
56 Functions</h2></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga816867ca2fdb1bfb5d80d7a4f18a9e97">packDouble2x32</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; detail::uint32 &gt; const &amp;v)</td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3f82e6b12495d9751eee53facba475da">packSnorm4x8</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; detail::float32 &gt; const &amp;v)</td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7fc17302ae69881bb792842d472e7a30">packUnorm2x16</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; detail::float32 &gt; const &amp;v)</td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf440e4e6c6be271327c5e2538e9c8b5f">packUnorm4x8</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; detail::float32 &gt; const &amp;v)</td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; detail::uint32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga4e80ba8eaef0b878ecb43053a4df9ff7">unpackDouble2x32</a> (double const &amp;v)</td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga03dafa00be8359e3a028aed81ae6007e">unpackSnorm4x8</a> (detail::uint32 const &amp;p)</td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab3745178db4024212c4d7cb3df9a6f39">unpackUnorm2x16</a> (detail::uint32 const &amp;p)</td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga11630d2b293d96452c412639ec3c942e">unpackUnorm4x8</a> (detail::uint32 const &amp;p)</td></tr>
65 </table>
66 <hr/><a name="_details"></a><h2>Detailed Description</h2>
67 <div class="textblock"><p>Define packing functions from section 8.4 floating-point pack and unpack functions of GLSL 4.00.8 specification. </p>
68 </div></div>
69 <hr class="footer"/><address class="footer"><small>Generated by&#160;
70 <a href="http://www.doxygen.org/index.html">
71 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
72 </body>
73 </html>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>glm::core::function::trigonometric Namespace Reference</title>
4 <title>glm::core::function::packing Namespace Reference</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00144.html">core</a> </li>
39 <li class="navelem"><a class="el" href="a00145.html">function</a> </li>
40 <li class="navelem"><a class="el" href="a00153.html">trigonometric</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00146.html">core</a> </li>
39 <li class="navelem"><a class="el" href="a00147.html">function</a> </li>
40 <li class="navelem"><a class="el" href="a00153.html">packing</a> </li>
4141 </ul>
4242 </div>
4343 </div>
4545 <div class="summary">
4646 <a href="#func-members">Functions</a> </div>
4747 <div class="headertitle">
48 <h1>glm::core::function::trigonometric Namespace Reference</h1> </div>
48 <h1>glm::core::function::packing Namespace Reference</h1> </div>
4949 </div>
5050 <div class="contents">
5151
52 <p>Define Angle and trigonometry functions from Section 8.1 of GLSL 1.30.8 specification.
52 <p>Define packing functions from section 8.4 floating-point pack and unpack functions of GLSL 4.00.8 specification.
5353 <a href="#_details">More...</a></p>
5454 <table class="memberdecls">
5555 <tr><td colspan="2"><h2><a name="func-members"></a>
5656 Functions</h2></td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga52a4b4cbe6d47f94d06ee1efd95786e6">acos</a> (genType const &amp;x)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga7c8d8ac539a43da0d41e656a38262ff0">acosh</a> (genType const &amp;x)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga3c625e34fc99b33829c28c6d580df7e2">asin</a> (genType const &amp;x)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga7ba20fc7c7b3eeef601e73b130e63db5">asinh</a> (genType const &amp;x)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga32dbceedb2910e519860a225ae7f7450">atan</a> (genType const &amp;y, genType const &amp;x)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga3abfab80cac8e26d4efda9949586ded6">atan</a> (genType const &amp;y_over_x)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga4d896caf7b1a8e5b5e3b29394e8c0ecd">atanh</a> (genType const &amp;x)</td></tr>
71 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga4fbc8481a95bcc1c0c6931a34449b9a8">cos</a> (genType const &amp;angle)</td></tr>
73 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
74 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga2cfdbcd7a269a114cbb4f19dcf1e3f8b">cosh</a> (genType const &amp;angle)</td></tr>
75 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
76 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga2dc092f93e998e01c1cfdaef817ca926">degrees</a> (genType const &amp;radians)</td></tr>
77 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
78 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga40251a4a07049e7fdcbf155c3cc6d32a">radians</a> (genType const &amp;degrees)</td></tr>
79 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
80 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gad246389321f46f7cb1cc422f9fd64cf4">sin</a> (genType const &amp;angle)</td></tr>
81 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
82 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga13a63bc67a160b1614ba3681f57fe480">sinh</a> (genType const &amp;angle)</td></tr>
83 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
84 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga1a556079a4fee8b5e12fcfe7551f6931">tan</a> (genType const &amp;angle)</td></tr>
85 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
86 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gad93de1d635832bf722eb78a088bfbaa6">tanh</a> (genType const &amp;angle)</td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html#ga816867ca2fdb1bfb5d80d7a4f18a9e97">packDouble2x32</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; detail::uint32 &gt; const &amp;v)</td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html#ga3f82e6b12495d9751eee53facba475da">packSnorm4x8</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; detail::float32 &gt; const &amp;v)</td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html#ga7fc17302ae69881bb792842d472e7a30">packUnorm2x16</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; detail::float32 &gt; const &amp;v)</td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html#gaf440e4e6c6be271327c5e2538e9c8b5f">packUnorm4x8</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; detail::float32 &gt; const &amp;v)</td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; detail::uint32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html#ga4e80ba8eaef0b878ecb43053a4df9ff7">unpackDouble2x32</a> (double const &amp;v)</td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html#ga03dafa00be8359e3a028aed81ae6007e">unpackSnorm4x8</a> (detail::uint32 const &amp;p)</td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html#gab3745178db4024212c4d7cb3df9a6f39">unpackUnorm2x16</a> (detail::uint32 const &amp;p)</td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html#ga11630d2b293d96452c412639ec3c942e">unpackUnorm4x8</a> (detail::uint32 const &amp;p)</td></tr>
8765 </table>
8866 <hr/><a name="_details"></a><h2>Detailed Description</h2>
89 <div class="textblock"><p>Define Angle and trigonometry functions from Section 8.1 of GLSL 1.30.8 specification. </p>
90 <p>Included in glm namespace. </p>
67 <div class="textblock"><p>Define packing functions from section 8.4 floating-point pack and unpack functions of GLSL 4.00.8 specification. </p>
9168 </div></div>
9269 <hr class="footer"/><address class="footer"><small>Generated by&#160;
9370 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>glm::core::function::vector_relational Namespace Reference</title>
4 <title>glm::core::function::trigonometric Namespace Reference</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00144.html">core</a> </li>
39 <li class="navelem"><a class="el" href="a00145.html">function</a> </li>
40 <li class="navelem"><a class="el" href="a00154.html">vector_relational</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00146.html">core</a> </li>
39 <li class="navelem"><a class="el" href="a00147.html">function</a> </li>
40 <li class="navelem"><a class="el" href="a00154.html">trigonometric</a> </li>
4141 </ul>
4242 </div>
4343 </div>
4545 <div class="summary">
4646 <a href="#func-members">Functions</a> </div>
4747 <div class="headertitle">
48 <h1>glm::core::function::vector_relational Namespace Reference</h1> </div>
48 <h1>glm::core::function::trigonometric Namespace Reference</h1> </div>
4949 </div>
5050 <div class="contents">
5151
52 <p>Define vector relational functions from Section 8.6 of GLSL 1.30.8 specification.
52 <p>Define Angle and trigonometry functions from Section 8.1 of GLSL 1.30.8 specification.
5353 <a href="#_details">More...</a></p>
5454 <table class="memberdecls">
5555 <tr><td colspan="2"><h2><a name="func-members"></a>
5656 Functions</h2></td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;template&lt; typename &gt; class vecType&gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga07b92e9e7077f06fe26e417f320b0f0c">all</a> (vecType&lt; bool &gt; const &amp;v)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;template&lt; typename &gt; class vecType&gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaa478a7966a4e6550bf0ee58ea8271074">any</a> (vecType&lt; bool &gt; const &amp;v)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; T &gt;<br class="typebreak"/>
63 ::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga811015178de53f628610f2036946fbb9">equal</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
64 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; T &gt;<br class="typebreak"/>
66 ::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaef35061292f337c0d788f43a3b1a26c0">greaterThan</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; T &gt;<br class="typebreak"/>
69 ::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga39aa8024d619850c81a685a4905177df">greaterThanEqual</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
70 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; T &gt;<br class="typebreak"/>
72 ::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga54e5b894f79b9c1b8f6d28fe6f986e80">lessThan</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
73 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
74 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; T &gt;<br class="typebreak"/>
75 ::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga190db45f1b40202ee0716751448b119d">lessThanEqual</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
76 <tr><td class="memTemplParams" colspan="2">template&lt;template&lt; typename &gt; class vecType&gt; </td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gadb3248006580ee79ebb1d358bce25ca0">not_</a> (vecType&lt; bool &gt; const &amp;v)</td></tr>
78 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; T &gt;<br class="typebreak"/>
80 ::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga62979ef5be1ad914f866074b900abdcd">notEqual</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga52a4b4cbe6d47f94d06ee1efd95786e6">acos</a> (genType const &amp;x)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga7c8d8ac539a43da0d41e656a38262ff0">acosh</a> (genType const &amp;x)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga3c625e34fc99b33829c28c6d580df7e2">asin</a> (genType const &amp;x)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga7ba20fc7c7b3eeef601e73b130e63db5">asinh</a> (genType const &amp;x)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga32dbceedb2910e519860a225ae7f7450">atan</a> (genType const &amp;y, genType const &amp;x)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga3abfab80cac8e26d4efda9949586ded6">atan</a> (genType const &amp;y_over_x)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga4d896caf7b1a8e5b5e3b29394e8c0ecd">atanh</a> (genType const &amp;x)</td></tr>
71 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga4fbc8481a95bcc1c0c6931a34449b9a8">cos</a> (genType const &amp;angle)</td></tr>
73 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
74 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga2cfdbcd7a269a114cbb4f19dcf1e3f8b">cosh</a> (genType const &amp;angle)</td></tr>
75 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
76 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga2dc092f93e998e01c1cfdaef817ca926">degrees</a> (genType const &amp;radians)</td></tr>
77 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
78 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga40251a4a07049e7fdcbf155c3cc6d32a">radians</a> (genType const &amp;degrees)</td></tr>
79 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
80 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gad246389321f46f7cb1cc422f9fd64cf4">sin</a> (genType const &amp;angle)</td></tr>
81 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
82 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga13a63bc67a160b1614ba3681f57fe480">sinh</a> (genType const &amp;angle)</td></tr>
83 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
84 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga1a556079a4fee8b5e12fcfe7551f6931">tan</a> (genType const &amp;angle)</td></tr>
85 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
86 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gad93de1d635832bf722eb78a088bfbaa6">tanh</a> (genType const &amp;angle)</td></tr>
8187 </table>
8288 <hr/><a name="_details"></a><h2>Detailed Description</h2>
83 <div class="textblock"><p>Define vector relational functions from Section 8.6 of GLSL 1.30.8 specification. </p>
89 <div class="textblock"><p>Define Angle and trigonometry functions from Section 8.1 of GLSL 1.30.8 specification. </p>
8490 <p>Included in glm namespace. </p>
8591 </div></div>
8692 <hr class="footer"/><address class="footer"><small>Generated by&#160;
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00144.html">core</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00146.html">core</a> </li>
3939 <li class="navelem"><a class="el" href="a00155.html">type</a> </li>
4040 </ul>
4141 </div>
7777 <p>Unsigned integer. </p>
7878 <p>From GLSL 1.30.8 specification section 4.1.3 Integers. </p>
7979
80 <p>Definition at line <a class="el" href="a00114_source.html#l00108">108</a> of file <a class="el" href="a00114_source.html">type_int.hpp</a>.</p>
80 <p>Definition at line <a class="el" href="a00114_source.html#l00103">103</a> of file <a class="el" href="a00114_source.html">type_int.hpp</a>.</p>
8181
8282 </div>
8383 </div>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00144.html">core</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00146.html">core</a> </li>
3939 <li class="navelem"><a class="el" href="a00155.html">type</a> </li>
4040 <li class="navelem"><a class="el" href="a00156.html">precision</a> </li>
4141 </ul>
4949 </div>
5050 <div class="contents">
5151
52 <p>namespace for precision stuff.
52 <p>&lt; Namespace for precision stuff.
5353 <a href="#_details">More...</a></p>
5454 <table class="memberdecls">
5555 <tr><td colspan="2"><h2><a name="typedef-members"></a>
5656 Typedefs</h2></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">typedef highp_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">highp_float</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::highp_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga306173e656477f59bf0164a623780236">highp_ivec2</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gaccca78e0907313665d47af163c17c5bb">highp_ivec3</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga320e40ad19a7be26cff134cce4f15a51">highp_ivec4</a></td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
63 &lt; <a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga9aa0c5dce81439aa15a0d5b5e5006d81">highp_mat2x2</a></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">typedef highp_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::highp_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga306173e656477f59bf0164a623780236">highp_ivec2</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaccca78e0907313665d47af163c17c5bb">highp_ivec3</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga320e40ad19a7be26cff134cce4f15a51">highp_ivec4</a></td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
63 &lt; <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaeedb9e4f01fefcd5a47356b476b6890c">highp_mat2</a></td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
65 &lt; <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga9aa0c5dce81439aa15a0d5b5e5006d81">highp_mat2x2</a></td></tr>
6466 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00011.html">detail::tmat2x3</a><br class="typebreak"/>
65 &lt; <a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga895ba4ec32bd7cfb0d07572556572069">highp_mat2x3</a></td></tr>
67 &lt; <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga895ba4ec32bd7cfb0d07572556572069">highp_mat2x3</a></td></tr>
6668 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00012.html">detail::tmat2x4</a><br class="typebreak"/>
67 &lt; <a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#af8816ff880fbae96a59c543904333109">highp_mat2x4</a></td></tr>
69 &lt; <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#af8816ff880fbae96a59c543904333109">highp_mat2x4</a></td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
71 &lt; <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga95c93f032b4713aff2886a39f96822e1">highp_mat3</a></td></tr>
6872 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00013.html">detail::tmat3x2</a><br class="typebreak"/>
69 &lt; <a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ae5e017b25e88ff5c61f4538a2dd5647a">highp_mat3x2</a></td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
71 &lt; <a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga20aa8e5c6061576079c10e86cd743c8d">highp_mat3x3</a></td></tr>
73 &lt; <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ae5e017b25e88ff5c61f4538a2dd5647a">highp_mat3x2</a></td></tr>
74 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
75 &lt; <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga20aa8e5c6061576079c10e86cd743c8d">highp_mat3x3</a></td></tr>
7276 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00015.html">detail::tmat3x4</a><br class="typebreak"/>
73 &lt; <a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#a8efc769b3edb7a3f420d6344e2308c72">highp_mat3x4</a></td></tr>
77 &lt; <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#a8efc769b3edb7a3f420d6344e2308c72">highp_mat3x4</a></td></tr>
78 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
79 &lt; <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga6e0882bb7c778ee27596e1cbe70cad1a">highp_mat4</a></td></tr>
7480 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00016.html">detail::tmat4x2</a><br class="typebreak"/>
75 &lt; <a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga3178de2c189bfdda4c73d6af8017f5d3">highp_mat4x2</a></td></tr>
81 &lt; <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga3178de2c189bfdda4c73d6af8017f5d3">highp_mat4x2</a></td></tr>
7682 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00017.html">detail::tmat4x3</a><br class="typebreak"/>
77 &lt; <a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga00d8bf8ebaab7d6647a3b7f73ae324af">highp_mat4x3</a></td></tr>
78 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
79 &lt; <a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gadd2ef277f86f6fa29804a22d1eb7d662">highp_mat4x4</a></td></tr>
80 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::highp_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a></td></tr>
81 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gad4a5243fc438d0f2efbc22d075b4e399">highp_uvec2</a></td></tr>
82 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gaf4b32075ad193e4f47c8bfc367593d8c">highp_uvec3</a></td></tr>
83 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga5ad6375e810e3050a6c845b600422b70">highp_uvec4</a></td></tr>
83 &lt; <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga00d8bf8ebaab7d6647a3b7f73ae324af">highp_mat4x3</a></td></tr>
84 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
85 &lt; <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gadd2ef277f86f6fa29804a22d1eb7d662">highp_mat4x4</a></td></tr>
86 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::highp_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a></td></tr>
87 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gad4a5243fc438d0f2efbc22d075b4e399">highp_uvec2</a></td></tr>
88 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaf4b32075ad193e4f47c8bfc367593d8c">highp_uvec3</a></td></tr>
89 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga5ad6375e810e3050a6c845b600422b70">highp_uvec4</a></td></tr>
8490 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a><br class="typebreak"/>
85 &lt; <a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga9b65d7afd0783a02f5b3d1b75d1d872e">highp_vec2</a></td></tr>
91 &lt; <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga9b65d7afd0783a02f5b3d1b75d1d872e">highp_vec2</a></td></tr>
8692 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a><br class="typebreak"/>
87 &lt; <a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga0d3129f5f6644cb7552f520ff0dfa789">highp_vec3</a></td></tr>
93 &lt; <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga0d3129f5f6644cb7552f520ff0dfa789">highp_vec3</a></td></tr>
8894 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a><br class="typebreak"/>
89 &lt; <a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gaaef692a5e2eae7dad32ca2f8ed0d16d8">highp_vec4</a></td></tr>
90 <tr><td class="memItemLeft" align="right" valign="top">typedef lowp_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a></td></tr>
91 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a></td></tr>
92 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga26364654fd75ba6c7f11a65967a7fbee">lowp_ivec2</a></td></tr>
93 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gac246e3a1a470974283d6618ad77fd477">lowp_ivec3</a></td></tr>
94 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gafc7521507e40fbc269149475a725dbbe">lowp_ivec4</a></td></tr>
95 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
96 &lt; <a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga8b49c3aa6665011440c32c281b2032c0">lowp_mat2x2</a></td></tr>
95 &lt; <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaaef692a5e2eae7dad32ca2f8ed0d16d8">highp_vec4</a></td></tr>
96 <tr><td class="memItemLeft" align="right" valign="top">typedef lowp_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a></td></tr>
97 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a></td></tr>
98 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga26364654fd75ba6c7f11a65967a7fbee">lowp_ivec2</a></td></tr>
99 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gac246e3a1a470974283d6618ad77fd477">lowp_ivec3</a></td></tr>
100 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gafc7521507e40fbc269149475a725dbbe">lowp_ivec4</a></td></tr>
101 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
102 &lt; <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaee10b4a3cac178528f8e56c90313094a">lowp_mat2</a></td></tr>
103 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
104 &lt; <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga8b49c3aa6665011440c32c281b2032c0">lowp_mat2x2</a></td></tr>
97105 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00011.html">detail::tmat2x3</a><br class="typebreak"/>
98 &lt; <a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga0b32355a31b4c14e98f69b43a9077456">lowp_mat2x3</a></td></tr>
106 &lt; <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga0b32355a31b4c14e98f69b43a9077456">lowp_mat2x3</a></td></tr>
99107 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00012.html">detail::tmat2x4</a><br class="typebreak"/>
100 &lt; <a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#af95b55f8954834b05b5463bc153deae5">lowp_mat2x4</a></td></tr>
108 &lt; <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#af95b55f8954834b05b5463bc153deae5">lowp_mat2x4</a></td></tr>
109 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
110 &lt; <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga5bbef8a57946dd7a91c9e0260d9edfbf">lowp_mat3</a></td></tr>
101111 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00013.html">detail::tmat3x2</a><br class="typebreak"/>
102 &lt; <a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#a745259412efbd5e07b1a4062190e3135">lowp_mat3x2</a></td></tr>
103 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
104 &lt; <a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga0bb652c1f4401b9b3359ae6b2bf13678">lowp_mat3x3</a></td></tr>
112 &lt; <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#a745259412efbd5e07b1a4062190e3135">lowp_mat3x2</a></td></tr>
113 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
114 &lt; <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga0bb652c1f4401b9b3359ae6b2bf13678">lowp_mat3x3</a></td></tr>
105115 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00015.html">detail::tmat3x4</a><br class="typebreak"/>
106 &lt; <a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#a2e7a430ab7df03b63b5c7b776f7675a1">lowp_mat3x4</a></td></tr>
116 &lt; <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#a2e7a430ab7df03b63b5c7b776f7675a1">lowp_mat3x4</a></td></tr>
117 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
118 &lt; <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga4954a51c5507e62185d6d82dc39016a5">lowp_mat4</a></td></tr>
107119 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00016.html">detail::tmat4x2</a><br class="typebreak"/>
108 &lt; <a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gac88de3260a910584e02b98f087a34502">lowp_mat4x2</a></td></tr>
120 &lt; <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gac88de3260a910584e02b98f087a34502">lowp_mat4x2</a></td></tr>
109121 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00017.html">detail::tmat4x3</a><br class="typebreak"/>
110 &lt; <a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga0072cb659f9360a7bb2c3e6646609ad7">lowp_mat4x3</a></td></tr>
111 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
112 &lt; <a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gaae14374ee642a8d553ce64f17a4597b1">lowp_mat4x4</a></td></tr>
113 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a></td></tr>
114 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga9cb9b78162fca09f7ce9d08758f8b3c1">lowp_uvec2</a></td></tr>
115 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gaefdce0fe4ed79b26ed2b5f00bbf39075">lowp_uvec3</a></td></tr>
116 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga3ebda7e36e3948ceea0cbc90061c643d">lowp_uvec4</a></td></tr>
117 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga4df6c67742cd65d6d0a885b3a539d9ff">lowp_vec2</a></td></tr>
118 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gab9e39d9db144322c1ad30ab3141084ad">lowp_vec3</a></td></tr>
119 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga653b0bf7ff2cb590f6e1338682fd0327">lowp_vec4</a></td></tr>
120 <tr><td class="memItemLeft" align="right" valign="top">typedef mediump_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a></td></tr>
121 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a></td></tr>
122 &lt; <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga0072cb659f9360a7bb2c3e6646609ad7">lowp_mat4x3</a></td></tr>
123 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
124 &lt; <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaae14374ee642a8d553ce64f17a4597b1">lowp_mat4x4</a></td></tr>
125 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a></td></tr>
126 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga9cb9b78162fca09f7ce9d08758f8b3c1">lowp_uvec2</a></td></tr>
127 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaefdce0fe4ed79b26ed2b5f00bbf39075">lowp_uvec3</a></td></tr>
128 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga3ebda7e36e3948ceea0cbc90061c643d">lowp_uvec4</a></td></tr>
129 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga4df6c67742cd65d6d0a885b3a539d9ff">lowp_vec2</a></td></tr>
130 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gab9e39d9db144322c1ad30ab3141084ad">lowp_vec3</a></td></tr>
131 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga653b0bf7ff2cb590f6e1338682fd0327">lowp_vec4</a></td></tr>
132 <tr><td class="memItemLeft" align="right" valign="top">typedef mediump_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a></td></tr>
133 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a></td></tr>
122134 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a><br class="typebreak"/>
123 &lt; <a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga269315792504783f450b829161f2bccf">mediump_ivec2</a></td></tr>
135 &lt; <a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga269315792504783f450b829161f2bccf">mediump_ivec2</a></td></tr>
124136 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a><br class="typebreak"/>
125 &lt; <a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga1d8ae738ed79d71f8d381f472d366913">mediump_ivec3</a></td></tr>
137 &lt; <a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga1d8ae738ed79d71f8d381f472d366913">mediump_ivec3</a></td></tr>
126138 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a><br class="typebreak"/>
127 &lt; <a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga5f624d3f93fa1a197ba767f9b1d6d7aa">mediump_ivec4</a></td></tr>
128 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
129 &lt; <a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gaa5970a6f98990c15b7a3be7cc7b79f4f">mediump_mat2x2</a></td></tr>
139 &lt; <a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga5f624d3f93fa1a197ba767f9b1d6d7aa">mediump_ivec4</a></td></tr>
140 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
141 &lt; <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga42f1426987103b15613671b323e90e5c">mediump_mat2</a></td></tr>
142 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
143 &lt; <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaa5970a6f98990c15b7a3be7cc7b79f4f">mediump_mat2x2</a></td></tr>
130144 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00011.html">detail::tmat2x3</a><br class="typebreak"/>
131 &lt; <a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gacceeb5355767eb306c12ea961b31e808">mediump_mat2x3</a></td></tr>
145 &lt; <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gacceeb5355767eb306c12ea961b31e808">mediump_mat2x3</a></td></tr>
132146 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00012.html">detail::tmat2x4</a><br class="typebreak"/>
133 &lt; <a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#abbec32a495b527df1796bb46f8cce516">mediump_mat2x4</a></td></tr>
147 &lt; <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#abbec32a495b527df1796bb46f8cce516">mediump_mat2x4</a></td></tr>
148 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
149 &lt; <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga0957c911430959270e296b6abf1463c3">mediump_mat3</a></td></tr>
134150 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00013.html">detail::tmat3x2</a><br class="typebreak"/>
135 &lt; <a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#a08c1cebbdb2cdfa0a62b23981db1c059">mediump_mat3x2</a></td></tr>
136 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
137 &lt; <a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga76c68d8cad333d1f5ba1b20a40415cda">mediump_mat3x3</a></td></tr>
151 &lt; <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#a08c1cebbdb2cdfa0a62b23981db1c059">mediump_mat3x2</a></td></tr>
152 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
153 &lt; <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga76c68d8cad333d1f5ba1b20a40415cda">mediump_mat3x3</a></td></tr>
138154 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00015.html">detail::tmat3x4</a><br class="typebreak"/>
139 &lt; <a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#a167125bb484e539a3c56f7b7aa0409f8">mediump_mat3x4</a></td></tr>
155 &lt; <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#a167125bb484e539a3c56f7b7aa0409f8">mediump_mat3x4</a></td></tr>
156 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
157 &lt; <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gabb71589a7fc80f6ca0c134efb878338d">mediump_mat4</a></td></tr>
140158 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00016.html">detail::tmat4x2</a><br class="typebreak"/>
141 &lt; <a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga31b1d523c1dc83c0ef9cded942950666">mediump_mat4x2</a></td></tr>
159 &lt; <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga31b1d523c1dc83c0ef9cded942950666">mediump_mat4x2</a></td></tr>
142160 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00017.html">detail::tmat4x3</a><br class="typebreak"/>
143 &lt; <a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga236d4c1060c1ce9908d3de61b3d9334e">mediump_mat4x3</a></td></tr>
144 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
145 &lt; <a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gad0e848d34a6838e413a41018228ded41">mediump_mat4x4</a></td></tr>
146 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a></td></tr>
161 &lt; <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga236d4c1060c1ce9908d3de61b3d9334e">mediump_mat4x3</a></td></tr>
162 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
163 &lt; <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gad0e848d34a6838e413a41018228ded41">mediump_mat4x4</a></td></tr>
164 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a></td></tr>
147165 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a><br class="typebreak"/>
148 &lt; <a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga5cd4f5f5667de09c7c12df85d138f599">mediump_uvec2</a></td></tr>
166 &lt; <a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga5cd4f5f5667de09c7c12df85d138f599">mediump_uvec2</a></td></tr>
149167 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a><br class="typebreak"/>
150 &lt; <a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga70d49eff07e7988447c93a83f9f311b6">mediump_uvec3</a></td></tr>
168 &lt; <a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga70d49eff07e7988447c93a83f9f311b6">mediump_uvec3</a></td></tr>
151169 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a><br class="typebreak"/>
152 &lt; <a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga4b2bc896ec01198bdc4f9dc896e5f06d">mediump_uvec4</a></td></tr>
170 &lt; <a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga4b2bc896ec01198bdc4f9dc896e5f06d">mediump_uvec4</a></td></tr>
153171 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a><br class="typebreak"/>
154 &lt; <a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga9a8a10fce5852b088dd631b34e942b7d">mediump_vec2</a></td></tr>
172 &lt; <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga9a8a10fce5852b088dd631b34e942b7d">mediump_vec2</a></td></tr>
155173 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a><br class="typebreak"/>
156 &lt; <a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gaf6aa71f085a150f42929a4b77458143e">mediump_vec3</a></td></tr>
174 &lt; <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaf6aa71f085a150f42929a4b77458143e">mediump_vec3</a></td></tr>
157175 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a><br class="typebreak"/>
158 &lt; <a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gafddaa69a1d46a27e2767b780e0e6b4b0">mediump_vec4</a></td></tr>
176 &lt; <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gafddaa69a1d46a27e2767b780e0e6b4b0">mediump_vec4</a></td></tr>
159177 </table>
160178 <hr/><a name="_details"></a><h2>Detailed Description</h2>
161 <div class="textblock"><p>namespace for precision stuff. </p>
179 <div class="textblock"><p>&lt; Namespace for precision stuff. </p>
162180 </div><hr/><h2>Typedef Documentation</h2>
163181 <a class="anchor" id="af8816ff880fbae96a59c543904333109"></a><!-- doxytag: member="glm::core::type::precision::highp_mat2x4" ref="af8816ff880fbae96a59c543904333109" args="" -->
164182 <div class="memitem">
165183 <div class="memproto">
166184 <table class="memname">
167185 <tr>
168 <td class="memname">typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt;<a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">highp_float</a>&gt; <a class="el" href="a00012.html">highp_mat2x4</a></td>
186 <td class="memname">typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt;<a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a>&gt; <a class="el" href="a00012.html">highp_mat2x4</a></td>
169187 </tr>
170188 </table>
171189 </div>
174192 <p>2 columns of 4 components matrix of high precision floating-point numbers. </p>
175193 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
176194
177 <p>Definition at line <a class="el" href="a00118_source.html#l00203">203</a> of file <a class="el" href="a00118_source.html">type_mat2x4.hpp</a>.</p>
195 <p>Definition at line <a class="el" href="a00118_source.html#l00215">215</a> of file <a class="el" href="a00118_source.html">type_mat2x4.hpp</a>.</p>
178196
179197 </div>
180198 </div>
183201 <div class="memproto">
184202 <table class="memname">
185203 <tr>
186 <td class="memname">typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt;<a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">highp_float</a>&gt; <a class="el" href="a00013.html">highp_mat3x2</a></td>
204 <td class="memname">typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt;<a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a>&gt; <a class="el" href="a00013.html">highp_mat3x2</a></td>
187205 </tr>
188206 </table>
189207 </div>
192210 <p>3 columns of 2 components matrix of high precision floating-point numbers. </p>
193211 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
194212
195 <p>Definition at line <a class="el" href="a00119_source.html#l00205">205</a> of file <a class="el" href="a00119_source.html">type_mat3x2.hpp</a>.</p>
213 <p>Definition at line <a class="el" href="a00119_source.html#l00221">221</a> of file <a class="el" href="a00119_source.html">type_mat3x2.hpp</a>.</p>
196214
197215 </div>
198216 </div>
201219 <div class="memproto">
202220 <table class="memname">
203221 <tr>
204 <td class="memname">typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt;<a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">highp_float</a>&gt; <a class="el" href="a00015.html">highp_mat3x4</a></td>
222 <td class="memname">typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt;<a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a>&gt; <a class="el" href="a00015.html">highp_mat3x4</a></td>
205223 </tr>
206224 </table>
207225 </div>
210228 <p>3 columns of 4 components matrix of high precision floating-point numbers. </p>
211229 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
212230
213 <p>Definition at line <a class="el" href="a00121_source.html#l00205">205</a> of file <a class="el" href="a00121_source.html">type_mat3x4.hpp</a>.</p>
231 <p>Definition at line <a class="el" href="a00121_source.html#l00221">221</a> of file <a class="el" href="a00121_source.html">type_mat3x4.hpp</a>.</p>
214232
215233 </div>
216234 </div>
219237 <div class="memproto">
220238 <table class="memname">
221239 <tr>
222 <td class="memname">typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt;<a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a>&gt; <a class="el" href="a00012.html">lowp_mat2x4</a></td>
240 <td class="memname">typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt;<a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a>&gt; <a class="el" href="a00012.html">lowp_mat2x4</a></td>
223241 </tr>
224242 </table>
225243 </div>
228246 <p>2 columns of 4 components matrix of low precision floating-point numbers. </p>
229247 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
230248
231 <p>Definition at line <a class="el" href="a00118_source.html#l00195">195</a> of file <a class="el" href="a00118_source.html">type_mat2x4.hpp</a>.</p>
249 <p>Definition at line <a class="el" href="a00118_source.html#l00207">207</a> of file <a class="el" href="a00118_source.html">type_mat2x4.hpp</a>.</p>
232250
233251 </div>
234252 </div>
237255 <div class="memproto">
238256 <table class="memname">
239257 <tr>
240 <td class="memname">typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt;<a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a>&gt; <a class="el" href="a00013.html">lowp_mat3x2</a></td>
258 <td class="memname">typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt;<a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a>&gt; <a class="el" href="a00013.html">lowp_mat3x2</a></td>
241259 </tr>
242260 </table>
243261 </div>
246264 <p>3 columns of 2 components matrix of low precision floating-point numbers. </p>
247265 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
248266
249 <p>Definition at line <a class="el" href="a00119_source.html#l00197">197</a> of file <a class="el" href="a00119_source.html">type_mat3x2.hpp</a>.</p>
267 <p>Definition at line <a class="el" href="a00119_source.html#l00213">213</a> of file <a class="el" href="a00119_source.html">type_mat3x2.hpp</a>.</p>
250268
251269 </div>
252270 </div>
255273 <div class="memproto">
256274 <table class="memname">
257275 <tr>
258 <td class="memname">typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt;<a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a>&gt; <a class="el" href="a00015.html">lowp_mat3x4</a></td>
276 <td class="memname">typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt;<a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a>&gt; <a class="el" href="a00015.html">lowp_mat3x4</a></td>
259277 </tr>
260278 </table>
261279 </div>
264282 <p>3 columns of 4 components matrix of low precision floating-point numbers. </p>
265283 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
266284
267 <p>Definition at line <a class="el" href="a00121_source.html#l00197">197</a> of file <a class="el" href="a00121_source.html">type_mat3x4.hpp</a>.</p>
285 <p>Definition at line <a class="el" href="a00121_source.html#l00213">213</a> of file <a class="el" href="a00121_source.html">type_mat3x4.hpp</a>.</p>
268286
269287 </div>
270288 </div>
273291 <div class="memproto">
274292 <table class="memname">
275293 <tr>
276 <td class="memname">typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt;<a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a>&gt; <a class="el" href="a00012.html">mediump_mat2x4</a></td>
294 <td class="memname">typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt;<a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a>&gt; <a class="el" href="a00012.html">mediump_mat2x4</a></td>
277295 </tr>
278296 </table>
279297 </div>
282300 <p>2 columns of 4 components matrix of medium precision floating-point numbers. </p>
283301 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
284302
285 <p>Definition at line <a class="el" href="a00118_source.html#l00199">199</a> of file <a class="el" href="a00118_source.html">type_mat2x4.hpp</a>.</p>
303 <p>Definition at line <a class="el" href="a00118_source.html#l00211">211</a> of file <a class="el" href="a00118_source.html">type_mat2x4.hpp</a>.</p>
286304
287305 </div>
288306 </div>
291309 <div class="memproto">
292310 <table class="memname">
293311 <tr>
294 <td class="memname">typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt;<a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a>&gt; <a class="el" href="a00013.html">mediump_mat3x2</a></td>
312 <td class="memname">typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt;<a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a>&gt; <a class="el" href="a00013.html">mediump_mat3x2</a></td>
295313 </tr>
296314 </table>
297315 </div>
300318 <p>3 columns of 2 components matrix of medium precision floating-point numbers. </p>
301319 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
302320
303 <p>Definition at line <a class="el" href="a00119_source.html#l00201">201</a> of file <a class="el" href="a00119_source.html">type_mat3x2.hpp</a>.</p>
321 <p>Definition at line <a class="el" href="a00119_source.html#l00217">217</a> of file <a class="el" href="a00119_source.html">type_mat3x2.hpp</a>.</p>
304322
305323 </div>
306324 </div>
309327 <div class="memproto">
310328 <table class="memname">
311329 <tr>
312 <td class="memname">typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt;<a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a>&gt; <a class="el" href="a00015.html">mediump_mat3x4</a></td>
330 <td class="memname">typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt;<a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a>&gt; <a class="el" href="a00015.html">mediump_mat3x4</a></td>
313331 </tr>
314332 </table>
315333 </div>
318336 <p>3 columns of 4 components matrix of medium precision floating-point numbers. </p>
319337 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
320338
321 <p>Definition at line <a class="el" href="a00121_source.html#l00201">201</a> of file <a class="el" href="a00121_source.html">type_mat3x4.hpp</a>.</p>
339 <p>Definition at line <a class="el" href="a00121_source.html#l00217">217</a> of file <a class="el" href="a00121_source.html">type_mat3x4.hpp</a>.</p>
322340
323341 </div>
324342 </div>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00158.html">gtc</a> </li>
3939 </ul>
4040 </div>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00158.html">gtc</a> </li>
3939 <li class="navelem"><a class="el" href="a00159.html">half_float</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTC_half_float extension: Add support for half precision floating-point types.
51 <p>&lt; GLM_GTC_half_float extension: Add support for half precision floating-point types
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="typedef-members"></a>
5555 Typedefs</h2></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00009.html">detail::thalf</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#ga256188598ace9135605a8ac8fc158654">half</a></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00009.html">detail::thalf</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga256188598ace9135605a8ac8fc158654">half</a></td></tr>
5757 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
58 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#ga784f92f5a36fd8e23a69119eb6a80eb8">hmat2</a></td></tr>
58 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga784f92f5a36fd8e23a69119eb6a80eb8">hmat2</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
60 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#gaef5a99a975d1df44e43f3662d84d24e2">hmat2x2</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00011.html">detail::tmat2x3</a><br class="typebreak"/>
62 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga55c96491b1d2508504b7fad8f31fdd47">hmat2x3</a></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00012.html">detail::tmat2x4</a><br class="typebreak"/>
64 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga43a7d1bfd8945398effa19eb66ce304a">hmat2x4</a></td></tr>
5965 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
60 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#ga97a57670730ece7f6b904d6dcce5bd7a">hmat3</a></td></tr>
66 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga97a57670730ece7f6b904d6dcce5bd7a">hmat3</a></td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00013.html">detail::tmat3x2</a><br class="typebreak"/>
68 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#gaf89371358a1d90a224c72795d25a4f3e">hmat3x2</a></td></tr>
69 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
70 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga3b23962a795f1f157242859c1a35dec0">hmat3x3</a></td></tr>
71 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00015.html">detail::tmat3x4</a><br class="typebreak"/>
72 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga8eeb3d8c00910f5497117d1749b6550f">hmat3x4</a></td></tr>
6173 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
62 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#gaffa8b541819e978ede6129703be94285">hmat4</a></td></tr>
74 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#gaffa8b541819e978ede6129703be94285">hmat4</a></td></tr>
75 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00016.html">detail::tmat4x2</a><br class="typebreak"/>
76 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga370098417bb96d7796b11a4611bf67ac">hmat4x2</a></td></tr>
77 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00017.html">detail::tmat4x3</a><br class="typebreak"/>
78 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga8248b190b2f9a4ff3f2aadf865f72b84">hmat4x3</a></td></tr>
79 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
80 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga66a4356be6f3c7a1e5cb944657917002">hmat4x4</a></td></tr>
6381 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00020.html">detail::tvec2</a><br class="typebreak"/>
64 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a">hvec2</a></td></tr>
82 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a">hvec2</a></td></tr>
6583 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00021.html">detail::tvec3</a><br class="typebreak"/>
66 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#gab708ed615526a03ec26e3b614bea2b7b">hvec3</a></td></tr>
84 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#gab708ed615526a03ec26e3b614bea2b7b">hvec3</a></td></tr>
6785 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00022.html">detail::tvec4</a><br class="typebreak"/>
68 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#ga912913b034fea8952fcfc129a633c667">hvec4</a></td></tr>
86 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga912913b034fea8952fcfc129a633c667">hvec4</a></td></tr>
6987 </table>
7088 <hr/><a name="_details"></a><h2>Detailed Description</h2>
71 <div class="textblock"><p>GLM_GTC_half_float extension: Add support for half precision floating-point types. </p>
89 <div class="textblock"><p>&lt; GLM_GTC_half_float extension: Add support for half precision floating-point types </p>
7290 </div></div>
7391 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7492 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00158.html">gtc</a> </li>
3939 <li class="navelem"><a class="el" href="a00160.html">matrix_access</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTC_matrix_access extension: Set a column or a row of a matrix.
51 <p>&lt; GLM_GTC_matrix_access extension: Set a column or a row of a matrix
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::col_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga0e92f78abad525682684b0c262bbffe4">column</a> (genType const &amp;m, int index)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::col_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga0e92f78abad525682684b0c262bbffe4">column</a> (genType const &amp;m, int index)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga30e1966ba22897cd09f156690c8f94a1">column</a> (genType const &amp;m, int index, typename genType::col_type const &amp;x)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga30e1966ba22897cd09f156690c8f94a1">column</a> (genType const &amp;m, int index, typename genType::col_type const &amp;x)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::row_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe">row</a> (genType const &amp;m, int index)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::row_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe">row</a> (genType const &amp;m, int index)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gab6684183e0e91181c960ce21efe1ce67">row</a> (genType const &amp;m, int index, typename genType::row_type const &amp;x)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#gab6684183e0e91181c960ce21efe1ce67">row</a> (genType const &amp;m, int index, typename genType::row_type const &amp;x)</td></tr>
6464 </table>
6565 <hr/><a name="_details"></a><h2>Detailed Description</h2>
66 <div class="textblock"><p>GLM_GTC_matrix_access extension: Set a column or a row of a matrix. </p>
66 <div class="textblock"><p>&lt; GLM_GTC_matrix_access extension: Set a column or a row of a matrix </p>
6767 </div></div>
6868 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6969 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00158.html">gtc</a> </li>
3939 <li class="navelem"><a class="el" href="a00161.html">matrix_integer</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTC_matrix_integer extension: Add integer matrices.
51 <p>&lt; GLM_GTC_matrix_integer extension: Add integer matrices
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="typedef-members"></a>
5555 Typedefs</h2></td></tr>
5656 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga16e9ac01daa94cd41baca57b1720c4d2"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_imat2" ref="ga16e9ac01daa94cd41baca57b1720c4d2" args="" -->
5757 typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
58 &lt; <a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga16e9ac01daa94cd41baca57b1720c4d2">highp_imat2</a></td></tr>
58 &lt; <a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga16e9ac01daa94cd41baca57b1720c4d2">highp_imat2</a></td></tr>
5959 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga503734c9f848968b3ede74017d3927e0"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_imat2x2" ref="ga503734c9f848968b3ede74017d3927e0" args="" -->
6060 typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
61 &lt; <a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga503734c9f848968b3ede74017d3927e0">highp_imat2x2</a></td></tr>
61 &lt; <a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga503734c9f848968b3ede74017d3927e0">highp_imat2x2</a></td></tr>
6262 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae4ac618eb06b7288e4a14633971320ed"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_imat2x3" ref="gae4ac618eb06b7288e4a14633971320ed" args="" -->
6363 typedef <a class="el" href="a00011.html">detail::tmat2x3</a><br class="typebreak"/>
64 &lt; <a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gae4ac618eb06b7288e4a14633971320ed">highp_imat2x3</a></td></tr>
64 &lt; <a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gae4ac618eb06b7288e4a14633971320ed">highp_imat2x3</a></td></tr>
6565 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73ca75871a9a43972be9bb4b295b1e3f"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_imat2x4" ref="ga73ca75871a9a43972be9bb4b295b1e3f" args="" -->
6666 typedef <a class="el" href="a00012.html">detail::tmat2x4</a><br class="typebreak"/>
67 &lt; <a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga73ca75871a9a43972be9bb4b295b1e3f">highp_imat2x4</a></td></tr>
67 &lt; <a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga73ca75871a9a43972be9bb4b295b1e3f">highp_imat2x4</a></td></tr>
6868 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1aab5488573c134db709107b0aa45060"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_imat3" ref="ga1aab5488573c134db709107b0aa45060" args="" -->
6969 typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
70 &lt; <a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga1aab5488573c134db709107b0aa45060">highp_imat3</a></td></tr>
70 &lt; <a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga1aab5488573c134db709107b0aa45060">highp_imat3</a></td></tr>
7171 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8e2e34fc5f030a888cff9b9fdf169c01"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_imat3x2" ref="ga8e2e34fc5f030a888cff9b9fdf169c01" args="" -->
7272 typedef <a class="el" href="a00013.html">detail::tmat3x2</a><br class="typebreak"/>
73 &lt; <a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga8e2e34fc5f030a888cff9b9fdf169c01">highp_imat3x2</a></td></tr>
73 &lt; <a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga8e2e34fc5f030a888cff9b9fdf169c01">highp_imat3x2</a></td></tr>
7474 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20a5eb2dc99580c5eee0d1287a81dc71"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_imat3x3" ref="ga20a5eb2dc99580c5eee0d1287a81dc71" args="" -->
7575 typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
76 &lt; <a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga20a5eb2dc99580c5eee0d1287a81dc71">highp_imat3x3</a></td></tr>
76 &lt; <a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga20a5eb2dc99580c5eee0d1287a81dc71">highp_imat3x3</a></td></tr>
7777 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52c1fd71b37cd7534b3ba05cfddf5641"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_imat3x4" ref="ga52c1fd71b37cd7534b3ba05cfddf5641" args="" -->
7878 typedef <a class="el" href="a00015.html">detail::tmat3x4</a><br class="typebreak"/>
79 &lt; <a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga52c1fd71b37cd7534b3ba05cfddf5641">highp_imat3x4</a></td></tr>
79 &lt; <a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga52c1fd71b37cd7534b3ba05cfddf5641">highp_imat3x4</a></td></tr>
8080 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga001cb3722aece6e478d1c013cd561248"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_imat4" ref="ga001cb3722aece6e478d1c013cd561248" args="" -->
8181 typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
82 &lt; <a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga001cb3722aece6e478d1c013cd561248">highp_imat4</a></td></tr>
82 &lt; <a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga001cb3722aece6e478d1c013cd561248">highp_imat4</a></td></tr>
8383 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8d5483e43eaf948445dad0316adfd065"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_imat4x2" ref="ga8d5483e43eaf948445dad0316adfd065" args="" -->
8484 typedef <a class="el" href="a00016.html">detail::tmat4x2</a><br class="typebreak"/>
85 &lt; <a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga8d5483e43eaf948445dad0316adfd065">highp_imat4x2</a></td></tr>
85 &lt; <a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga8d5483e43eaf948445dad0316adfd065">highp_imat4x2</a></td></tr>
8686 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga39096445d642ca381cec94a9dcefa49e"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_imat4x3" ref="ga39096445d642ca381cec94a9dcefa49e" args="" -->
8787 typedef <a class="el" href="a00017.html">detail::tmat4x3</a><br class="typebreak"/>
88 &lt; <a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga39096445d642ca381cec94a9dcefa49e">highp_imat4x3</a></td></tr>
88 &lt; <a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga39096445d642ca381cec94a9dcefa49e">highp_imat4x3</a></td></tr>
8989 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1956c46bca65b5b00c01250e0d5f1de6"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_imat4x4" ref="ga1956c46bca65b5b00c01250e0d5f1de6" args="" -->
9090 typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
91 &lt; <a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga1956c46bca65b5b00c01250e0d5f1de6">highp_imat4x4</a></td></tr>
91 &lt; <a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga1956c46bca65b5b00c01250e0d5f1de6">highp_imat4x4</a></td></tr>
9292 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9917f09e4bbb414e5b10f5e00c7de70d"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_umat2" ref="ga9917f09e4bbb414e5b10f5e00c7de70d" args="" -->
9393 typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
94 &lt; <a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga9917f09e4bbb414e5b10f5e00c7de70d">highp_umat2</a></td></tr>
94 &lt; <a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga9917f09e4bbb414e5b10f5e00c7de70d">highp_umat2</a></td></tr>
9595 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac46ccd4fa290488681c4574e5e562d55"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_umat2x2" ref="gac46ccd4fa290488681c4574e5e562d55" args="" -->
9696 typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
97 &lt; <a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gac46ccd4fa290488681c4574e5e562d55">highp_umat2x2</a></td></tr>
97 &lt; <a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gac46ccd4fa290488681c4574e5e562d55">highp_umat2x2</a></td></tr>
9898 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga81a27f521f29ff4ace4d1e4cde1de2a5"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_umat2x3" ref="ga81a27f521f29ff4ace4d1e4cde1de2a5" args="" -->
9999 typedef <a class="el" href="a00011.html">detail::tmat2x3</a><br class="typebreak"/>
100 &lt; <a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga81a27f521f29ff4ace4d1e4cde1de2a5">highp_umat2x3</a></td></tr>
100 &lt; <a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga81a27f521f29ff4ace4d1e4cde1de2a5">highp_umat2x3</a></td></tr>
101101 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab6c2023040df42564c16a2b464adba9b"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_umat2x4" ref="gab6c2023040df42564c16a2b464adba9b" args="" -->
102102 typedef <a class="el" href="a00012.html">detail::tmat2x4</a><br class="typebreak"/>
103 &lt; <a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gab6c2023040df42564c16a2b464adba9b">highp_umat2x4</a></td></tr>
103 &lt; <a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gab6c2023040df42564c16a2b464adba9b">highp_umat2x4</a></td></tr>
104104 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac7928fd1dbf3decc2463e0044d10ba14"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_umat3" ref="gac7928fd1dbf3decc2463e0044d10ba14" args="" -->
105105 typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
106 &lt; <a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gac7928fd1dbf3decc2463e0044d10ba14">highp_umat3</a></td></tr>
106 &lt; <a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gac7928fd1dbf3decc2463e0044d10ba14">highp_umat3</a></td></tr>
107107 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab9cdf3c2c04d7346cc45b212a904f02d"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_umat3x2" ref="gab9cdf3c2c04d7346cc45b212a904f02d" args="" -->
108108 typedef <a class="el" href="a00013.html">detail::tmat3x2</a><br class="typebreak"/>
109 &lt; <a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gab9cdf3c2c04d7346cc45b212a904f02d">highp_umat3x2</a></td></tr>
109 &lt; <a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gab9cdf3c2c04d7346cc45b212a904f02d">highp_umat3x2</a></td></tr>
110110 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabb4b97694034f2d650dca359db023eaa"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_umat3x3" ref="gabb4b97694034f2d650dca359db023eaa" args="" -->
111111 typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
112 &lt; <a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gabb4b97694034f2d650dca359db023eaa">highp_umat3x3</a></td></tr>
112 &lt; <a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gabb4b97694034f2d650dca359db023eaa">highp_umat3x3</a></td></tr>
113113 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8c7be88fb8d49dd55eb6892da1bf1966"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_umat3x4" ref="ga8c7be88fb8d49dd55eb6892da1bf1966" args="" -->
114114 typedef <a class="el" href="a00015.html">detail::tmat3x4</a><br class="typebreak"/>
115 &lt; <a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga8c7be88fb8d49dd55eb6892da1bf1966">highp_umat3x4</a></td></tr>
115 &lt; <a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga8c7be88fb8d49dd55eb6892da1bf1966">highp_umat3x4</a></td></tr>
116116 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2f29d9ef4636752de31b92a56b44bd8a"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_umat4" ref="ga2f29d9ef4636752de31b92a56b44bd8a" args="" -->
117117 typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
118 &lt; <a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga2f29d9ef4636752de31b92a56b44bd8a">highp_umat4</a></td></tr>
118 &lt; <a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga2f29d9ef4636752de31b92a56b44bd8a">highp_umat4</a></td></tr>
119119 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga84ddf69a6f1912a196c505c4a8fe817b"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_umat4x2" ref="ga84ddf69a6f1912a196c505c4a8fe817b" args="" -->
120120 typedef <a class="el" href="a00016.html">detail::tmat4x2</a><br class="typebreak"/>
121 &lt; <a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga84ddf69a6f1912a196c505c4a8fe817b">highp_umat4x2</a></td></tr>
121 &lt; <a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga84ddf69a6f1912a196c505c4a8fe817b">highp_umat4x2</a></td></tr>
122122 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaba6def08906f182866bd945babf9a5f7"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_umat4x3" ref="gaba6def08906f182866bd945babf9a5f7" args="" -->
123123 typedef <a class="el" href="a00017.html">detail::tmat4x3</a><br class="typebreak"/>
124 &lt; <a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaba6def08906f182866bd945babf9a5f7">highp_umat4x3</a></td></tr>
124 &lt; <a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaba6def08906f182866bd945babf9a5f7">highp_umat4x3</a></td></tr>
125125 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaff8f7574251ea10466c0f31ca1e83f6d"></a><!-- doxytag: member="glm::gtc::matrix_integer::highp_umat4x4" ref="gaff8f7574251ea10466c0f31ca1e83f6d" args="" -->
126126 typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
127 &lt; <a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaff8f7574251ea10466c0f31ca1e83f6d">highp_umat4x4</a></td></tr>
127 &lt; <a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaff8f7574251ea10466c0f31ca1e83f6d">highp_umat4x4</a></td></tr>
128128 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaabe04f9948d4a213bb1c20137de03e01"></a><!-- doxytag: member="glm::gtc::matrix_integer::imat2" ref="gaabe04f9948d4a213bb1c20137de03e01" args="" -->
129 typedef <a class="el" href="a00010.html">mediump_imat2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a></td></tr>
129 typedef <a class="el" href="a00010.html">mediump_imat2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a></td></tr>
130130 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa4732a240522ad9bc28144fda2fc14ec"></a><!-- doxytag: member="glm::gtc::matrix_integer::imat2x2" ref="gaa4732a240522ad9bc28144fda2fc14ec" args="" -->
131 typedef <a class="el" href="a00010.html">mediump_imat2x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a></td></tr>
131 typedef <a class="el" href="a00010.html">mediump_imat2x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a></td></tr>
132132 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3f42dd3d5d94a0fd5706f7ec8dd0c605"></a><!-- doxytag: member="glm::gtc::matrix_integer::imat2x3" ref="ga3f42dd3d5d94a0fd5706f7ec8dd0c605" args="" -->
133 typedef <a class="el" href="a00011.html">mediump_imat2x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a></td></tr>
133 typedef <a class="el" href="a00011.html">mediump_imat2x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a></td></tr>
134134 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9d8faafdca42583d67e792dd038fc668"></a><!-- doxytag: member="glm::gtc::matrix_integer::imat2x4" ref="ga9d8faafdca42583d67e792dd038fc668" args="" -->
135 typedef <a class="el" href="a00012.html">mediump_imat2x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a></td></tr>
135 typedef <a class="el" href="a00012.html">mediump_imat2x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a></td></tr>
136136 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga038f68437155ffa3c2583a15264a8195"></a><!-- doxytag: member="glm::gtc::matrix_integer::imat3" ref="ga038f68437155ffa3c2583a15264a8195" args="" -->
137 typedef <a class="el" href="a00014.html">mediump_imat3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga038f68437155ffa3c2583a15264a8195">imat3</a></td></tr>
137 typedef <a class="el" href="a00014.html">mediump_imat3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga038f68437155ffa3c2583a15264a8195">imat3</a></td></tr>
138138 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7b33bbe4f12c060892bd3cc8d4cd737f"></a><!-- doxytag: member="glm::gtc::matrix_integer::imat3x2" ref="ga7b33bbe4f12c060892bd3cc8d4cd737f" args="" -->
139 typedef <a class="el" href="a00013.html">mediump_imat3x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a></td></tr>
139 typedef <a class="el" href="a00013.html">mediump_imat3x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a></td></tr>
140140 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6aacc960f62e8f7d2fe9d32d5050e7a4"></a><!-- doxytag: member="glm::gtc::matrix_integer::imat3x3" ref="ga6aacc960f62e8f7d2fe9d32d5050e7a4" args="" -->
141 typedef <a class="el" href="a00014.html">mediump_imat3x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a></td></tr>
141 typedef <a class="el" href="a00014.html">mediump_imat3x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a></td></tr>
142142 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e9ce23496d8b08dfc302d4039694b58"></a><!-- doxytag: member="glm::gtc::matrix_integer::imat3x4" ref="ga6e9ce23496d8b08dfc302d4039694b58" args="" -->
143 typedef <a class="el" href="a00015.html">mediump_imat3x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a></td></tr>
143 typedef <a class="el" href="a00015.html">mediump_imat3x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a></td></tr>
144144 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga96b0d26a33b81bb6a60ca0f39682f7eb"></a><!-- doxytag: member="glm::gtc::matrix_integer::imat4" ref="ga96b0d26a33b81bb6a60ca0f39682f7eb" args="" -->
145 typedef <a class="el" href="a00018.html">mediump_imat4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a></td></tr>
145 typedef <a class="el" href="a00018.html">mediump_imat4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a></td></tr>
146146 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8ce7ef51d8b2c1901fa5414deccbc3fa"></a><!-- doxytag: member="glm::gtc::matrix_integer::imat4x2" ref="ga8ce7ef51d8b2c1901fa5414deccbc3fa" args="" -->
147 typedef <a class="el" href="a00016.html">mediump_imat4x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a></td></tr>
147 typedef <a class="el" href="a00016.html">mediump_imat4x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a></td></tr>
148148 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga705ee0bf49d6c3de4404ce2481bf0df5"></a><!-- doxytag: member="glm::gtc::matrix_integer::imat4x3" ref="ga705ee0bf49d6c3de4404ce2481bf0df5" args="" -->
149 typedef <a class="el" href="a00017.html">mediump_imat4x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a></td></tr>
149 typedef <a class="el" href="a00017.html">mediump_imat4x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a></td></tr>
150150 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga43ed5e4f475b6f4cad7cba78f29c405b"></a><!-- doxytag: member="glm::gtc::matrix_integer::imat4x4" ref="ga43ed5e4f475b6f4cad7cba78f29c405b" args="" -->
151 typedef <a class="el" href="a00018.html">mediump_imat4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a></td></tr>
151 typedef <a class="el" href="a00018.html">mediump_imat4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a></td></tr>
152152 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga53ba084d560fbe0a32409b7ad29a405f"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_imat2" ref="ga53ba084d560fbe0a32409b7ad29a405f" args="" -->
153 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga53ba084d560fbe0a32409b7ad29a405f">lowp_imat2</a></td></tr>
153 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga53ba084d560fbe0a32409b7ad29a405f">lowp_imat2</a></td></tr>
154154 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4cb2449be4c36270d0f6c2849f72037c"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_imat2x2" ref="ga4cb2449be4c36270d0f6c2849f72037c" args="" -->
155 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga4cb2449be4c36270d0f6c2849f72037c">lowp_imat2x2</a></td></tr>
155 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga4cb2449be4c36270d0f6c2849f72037c">lowp_imat2x2</a></td></tr>
156156 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad9cf0368a1cd253d87307c9784ea4c56"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_imat2x3" ref="gad9cf0368a1cd253d87307c9784ea4c56" args="" -->
157 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; <a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gad9cf0368a1cd253d87307c9784ea4c56">lowp_imat2x3</a></td></tr>
157 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; <a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gad9cf0368a1cd253d87307c9784ea4c56">lowp_imat2x3</a></td></tr>
158158 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab065fa79d6c42b6df2e261c76b359524"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_imat2x4" ref="gab065fa79d6c42b6df2e261c76b359524" args="" -->
159 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; <a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gab065fa79d6c42b6df2e261c76b359524">lowp_imat2x4</a></td></tr>
159 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; <a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gab065fa79d6c42b6df2e261c76b359524">lowp_imat2x4</a></td></tr>
160160 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga602bbe8185b35c8e02038924c95c526c"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_imat3" ref="ga602bbe8185b35c8e02038924c95c526c" args="" -->
161 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga602bbe8185b35c8e02038924c95c526c">lowp_imat3</a></td></tr>
161 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga602bbe8185b35c8e02038924c95c526c">lowp_imat3</a></td></tr>
162162 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf96385c22d0e6876b8b5c3dcc2e1d91a"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_imat3x2" ref="gaf96385c22d0e6876b8b5c3dcc2e1d91a" args="" -->
163 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; <a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaf96385c22d0e6876b8b5c3dcc2e1d91a">lowp_imat3x2</a></td></tr>
163 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; <a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaf96385c22d0e6876b8b5c3dcc2e1d91a">lowp_imat3x2</a></td></tr>
164164 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4da80362c97eb9abb48cedc5a444daf6"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_imat3x3" ref="ga4da80362c97eb9abb48cedc5a444daf6" args="" -->
165 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga4da80362c97eb9abb48cedc5a444daf6">lowp_imat3x3</a></td></tr>
165 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga4da80362c97eb9abb48cedc5a444daf6">lowp_imat3x3</a></td></tr>
166166 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7114fd267da92d44c98a440704e0be79"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_imat3x4" ref="ga7114fd267da92d44c98a440704e0be79" args="" -->
167 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; <a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga7114fd267da92d44c98a440704e0be79">lowp_imat3x4</a></td></tr>
167 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; <a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga7114fd267da92d44c98a440704e0be79">lowp_imat3x4</a></td></tr>
168168 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e0f075c487aee31df91d9dbd71db88d"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_imat4" ref="ga6e0f075c487aee31df91d9dbd71db88d" args="" -->
169 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga6e0f075c487aee31df91d9dbd71db88d">lowp_imat4</a></td></tr>
169 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga6e0f075c487aee31df91d9dbd71db88d">lowp_imat4</a></td></tr>
170170 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab9357fc7eb98b919fba7f1656fd548a8"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_imat4x2" ref="gab9357fc7eb98b919fba7f1656fd548a8" args="" -->
171 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; <a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gab9357fc7eb98b919fba7f1656fd548a8">lowp_imat4x2</a></td></tr>
171 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; <a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gab9357fc7eb98b919fba7f1656fd548a8">lowp_imat4x2</a></td></tr>
172172 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac21d66a9936eb54d12b8e57b08e589bc"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_imat4x3" ref="gac21d66a9936eb54d12b8e57b08e589bc" args="" -->
173 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; <a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gac21d66a9936eb54d12b8e57b08e589bc">lowp_imat4x3</a></td></tr>
173 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; <a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gac21d66a9936eb54d12b8e57b08e589bc">lowp_imat4x3</a></td></tr>
174174 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad30fba4d4c94eda205b3f768274f0893"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_imat4x4" ref="gad30fba4d4c94eda205b3f768274f0893" args="" -->
175 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gad30fba4d4c94eda205b3f768274f0893">lowp_imat4x4</a></td></tr>
175 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gad30fba4d4c94eda205b3f768274f0893">lowp_imat4x4</a></td></tr>
176176 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf5fd055eb478c690723f3db742fed7ee"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_umat2" ref="gaf5fd055eb478c690723f3db742fed7ee" args="" -->
177177 typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
178 &lt; <a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaf5fd055eb478c690723f3db742fed7ee">lowp_umat2</a></td></tr>
178 &lt; <a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaf5fd055eb478c690723f3db742fed7ee">lowp_umat2</a></td></tr>
179179 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2041f6554b1e8ed2a6b74cffa2b8d917"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_umat2x2" ref="ga2041f6554b1e8ed2a6b74cffa2b8d917" args="" -->
180180 typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
181 &lt; <a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga2041f6554b1e8ed2a6b74cffa2b8d917">lowp_umat2x2</a></td></tr>
181 &lt; <a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga2041f6554b1e8ed2a6b74cffa2b8d917">lowp_umat2x2</a></td></tr>
182182 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2831bb6c3ed95cfefc2fffd315d31904"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_umat2x3" ref="ga2831bb6c3ed95cfefc2fffd315d31904" args="" -->
183183 typedef <a class="el" href="a00011.html">detail::tmat2x3</a><br class="typebreak"/>
184 &lt; <a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga2831bb6c3ed95cfefc2fffd315d31904">lowp_umat2x3</a></td></tr>
184 &lt; <a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga2831bb6c3ed95cfefc2fffd315d31904">lowp_umat2x3</a></td></tr>
185185 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7e15349e63fbb93ce8ab047a02f0fe73"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_umat2x4" ref="ga7e15349e63fbb93ce8ab047a02f0fe73" args="" -->
186186 typedef <a class="el" href="a00012.html">detail::tmat2x4</a><br class="typebreak"/>
187 &lt; <a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga7e15349e63fbb93ce8ab047a02f0fe73">lowp_umat2x4</a></td></tr>
187 &lt; <a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga7e15349e63fbb93ce8ab047a02f0fe73">lowp_umat2x4</a></td></tr>
188188 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9b9e4dbbb43103f29e432c611ba2a8e9"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_umat3" ref="ga9b9e4dbbb43103f29e432c611ba2a8e9" args="" -->
189189 typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
190 &lt; <a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga9b9e4dbbb43103f29e432c611ba2a8e9">lowp_umat3</a></td></tr>
190 &lt; <a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga9b9e4dbbb43103f29e432c611ba2a8e9">lowp_umat3</a></td></tr>
191191 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9bb2ec92ae5a588cc2f2487a2b39091a"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_umat3x2" ref="ga9bb2ec92ae5a588cc2f2487a2b39091a" args="" -->
192192 typedef <a class="el" href="a00013.html">detail::tmat3x2</a><br class="typebreak"/>
193 &lt; <a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga9bb2ec92ae5a588cc2f2487a2b39091a">lowp_umat3x2</a></td></tr>
193 &lt; <a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga9bb2ec92ae5a588cc2f2487a2b39091a">lowp_umat3x2</a></td></tr>
194194 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0cd96f6db0335fec76d521c04e55aa72"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_umat3x3" ref="ga0cd96f6db0335fec76d521c04e55aa72" args="" -->
195195 typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
196 &lt; <a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga0cd96f6db0335fec76d521c04e55aa72">lowp_umat3x3</a></td></tr>
196 &lt; <a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga0cd96f6db0335fec76d521c04e55aa72">lowp_umat3x3</a></td></tr>
197197 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga74afefa6d98ed4013b0b8973aedaa3c3"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_umat3x4" ref="ga74afefa6d98ed4013b0b8973aedaa3c3" args="" -->
198198 typedef <a class="el" href="a00015.html">detail::tmat3x4</a><br class="typebreak"/>
199 &lt; <a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga74afefa6d98ed4013b0b8973aedaa3c3">lowp_umat3x4</a></td></tr>
199 &lt; <a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga74afefa6d98ed4013b0b8973aedaa3c3">lowp_umat3x4</a></td></tr>
200200 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabe8174acf8b97bba515e77b050dee149"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_umat4" ref="gabe8174acf8b97bba515e77b050dee149" args="" -->
201201 typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
202 &lt; <a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gabe8174acf8b97bba515e77b050dee149">lowp_umat4</a></td></tr>
202 &lt; <a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gabe8174acf8b97bba515e77b050dee149">lowp_umat4</a></td></tr>
203203 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6c87f764b7e37b732701d12a5dd99b60"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_umat4x2" ref="ga6c87f764b7e37b732701d12a5dd99b60" args="" -->
204204 typedef <a class="el" href="a00016.html">detail::tmat4x2</a><br class="typebreak"/>
205 &lt; <a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga6c87f764b7e37b732701d12a5dd99b60">lowp_umat4x2</a></td></tr>
205 &lt; <a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga6c87f764b7e37b732701d12a5dd99b60">lowp_umat4x2</a></td></tr>
206206 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf0ec78e818b558be26ab100630bb1a2f"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_umat4x3" ref="gaf0ec78e818b558be26ab100630bb1a2f" args="" -->
207207 typedef <a class="el" href="a00017.html">detail::tmat4x3</a><br class="typebreak"/>
208 &lt; <a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaf0ec78e818b558be26ab100630bb1a2f">lowp_umat4x3</a></td></tr>
208 &lt; <a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaf0ec78e818b558be26ab100630bb1a2f">lowp_umat4x3</a></td></tr>
209209 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8afd2898b4e81ddfcf4826a1f09261df"></a><!-- doxytag: member="glm::gtc::matrix_integer::lowp_umat4x4" ref="ga8afd2898b4e81ddfcf4826a1f09261df" args="" -->
210210 typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
211 &lt; <a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga8afd2898b4e81ddfcf4826a1f09261df">lowp_umat4x4</a></td></tr>
211 &lt; <a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga8afd2898b4e81ddfcf4826a1f09261df">lowp_umat4x4</a></td></tr>
212212 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga143ecf702b39ac7730009796b5d61b48"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_imat2" ref="ga143ecf702b39ac7730009796b5d61b48" args="" -->
213213 typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
214 &lt; <a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga143ecf702b39ac7730009796b5d61b48">mediump_imat2</a></td></tr>
214 &lt; <a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga143ecf702b39ac7730009796b5d61b48">mediump_imat2</a></td></tr>
215215 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga14f7ebf70ea05156698a0cb403dff827"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_imat2x2" ref="ga14f7ebf70ea05156698a0cb403dff827" args="" -->
216216 typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
217 &lt; <a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga14f7ebf70ea05156698a0cb403dff827">mediump_imat2x2</a></td></tr>
217 &lt; <a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga14f7ebf70ea05156698a0cb403dff827">mediump_imat2x2</a></td></tr>
218218 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga971f0d97d5aa82d96885b23132260bc5"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_imat2x3" ref="ga971f0d97d5aa82d96885b23132260bc5" args="" -->
219219 typedef <a class="el" href="a00011.html">detail::tmat2x3</a><br class="typebreak"/>
220 &lt; <a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga971f0d97d5aa82d96885b23132260bc5">mediump_imat2x3</a></td></tr>
220 &lt; <a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga971f0d97d5aa82d96885b23132260bc5">mediump_imat2x3</a></td></tr>
221221 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa912743dd1649cdc2231ad08c7b3ad83"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_imat2x4" ref="gaa912743dd1649cdc2231ad08c7b3ad83" args="" -->
222222 typedef <a class="el" href="a00012.html">detail::tmat2x4</a><br class="typebreak"/>
223 &lt; <a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaa912743dd1649cdc2231ad08c7b3ad83">mediump_imat2x4</a></td></tr>
223 &lt; <a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaa912743dd1649cdc2231ad08c7b3ad83">mediump_imat2x4</a></td></tr>
224224 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga88879288540afc046b8dcf9574f39599"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_imat3" ref="ga88879288540afc046b8dcf9574f39599" args="" -->
225225 typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
226 &lt; <a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga88879288540afc046b8dcf9574f39599">mediump_imat3</a></td></tr>
226 &lt; <a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga88879288540afc046b8dcf9574f39599">mediump_imat3</a></td></tr>
227227 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga846e335231d6d156ce1dff7ee8d247c0"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_imat3x2" ref="ga846e335231d6d156ce1dff7ee8d247c0" args="" -->
228228 typedef <a class="el" href="a00013.html">detail::tmat3x2</a><br class="typebreak"/>
229 &lt; <a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga846e335231d6d156ce1dff7ee8d247c0">mediump_imat3x2</a></td></tr>
229 &lt; <a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga846e335231d6d156ce1dff7ee8d247c0">mediump_imat3x2</a></td></tr>
230230 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae49f27a71c9643dc6e852d29de1a7337"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_imat3x3" ref="gae49f27a71c9643dc6e852d29de1a7337" args="" -->
231231 typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
232 &lt; <a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gae49f27a71c9643dc6e852d29de1a7337">mediump_imat3x3</a></td></tr>
232 &lt; <a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gae49f27a71c9643dc6e852d29de1a7337">mediump_imat3x3</a></td></tr>
233233 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5c32e78899b8ddc6d38a46a059dea62b"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_imat3x4" ref="ga5c32e78899b8ddc6d38a46a059dea62b" args="" -->
234234 typedef <a class="el" href="a00015.html">detail::tmat3x4</a><br class="typebreak"/>
235 &lt; <a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga5c32e78899b8ddc6d38a46a059dea62b">mediump_imat3x4</a></td></tr>
235 &lt; <a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga5c32e78899b8ddc6d38a46a059dea62b">mediump_imat3x4</a></td></tr>
236236 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8f1cc05b68f13365c227d40cb52e6a6d"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_imat4" ref="ga8f1cc05b68f13365c227d40cb52e6a6d" args="" -->
237237 typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
238 &lt; <a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga8f1cc05b68f13365c227d40cb52e6a6d">mediump_imat4</a></td></tr>
238 &lt; <a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga8f1cc05b68f13365c227d40cb52e6a6d">mediump_imat4</a></td></tr>
239239 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafa1f18250380f03bcdba92af051cf436"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_imat4x2" ref="gafa1f18250380f03bcdba92af051cf436" args="" -->
240240 typedef <a class="el" href="a00016.html">detail::tmat4x2</a><br class="typebreak"/>
241 &lt; <a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gafa1f18250380f03bcdba92af051cf436">mediump_imat4x2</a></td></tr>
241 &lt; <a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gafa1f18250380f03bcdba92af051cf436">mediump_imat4x2</a></td></tr>
242242 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6ce6435a08574b6d53933bce0fb99aa9"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_imat4x3" ref="ga6ce6435a08574b6d53933bce0fb99aa9" args="" -->
243243 typedef <a class="el" href="a00017.html">detail::tmat4x3</a><br class="typebreak"/>
244 &lt; <a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga6ce6435a08574b6d53933bce0fb99aa9">mediump_imat4x3</a></td></tr>
244 &lt; <a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga6ce6435a08574b6d53933bce0fb99aa9">mediump_imat4x3</a></td></tr>
245245 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad548e325172bf111285d710e0aedada6"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_imat4x4" ref="gad548e325172bf111285d710e0aedada6" args="" -->
246246 typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
247 &lt; <a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gad548e325172bf111285d710e0aedada6">mediump_imat4x4</a></td></tr>
247 &lt; <a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gad548e325172bf111285d710e0aedada6">mediump_imat4x4</a></td></tr>
248248 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga248ef3b18ce8e7974a1b04b9e10b0d70"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_umat2" ref="ga248ef3b18ce8e7974a1b04b9e10b0d70" args="" -->
249249 typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
250 &lt; <a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga248ef3b18ce8e7974a1b04b9e10b0d70">mediump_umat2</a></td></tr>
250 &lt; <a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga248ef3b18ce8e7974a1b04b9e10b0d70">mediump_umat2</a></td></tr>
251251 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4deef9aaf20528b594af15e0d8a8394a"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_umat2x2" ref="ga4deef9aaf20528b594af15e0d8a8394a" args="" -->
252252 typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
253 &lt; <a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga4deef9aaf20528b594af15e0d8a8394a">mediump_umat2x2</a></td></tr>
253 &lt; <a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga4deef9aaf20528b594af15e0d8a8394a">mediump_umat2x2</a></td></tr>
254254 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga57dcd02ce5c008214d1ac033d62237f4"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_umat2x3" ref="ga57dcd02ce5c008214d1ac033d62237f4" args="" -->
255255 typedef <a class="el" href="a00011.html">detail::tmat2x3</a><br class="typebreak"/>
256 &lt; <a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga57dcd02ce5c008214d1ac033d62237f4">mediump_umat2x3</a></td></tr>
256 &lt; <a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga57dcd02ce5c008214d1ac033d62237f4">mediump_umat2x3</a></td></tr>
257257 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa0005c075583fa42425573df59ae47b7"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_umat2x4" ref="gaa0005c075583fa42425573df59ae47b7" args="" -->
258258 typedef <a class="el" href="a00012.html">detail::tmat2x4</a><br class="typebreak"/>
259 &lt; <a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaa0005c075583fa42425573df59ae47b7">mediump_umat2x4</a></td></tr>
259 &lt; <a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaa0005c075583fa42425573df59ae47b7">mediump_umat2x4</a></td></tr>
260260 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa802202181dac79e9dcd7848af5b57df"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_umat3" ref="gaa802202181dac79e9dcd7848af5b57df" args="" -->
261261 typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
262 &lt; <a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaa802202181dac79e9dcd7848af5b57df">mediump_umat3</a></td></tr>
262 &lt; <a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaa802202181dac79e9dcd7848af5b57df">mediump_umat3</a></td></tr>
263263 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac65dc743ab57f960c9f77eb817a2b375"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_umat3x2" ref="gac65dc743ab57f960c9f77eb817a2b375" args="" -->
264264 typedef <a class="el" href="a00013.html">detail::tmat3x2</a><br class="typebreak"/>
265 &lt; <a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gac65dc743ab57f960c9f77eb817a2b375">mediump_umat3x2</a></td></tr>
265 &lt; <a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gac65dc743ab57f960c9f77eb817a2b375">mediump_umat3x2</a></td></tr>
266266 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga69d2278480a495af358ba198cdd708d1"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_umat3x3" ref="ga69d2278480a495af358ba198cdd708d1" args="" -->
267267 typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
268 &lt; <a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga69d2278480a495af358ba198cdd708d1">mediump_umat3x3</a></td></tr>
268 &lt; <a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga69d2278480a495af358ba198cdd708d1">mediump_umat3x3</a></td></tr>
269269 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga65ed7a18729feae1ca61a8ab573fe5db"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_umat3x4" ref="ga65ed7a18729feae1ca61a8ab573fe5db" args="" -->
270270 typedef <a class="el" href="a00015.html">detail::tmat3x4</a><br class="typebreak"/>
271 &lt; <a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga65ed7a18729feae1ca61a8ab573fe5db">mediump_umat3x4</a></td></tr>
271 &lt; <a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga65ed7a18729feae1ca61a8ab573fe5db">mediump_umat3x4</a></td></tr>
272272 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3981b8297512d35fe39413149e3f57ad"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_umat4" ref="ga3981b8297512d35fe39413149e3f57ad" args="" -->
273273 typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
274 &lt; <a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga3981b8297512d35fe39413149e3f57ad">mediump_umat4</a></td></tr>
274 &lt; <a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga3981b8297512d35fe39413149e3f57ad">mediump_umat4</a></td></tr>
275275 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabab2363c9e7691ba23319174dd3b211e"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_umat4x2" ref="gabab2363c9e7691ba23319174dd3b211e" args="" -->
276276 typedef <a class="el" href="a00016.html">detail::tmat4x2</a><br class="typebreak"/>
277 &lt; <a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gabab2363c9e7691ba23319174dd3b211e">mediump_umat4x2</a></td></tr>
277 &lt; <a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gabab2363c9e7691ba23319174dd3b211e">mediump_umat4x2</a></td></tr>
278278 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeb0dd2f67c17909a8747089bee0cf301"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_umat4x3" ref="gaeb0dd2f67c17909a8747089bee0cf301" args="" -->
279279 typedef <a class="el" href="a00017.html">detail::tmat4x3</a><br class="typebreak"/>
280 &lt; <a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaeb0dd2f67c17909a8747089bee0cf301">mediump_umat4x3</a></td></tr>
280 &lt; <a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaeb0dd2f67c17909a8747089bee0cf301">mediump_umat4x3</a></td></tr>
281281 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad8086f60b4190c4b567bded1d0fb4edb"></a><!-- doxytag: member="glm::gtc::matrix_integer::mediump_umat4x4" ref="gad8086f60b4190c4b567bded1d0fb4edb" args="" -->
282282 typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
283 &lt; <a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gad8086f60b4190c4b567bded1d0fb4edb">mediump_umat4x4</a></td></tr>
283 &lt; <a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gad8086f60b4190c4b567bded1d0fb4edb">mediump_umat4x4</a></td></tr>
284284 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4cae85566f900debf930c41944b64691"></a><!-- doxytag: member="glm::gtc::matrix_integer::umat2" ref="ga4cae85566f900debf930c41944b64691" args="" -->
285 typedef <a class="el" href="a00010.html">mediump_umat2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga4cae85566f900debf930c41944b64691">umat2</a></td></tr>
285 typedef <a class="el" href="a00010.html">mediump_umat2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga4cae85566f900debf930c41944b64691">umat2</a></td></tr>
286286 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabf8acdd33ce8951051edbca5200898aa"></a><!-- doxytag: member="glm::gtc::matrix_integer::umat2x2" ref="gabf8acdd33ce8951051edbca5200898aa" args="" -->
287 typedef <a class="el" href="a00010.html">mediump_umat2x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a></td></tr>
287 typedef <a class="el" href="a00010.html">mediump_umat2x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a></td></tr>
288288 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1870da7578d5022b973a83155d386ab3"></a><!-- doxytag: member="glm::gtc::matrix_integer::umat2x3" ref="ga1870da7578d5022b973a83155d386ab3" args="" -->
289 typedef <a class="el" href="a00011.html">mediump_umat2x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a></td></tr>
289 typedef <a class="el" href="a00011.html">mediump_umat2x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a></td></tr>
290290 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga57936a3998e992370e59a223e0ee4fd4"></a><!-- doxytag: member="glm::gtc::matrix_integer::umat2x4" ref="ga57936a3998e992370e59a223e0ee4fd4" args="" -->
291 typedef <a class="el" href="a00012.html">mediump_umat2x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a></td></tr>
291 typedef <a class="el" href="a00012.html">mediump_umat2x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a></td></tr>
292292 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5085e3ff02abbac5e537eb7b89ab63b6"></a><!-- doxytag: member="glm::gtc::matrix_integer::umat3" ref="ga5085e3ff02abbac5e537eb7b89ab63b6" args="" -->
293 typedef <a class="el" href="a00014.html">mediump_umat3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a></td></tr>
293 typedef <a class="el" href="a00014.html">mediump_umat3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a></td></tr>
294294 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9cd7fa637a4a6788337f45231fad9e1a"></a><!-- doxytag: member="glm::gtc::matrix_integer::umat3x2" ref="ga9cd7fa637a4a6788337f45231fad9e1a" args="" -->
295 typedef <a class="el" href="a00013.html">mediump_umat3x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a></td></tr>
295 typedef <a class="el" href="a00013.html">mediump_umat3x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a></td></tr>
296296 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1f2cfcf3357db0cdf31fcb15e3c6bafb"></a><!-- doxytag: member="glm::gtc::matrix_integer::umat3x3" ref="ga1f2cfcf3357db0cdf31fcb15e3c6bafb" args="" -->
297 typedef <a class="el" href="a00014.html">mediump_umat3x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a></td></tr>
297 typedef <a class="el" href="a00014.html">mediump_umat3x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a></td></tr>
298298 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae7c78ff3fc4309605ab0fa186c8d48ba"></a><!-- doxytag: member="glm::gtc::matrix_integer::umat3x4" ref="gae7c78ff3fc4309605ab0fa186c8d48ba" args="" -->
299 typedef <a class="el" href="a00015.html">mediump_umat3x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a></td></tr>
299 typedef <a class="el" href="a00015.html">mediump_umat3x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a></td></tr>
300300 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38bc7bb6494e344185df596deeb4544c"></a><!-- doxytag: member="glm::gtc::matrix_integer::umat4" ref="ga38bc7bb6494e344185df596deeb4544c" args="" -->
301 typedef <a class="el" href="a00018.html">mediump_umat4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a></td></tr>
301 typedef <a class="el" href="a00018.html">mediump_umat4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a></td></tr>
302302 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga70fa2d05896aa83cbc8c07672a429b53"></a><!-- doxytag: member="glm::gtc::matrix_integer::umat4x2" ref="ga70fa2d05896aa83cbc8c07672a429b53" args="" -->
303 typedef <a class="el" href="a00016.html">mediump_umat4x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a></td></tr>
303 typedef <a class="el" href="a00016.html">mediump_umat4x2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a></td></tr>
304304 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga87581417945411f75cb31dd6ca1dba98"></a><!-- doxytag: member="glm::gtc::matrix_integer::umat4x3" ref="ga87581417945411f75cb31dd6ca1dba98" args="" -->
305 typedef <a class="el" href="a00017.html">mediump_umat4x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a></td></tr>
305 typedef <a class="el" href="a00017.html">mediump_umat4x3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a></td></tr>
306306 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf72e6d399c42985db6872c50f53d7eb8"></a><!-- doxytag: member="glm::gtc::matrix_integer::umat4x4" ref="gaf72e6d399c42985db6872c50f53d7eb8" args="" -->
307 typedef <a class="el" href="a00018.html">mediump_umat4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a></td></tr>
307 typedef <a class="el" href="a00018.html">mediump_umat4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a></td></tr>
308308 </table>
309309 <hr/><a name="_details"></a><h2>Detailed Description</h2>
310 <div class="textblock"><p>GLM_GTC_matrix_integer extension: Add integer matrices. </p>
310 <div class="textblock"><p>&lt; GLM_GTC_matrix_integer extension: Add integer matrices </p>
311311 </div></div>
312312 <hr class="footer"/><address class="footer"><small>Generated by&#160;
313313 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00158.html">gtc</a> </li>
3939 <li class="navelem"><a class="el" href="a00162.html">matrix_inverse</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTC_matrix_inverse extension: Inverse matrix functions.
51 <p>&lt; GLM_GTC_matrix_inverse extension: Inverse matrix functions
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#gade90330b2e6ef1b27371498cab1c38da">affineInverse</a> (genType const &amp;m)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00242.html#gade90330b2e6ef1b27371498cab1c38da">affineInverse</a> (genType const &amp;m)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
5959 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
60 genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga1df67bb7d1c4c89484ac57c5cc09c7a3">inverseTranspose</a> (genType const &amp;m)</td></tr>
60 genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00242.html#ga1df67bb7d1c4c89484ac57c5cc09c7a3">inverseTranspose</a> (genType const &amp;m)</td></tr>
6161 </table>
6262 <hr/><a name="_details"></a><h2>Detailed Description</h2>
63 <div class="textblock"><p>GLM_GTC_matrix_inverse extension: Inverse matrix functions. </p>
63 <div class="textblock"><p>&lt; GLM_GTC_matrix_inverse extension: Inverse matrix functions </p>
6464 </div></div>
6565 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6666 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00158.html">gtc</a> </li>
3939 <li class="navelem"><a class="el" href="a00163.html">matrix_transform</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTC_matrix_transform extension: Add transformation matrices.
51 <p>&lt; GLM_GTC_matrix_transform extension: Add transformation matrices
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga517623bf6344a9e276b877366143116a">frustum</a> (T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top, T const &amp;nearVal, T const &amp;farVal)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga517623bf6344a9e276b877366143116a">frustum</a> (T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top, T const &amp;nearVal, T const &amp;farVal)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gab8bb0d61dfe8a35df79ee3ccc6dd9afe">infinitePerspective</a> (T fovy, T aspect, T zNear)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#gab8bb0d61dfe8a35df79ee3ccc6dd9afe">infinitePerspective</a> (T fovy, T aspect, T zNear)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga2d6b6c381f047ea4d9ca4145fed9edd5">lookAt</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;eye, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;center, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;up)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga2d6b6c381f047ea4d9ca4145fed9edd5">lookAt</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;eye, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;center, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;up)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga71777a3b1d4fe1729cccf6eda05c8127">ortho</a> (T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga71777a3b1d4fe1729cccf6eda05c8127">ortho</a> (T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top)</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gad25e5b029ebefac5b657861378c17aa8">ortho</a> (T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top, T const &amp;zNear, T const &amp;zFar)</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#gad25e5b029ebefac5b657861378c17aa8">ortho</a> (T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top, T const &amp;zNear, T const &amp;zFar)</td></tr>
6666 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga1bb3652e43f824d8c1dd5b9e60c80437">perspective</a> (T const &amp;fovy, T const &amp;aspect, T const &amp;zNear, T const &amp;zFar)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga1bb3652e43f824d8c1dd5b9e60c80437">perspective</a> (T const &amp;fovy, T const &amp;aspect, T const &amp;zNear, T const &amp;zFar)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga2d4fab691ace1abbffb3cdd4cc2316e9">perspectiveFov</a> (valType const &amp;fov, valType const &amp;width, valType const &amp;height, valType const &amp;zNear, valType const &amp;zFar)</td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga2d4fab691ace1abbffb3cdd4cc2316e9">perspectiveFov</a> (valType const &amp;fov, valType const &amp;width, valType const &amp;height, valType const &amp;zNear, valType const &amp;zFar)</td></tr>
7070 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga9ebc45c333c8ec63c5047d6c1fcb9415">pickMatrix</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; const &amp;center, <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; const &amp;delta, <a class="el" href="a00022.html">detail::tvec4</a>&lt; U &gt; const &amp;viewport)</td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga9ebc45c333c8ec63c5047d6c1fcb9415">pickMatrix</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; const &amp;center, <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; const &amp;delta, <a class="el" href="a00022.html">detail::tvec4</a>&lt; U &gt; const &amp;viewport)</td></tr>
7272 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga30e98d64189bae49582de8373de9f09f">project</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;obj, <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;model, <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;proj, <a class="el" href="a00022.html">detail::tvec4</a>&lt; U &gt; const &amp;viewport)</td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga30e98d64189bae49582de8373de9f09f">project</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;obj, <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;model, <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;proj, <a class="el" href="a00022.html">detail::tvec4</a>&lt; U &gt; const &amp;viewport)</td></tr>
7474 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga48168ff70412019857ceb28b3b2b1f5e">rotate</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m, T const &amp;angle, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v)</td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga48168ff70412019857ceb28b3b2b1f5e">rotate</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m, T const &amp;angle, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v)</td></tr>
7676 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga6da77ee2c33d0d33de557a37ff35b197">scale</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v)</td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga6da77ee2c33d0d33de557a37ff35b197">scale</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v)</td></tr>
7878 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga4683c446c8432476750ade56f2537397">translate</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v)</td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga4683c446c8432476750ade56f2537397">translate</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v)</td></tr>
8080 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
81 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gac257959595078f003d6a0e4be6f9a2eb">tweakedInfinitePerspective</a> (T fovy, T aspect, T zNear)</td></tr>
81 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#gac257959595078f003d6a0e4be6f9a2eb">tweakedInfinitePerspective</a> (T fovy, T aspect, T zNear)</td></tr>
8282 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
83 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gac38d611231b15799a0c06c54ff1ede43">unProject</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;win, <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;model, <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;proj, <a class="el" href="a00022.html">detail::tvec4</a>&lt; U &gt; const &amp;viewport)</td></tr>
83 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#gac38d611231b15799a0c06c54ff1ede43">unProject</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;win, <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;model, <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;proj, <a class="el" href="a00022.html">detail::tvec4</a>&lt; U &gt; const &amp;viewport)</td></tr>
8484 </table>
8585 <hr/><a name="_details"></a><h2>Detailed Description</h2>
86 <div class="textblock"><p>GLM_GTC_matrix_transform extension: Add transformation matrices. </p>
86 <div class="textblock"><p>&lt; GLM_GTC_matrix_transform extension: Add transformation matrices </p>
8787 </div></div>
8888 <hr class="footer"/><address class="footer"><small>Generated by&#160;
8989 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00158.html">gtc</a> </li>
3939 <li class="navelem"><a class="el" href="a00164.html">quaternion</a> </li>
4040 </ul>
4949 </div>
5050 <div class="contents">
5151
52 <p>GLM_GTC_quaternion extension: Quaternion types and functions.
52 <p>&lt; GLM_GTC_quaternion extension: Quaternion types and functions
5353 <a href="#_details">More...</a></p>
5454 <table class="memberdecls">
5555 <tr><td colspan="2"><h2><a name="typedef-members"></a>
5656 Typedefs</h2></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00019.html">detail::tquat</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga5428321324094c7170d6133c8139d255">dquat</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00019.html">detail::tquat</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaae07c293efbe1c530ff18044a15fe662">fquat</a></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00019.html">detail::tquat</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00244.html#ga5428321324094c7170d6133c8139d255">dquat</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00019.html">detail::tquat</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00244.html#gaae07c293efbe1c530ff18044a15fe662">fquat</a></td></tr>
5959 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00019.html">detail::tquat</a><br class="typebreak"/>
60 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga552e75db1669a7a86b59070d4efd6941">hquat</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00019.html">detail::tquat</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga60408579db470456070a3336295625a7">quat</a></td></tr>
60 &lt; <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00244.html#ga8a7c2c751ad30db9ec4268a6b7d99f6c">highp_quat</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00019.html">detail::tquat</a><br class="typebreak"/>
62 &lt; <a class="el" href="a00009.html">detail::thalf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00244.html#ga552e75db1669a7a86b59070d4efd6941">hquat</a></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00019.html">detail::tquat</a>&lt; <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00244.html#ga5acd0f3e9f9e3c0e6577440443ec4594">lowp_quat</a></td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00019.html">detail::tquat</a><br class="typebreak"/>
65 &lt; <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00244.html#gae93fe73ea5fe5e2150c2eb0641394dc8">mediump_quat</a></td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00019.html">detail::tquat</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00244.html#ga60408579db470456070a3336295625a7">quat</a></td></tr>
6267 <tr><td colspan="2"><h2><a name="func-members"></a>
6368 Functions</h2></td></tr>
6469 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#gac66280c86e8efa619ad7dddb2d475aa7">conjugate</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q)</td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gac66280c86e8efa619ad7dddb2d475aa7">conjugate</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q)</td></tr>
6671 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED <a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#ga6fe2d33aa0cdf188ab362355ad4108c4">cross</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q1, <a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q2)</td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED <a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga6fe2d33aa0cdf188ab362355ad4108c4">cross</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q1, <a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q2)</td></tr>
6873 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#gaae0285ab092999b98c4f4c8455eeee9f">dot</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q1, <a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q2)</td></tr>
74 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gaae0285ab092999b98c4f4c8455eeee9f">dot</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q1, <a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q2)</td></tr>
7075 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#ga12e7d58d287f181ec2ebf47bc6af6c5c">inverse</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q)</td></tr>
76 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga12e7d58d287f181ec2ebf47bc6af6c5c">inverse</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q)</td></tr>
7277 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#gabb546279ee6acebe3fe64dce79e7e9f0">length</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q)</td></tr>
78 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gabb546279ee6acebe3fe64dce79e7e9f0">length</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q)</td></tr>
7479 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#ga38702707009c743e9f304aadc25aeeeb">mat3_cast</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;x)</td></tr>
80 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga38702707009c743e9f304aadc25aeeeb">mat3_cast</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;x)</td></tr>
7681 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#gae2d14d52f9fef3da00cf867f9e2e3dfa">mat4_cast</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;x)</td></tr>
82 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gae2d14d52f9fef3da00cf867f9e2e3dfa">mat4_cast</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;x)</td></tr>
7883 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#ga99e0097254662e3d4d5859fa329762ca">mix</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;x, <a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;y, typename <a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;::value_type const &amp;a)</td></tr>
84 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga7cacada583bca8e51e9c67f9cd7e69cb">mix</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;x, <a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;y, T const &amp;a)</td></tr>
8085 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
81 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#gacca9518d4cb79922ccbcd2d01e886421">normalize</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q)</td></tr>
86 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gacca9518d4cb79922ccbcd2d01e886421">normalize</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q)</td></tr>
8287 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
83 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#ga188746bbede6cf3cee5337f1f1c6da5b">quat_cast</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;x)</td></tr>
88 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga188746bbede6cf3cee5337f1f1c6da5b">quat_cast</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;x)</td></tr>
8489 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
85 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#ga9a8fa3c0a776ce21fde307d94f5a5a52">quat_cast</a> (<a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; const &amp;x)</td></tr>
90 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga9a8fa3c0a776ce21fde307d94f5a5a52">quat_cast</a> (<a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; const &amp;x)</td></tr>
8691 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
87 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#ga98c5928aefea9c200a285a5f1c3a0da5">rotate</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q, typename <a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;::value_type const &amp;angle, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v)</td></tr>
92 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga98c5928aefea9c200a285a5f1c3a0da5">rotate</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;q, typename <a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;::value_type const &amp;angle, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v)</td></tr>
8893 </table>
8994 <hr/><a name="_details"></a><h2>Detailed Description</h2>
90 <div class="textblock"><p>GLM_GTC_quaternion extension: Quaternion types and functions. </p>
95 <div class="textblock"><p>&lt; GLM_GTC_quaternion extension: Quaternion types and functions </p>
9196 </div></div>
9297 <hr class="footer"/><address class="footer"><small>Generated by&#160;
9398 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00158.html">gtc</a> </li>
3939 <li class="navelem"><a class="el" href="a00165.html">swizzle</a> </li>
4040 </ul>
4646 </div>
4747 <div class="contents">
4848
49 <p>GLM_GTC_swizzle extension.
49 <p>&lt; GLM_GTC_swizzle extension
5050 <a href="#_details">More...</a></p>
5151 <table class="memberdecls">
5252 </table>
5353 <hr/><a name="_details"></a><h2>Detailed Description</h2>
54 <div class="textblock"><p>GLM_GTC_swizzle extension. </p>
54 <div class="textblock"><p>&lt; GLM_GTC_swizzle extension </p>
5555 </div></div>
5656 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00158.html">gtc</a> </li>
3939 <li class="navelem"><a class="el" href="a00166.html">type_precision</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTC_type_precision extension: Defined types with specific size.
51 <p>&lt; GLM_GTC_type_precision extension: Defined types with specific size.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="typedef-members"></a>
5555 Typedefs</h2></td></tr>
5656 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3ca1b6511bcc12516b5fd76c7976f01b"></a><!-- doxytag: member="glm::gtc::type_precision::f16" ref="ga3ca1b6511bcc12516b5fd76c7976f01b" args="" -->
57 typedef <a class="el" href="a00246.html#ga19287ee46bd37d1459731d7191bc2f66">float16</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a></td></tr>
57 typedef <a class="el" href="a00245.html#ga19287ee46bd37d1459731d7191bc2f66">float16</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a></td></tr>
5858 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae16f41dbae14d92fb946080a0a868de9"></a><!-- doxytag: member="glm::gtc::type_precision::f16mat2" ref="gae16f41dbae14d92fb946080a0a868de9" args="" -->
59 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gae16f41dbae14d92fb946080a0a868de9">f16mat2</a></td></tr>
59 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gae16f41dbae14d92fb946080a0a868de9">f16mat2</a></td></tr>
6060 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0251c24813cf14f31851e506ccaca8e3"></a><!-- doxytag: member="glm::gtc::type_precision::f16mat2x2" ref="ga0251c24813cf14f31851e506ccaca8e3" args="" -->
61 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga0251c24813cf14f31851e506ccaca8e3">f16mat2x2</a></td></tr>
61 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga0251c24813cf14f31851e506ccaca8e3">f16mat2x2</a></td></tr>
6262 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga75b44fd9278b87d63926bf6cb83a90ce"></a><!-- doxytag: member="glm::gtc::type_precision::f16mat2x3" ref="ga75b44fd9278b87d63926bf6cb83a90ce" args="" -->
63 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga75b44fd9278b87d63926bf6cb83a90ce">f16mat2x3</a></td></tr>
63 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga75b44fd9278b87d63926bf6cb83a90ce">f16mat2x3</a></td></tr>
6464 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5f7b279e5d36687a69f75cf2f95b64c5"></a><!-- doxytag: member="glm::gtc::type_precision::f16mat2x4" ref="ga5f7b279e5d36687a69f75cf2f95b64c5" args="" -->
65 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga5f7b279e5d36687a69f75cf2f95b64c5">f16mat2x4</a></td></tr>
65 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga5f7b279e5d36687a69f75cf2f95b64c5">f16mat2x4</a></td></tr>
6666 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3ada76173b353ee8615dcd70dbf7fe7f"></a><!-- doxytag: member="glm::gtc::type_precision::f16mat3" ref="ga3ada76173b353ee8615dcd70dbf7fe7f" args="" -->
67 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga3ada76173b353ee8615dcd70dbf7fe7f">f16mat3</a></td></tr>
67 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga3ada76173b353ee8615dcd70dbf7fe7f">f16mat3</a></td></tr>
6868 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacc55b3fc1bd509b96f5f291b019b0c3a"></a><!-- doxytag: member="glm::gtc::type_precision::f16mat3x2" ref="gacc55b3fc1bd509b96f5f291b019b0c3a" args="" -->
69 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gacc55b3fc1bd509b96f5f291b019b0c3a">f16mat3x2</a></td></tr>
69 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gacc55b3fc1bd509b96f5f291b019b0c3a">f16mat3x2</a></td></tr>
7070 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4fe684c085caee45c79f6b8e2a8a498e"></a><!-- doxytag: member="glm::gtc::type_precision::f16mat3x3" ref="ga4fe684c085caee45c79f6b8e2a8a498e" args="" -->
71 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga4fe684c085caee45c79f6b8e2a8a498e">f16mat3x3</a></td></tr>
71 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga4fe684c085caee45c79f6b8e2a8a498e">f16mat3x3</a></td></tr>
7272 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeefd948e1360ef7fe65201482f07e379"></a><!-- doxytag: member="glm::gtc::type_precision::f16mat3x4" ref="gaeefd948e1360ef7fe65201482f07e379" args="" -->
73 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaeefd948e1360ef7fe65201482f07e379">f16mat3x4</a></td></tr>
73 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaeefd948e1360ef7fe65201482f07e379">f16mat3x4</a></td></tr>
7474 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac12c1d9b5e7ef301c81b23cd555c5be9"></a><!-- doxytag: member="glm::gtc::type_precision::f16mat4" ref="gac12c1d9b5e7ef301c81b23cd555c5be9" args="" -->
75 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gac12c1d9b5e7ef301c81b23cd555c5be9">f16mat4</a></td></tr>
75 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gac12c1d9b5e7ef301c81b23cd555c5be9">f16mat4</a></td></tr>
7676 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad18e575d7bc47e6d696366712724c31a"></a><!-- doxytag: member="glm::gtc::type_precision::f16mat4x2" ref="gad18e575d7bc47e6d696366712724c31a" args="" -->
77 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gad18e575d7bc47e6d696366712724c31a">f16mat4x2</a></td></tr>
77 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gad18e575d7bc47e6d696366712724c31a">f16mat4x2</a></td></tr>
7878 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38e54b583ed34891b3dc3fcd8f194a44"></a><!-- doxytag: member="glm::gtc::type_precision::f16mat4x3" ref="ga38e54b583ed34891b3dc3fcd8f194a44" args="" -->
79 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga38e54b583ed34891b3dc3fcd8f194a44">f16mat4x3</a></td></tr>
79 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga38e54b583ed34891b3dc3fcd8f194a44">f16mat4x3</a></td></tr>
8080 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga996f1e97233164dd076fad915b1f4b2a"></a><!-- doxytag: member="glm::gtc::type_precision::f16mat4x4" ref="ga996f1e97233164dd076fad915b1f4b2a" args="" -->
81 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga996f1e97233164dd076fad915b1f4b2a">f16mat4x4</a></td></tr>
81 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga996f1e97233164dd076fad915b1f4b2a">f16mat4x4</a></td></tr>
8282 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38cc7dfd875fb2a5d07101972bf96bfb"></a><!-- doxytag: member="glm::gtc::type_precision::f16quat" ref="ga38cc7dfd875fb2a5d07101972bf96bfb" args="" -->
83 typedef <a class="el" href="a00019.html">detail::tquat</a>&lt; <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga38cc7dfd875fb2a5d07101972bf96bfb">f16quat</a></td></tr>
83 typedef <a class="el" href="a00019.html">detail::tquat</a>&lt; <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga38cc7dfd875fb2a5d07101972bf96bfb">f16quat</a></td></tr>
8484 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac29c0992aa0fe2df8f9b6b9edc220822"></a><!-- doxytag: member="glm::gtc::type_precision::f16vec2" ref="gac29c0992aa0fe2df8f9b6b9edc220822" args="" -->
85 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gac29c0992aa0fe2df8f9b6b9edc220822">f16vec2</a></td></tr>
85 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gac29c0992aa0fe2df8f9b6b9edc220822">f16vec2</a></td></tr>
8686 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa68a583d3e3b202e1b48c7bc94964c78"></a><!-- doxytag: member="glm::gtc::type_precision::f16vec3" ref="gaa68a583d3e3b202e1b48c7bc94964c78" args="" -->
87 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaa68a583d3e3b202e1b48c7bc94964c78">f16vec3</a></td></tr>
87 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaa68a583d3e3b202e1b48c7bc94964c78">f16vec3</a></td></tr>
8888 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae77767db0311f307255a057fd7358704"></a><!-- doxytag: member="glm::gtc::type_precision::f16vec4" ref="gae77767db0311f307255a057fd7358704" args="" -->
89 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gae77767db0311f307255a057fd7358704">f16vec4</a></td></tr>
89 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gae77767db0311f307255a057fd7358704">f16vec4</a></td></tr>
9090 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"></a><!-- doxytag: member="glm::gtc::type_precision::f32" ref="gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" args="" -->
91 typedef <a class="el" href="a00246.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a></td></tr>
91 typedef <a class="el" href="a00245.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a></td></tr>
9292 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaffc1dddbdfee9006f65dec7490cef35"></a><!-- doxytag: member="glm::gtc::type_precision::f32mat2" ref="gaaffc1dddbdfee9006f65dec7490cef35" args="" -->
93 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaaffc1dddbdfee9006f65dec7490cef35">f32mat2</a></td></tr>
93 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaaffc1dddbdfee9006f65dec7490cef35">f32mat2</a></td></tr>
9494 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9b851abbec4f37c06604e5b612b764a3"></a><!-- doxytag: member="glm::gtc::type_precision::f32mat2x2" ref="ga9b851abbec4f37c06604e5b612b764a3" args="" -->
95 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga9b851abbec4f37c06604e5b612b764a3">f32mat2x2</a></td></tr>
95 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga9b851abbec4f37c06604e5b612b764a3">f32mat2x2</a></td></tr>
9696 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabc06add14a487def0be0a88cb7191310"></a><!-- doxytag: member="glm::gtc::type_precision::f32mat2x3" ref="gabc06add14a487def0be0a88cb7191310" args="" -->
97 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gabc06add14a487def0be0a88cb7191310">f32mat2x3</a></td></tr>
97 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gabc06add14a487def0be0a88cb7191310">f32mat2x3</a></td></tr>
9898 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae7d246881a2b9bbf2933e9aa32c873f9"></a><!-- doxytag: member="glm::gtc::type_precision::f32mat2x4" ref="gae7d246881a2b9bbf2933e9aa32c873f9" args="" -->
99 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gae7d246881a2b9bbf2933e9aa32c873f9">f32mat2x4</a></td></tr>
99 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gae7d246881a2b9bbf2933e9aa32c873f9">f32mat2x4</a></td></tr>
100100 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2da36e87f1f319cd99d2870ab3be4799"></a><!-- doxytag: member="glm::gtc::type_precision::f32mat3" ref="ga2da36e87f1f319cd99d2870ab3be4799" args="" -->
101 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga2da36e87f1f319cd99d2870ab3be4799">f32mat3</a></td></tr>
101 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga2da36e87f1f319cd99d2870ab3be4799">f32mat3</a></td></tr>
102102 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3c2727aca36e2f45f4eaabc06fe859e5"></a><!-- doxytag: member="glm::gtc::type_precision::f32mat3x2" ref="ga3c2727aca36e2f45f4eaabc06fe859e5" args="" -->
103 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga3c2727aca36e2f45f4eaabc06fe859e5">f32mat3x2</a></td></tr>
103 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga3c2727aca36e2f45f4eaabc06fe859e5">f32mat3x2</a></td></tr>
104104 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad60954ab0fcc5d2fdf2573be7d359920"></a><!-- doxytag: member="glm::gtc::type_precision::f32mat3x3" ref="gad60954ab0fcc5d2fdf2573be7d359920" args="" -->
105 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gad60954ab0fcc5d2fdf2573be7d359920">f32mat3x3</a></td></tr>
105 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gad60954ab0fcc5d2fdf2573be7d359920">f32mat3x3</a></td></tr>
106106 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga76466bef28f20c754b6f25da8138033b"></a><!-- doxytag: member="glm::gtc::type_precision::f32mat3x4" ref="ga76466bef28f20c754b6f25da8138033b" args="" -->
107 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga76466bef28f20c754b6f25da8138033b">f32mat3x4</a></td></tr>
107 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga76466bef28f20c754b6f25da8138033b">f32mat3x4</a></td></tr>
108108 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae84e6d0a740dbbefeb29c72ca93b9202"></a><!-- doxytag: member="glm::gtc::type_precision::f32mat4" ref="gae84e6d0a740dbbefeb29c72ca93b9202" args="" -->
109 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gae84e6d0a740dbbefeb29c72ca93b9202">f32mat4</a></td></tr>
109 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gae84e6d0a740dbbefeb29c72ca93b9202">f32mat4</a></td></tr>
110110 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf81550e292ce3d4dd2c22960713188f3"></a><!-- doxytag: member="glm::gtc::type_precision::f32mat4x2" ref="gaf81550e292ce3d4dd2c22960713188f3" args="" -->
111 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaf81550e292ce3d4dd2c22960713188f3">f32mat4x2</a></td></tr>
111 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaf81550e292ce3d4dd2c22960713188f3">f32mat4x2</a></td></tr>
112112 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0a78d326a35e18803e7ae7a49d2c738c"></a><!-- doxytag: member="glm::gtc::type_precision::f32mat4x3" ref="ga0a78d326a35e18803e7ae7a49d2c738c" args="" -->
113 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga0a78d326a35e18803e7ae7a49d2c738c">f32mat4x3</a></td></tr>
113 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga0a78d326a35e18803e7ae7a49d2c738c">f32mat4x3</a></td></tr>
114114 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga390ae17a61ddb8a7702cd92065754633"></a><!-- doxytag: member="glm::gtc::type_precision::f32mat4x4" ref="ga390ae17a61ddb8a7702cd92065754633" args="" -->
115 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga390ae17a61ddb8a7702cd92065754633">f32mat4x4</a></td></tr>
115 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga390ae17a61ddb8a7702cd92065754633">f32mat4x4</a></td></tr>
116116 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad073de7365e4b6771de824b18b0ea7a9"></a><!-- doxytag: member="glm::gtc::type_precision::f32quat" ref="gad073de7365e4b6771de824b18b0ea7a9" args="" -->
117 typedef <a class="el" href="a00019.html">detail::tquat</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gad073de7365e4b6771de824b18b0ea7a9">f32quat</a></td></tr>
117 typedef <a class="el" href="a00019.html">detail::tquat</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gad073de7365e4b6771de824b18b0ea7a9">f32quat</a></td></tr>
118118 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6a1674122ce80c7f3b77ddbc85b4d9f1"></a><!-- doxytag: member="glm::gtc::type_precision::f32vec2" ref="ga6a1674122ce80c7f3b77ddbc85b4d9f1" args="" -->
119 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga6a1674122ce80c7f3b77ddbc85b4d9f1">f32vec2</a></td></tr>
119 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga6a1674122ce80c7f3b77ddbc85b4d9f1">f32vec2</a></td></tr>
120120 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga81353c6a9b282b2b34185306a40040ad"></a><!-- doxytag: member="glm::gtc::type_precision::f32vec3" ref="ga81353c6a9b282b2b34185306a40040ad" args="" -->
121 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga81353c6a9b282b2b34185306a40040ad">f32vec3</a></td></tr>
121 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga81353c6a9b282b2b34185306a40040ad">f32vec3</a></td></tr>
122122 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga58dbce28a4d4b0d72c239cf3069bd28b"></a><!-- doxytag: member="glm::gtc::type_precision::f32vec4" ref="ga58dbce28a4d4b0d72c239cf3069bd28b" args="" -->
123 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga58dbce28a4d4b0d72c239cf3069bd28b">f32vec4</a></td></tr>
123 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga58dbce28a4d4b0d72c239cf3069bd28b">f32vec4</a></td></tr>
124124 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1d794d240091678f602e8de225b8d8c9"></a><!-- doxytag: member="glm::gtc::type_precision::f64" ref="ga1d794d240091678f602e8de225b8d8c9" args="" -->
125 typedef <a class="el" href="a00246.html#gab5596d48586414c91ccb270962dc14d3">float64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a></td></tr>
125 typedef <a class="el" href="a00245.html#gab5596d48586414c91ccb270962dc14d3">float64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a></td></tr>
126126 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8e6af45d08751da72ddb3c8380028d0b"></a><!-- doxytag: member="glm::gtc::type_precision::f64mat2" ref="ga8e6af45d08751da72ddb3c8380028d0b" args="" -->
127 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga8e6af45d08751da72ddb3c8380028d0b">f64mat2</a></td></tr>
127 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga8e6af45d08751da72ddb3c8380028d0b">f64mat2</a></td></tr>
128128 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga48dfaa0c23e89839f9fd43ae1d03f5de"></a><!-- doxytag: member="glm::gtc::type_precision::f64mat2x2" ref="ga48dfaa0c23e89839f9fd43ae1d03f5de" args="" -->
129 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga48dfaa0c23e89839f9fd43ae1d03f5de">f64mat2x2</a></td></tr>
129 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga48dfaa0c23e89839f9fd43ae1d03f5de">f64mat2x2</a></td></tr>
130130 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0ee61da67c73edc53648db680e0a6d59"></a><!-- doxytag: member="glm::gtc::type_precision::f64mat2x3" ref="ga0ee61da67c73edc53648db680e0a6d59" args="" -->
131 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga0ee61da67c73edc53648db680e0a6d59">f64mat2x3</a></td></tr>
131 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga0ee61da67c73edc53648db680e0a6d59">f64mat2x3</a></td></tr>
132132 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga95a3099cce2b620027a9164324787a14"></a><!-- doxytag: member="glm::gtc::type_precision::f64mat2x4" ref="ga95a3099cce2b620027a9164324787a14" args="" -->
133 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga95a3099cce2b620027a9164324787a14">f64mat2x4</a></td></tr>
133 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga95a3099cce2b620027a9164324787a14">f64mat2x4</a></td></tr>
134134 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae394301075475e6759f0835a251d497e"></a><!-- doxytag: member="glm::gtc::type_precision::f64mat3" ref="gae394301075475e6759f0835a251d497e" args="" -->
135 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gae394301075475e6759f0835a251d497e">f64mat3</a></td></tr>
135 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gae394301075475e6759f0835a251d497e">f64mat3</a></td></tr>
136136 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga24ab90298c753e8da92ba333ef2f7f71"></a><!-- doxytag: member="glm::gtc::type_precision::f64mat3x2" ref="ga24ab90298c753e8da92ba333ef2f7f71" args="" -->
137 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga24ab90298c753e8da92ba333ef2f7f71">f64mat3x2</a></td></tr>
137 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga24ab90298c753e8da92ba333ef2f7f71">f64mat3x2</a></td></tr>
138138 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5dfbb37bd5e0a221b1627172e052a168"></a><!-- doxytag: member="glm::gtc::type_precision::f64mat3x3" ref="ga5dfbb37bd5e0a221b1627172e052a168" args="" -->
139 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga5dfbb37bd5e0a221b1627172e052a168">f64mat3x3</a></td></tr>
139 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga5dfbb37bd5e0a221b1627172e052a168">f64mat3x3</a></td></tr>
140140 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaecc98ee8c67aaca82e817d2cf4028cd7"></a><!-- doxytag: member="glm::gtc::type_precision::f64mat3x4" ref="gaecc98ee8c67aaca82e817d2cf4028cd7" args="" -->
141 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaecc98ee8c67aaca82e817d2cf4028cd7">f64mat3x4</a></td></tr>
141 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaecc98ee8c67aaca82e817d2cf4028cd7">f64mat3x4</a></td></tr>
142142 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4c6042a4ef0df9c92b94dd8a30df3f82"></a><!-- doxytag: member="glm::gtc::type_precision::f64mat4" ref="ga4c6042a4ef0df9c92b94dd8a30df3f82" args="" -->
143 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga4c6042a4ef0df9c92b94dd8a30df3f82">f64mat4</a></td></tr>
143 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga4c6042a4ef0df9c92b94dd8a30df3f82">f64mat4</a></td></tr>
144144 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac99d22a5ada54ab33aad0cd208d20e48"></a><!-- doxytag: member="glm::gtc::type_precision::f64mat4x2" ref="gac99d22a5ada54ab33aad0cd208d20e48" args="" -->
145 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gac99d22a5ada54ab33aad0cd208d20e48">f64mat4x2</a></td></tr>
145 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gac99d22a5ada54ab33aad0cd208d20e48">f64mat4x2</a></td></tr>
146146 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1e10cbf50386189533011ef827204920"></a><!-- doxytag: member="glm::gtc::type_precision::f64mat4x3" ref="ga1e10cbf50386189533011ef827204920" args="" -->
147 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga1e10cbf50386189533011ef827204920">f64mat4x3</a></td></tr>
147 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga1e10cbf50386189533011ef827204920">f64mat4x3</a></td></tr>
148148 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5efb4fb73bf79baf00cda64d318bfdb5"></a><!-- doxytag: member="glm::gtc::type_precision::f64mat4x4" ref="ga5efb4fb73bf79baf00cda64d318bfdb5" args="" -->
149 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga5efb4fb73bf79baf00cda64d318bfdb5">f64mat4x4</a></td></tr>
149 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga5efb4fb73bf79baf00cda64d318bfdb5">f64mat4x4</a></td></tr>
150150 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38a458ff317f21cf58ceed99dde5daaa"></a><!-- doxytag: member="glm::gtc::type_precision::f64quat" ref="ga38a458ff317f21cf58ceed99dde5daaa" args="" -->
151 typedef <a class="el" href="a00019.html">detail::tquat</a>&lt; <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga38a458ff317f21cf58ceed99dde5daaa">f64quat</a></td></tr>
151 typedef <a class="el" href="a00019.html">detail::tquat</a>&lt; <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga38a458ff317f21cf58ceed99dde5daaa">f64quat</a></td></tr>
152152 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1de31e7b24d714613b83fb704b8b1fd1"></a><!-- doxytag: member="glm::gtc::type_precision::f64vec2" ref="ga1de31e7b24d714613b83fb704b8b1fd1" args="" -->
153 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga1de31e7b24d714613b83fb704b8b1fd1">f64vec2</a></td></tr>
153 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga1de31e7b24d714613b83fb704b8b1fd1">f64vec2</a></td></tr>
154154 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2a4b3d9e62dc8c9b970e91c38bb56997"></a><!-- doxytag: member="glm::gtc::type_precision::f64vec3" ref="ga2a4b3d9e62dc8c9b970e91c38bb56997" args="" -->
155 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga2a4b3d9e62dc8c9b970e91c38bb56997">f64vec3</a></td></tr>
155 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga2a4b3d9e62dc8c9b970e91c38bb56997">f64vec3</a></td></tr>
156156 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga66999872051fdf1934199af093eedece"></a><!-- doxytag: member="glm::gtc::type_precision::f64vec4" ref="ga66999872051fdf1934199af093eedece" args="" -->
157 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga66999872051fdf1934199af093eedece">f64vec4</a></td></tr>
157 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga66999872051fdf1934199af093eedece">f64vec4</a></td></tr>
158158 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga19287ee46bd37d1459731d7191bc2f66"></a><!-- doxytag: member="glm::gtc::type_precision::float16" ref="ga19287ee46bd37d1459731d7191bc2f66" args="" -->
159 typedef detail::float16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga19287ee46bd37d1459731d7191bc2f66">float16</a></td></tr>
159 typedef detail::float16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga19287ee46bd37d1459731d7191bc2f66">float16</a></td></tr>
160160 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad3c127f8bf8d7d4e738037c257abb5b1"></a><!-- doxytag: member="glm::gtc::type_precision::float32" ref="gad3c127f8bf8d7d4e738037c257abb5b1" args="" -->
161 typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a></td></tr>
161 typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a></td></tr>
162162 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab5596d48586414c91ccb270962dc14d3"></a><!-- doxytag: member="glm::gtc::type_precision::float64" ref="gab5596d48586414c91ccb270962dc14d3" args="" -->
163 typedef detail::float64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gab5596d48586414c91ccb270962dc14d3">float64</a></td></tr>
163 typedef detail::float64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gab5596d48586414c91ccb270962dc14d3">float64</a></td></tr>
164164 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaee87d6e282960e7c75bfb1371def1fc6"></a><!-- doxytag: member="glm::gtc::type_precision::fmat2" ref="gaee87d6e282960e7c75bfb1371def1fc6" args="" -->
165 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaee87d6e282960e7c75bfb1371def1fc6">fmat2</a></td></tr>
165 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaee87d6e282960e7c75bfb1371def1fc6">fmat2</a></td></tr>
166166 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1c9d98f605e9194e6febfc8c390f21e2"></a><!-- doxytag: member="glm::gtc::type_precision::fmat2x2" ref="ga1c9d98f605e9194e6febfc8c390f21e2" args="" -->
167 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga1c9d98f605e9194e6febfc8c390f21e2">fmat2x2</a></td></tr>
167 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga1c9d98f605e9194e6febfc8c390f21e2">fmat2x2</a></td></tr>
168168 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5a49e7e42cb7826309dfe5914ff7adb2"></a><!-- doxytag: member="glm::gtc::type_precision::fmat2x3" ref="ga5a49e7e42cb7826309dfe5914ff7adb2" args="" -->
169 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga5a49e7e42cb7826309dfe5914ff7adb2">fmat2x3</a></td></tr>
169 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga5a49e7e42cb7826309dfe5914ff7adb2">fmat2x3</a></td></tr>
170170 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga17af021ba84b81a88cd8ff5415737082"></a><!-- doxytag: member="glm::gtc::type_precision::fmat2x4" ref="ga17af021ba84b81a88cd8ff5415737082" args="" -->
171 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga17af021ba84b81a88cd8ff5415737082">fmat2x4</a></td></tr>
171 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga17af021ba84b81a88cd8ff5415737082">fmat2x4</a></td></tr>
172172 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga885ab2670ad608f174889cc5779e814c"></a><!-- doxytag: member="glm::gtc::type_precision::fmat3" ref="ga885ab2670ad608f174889cc5779e814c" args="" -->
173 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga885ab2670ad608f174889cc5779e814c">fmat3</a></td></tr>
173 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga885ab2670ad608f174889cc5779e814c">fmat3</a></td></tr>
174174 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabb5363b848026b7819e8df12f9eba807"></a><!-- doxytag: member="glm::gtc::type_precision::fmat3x2" ref="gabb5363b848026b7819e8df12f9eba807" args="" -->
175 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gabb5363b848026b7819e8df12f9eba807">fmat3x2</a></td></tr>
175 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gabb5363b848026b7819e8df12f9eba807">fmat3x2</a></td></tr>
176176 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae3cec4e7ffbfce5fc693f70693b67bdd"></a><!-- doxytag: member="glm::gtc::type_precision::fmat3x3" ref="gae3cec4e7ffbfce5fc693f70693b67bdd" args="" -->
177 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gae3cec4e7ffbfce5fc693f70693b67bdd">fmat3x3</a></td></tr>
177 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gae3cec4e7ffbfce5fc693f70693b67bdd">fmat3x3</a></td></tr>
178178 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8cc18a8db872ac321446a0ec76d0f4c9"></a><!-- doxytag: member="glm::gtc::type_precision::fmat3x4" ref="ga8cc18a8db872ac321446a0ec76d0f4c9" args="" -->
179 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga8cc18a8db872ac321446a0ec76d0f4c9">fmat3x4</a></td></tr>
179 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga8cc18a8db872ac321446a0ec76d0f4c9">fmat3x4</a></td></tr>
180180 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga17a80f33494617743e6156e125c2333d"></a><!-- doxytag: member="glm::gtc::type_precision::fmat4" ref="ga17a80f33494617743e6156e125c2333d" args="" -->
181 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga17a80f33494617743e6156e125c2333d">fmat4</a></td></tr>
181 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga17a80f33494617743e6156e125c2333d">fmat4</a></td></tr>
182182 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga730c05a1fd676cedcecd74595866bb35"></a><!-- doxytag: member="glm::gtc::type_precision::fmat4x2" ref="ga730c05a1fd676cedcecd74595866bb35" args="" -->
183 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga730c05a1fd676cedcecd74595866bb35">fmat4x2</a></td></tr>
183 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga730c05a1fd676cedcecd74595866bb35">fmat4x2</a></td></tr>
184184 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac9d68d8ad27aceea1814b96b1e8fc92e"></a><!-- doxytag: member="glm::gtc::type_precision::fmat4x3" ref="gac9d68d8ad27aceea1814b96b1e8fc92e" args="" -->
185 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gac9d68d8ad27aceea1814b96b1e8fc92e">fmat4x3</a></td></tr>
185 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gac9d68d8ad27aceea1814b96b1e8fc92e">fmat4x3</a></td></tr>
186186 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5a1741d5e03b4a99ad1728a8e8c65a38"></a><!-- doxytag: member="glm::gtc::type_precision::fmat4x4" ref="ga5a1741d5e03b4a99ad1728a8e8c65a38" args="" -->
187 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga5a1741d5e03b4a99ad1728a8e8c65a38">fmat4x4</a></td></tr>
187 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga5a1741d5e03b4a99ad1728a8e8c65a38">fmat4x4</a></td></tr>
188188 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeb3201411f8933fae30fe36b3fb1db90"></a><!-- doxytag: member="glm::gtc::type_precision::fvec2" ref="gaeb3201411f8933fae30fe36b3fb1db90" args="" -->
189 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaeb3201411f8933fae30fe36b3fb1db90">fvec2</a></td></tr>
189 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaeb3201411f8933fae30fe36b3fb1db90">fvec2</a></td></tr>
190190 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga36d8bc27da6e04285ab3b11d0af061b0"></a><!-- doxytag: member="glm::gtc::type_precision::fvec3" ref="ga36d8bc27da6e04285ab3b11d0af061b0" args="" -->
191 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga36d8bc27da6e04285ab3b11d0af061b0">fvec3</a></td></tr>
191 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga36d8bc27da6e04285ab3b11d0af061b0">fvec3</a></td></tr>
192192 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac8e4776e86d01ed43b2dce32db2c72ba"></a><!-- doxytag: member="glm::gtc::type_precision::fvec4" ref="gac8e4776e86d01ed43b2dce32db2c72ba" args="" -->
193 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gac8e4776e86d01ed43b2dce32db2c72ba">fvec4</a></td></tr>
193 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gac8e4776e86d01ed43b2dce32db2c72ba">fvec4</a></td></tr>
194194 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga47ad84e86d8eef23a5ebab2815242a0d"></a><!-- doxytag: member="glm::gtc::type_precision::i16" ref="ga47ad84e86d8eef23a5ebab2815242a0d" args="" -->
195 typedef <a class="el" href="a00246.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga47ad84e86d8eef23a5ebab2815242a0d">i16</a></td></tr>
195 typedef <a class="el" href="a00245.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d">i16</a></td></tr>
196196 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6a9c8e79629016f081cd3274eeafe429"></a><!-- doxytag: member="glm::gtc::type_precision::i16vec2" ref="ga6a9c8e79629016f081cd3274eeafe429" args="" -->
197 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00246.html#ga47ad84e86d8eef23a5ebab2815242a0d">i16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga6a9c8e79629016f081cd3274eeafe429">i16vec2</a></td></tr>
197 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d">i16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga6a9c8e79629016f081cd3274eeafe429">i16vec2</a></td></tr>
198198 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga539ac09149e338c783bc492fd25d504c"></a><!-- doxytag: member="glm::gtc::type_precision::i16vec3" ref="ga539ac09149e338c783bc492fd25d504c" args="" -->
199 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00246.html#ga47ad84e86d8eef23a5ebab2815242a0d">i16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga539ac09149e338c783bc492fd25d504c">i16vec3</a></td></tr>
199 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d">i16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga539ac09149e338c783bc492fd25d504c">i16vec3</a></td></tr>
200200 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga09c99e80eb63c8df7a9cc4021c8a2811"></a><!-- doxytag: member="glm::gtc::type_precision::i16vec4" ref="ga09c99e80eb63c8df7a9cc4021c8a2811" args="" -->
201 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00246.html#ga47ad84e86d8eef23a5ebab2815242a0d">i16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga09c99e80eb63c8df7a9cc4021c8a2811">i16vec4</a></td></tr>
201 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d">i16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga09c99e80eb63c8df7a9cc4021c8a2811">i16vec4</a></td></tr>
202202 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga324db08ffb2a193f9a10864288b94523"></a><!-- doxytag: member="glm::gtc::type_precision::i32" ref="ga324db08ffb2a193f9a10864288b94523" args="" -->
203 typedef <a class="el" href="a00246.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga324db08ffb2a193f9a10864288b94523">i32</a></td></tr>
203 typedef <a class="el" href="a00245.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga324db08ffb2a193f9a10864288b94523">i32</a></td></tr>
204204 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga587a33330386e50f7ff9a870f1b62ab1"></a><!-- doxytag: member="glm::gtc::type_precision::i32vec2" ref="ga587a33330386e50f7ff9a870f1b62ab1" args="" -->
205 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00246.html#ga324db08ffb2a193f9a10864288b94523">i32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga587a33330386e50f7ff9a870f1b62ab1">i32vec2</a></td></tr>
205 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00245.html#ga324db08ffb2a193f9a10864288b94523">i32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga587a33330386e50f7ff9a870f1b62ab1">i32vec2</a></td></tr>
206206 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae8b7bb7698c98fb69f2a4aff8a757416"></a><!-- doxytag: member="glm::gtc::type_precision::i32vec3" ref="gae8b7bb7698c98fb69f2a4aff8a757416" args="" -->
207 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00246.html#ga324db08ffb2a193f9a10864288b94523">i32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gae8b7bb7698c98fb69f2a4aff8a757416">i32vec3</a></td></tr>
207 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00245.html#ga324db08ffb2a193f9a10864288b94523">i32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gae8b7bb7698c98fb69f2a4aff8a757416">i32vec3</a></td></tr>
208208 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa82f1d2958dfcc463a2498d52ee80a0a"></a><!-- doxytag: member="glm::gtc::type_precision::i32vec4" ref="gaa82f1d2958dfcc463a2498d52ee80a0a" args="" -->
209 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00246.html#ga324db08ffb2a193f9a10864288b94523">i32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaa82f1d2958dfcc463a2498d52ee80a0a">i32vec4</a></td></tr>
209 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00245.html#ga324db08ffb2a193f9a10864288b94523">i32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaa82f1d2958dfcc463a2498d52ee80a0a">i32vec4</a></td></tr>
210210 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga60abe2e6e0bacb893a2d6d17cc50f753"></a><!-- doxytag: member="glm::gtc::type_precision::i64" ref="ga60abe2e6e0bacb893a2d6d17cc50f753" args="" -->
211 typedef <a class="el" href="a00246.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga60abe2e6e0bacb893a2d6d17cc50f753">i64</a></td></tr>
211 typedef <a class="el" href="a00245.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753">i64</a></td></tr>
212212 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7a6245c652f68ba306c05bb0d4ca1361"></a><!-- doxytag: member="glm::gtc::type_precision::i64vec2" ref="ga7a6245c652f68ba306c05bb0d4ca1361" args="" -->
213 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00246.html#ga60abe2e6e0bacb893a2d6d17cc50f753">i64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga7a6245c652f68ba306c05bb0d4ca1361">i64vec2</a></td></tr>
213 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753">i64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga7a6245c652f68ba306c05bb0d4ca1361">i64vec2</a></td></tr>
214214 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga78ad50b24382913ef6068ded644c9f3f"></a><!-- doxytag: member="glm::gtc::type_precision::i64vec3" ref="ga78ad50b24382913ef6068ded644c9f3f" args="" -->
215 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00246.html#ga60abe2e6e0bacb893a2d6d17cc50f753">i64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga78ad50b24382913ef6068ded644c9f3f">i64vec3</a></td></tr>
215 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753">i64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga78ad50b24382913ef6068ded644c9f3f">i64vec3</a></td></tr>
216216 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8392ac39a51731ab9a5b3f23a5eaf1d7"></a><!-- doxytag: member="glm::gtc::type_precision::i64vec4" ref="ga8392ac39a51731ab9a5b3f23a5eaf1d7" args="" -->
217 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00246.html#ga60abe2e6e0bacb893a2d6d17cc50f753">i64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga8392ac39a51731ab9a5b3f23a5eaf1d7">i64vec4</a></td></tr>
217 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753">i64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga8392ac39a51731ab9a5b3f23a5eaf1d7">i64vec4</a></td></tr>
218218 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga112f99168645b5338136b72eddd12895"></a><!-- doxytag: member="glm::gtc::type_precision::i8" ref="ga112f99168645b5338136b72eddd12895" args="" -->
219 typedef <a class="el" href="a00246.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga112f99168645b5338136b72eddd12895">i8</a></td></tr>
219 typedef <a class="el" href="a00245.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga112f99168645b5338136b72eddd12895">i8</a></td></tr>
220220 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9ab3f26fa232d5a4d2397d7904eb9069"></a><!-- doxytag: member="glm::gtc::type_precision::i8vec2" ref="ga9ab3f26fa232d5a4d2397d7904eb9069" args="" -->
221 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00246.html#ga112f99168645b5338136b72eddd12895">i8</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga9ab3f26fa232d5a4d2397d7904eb9069">i8vec2</a></td></tr>
221 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00245.html#ga112f99168645b5338136b72eddd12895">i8</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga9ab3f26fa232d5a4d2397d7904eb9069">i8vec2</a></td></tr>
222222 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa8c91ad088bbbd51f2ef3b7701f00ed9"></a><!-- doxytag: member="glm::gtc::type_precision::i8vec3" ref="gaa8c91ad088bbbd51f2ef3b7701f00ed9" args="" -->
223 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00246.html#ga112f99168645b5338136b72eddd12895">i8</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaa8c91ad088bbbd51f2ef3b7701f00ed9">i8vec3</a></td></tr>
223 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00245.html#ga112f99168645b5338136b72eddd12895">i8</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaa8c91ad088bbbd51f2ef3b7701f00ed9">i8vec3</a></td></tr>
224224 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga792e1b3e596a020df28a8eb4ec3c0708"></a><!-- doxytag: member="glm::gtc::type_precision::i8vec4" ref="ga792e1b3e596a020df28a8eb4ec3c0708" args="" -->
225 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00246.html#ga112f99168645b5338136b72eddd12895">i8</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga792e1b3e596a020df28a8eb4ec3c0708">i8vec4</a></td></tr>
225 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00245.html#ga112f99168645b5338136b72eddd12895">i8</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga792e1b3e596a020df28a8eb4ec3c0708">i8vec4</a></td></tr>
226226 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga302041c186d0d028bea31b711fe16759"></a><!-- doxytag: member="glm::gtc::type_precision::int16" ref="ga302041c186d0d028bea31b711fe16759" args="" -->
227 typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga302041c186d0d028bea31b711fe16759">int16</a></td></tr>
227 typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga302041c186d0d028bea31b711fe16759">int16</a></td></tr>
228228 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8df669f4e7698dfe0c0354d92578d74f"></a><!-- doxytag: member="glm::gtc::type_precision::int32" ref="ga8df669f4e7698dfe0c0354d92578d74f" args="" -->
229 typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a></td></tr>
229 typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a></td></tr>
230230 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaff5189f97f9e842d9636a0f240001b2e"></a><!-- doxytag: member="glm::gtc::type_precision::int64" ref="gaff5189f97f9e842d9636a0f240001b2e" args="" -->
231 typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a></td></tr>
231 typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a></td></tr>
232232 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga41c6189f6485c2825d60fdc835b3a2b0"></a><!-- doxytag: member="glm::gtc::type_precision::int8" ref="ga41c6189f6485c2825d60fdc835b3a2b0" args="" -->
233 typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a></td></tr>
233 typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a></td></tr>
234234 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga91ec65f57d610f6902fd081f1d1e265a"></a><!-- doxytag: member="glm::gtc::type_precision::u16" ref="ga91ec65f57d610f6902fd081f1d1e265a" args="" -->
235 typedef <a class="el" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga91ec65f57d610f6902fd081f1d1e265a">u16</a></td></tr>
235 typedef <a class="el" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a">u16</a></td></tr>
236236 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga63f78111033fd19335588c549fcc0512"></a><!-- doxytag: member="glm::gtc::type_precision::u16vec2" ref="ga63f78111033fd19335588c549fcc0512" args="" -->
237 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00246.html#ga91ec65f57d610f6902fd081f1d1e265a">u16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga63f78111033fd19335588c549fcc0512">u16vec2</a></td></tr>
237 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a">u16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga63f78111033fd19335588c549fcc0512">u16vec2</a></td></tr>
238238 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga53d4785d0f40c66bf58b315dd1122fe4"></a><!-- doxytag: member="glm::gtc::type_precision::u16vec3" ref="ga53d4785d0f40c66bf58b315dd1122fe4" args="" -->
239 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00246.html#ga91ec65f57d610f6902fd081f1d1e265a">u16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga53d4785d0f40c66bf58b315dd1122fe4">u16vec3</a></td></tr>
239 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a">u16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga53d4785d0f40c66bf58b315dd1122fe4">u16vec3</a></td></tr>
240240 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0331a2b68ce5f72a450f6d45c90f7709"></a><!-- doxytag: member="glm::gtc::type_precision::u16vec4" ref="ga0331a2b68ce5f72a450f6d45c90f7709" args="" -->
241 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00246.html#ga91ec65f57d610f6902fd081f1d1e265a">u16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga0331a2b68ce5f72a450f6d45c90f7709">u16vec4</a></td></tr>
241 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a">u16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga0331a2b68ce5f72a450f6d45c90f7709">u16vec4</a></td></tr>
242242 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0bb0c4c53d0a5ea2c01d0bb363b56722"></a><!-- doxytag: member="glm::gtc::type_precision::u32" ref="ga0bb0c4c53d0a5ea2c01d0bb363b56722" args="" -->
243 typedef <a class="el" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">u32</a></td></tr>
243 typedef <a class="el" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">u32</a></td></tr>
244244 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaae1d6aa5d86a2744294b97e05b623e29"></a><!-- doxytag: member="glm::gtc::type_precision::u32vec2" ref="gaae1d6aa5d86a2744294b97e05b623e29" args="" -->
245 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00246.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">u32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaae1d6aa5d86a2744294b97e05b623e29">u32vec2</a></td></tr>
245 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">u32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaae1d6aa5d86a2744294b97e05b623e29">u32vec2</a></td></tr>
246246 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae013bd205f900d8ac3d783e62c9fa294"></a><!-- doxytag: member="glm::gtc::type_precision::u32vec3" ref="gae013bd205f900d8ac3d783e62c9fa294" args="" -->
247 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00246.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">u32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gae013bd205f900d8ac3d783e62c9fa294">u32vec3</a></td></tr>
247 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">u32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gae013bd205f900d8ac3d783e62c9fa294">u32vec3</a></td></tr>
248248 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac61f03e72cbcace4582b0c11859f54c7"></a><!-- doxytag: member="glm::gtc::type_precision::u32vec4" ref="gac61f03e72cbcace4582b0c11859f54c7" args="" -->
249 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00246.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">u32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gac61f03e72cbcace4582b0c11859f54c7">u32vec4</a></td></tr>
249 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">u32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gac61f03e72cbcace4582b0c11859f54c7">u32vec4</a></td></tr>
250250 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga02ecb7390e4c4515df2268d18f99abc0"></a><!-- doxytag: member="glm::gtc::type_precision::u64" ref="ga02ecb7390e4c4515df2268d18f99abc0" args="" -->
251 typedef <a class="el" href="a00246.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga02ecb7390e4c4515df2268d18f99abc0">u64</a></td></tr>
251 typedef <a class="el" href="a00245.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0">u64</a></td></tr>
252252 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga98265c5d66ab4bf19f4242746233526c"></a><!-- doxytag: member="glm::gtc::type_precision::u64vec2" ref="ga98265c5d66ab4bf19f4242746233526c" args="" -->
253 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00246.html#ga02ecb7390e4c4515df2268d18f99abc0">u64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga98265c5d66ab4bf19f4242746233526c">u64vec2</a></td></tr>
253 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0">u64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga98265c5d66ab4bf19f4242746233526c">u64vec2</a></td></tr>
254254 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga470cfa496aae49e63c5becee347651a1"></a><!-- doxytag: member="glm::gtc::type_precision::u64vec3" ref="ga470cfa496aae49e63c5becee347651a1" args="" -->
255 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00246.html#ga02ecb7390e4c4515df2268d18f99abc0">u64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga470cfa496aae49e63c5becee347651a1">u64vec3</a></td></tr>
255 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0">u64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga470cfa496aae49e63c5becee347651a1">u64vec3</a></td></tr>
256256 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga34a421d3df867266c9437dc00897edeb"></a><!-- doxytag: member="glm::gtc::type_precision::u64vec4" ref="ga34a421d3df867266c9437dc00897edeb" args="" -->
257 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00246.html#ga02ecb7390e4c4515df2268d18f99abc0">u64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga34a421d3df867266c9437dc00897edeb">u64vec4</a></td></tr>
257 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0">u64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga34a421d3df867266c9437dc00897edeb">u64vec4</a></td></tr>
258258 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad8d9dbef83392da434801486bf814fe4"></a><!-- doxytag: member="glm::gtc::type_precision::u8" ref="gad8d9dbef83392da434801486bf814fe4" args="" -->
259 typedef <a class="el" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gad8d9dbef83392da434801486bf814fe4">u8</a></td></tr>
259 typedef <a class="el" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gad8d9dbef83392da434801486bf814fe4">u8</a></td></tr>
260260 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8f78a1ea21be24a89da31928fc037bfd"></a><!-- doxytag: member="glm::gtc::type_precision::u8vec2" ref="ga8f78a1ea21be24a89da31928fc037bfd" args="" -->
261 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00246.html#gad8d9dbef83392da434801486bf814fe4">u8</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga8f78a1ea21be24a89da31928fc037bfd">u8vec2</a></td></tr>
261 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; <a class="el" href="a00245.html#gad8d9dbef83392da434801486bf814fe4">u8</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga8f78a1ea21be24a89da31928fc037bfd">u8vec2</a></td></tr>
262262 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7a4cb62a556ad09c7e0721aecac64dbd"></a><!-- doxytag: member="glm::gtc::type_precision::u8vec3" ref="ga7a4cb62a556ad09c7e0721aecac64dbd" args="" -->
263 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00246.html#gad8d9dbef83392da434801486bf814fe4">u8</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga7a4cb62a556ad09c7e0721aecac64dbd">u8vec3</a></td></tr>
263 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; <a class="el" href="a00245.html#gad8d9dbef83392da434801486bf814fe4">u8</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga7a4cb62a556ad09c7e0721aecac64dbd">u8vec3</a></td></tr>
264264 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83091381b9b909057004c4de7896d072"></a><!-- doxytag: member="glm::gtc::type_precision::u8vec4" ref="ga83091381b9b909057004c4de7896d072" args="" -->
265 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00246.html#gad8d9dbef83392da434801486bf814fe4">u8</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga83091381b9b909057004c4de7896d072">u8vec4</a></td></tr>
265 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; <a class="el" href="a00245.html#gad8d9dbef83392da434801486bf814fe4">u8</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga83091381b9b909057004c4de7896d072">u8vec4</a></td></tr>
266266 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga13471cbbe74e4303a57f3743d007b74d"></a><!-- doxytag: member="glm::gtc::type_precision::uint16" ref="ga13471cbbe74e4303a57f3743d007b74d" args="" -->
267 typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a></td></tr>
267 typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a></td></tr>
268268 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5fa3ddcab56c789bc272ff5651faa12d"></a><!-- doxytag: member="glm::gtc::type_precision::uint32" ref="ga5fa3ddcab56c789bc272ff5651faa12d" args="" -->
269 typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a></td></tr>
269 typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a></td></tr>
270270 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab630f76c26b50298187f7889104d4b9c"></a><!-- doxytag: member="glm::gtc::type_precision::uint64" ref="gab630f76c26b50298187f7889104d4b9c" args="" -->
271 typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gab630f76c26b50298187f7889104d4b9c">uint64</a></td></tr>
271 typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gab630f76c26b50298187f7889104d4b9c">uint64</a></td></tr>
272272 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga36475e31b1992cfde54c1a6f5a148865"></a><!-- doxytag: member="glm::gtc::type_precision::uint8" ref="ga36475e31b1992cfde54c1a6f5a148865" args="" -->
273 typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a></td></tr>
273 typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a></td></tr>
274274 </table>
275275 <hr/><a name="_details"></a><h2>Detailed Description</h2>
276 <div class="textblock"><p>GLM_GTC_type_precision extension: Defined types with specific size. </p>
276 <div class="textblock"><p>&lt; GLM_GTC_type_precision extension: Defined types with specific size. </p>
277277 </div></div>
278278 <hr class="footer"/><address class="footer"><small>Generated by&#160;
279279 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00158.html">gtc</a> </li>
3939 <li class="navelem"><a class="el" href="a00167.html">type_ptr</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTC_type_ptr extension: Get access to vectors &amp; matrices value type address.
51 <p>&lt; GLM_GTC_type_ptr extension: Get access to vectors &amp; matrices value type address.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
5757 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
58 <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga28e2cb93a1d741f43d116ae597ffcc91">make_mat2</a> (T const *const ptr)</td></tr>
58 <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga28e2cb93a1d741f43d116ae597ffcc91">make_mat2</a> (T const *const ptr)</td></tr>
5959 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
6060 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
61 <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga8ad46b9608226fd1c7eec27890281a72">make_mat2x2</a> (T const *const ptr)</td></tr>
61 <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga8ad46b9608226fd1c7eec27890281a72">make_mat2x2</a> (T const *const ptr)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
6363 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
64 <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga44094e20569c4f5099c099906278ea3d">make_mat2x3</a> (T const *const ptr)</td></tr>
64 <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga44094e20569c4f5099c099906278ea3d">make_mat2x3</a> (T const *const ptr)</td></tr>
6565 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
6666 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
67 <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga26642a9d5c0f0a1eaacc8b432516aa99">make_mat2x4</a> (T const *const ptr)</td></tr>
67 <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga26642a9d5c0f0a1eaacc8b432516aa99">make_mat2x4</a> (T const *const ptr)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
6969 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
70 <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga3012728a59d487ef0e19e0f0fff79b64">make_mat3</a> (T const *const ptr)</td></tr>
70 <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga3012728a59d487ef0e19e0f0fff79b64">make_mat3</a> (T const *const ptr)</td></tr>
7171 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
7272 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
73 <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga9e82111c23b88953fe05ee8c27c2b1bc">make_mat3x2</a> (T const *const ptr)</td></tr>
73 <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga9e82111c23b88953fe05ee8c27c2b1bc">make_mat3x2</a> (T const *const ptr)</td></tr>
7474 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
7575 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
76 <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga225aa7d04b65101d744ef77d95e1a23b">make_mat3x3</a> (T const *const ptr)</td></tr>
76 <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga225aa7d04b65101d744ef77d95e1a23b">make_mat3x3</a> (T const *const ptr)</td></tr>
7777 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
7878 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
79 <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#gaa4708891294a5aee07256ba6441b4889">make_mat3x4</a> (T const *const ptr)</td></tr>
79 <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#gaa4708891294a5aee07256ba6441b4889">make_mat3x4</a> (T const *const ptr)</td></tr>
8080 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
8181 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
82 <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga208ed9a335cf79366b278deedd83f32b">make_mat4</a> (T const *const ptr)</td></tr>
82 <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga208ed9a335cf79366b278deedd83f32b">make_mat4</a> (T const *const ptr)</td></tr>
8383 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
8484 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
85 <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga2092b5a4cd05f2e39dc1b8e5ee22589c">make_mat4x2</a> (T const *const ptr)</td></tr>
85 <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga2092b5a4cd05f2e39dc1b8e5ee22589c">make_mat4x2</a> (T const *const ptr)</td></tr>
8686 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
8787 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
88 <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga0bc483c7f197b07a816682dd0b3981d9">make_mat4x3</a> (T const *const ptr)</td></tr>
88 <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga0bc483c7f197b07a816682dd0b3981d9">make_mat4x3</a> (T const *const ptr)</td></tr>
8989 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
9090 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
91 <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#gac9e742ff5cc9308caabd8236fc11a687">make_mat4x4</a> (T const *const ptr)</td></tr>
91 <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#gac9e742ff5cc9308caabd8236fc11a687">make_mat4x4</a> (T const *const ptr)</td></tr>
9292 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
9393 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
94 <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga78da3ea7db8bca3e13559653ce55093b">make_vec2</a> (T const *const ptr)</td></tr>
94 <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga78da3ea7db8bca3e13559653ce55093b">make_vec2</a> (T const *const ptr)</td></tr>
9595 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
9696 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
97 <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga2a4f1959e1070f904687739954c4f7ee">make_vec3</a> (T const *const ptr)</td></tr>
97 <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga2a4f1959e1070f904687739954c4f7ee">make_vec3</a> (T const *const ptr)</td></tr>
9898 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
9999 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
100 <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga76c09e1e25b8dbb947d10b76f5c4beac">make_vec4</a> (T const *const ptr)</td></tr>
100 <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga76c09e1e25b8dbb947d10b76f5c4beac">make_vec4</a> (T const *const ptr)</td></tr>
101101 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
102 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga42469e8bdefe80d3fefa9aa58aad61e8">value_ptr</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;mat)</td></tr>
102 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga42469e8bdefe80d3fefa9aa58aad61e8">value_ptr</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;mat)</td></tr>
103103 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
104 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga05d5fe10da0bee1b1443058e8ed0299f">value_ptr</a> (<a class="el" href="a00017.html">detail::tmat4x3</a>&lt; T &gt; &amp;mat)</td></tr>
104 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga05d5fe10da0bee1b1443058e8ed0299f">value_ptr</a> (<a class="el" href="a00017.html">detail::tmat4x3</a>&lt; T &gt; &amp;mat)</td></tr>
105105 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
106 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga2df67ef048ae136e1bcd05f8942fde7a">value_ptr</a> (<a class="el" href="a00017.html">detail::tmat4x3</a>&lt; T &gt; const &amp;mat)</td></tr>
106 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga2df67ef048ae136e1bcd05f8942fde7a">value_ptr</a> (<a class="el" href="a00017.html">detail::tmat4x3</a>&lt; T &gt; const &amp;mat)</td></tr>
107107 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
108 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga5fa0d0614af4ed2455e652884846fb1d">value_ptr</a> (<a class="el" href="a00015.html">detail::tmat3x4</a>&lt; T &gt; &amp;mat)</td></tr>
108 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga5fa0d0614af4ed2455e652884846fb1d">value_ptr</a> (<a class="el" href="a00015.html">detail::tmat3x4</a>&lt; T &gt; &amp;mat)</td></tr>
109109 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
110 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga651f202c716db8b90cefb81b1c0da0c8">value_ptr</a> (<a class="el" href="a00015.html">detail::tmat3x4</a>&lt; T &gt; const &amp;mat)</td></tr>
110 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga651f202c716db8b90cefb81b1c0da0c8">value_ptr</a> (<a class="el" href="a00015.html">detail::tmat3x4</a>&lt; T &gt; const &amp;mat)</td></tr>
111111 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
112 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga49da2fc0f3db83449a06c47d729ba024">value_ptr</a> (<a class="el" href="a00016.html">detail::tmat4x2</a>&lt; T &gt; &amp;mat)</td></tr>
112 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga49da2fc0f3db83449a06c47d729ba024">value_ptr</a> (<a class="el" href="a00016.html">detail::tmat4x2</a>&lt; T &gt; &amp;mat)</td></tr>
113113 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
114 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga96d7708293e8bc9904afcc504189bf55">value_ptr</a> (<a class="el" href="a00012.html">detail::tmat2x4</a>&lt; T &gt; &amp;mat)</td></tr>
114 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga96d7708293e8bc9904afcc504189bf55">value_ptr</a> (<a class="el" href="a00012.html">detail::tmat2x4</a>&lt; T &gt; &amp;mat)</td></tr>
115115 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
116 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga99bbcb12e6a17ba198faf9259c8abd96">value_ptr</a> (<a class="el" href="a00012.html">detail::tmat2x4</a>&lt; T &gt; const &amp;mat)</td></tr>
116 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga99bbcb12e6a17ba198faf9259c8abd96">value_ptr</a> (<a class="el" href="a00012.html">detail::tmat2x4</a>&lt; T &gt; const &amp;mat)</td></tr>
117117 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
118 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#gaa9206a4b3878b3fd2a904b8147457f77">value_ptr</a> (<a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt; &amp;mat)</td></tr>
118 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#gaa9206a4b3878b3fd2a904b8147457f77">value_ptr</a> (<a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt; &amp;mat)</td></tr>
119119 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
120 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#gabd71f400506835e596c2decd6631f124">value_ptr</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;vec)</td></tr>
120 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#gabd71f400506835e596c2decd6631f124">value_ptr</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;vec)</td></tr>
121121 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
122 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga9fc0e1b422d30446d77f7b3b9a4344dd">value_ptr</a> (<a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; const &amp;mat)</td></tr>
122 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga9fc0e1b422d30446d77f7b3b9a4344dd">value_ptr</a> (<a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; const &amp;mat)</td></tr>
123123 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
124 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga7bf8756cfee3981a93530342efda2a09">value_ptr</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;vec)</td></tr>
124 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga7bf8756cfee3981a93530342efda2a09">value_ptr</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;vec)</td></tr>
125125 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
126 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#gac21518f95a134dbe3c61460c89264b08">value_ptr</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; const &amp;vec)</td></tr>
126 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#gac21518f95a134dbe3c61460c89264b08">value_ptr</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; const &amp;vec)</td></tr>
127127 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
128 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga3d8f3ed25463d8b7d9f25ba6d7a8acbc">value_ptr</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;vec)</td></tr>
128 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga3d8f3ed25463d8b7d9f25ba6d7a8acbc">value_ptr</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;vec)</td></tr>
129129 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
130 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga56c2e17bbd93738609308c13a515f170">value_ptr</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;mat)</td></tr>
130 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga56c2e17bbd93738609308c13a515f170">value_ptr</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;mat)</td></tr>
131131 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
132 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga830aa0335e6f5e590b1c3ebb642f3e9b">value_ptr</a> (<a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; &amp;mat)</td></tr>
132 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga830aa0335e6f5e590b1c3ebb642f3e9b">value_ptr</a> (<a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; &amp;mat)</td></tr>
133133 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
134 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga865263cd65e95cc13ff6a5aa84e3f5e8">value_ptr</a> (<a class="el" href="a00016.html">detail::tmat4x2</a>&lt; T &gt; const &amp;mat)</td></tr>
134 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga865263cd65e95cc13ff6a5aa84e3f5e8">value_ptr</a> (<a class="el" href="a00016.html">detail::tmat4x2</a>&lt; T &gt; const &amp;mat)</td></tr>
135135 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
136 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga861a6b1ce6a5138d9fd56c03df8831fa">value_ptr</a> (<a class="el" href="a00013.html">detail::tmat3x2</a>&lt; T &gt; &amp;mat)</td></tr>
136 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga861a6b1ce6a5138d9fd56c03df8831fa">value_ptr</a> (<a class="el" href="a00013.html">detail::tmat3x2</a>&lt; T &gt; &amp;mat)</td></tr>
137137 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
138 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga8cb84075eac2170b71408bd87e360fc5">value_ptr</a> (<a class="el" href="a00011.html">detail::tmat2x3</a>&lt; T &gt; &amp;mat)</td></tr>
138 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga8cb84075eac2170b71408bd87e360fc5">value_ptr</a> (<a class="el" href="a00011.html">detail::tmat2x3</a>&lt; T &gt; &amp;mat)</td></tr>
139139 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
140 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga3991a9338f71a240c139d2578dc3ce2a">value_ptr</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;vec)</td></tr>
140 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga3991a9338f71a240c139d2578dc3ce2a">value_ptr</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;vec)</td></tr>
141141 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
142 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#gaa8d062cde13a6ab5b87e660301aafcbd">value_ptr</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; const &amp;vec)</td></tr>
142 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#gaa8d062cde13a6ab5b87e660301aafcbd">value_ptr</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; const &amp;vec)</td></tr>
143143 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
144 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga35559a6453513f1be0cc693d55058313">value_ptr</a> (<a class="el" href="a00013.html">detail::tmat3x2</a>&lt; T &gt; const &amp;mat)</td></tr>
144 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga35559a6453513f1be0cc693d55058313">value_ptr</a> (<a class="el" href="a00013.html">detail::tmat3x2</a>&lt; T &gt; const &amp;mat)</td></tr>
145145 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
146 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga8346668458014141646d1d73b009d8b1">value_ptr</a> (<a class="el" href="a00011.html">detail::tmat2x3</a>&lt; T &gt; const &amp;mat)</td></tr>
146 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga8346668458014141646d1d73b009d8b1">value_ptr</a> (<a class="el" href="a00011.html">detail::tmat2x3</a>&lt; T &gt; const &amp;mat)</td></tr>
147147 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
148 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga7a39de90fc430c08510ce091ac634a79">value_ptr</a> (<a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt; const &amp;mat)</td></tr>
148 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga7a39de90fc430c08510ce091ac634a79">value_ptr</a> (<a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt; const &amp;mat)</td></tr>
149149 </table>
150150 <hr/><a name="_details"></a><h2>Detailed Description</h2>
151 <div class="textblock"><p>GLM_GTC_type_ptr extension: Get access to vectors &amp; matrices value type address. </p>
151 <div class="textblock"><p>&lt; GLM_GTC_type_ptr extension: Get access to vectors &amp; matrices value type address. </p>
152152 </div></div>
153153 <hr class="footer"/><address class="footer"><small>Generated by&#160;
154154 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 </ul>
4040 </div>
106106 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00220.html">transform2</a></td></tr>
107107 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00221.html">ulp</a></td></tr>
108108 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html">unsigned_int</a></td></tr>
109 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00223.html">vector1</a></td></tr>
110109 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00225.html">vector_access</a></td></tr>
111110 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html">vector_angle</a></td></tr>
112111 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html">vector_query</a></td></tr>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00169.html">associated_min_max</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_associated_min_max extension: Min and max functions that return associated values not the compared onces.
51 <p>&lt; GLM_GTX_associated_min_max extension: Min and max functions that return associated values not the compared onces.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga3b1c8d7070874427d0a0fd84885ce473"></a><!-- doxytag: member="glm::gtx::associated_min_max::associatedMax" ref="ga3b1c8d7070874427d0a0fd84885ce473" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b)" -->
5757 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga3b1c8d7070874427d0a0fd84885ce473">associatedMax</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b)</td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00248.html#ga3b1c8d7070874427d0a0fd84885ce473">associatedMax</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b)</td></tr>
5959 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf677e31296d27c540b8873b0da989780"></a><!-- doxytag: member="glm::gtx::associated_min_max::associatedMax" ref="gaf677e31296d27c540b8873b0da989780" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c)" -->
6060 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#gaf677e31296d27c540b8873b0da989780">associatedMax</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00248.html#gaf677e31296d27c540b8873b0da989780">associatedMax</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga356657481029e90e6f079ec4ccd6407b"></a><!-- doxytag: member="glm::gtx::associated_min_max::associatedMax" ref="ga356657481029e90e6f079ec4ccd6407b" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c, const genTypeT &amp;w, const genTypeU &amp;d)" -->
6363 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga356657481029e90e6f079ec4ccd6407b">associatedMax</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c, const genTypeT &amp;w, const genTypeU &amp;d)</td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00248.html#ga356657481029e90e6f079ec4ccd6407b">associatedMax</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c, const genTypeT &amp;w, const genTypeU &amp;d)</td></tr>
6565 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga35cccfe67d0f20c897b3bb7d53ceee92"></a><!-- doxytag: member="glm::gtx::associated_min_max::associatedMin" ref="ga35cccfe67d0f20c897b3bb7d53ceee92" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c)" -->
6666 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga35cccfe67d0f20c897b3bb7d53ceee92">associatedMin</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00248.html#ga35cccfe67d0f20c897b3bb7d53ceee92">associatedMin</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga84781b260e2851924efea99c4d2e5ae6"></a><!-- doxytag: member="glm::gtx::associated_min_max::associatedMin" ref="ga84781b260e2851924efea99c4d2e5ae6" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b)" -->
6969 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga84781b260e2851924efea99c4d2e5ae6">associatedMin</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b)</td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00248.html#ga84781b260e2851924efea99c4d2e5ae6">associatedMin</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b)</td></tr>
7171 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8ee45a8117b0ce3827d6a57625cafac0"></a><!-- doxytag: member="glm::gtx::associated_min_max::associatedMin" ref="ga8ee45a8117b0ce3827d6a57625cafac0" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c, const genTypeT &amp;w, const genTypeU &amp;d)" -->
7272 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga8ee45a8117b0ce3827d6a57625cafac0">associatedMin</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c, const genTypeT &amp;w, const genTypeU &amp;d)</td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00248.html#ga8ee45a8117b0ce3827d6a57625cafac0">associatedMin</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c, const genTypeT &amp;w, const genTypeU &amp;d)</td></tr>
7474 </table>
7575 <hr/><a name="_details"></a><h2>Detailed Description</h2>
76 <div class="textblock"><p>GLM_GTX_associated_min_max extension: Min and max functions that return associated values not the compared onces. </p>
76 <div class="textblock"><p>&lt; GLM_GTX_associated_min_max extension: Min and max functions that return associated values not the compared onces. </p>
7777 </div></div>
7878 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7979 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00170.html">bit</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_bit extension: Allow to perform bit operations on integer values.
51 <p>&lt; GLM_GTX_bit extension: Allow to perform bit operations on integer values
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga2f145f264c334caba22e6949e015d208">bitRevert</a> (genType const &amp;value)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga2f145f264c334caba22e6949e015d208">bitRevert</a> (genType const &amp;value)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#gaa8de15434b73178fd1d2ea7ee16b59bd">bitRotateLeft</a> (genType const &amp;In, std::size_t Shift)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#gaa8de15434b73178fd1d2ea7ee16b59bd">bitRotateLeft</a> (genType const &amp;In, std::size_t Shift)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#gaeec0d4179d7a092056e2201fff385ef6">bitRotateRight</a> (genType const &amp;In, std::size_t Shift)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#gaeec0d4179d7a092056e2201fff385ef6">bitRotateRight</a> (genType const &amp;In, std::size_t Shift)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType , typename sizeType &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga244734bb54e4648970c38b032258035a">extractField</a> (genIUType const &amp;v, sizeType const &amp;first, sizeType const &amp;count)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga244734bb54e4648970c38b032258035a">extractField</a> (genIUType const &amp;v, sizeType const &amp;first, sizeType const &amp;count)</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga55e17a1e9347ca10d206f62ffe294608">highestBit</a> (genType const &amp;value)</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga55e17a1e9347ca10d206f62ffe294608">highestBit</a> (genType const &amp;value)</td></tr>
6666 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga2e2ba1398ef471e40e6a07cbab9a75fe">highestBitValue</a> (genType const &amp;value)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga2e2ba1398ef471e40e6a07cbab9a75fe">highestBitValue</a> (genType const &amp;value)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#gadddfcaa01efe60218e52323707331415">isPowerOfTwo</a> (genType const &amp;value)</td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#gadddfcaa01efe60218e52323707331415">isPowerOfTwo</a> (genType const &amp;value)</td></tr>
7070 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#gace8029d9e9090f2aaa0248e320b3f24c">lowestBit</a> (genType const &amp;value)</td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#gace8029d9e9090f2aaa0248e320b3f24c">lowestBit</a> (genType const &amp;value)</td></tr>
7272 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIType &gt; </td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top">genIType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga31dbf05c851060984e107afb39dde5fe">mask</a> (genIType const &amp;count)</td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top">genIType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga31dbf05c851060984e107afb39dde5fe">mask</a> (genIType const &amp;count)</td></tr>
7474 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga0a1683dffc58011a161c0b3cb867c93c">powerOfTwoAbove</a> (genType const &amp;value)</td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga0a1683dffc58011a161c0b3cb867c93c">powerOfTwoAbove</a> (genType const &amp;value)</td></tr>
7676 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga9adeb3bc22e67933665600e0dc2e1f8d">powerOfTwoBelow</a> (genType const &amp;value)</td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga9adeb3bc22e67933665600e0dc2e1f8d">powerOfTwoBelow</a> (genType const &amp;value)</td></tr>
7878 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga12d57451c94950bafe2e1fb57346f082">powerOfTwoNearest</a> (genType const &amp;value)</td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga12d57451c94950bafe2e1fb57346f082">powerOfTwoNearest</a> (genType const &amp;value)</td></tr>
8080 </table>
8181 <hr/><a name="_details"></a><h2>Detailed Description</h2>
82 <div class="textblock"><p>GLM_GTX_bit extension: Allow to perform bit operations on integer values. </p>
82 <div class="textblock"><p>&lt; GLM_GTX_bit extension: Allow to perform bit operations on integer values </p>
8383 </div></div>
8484 <hr class="footer"/><address class="footer"><small>Generated by&#160;
8585 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00171.html">closest_point</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_closest_point extension: Find the point on a straight line which is the closet of a point.
51 <p>&lt; GLM_GTX_closest_point extension: Find the point on a straight line which is the closet of a point.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga14a814a7834db281ef0167947c8f9516">closestPointOnLine</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;point, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;a, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;b)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga14a814a7834db281ef0167947c8f9516">closestPointOnLine</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;point, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;a, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;b)</td></tr>
5858 </table>
5959 <hr/><a name="_details"></a><h2>Detailed Description</h2>
60 <div class="textblock"><p>GLM_GTX_closest_point extension: Find the point on a straight line which is the closet of a point. </p>
60 <div class="textblock"><p>&lt; GLM_GTX_closest_point extension: Find the point on a straight line which is the closet of a point. </p>
6161 </div></div>
6262 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6363 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00172.html">color_cast</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_color_cast extension: Conversion between two color types.
51 <p>&lt; GLM_GTX_color_cast extension: Conversion between two color types
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga3cd01da9b10cf61cf556fc8e7992f2ea"></a><!-- doxytag: member="glm::gtx::color_cast::f16_abgr_cast" ref="ga3cd01da9b10cf61cf556fc8e7992f2ea" args="(T c)" -->
5757 template&lt;typename T &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f16vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga3cd01da9b10cf61cf556fc8e7992f2ea">f16_abgr_cast</a> (T c)</td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f16vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga3cd01da9b10cf61cf556fc8e7992f2ea">f16_abgr_cast</a> (T c)</td></tr>
5959 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf58e7f656ffad74fe4ed093250c444c8"></a><!-- doxytag: member="glm::gtx::color_cast::f16_argb_cast" ref="gaf58e7f656ffad74fe4ed093250c444c8" args="(T c)" -->
6060 template&lt;typename T &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f16vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gaf58e7f656ffad74fe4ed093250c444c8">f16_argb_cast</a> (T c)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f16vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gaf58e7f656ffad74fe4ed093250c444c8">f16_argb_cast</a> (T c)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadbd908bc29dd87b7222dad33a6b0a6ad"></a><!-- doxytag: member="glm::gtx::color_cast::f16_bgra_cast" ref="gadbd908bc29dd87b7222dad33a6b0a6ad" args="(T c)" -->
6363 template&lt;typename T &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f16vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gadbd908bc29dd87b7222dad33a6b0a6ad">f16_bgra_cast</a> (T c)</td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f16vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gadbd908bc29dd87b7222dad33a6b0a6ad">f16_bgra_cast</a> (T c)</td></tr>
6565 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaed8b82a32ac9f6e8024a6880461496ba"></a><!-- doxytag: member="glm::gtx::color_cast::f16_bgrx_cast" ref="gaed8b82a32ac9f6e8024a6880461496ba" args="(T c)" -->
6666 template&lt;typename T &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f16vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gaed8b82a32ac9f6e8024a6880461496ba">f16_bgrx_cast</a> (T c)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f16vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gaed8b82a32ac9f6e8024a6880461496ba">f16_bgrx_cast</a> (T c)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae735900f14bcc64ebaf42bb812500964"></a><!-- doxytag: member="glm::gtx::color_cast::f16_channel_cast" ref="gae735900f14bcc64ebaf42bb812500964" args="(T a)" -->
6969 template&lt;typename T &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00279.html#ga116e2376ef94e8c60bc5c2b66fc5a6db">gtx::number_precision::f16vec1</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gae735900f14bcc64ebaf42bb812500964">f16_channel_cast</a> (T a)</td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00278.html#ga116e2376ef94e8c60bc5c2b66fc5a6db">gtx::number_precision::f16vec1</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gae735900f14bcc64ebaf42bb812500964">f16_channel_cast</a> (T a)</td></tr>
7171 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga417f7a9c2bc66229dbeb714308ff45ba"></a><!-- doxytag: member="glm::gtx::color_cast::f16_rgba_cast" ref="ga417f7a9c2bc66229dbeb714308ff45ba" args="(T c)" -->
7272 template&lt;typename T &gt; </td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f16vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga417f7a9c2bc66229dbeb714308ff45ba">f16_rgba_cast</a> (T c)</td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f16vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga417f7a9c2bc66229dbeb714308ff45ba">f16_rgba_cast</a> (T c)</td></tr>
7474 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga82f8510eb3275299aee11f7a6a0761c0"></a><!-- doxytag: member="glm::gtx::color_cast::f16_rgbx_cast" ref="ga82f8510eb3275299aee11f7a6a0761c0" args="(T c)" -->
7575 template&lt;typename T &gt; </td></tr>
76 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f16vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga82f8510eb3275299aee11f7a6a0761c0">f16_rgbx_cast</a> (T c)</td></tr>
76 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f16vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga82f8510eb3275299aee11f7a6a0761c0">f16_rgbx_cast</a> (T c)</td></tr>
7777 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga6a18355f6ce1b531a8d879774ba43179"></a><!-- doxytag: member="glm::gtx::color_cast::f16_xbgr_cast" ref="ga6a18355f6ce1b531a8d879774ba43179" args="(T c)" -->
7878 template&lt;typename T &gt; </td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f16vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga6a18355f6ce1b531a8d879774ba43179">f16_xbgr_cast</a> (T c)</td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f16vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga6a18355f6ce1b531a8d879774ba43179">f16_xbgr_cast</a> (T c)</td></tr>
8080 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga54f72266de72a0834da07337b2512c78"></a><!-- doxytag: member="glm::gtx::color_cast::f16_xrgb_cast" ref="ga54f72266de72a0834da07337b2512c78" args="(T c)" -->
8181 template&lt;typename T &gt; </td></tr>
82 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f16vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga54f72266de72a0834da07337b2512c78">f16_xrgb_cast</a> (T c)</td></tr>
82 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f16vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga54f72266de72a0834da07337b2512c78">f16_xrgb_cast</a> (T c)</td></tr>
8383 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga95a33ffb1476bf675e9629301ec180b1"></a><!-- doxytag: member="glm::gtx::color_cast::f32_abgr_cast" ref="ga95a33ffb1476bf675e9629301ec180b1" args="(T c)" -->
8484 template&lt;typename T &gt; </td></tr>
85 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f32vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga95a33ffb1476bf675e9629301ec180b1">f32_abgr_cast</a> (T c)</td></tr>
85 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f32vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga95a33ffb1476bf675e9629301ec180b1">f32_abgr_cast</a> (T c)</td></tr>
8686 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaee24a081d5b7c84ffffdd66d12963c4c"></a><!-- doxytag: member="glm::gtx::color_cast::f32_argb_cast" ref="gaee24a081d5b7c84ffffdd66d12963c4c" args="(T c)" -->
8787 template&lt;typename T &gt; </td></tr>
88 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f32vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gaee24a081d5b7c84ffffdd66d12963c4c">f32_argb_cast</a> (T c)</td></tr>
88 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f32vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gaee24a081d5b7c84ffffdd66d12963c4c">f32_argb_cast</a> (T c)</td></tr>
8989 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadb328d5e9fff54f6b23dc29e1ce8591e"></a><!-- doxytag: member="glm::gtx::color_cast::f32_bgra_cast" ref="gadb328d5e9fff54f6b23dc29e1ce8591e" args="(T c)" -->
9090 template&lt;typename T &gt; </td></tr>
91 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f32vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gadb328d5e9fff54f6b23dc29e1ce8591e">f32_bgra_cast</a> (T c)</td></tr>
91 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f32vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gadb328d5e9fff54f6b23dc29e1ce8591e">f32_bgra_cast</a> (T c)</td></tr>
9292 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga78abdd7116c8c25e29219b32c4bb937e"></a><!-- doxytag: member="glm::gtx::color_cast::f32_bgrx_cast" ref="ga78abdd7116c8c25e29219b32c4bb937e" args="(T c)" -->
9393 template&lt;typename T &gt; </td></tr>
94 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f32vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga78abdd7116c8c25e29219b32c4bb937e">f32_bgrx_cast</a> (T c)</td></tr>
94 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f32vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga78abdd7116c8c25e29219b32c4bb937e">f32_bgrx_cast</a> (T c)</td></tr>
9595 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga44006c7374476ad1ee285f28e9c416bb"></a><!-- doxytag: member="glm::gtx::color_cast::f32_channel_cast" ref="ga44006c7374476ad1ee285f28e9c416bb" args="(T a)" -->
9696 template&lt;typename T &gt; </td></tr>
97 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00279.html#ga07f8d7348eb7ae059a84c118fdfeb943">gtx::number_precision::f32vec1</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga44006c7374476ad1ee285f28e9c416bb">f32_channel_cast</a> (T a)</td></tr>
97 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00278.html#ga07f8d7348eb7ae059a84c118fdfeb943">gtx::number_precision::f32vec1</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga44006c7374476ad1ee285f28e9c416bb">f32_channel_cast</a> (T a)</td></tr>
9898 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga84d5bcccb37c9788bfb0fa00bea4b0fe"></a><!-- doxytag: member="glm::gtx::color_cast::f32_rgba_cast" ref="ga84d5bcccb37c9788bfb0fa00bea4b0fe" args="(T c)" -->
9999 template&lt;typename T &gt; </td></tr>
100 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f32vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga84d5bcccb37c9788bfb0fa00bea4b0fe">f32_rgba_cast</a> (T c)</td></tr>
100 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f32vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga84d5bcccb37c9788bfb0fa00bea4b0fe">f32_rgba_cast</a> (T c)</td></tr>
101101 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4ef58cdad0a076db6b9f6f67d918087b"></a><!-- doxytag: member="glm::gtx::color_cast::f32_rgbx_cast" ref="ga4ef58cdad0a076db6b9f6f67d918087b" args="(T c)" -->
102102 template&lt;typename T &gt; </td></tr>
103 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f32vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga4ef58cdad0a076db6b9f6f67d918087b">f32_rgbx_cast</a> (T c)</td></tr>
103 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f32vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga4ef58cdad0a076db6b9f6f67d918087b">f32_rgbx_cast</a> (T c)</td></tr>
104104 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga46e9df97410a559a816737a331db62dd"></a><!-- doxytag: member="glm::gtx::color_cast::f32_xbgr_cast" ref="ga46e9df97410a559a816737a331db62dd" args="(T c)" -->
105105 template&lt;typename T &gt; </td></tr>
106 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f32vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga46e9df97410a559a816737a331db62dd">f32_xbgr_cast</a> (T c)</td></tr>
106 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f32vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga46e9df97410a559a816737a331db62dd">f32_xbgr_cast</a> (T c)</td></tr>
107107 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4c3d60e3f865187ab8dc7e1e53b061b"></a><!-- doxytag: member="glm::gtx::color_cast::f32_xrgb_cast" ref="gaf4c3d60e3f865187ab8dc7e1e53b061b" args="(T c)" -->
108108 template&lt;typename T &gt; </td></tr>
109 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f32vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gaf4c3d60e3f865187ab8dc7e1e53b061b">f32_xrgb_cast</a> (T c)</td></tr>
109 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f32vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gaf4c3d60e3f865187ab8dc7e1e53b061b">f32_xrgb_cast</a> (T c)</td></tr>
110110 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga42c1cf7dedeaa76629046e8abea5d698"></a><!-- doxytag: member="glm::gtx::color_cast::f64_abgr_cast" ref="ga42c1cf7dedeaa76629046e8abea5d698" args="(T c)" -->
111111 template&lt;typename T &gt; </td></tr>
112 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f64vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga42c1cf7dedeaa76629046e8abea5d698">f64_abgr_cast</a> (T c)</td></tr>
112 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f64vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga42c1cf7dedeaa76629046e8abea5d698">f64_abgr_cast</a> (T c)</td></tr>
113113 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab917debabb647fd4144b2d4cf3359737"></a><!-- doxytag: member="glm::gtx::color_cast::f64_argb_cast" ref="gab917debabb647fd4144b2d4cf3359737" args="(T c)" -->
114114 template&lt;typename T &gt; </td></tr>
115 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f64vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gab917debabb647fd4144b2d4cf3359737">f64_argb_cast</a> (T c)</td></tr>
115 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f64vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gab917debabb647fd4144b2d4cf3359737">f64_argb_cast</a> (T c)</td></tr>
116116 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac954d9636b86e6a10e19ede77d4f387e"></a><!-- doxytag: member="glm::gtx::color_cast::f64_bgra_cast" ref="gac954d9636b86e6a10e19ede77d4f387e" args="(T c)" -->
117117 template&lt;typename T &gt; </td></tr>
118 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f64vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gac954d9636b86e6a10e19ede77d4f387e">f64_bgra_cast</a> (T c)</td></tr>
118 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f64vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gac954d9636b86e6a10e19ede77d4f387e">f64_bgra_cast</a> (T c)</td></tr>
119119 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gabb6a7bcbd66735a86da1dedf7ea3d530"></a><!-- doxytag: member="glm::gtx::color_cast::f64_bgrx_cast" ref="gabb6a7bcbd66735a86da1dedf7ea3d530" args="(T c)" -->
120120 template&lt;typename T &gt; </td></tr>
121 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f64vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gabb6a7bcbd66735a86da1dedf7ea3d530">f64_bgrx_cast</a> (T c)</td></tr>
121 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f64vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gabb6a7bcbd66735a86da1dedf7ea3d530">f64_bgrx_cast</a> (T c)</td></tr>
122122 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gad2b4dbd955443cb15c731e4564f575e0"></a><!-- doxytag: member="glm::gtx::color_cast::f64_channel_cast" ref="gad2b4dbd955443cb15c731e4564f575e0" args="(T a)" -->
123123 template&lt;typename T &gt; </td></tr>
124 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00279.html#gae5987a61b8c03d5c432a9e62f0b3efe1">gtx::number_precision::f64vec1</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gad2b4dbd955443cb15c731e4564f575e0">f64_channel_cast</a> (T a)</td></tr>
124 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00278.html#gae5987a61b8c03d5c432a9e62f0b3efe1">gtx::number_precision::f64vec1</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gad2b4dbd955443cb15c731e4564f575e0">f64_channel_cast</a> (T a)</td></tr>
125125 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae915ae64c81df6ceacb793f9cd6eac40"></a><!-- doxytag: member="glm::gtx::color_cast::f64_rgba_cast" ref="gae915ae64c81df6ceacb793f9cd6eac40" args="(T c)" -->
126126 template&lt;typename T &gt; </td></tr>
127 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f64vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gae915ae64c81df6ceacb793f9cd6eac40">f64_rgba_cast</a> (T c)</td></tr>
127 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">gtc::type_precision::f64vec4</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gae915ae64c81df6ceacb793f9cd6eac40">f64_rgba_cast</a> (T c)</td></tr>
128128 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga16520961abfe743f698b2e80cc0dc33a"></a><!-- doxytag: member="glm::gtx::color_cast::f64_rgbx_cast" ref="ga16520961abfe743f698b2e80cc0dc33a" args="(T c)" -->
129129 template&lt;typename T &gt; </td></tr>
130 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f64vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga16520961abfe743f698b2e80cc0dc33a">f64_rgbx_cast</a> (T c)</td></tr>
130 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f64vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga16520961abfe743f698b2e80cc0dc33a">f64_rgbx_cast</a> (T c)</td></tr>
131131 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa2c0dd06608625935b2d940a8155a6ff"></a><!-- doxytag: member="glm::gtx::color_cast::f64_xbgr_cast" ref="gaa2c0dd06608625935b2d940a8155a6ff" args="(T c)" -->
132132 template&lt;typename T &gt; </td></tr>
133 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f64vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gaa2c0dd06608625935b2d940a8155a6ff">f64_xbgr_cast</a> (T c)</td></tr>
133 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f64vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gaa2c0dd06608625935b2d940a8155a6ff">f64_xbgr_cast</a> (T c)</td></tr>
134134 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga35d1e8fedde05c4b0bd6b26312fe3677"></a><!-- doxytag: member="glm::gtx::color_cast::f64_xrgb_cast" ref="ga35d1e8fedde05c4b0bd6b26312fe3677" args="(T c)" -->
135135 template&lt;typename T &gt; </td></tr>
136 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f64vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga35d1e8fedde05c4b0bd6b26312fe3677">f64_xrgb_cast</a> (T c)</td></tr>
136 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">gtc::type_precision::f64vec3</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga35d1e8fedde05c4b0bd6b26312fe3677">f64_xrgb_cast</a> (T c)</td></tr>
137137 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
138 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d">gtc::type_precision::uint16</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gab1c15b0a63939cf8b73704b3ee0531bf">u16channel_cast</a> (valType a)</td></tr>
138 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d">gtc::type_precision::uint16</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gab1c15b0a63939cf8b73704b3ee0531bf">u16channel_cast</a> (valType a)</td></tr>
139139 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7419ad7d2b6280021d2e6fe61f959593"></a><!-- doxytag: member="glm::gtx::color_cast::u32_abgr_cast" ref="ga7419ad7d2b6280021d2e6fe61f959593" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
140140 template&lt;typename T &gt; </td></tr>
141 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d">gtc::type_precision::uint32</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga7419ad7d2b6280021d2e6fe61f959593">u32_abgr_cast</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;c)</td></tr>
141 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d">gtc::type_precision::uint32</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga7419ad7d2b6280021d2e6fe61f959593">u32_abgr_cast</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;c)</td></tr>
142142 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga54d650e121ffa7dd5df995f45eacbe7c"></a><!-- doxytag: member="glm::gtx::color_cast::u32_argb_cast" ref="ga54d650e121ffa7dd5df995f45eacbe7c" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
143143 template&lt;typename T &gt; </td></tr>
144 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d">gtc::type_precision::uint32</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga54d650e121ffa7dd5df995f45eacbe7c">u32_argb_cast</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;c)</td></tr>
144 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d">gtc::type_precision::uint32</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga54d650e121ffa7dd5df995f45eacbe7c">u32_argb_cast</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;c)</td></tr>
145145 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga994311f638751fbd6c18cbc6e7cc40a2"></a><!-- doxytag: member="glm::gtx::color_cast::u32_bgra_cast" ref="ga994311f638751fbd6c18cbc6e7cc40a2" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
146146 template&lt;typename T &gt; </td></tr>
147 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d">gtc::type_precision::uint32</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga994311f638751fbd6c18cbc6e7cc40a2">u32_bgra_cast</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;c)</td></tr>
147 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d">gtc::type_precision::uint32</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga994311f638751fbd6c18cbc6e7cc40a2">u32_bgra_cast</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;c)</td></tr>
148148 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4343a2cc949e6a62e3195a50e03b328a"></a><!-- doxytag: member="glm::gtx::color_cast::u32_bgrx_cast" ref="ga4343a2cc949e6a62e3195a50e03b328a" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
149149 template&lt;typename T &gt; </td></tr>
150 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d">gtc::type_precision::uint32</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga4343a2cc949e6a62e3195a50e03b328a">u32_bgrx_cast</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;c)</td></tr>
150 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d">gtc::type_precision::uint32</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga4343a2cc949e6a62e3195a50e03b328a">u32_bgrx_cast</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;c)</td></tr>
151151 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga3251915cd4e12f9c74f80949dda11751"></a><!-- doxytag: member="glm::gtx::color_cast::u32_rgba_cast" ref="ga3251915cd4e12f9c74f80949dda11751" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
152152 template&lt;typename T &gt; </td></tr>
153 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d">gtc::type_precision::uint32</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga3251915cd4e12f9c74f80949dda11751">u32_rgba_cast</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;c)</td></tr>
153 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d">gtc::type_precision::uint32</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga3251915cd4e12f9c74f80949dda11751">u32_rgba_cast</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;c)</td></tr>
154154 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga76304a49860f623238edd96c9a181963"></a><!-- doxytag: member="glm::gtx::color_cast::u32_rgbx_cast" ref="ga76304a49860f623238edd96c9a181963" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
155155 template&lt;typename T &gt; </td></tr>
156 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d">gtc::type_precision::uint32</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga76304a49860f623238edd96c9a181963">u32_rgbx_cast</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;c)</td></tr>
156 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d">gtc::type_precision::uint32</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga76304a49860f623238edd96c9a181963">u32_rgbx_cast</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;c)</td></tr>
157157 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae24be431c89259065ba614b12e130740"></a><!-- doxytag: member="glm::gtx::color_cast::u32_xbgr_cast" ref="gae24be431c89259065ba614b12e130740" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
158158 template&lt;typename T &gt; </td></tr>
159 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d">gtc::type_precision::uint32</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gae24be431c89259065ba614b12e130740">u32_xbgr_cast</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;c)</td></tr>
159 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d">gtc::type_precision::uint32</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gae24be431c89259065ba614b12e130740">u32_xbgr_cast</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;c)</td></tr>
160160 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaeeb39141498fdaceb0eb7badd03b3111"></a><!-- doxytag: member="glm::gtx::color_cast::u32_xrgb_cast" ref="gaeeb39141498fdaceb0eb7badd03b3111" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
161161 template&lt;typename T &gt; </td></tr>
162 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d">gtc::type_precision::uint32</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gaeeb39141498fdaceb0eb7badd03b3111">u32_xrgb_cast</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;c)</td></tr>
162 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d">gtc::type_precision::uint32</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gaeeb39141498fdaceb0eb7badd03b3111">u32_xrgb_cast</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;c)</td></tr>
163163 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4f050b0db28ca10c503188070330a8c5"></a><!-- doxytag: member="glm::gtx::color_cast::u64_abgr_cast" ref="ga4f050b0db28ca10c503188070330a8c5" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
164164 template&lt;typename T &gt; </td></tr>
165 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#gab630f76c26b50298187f7889104d4b9c">gtc::type_precision::uint64</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga4f050b0db28ca10c503188070330a8c5">u64_abgr_cast</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;c)</td></tr>
165 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#gab630f76c26b50298187f7889104d4b9c">gtc::type_precision::uint64</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga4f050b0db28ca10c503188070330a8c5">u64_abgr_cast</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;c)</td></tr>
166166 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadbf0e161e934b6dc7fda389481764f4e"></a><!-- doxytag: member="glm::gtx::color_cast::u64_argb_cast" ref="gadbf0e161e934b6dc7fda389481764f4e" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
167167 template&lt;typename T &gt; </td></tr>
168 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#gab630f76c26b50298187f7889104d4b9c">gtc::type_precision::uint64</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gadbf0e161e934b6dc7fda389481764f4e">u64_argb_cast</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;c)</td></tr>
168 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#gab630f76c26b50298187f7889104d4b9c">gtc::type_precision::uint64</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gadbf0e161e934b6dc7fda389481764f4e">u64_argb_cast</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;c)</td></tr>
169169 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga36cc78b5052b31b83c2f9562088dc66f"></a><!-- doxytag: member="glm::gtx::color_cast::u64_bgra_cast" ref="ga36cc78b5052b31b83c2f9562088dc66f" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
170170 template&lt;typename T &gt; </td></tr>
171 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#gab630f76c26b50298187f7889104d4b9c">gtc::type_precision::uint64</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga36cc78b5052b31b83c2f9562088dc66f">u64_bgra_cast</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;c)</td></tr>
171 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#gab630f76c26b50298187f7889104d4b9c">gtc::type_precision::uint64</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga36cc78b5052b31b83c2f9562088dc66f">u64_bgra_cast</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;c)</td></tr>
172172 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae19e40c22424904d922e22525a0bb455"></a><!-- doxytag: member="glm::gtx::color_cast::u64_bgrx_cast" ref="gae19e40c22424904d922e22525a0bb455" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
173173 template&lt;typename T &gt; </td></tr>
174 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#gab630f76c26b50298187f7889104d4b9c">gtc::type_precision::uint64</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gae19e40c22424904d922e22525a0bb455">u64_bgrx_cast</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;c)</td></tr>
174 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#gab630f76c26b50298187f7889104d4b9c">gtc::type_precision::uint64</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gae19e40c22424904d922e22525a0bb455">u64_bgrx_cast</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;c)</td></tr>
175175 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gafd8e66f86f3c42fe17637ca0db751d40"></a><!-- doxytag: member="glm::gtx::color_cast::u64_rgba_cast" ref="gafd8e66f86f3c42fe17637ca0db751d40" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
176176 template&lt;typename T &gt; </td></tr>
177 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#gab630f76c26b50298187f7889104d4b9c">gtc::type_precision::uint64</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gafd8e66f86f3c42fe17637ca0db751d40">u64_rgba_cast</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;c)</td></tr>
177 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#gab630f76c26b50298187f7889104d4b9c">gtc::type_precision::uint64</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gafd8e66f86f3c42fe17637ca0db751d40">u64_rgba_cast</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;c)</td></tr>
178178 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac6f16d71adbccd604cffae1c83961bba"></a><!-- doxytag: member="glm::gtx::color_cast::u64_rgbx_cast" ref="gac6f16d71adbccd604cffae1c83961bba" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
179179 template&lt;typename T &gt; </td></tr>
180 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#gab630f76c26b50298187f7889104d4b9c">gtc::type_precision::uint64</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gac6f16d71adbccd604cffae1c83961bba">u64_rgbx_cast</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;c)</td></tr>
180 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#gab630f76c26b50298187f7889104d4b9c">gtc::type_precision::uint64</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gac6f16d71adbccd604cffae1c83961bba">u64_rgbx_cast</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;c)</td></tr>
181181 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac3327797af9858e7716cb02b9f8452bc"></a><!-- doxytag: member="glm::gtx::color_cast::u64_xbgr_cast" ref="gac3327797af9858e7716cb02b9f8452bc" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
182182 template&lt;typename T &gt; </td></tr>
183 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#gab630f76c26b50298187f7889104d4b9c">gtc::type_precision::uint64</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gac3327797af9858e7716cb02b9f8452bc">u64_xbgr_cast</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;c)</td></tr>
183 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#gab630f76c26b50298187f7889104d4b9c">gtc::type_precision::uint64</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gac3327797af9858e7716cb02b9f8452bc">u64_xbgr_cast</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;c)</td></tr>
184184 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4b860d9689ce434bef7ecdbb8cdbc4b4"></a><!-- doxytag: member="glm::gtx::color_cast::u64_xrgb_cast" ref="ga4b860d9689ce434bef7ecdbb8cdbc4b4" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
185185 template&lt;typename T &gt; </td></tr>
186 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#gab630f76c26b50298187f7889104d4b9c">gtc::type_precision::uint64</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga4b860d9689ce434bef7ecdbb8cdbc4b4">u64_xrgb_cast</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;c)</td></tr>
186 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#gab630f76c26b50298187f7889104d4b9c">gtc::type_precision::uint64</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga4b860d9689ce434bef7ecdbb8cdbc4b4">u64_xrgb_cast</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;c)</td></tr>
187187 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
188 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865">gtc::type_precision::uint8</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gab11ba0a450ba9a2b3885fa6a631df6f5">u8channel_cast</a> (valType a)</td></tr>
188 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865">gtc::type_precision::uint8</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gab11ba0a450ba9a2b3885fa6a631df6f5">u8channel_cast</a> (valType a)</td></tr>
189189 </table>
190190 <hr/><a name="_details"></a><h2>Detailed Description</h2>
191 <div class="textblock"><p>GLM_GTX_color_cast extension: Conversion between two color types. </p>
191 <div class="textblock"><p>&lt; GLM_GTX_color_cast extension: Conversion between two color types </p>
192192 </div></div>
193193 <hr class="footer"/><address class="footer"><small>Generated by&#160;
194194 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00173.html">color_space</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_color_space extension: Related to RGB to HSV conversions and operations.
51 <p>&lt; GLM_GTX_color_space extension: Related to RGB to HSV conversions and operations
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#ga20b1d59474b6588da10e72764711cf71">hsvColor</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;rgbValue)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga20b1d59474b6588da10e72764711cf71">hsvColor</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;rgbValue)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#ga205ff9aab7e86a3e434f1c49f0a2b234">luminosity</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;color)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga205ff9aab7e86a3e434f1c49f0a2b234">luminosity</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;color)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#gaa84fde704746ed36b80df7bf521510c5">rgbColor</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;hsvValue)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gaa84fde704746ed36b80df7bf521510c5">rgbColor</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;hsvValue)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#ga649fe400f2d7ae99886b2d41113b96d8">saturation</a> (valType const s, <a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;color)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga649fe400f2d7ae99886b2d41113b96d8">saturation</a> (valType const s, <a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;color)</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#gade937a20e420b352d33cce2e92c6fe10">saturation</a> (valType const s)</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gade937a20e420b352d33cce2e92c6fe10">saturation</a> (valType const s)</td></tr>
6666 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#gaaed109d3a4f752c03df37253f052d589">saturation</a> (valType const s, <a class="el" href="a00022.html">detail::tvec4</a>&lt; valType &gt; const &amp;color)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gaaed109d3a4f752c03df37253f052d589">saturation</a> (valType const s, <a class="el" href="a00022.html">detail::tvec4</a>&lt; valType &gt; const &amp;color)</td></tr>
6868 </table>
6969 <hr/><a name="_details"></a><h2>Detailed Description</h2>
70 <div class="textblock"><p>GLM_GTX_color_space extension: Related to RGB to HSV conversions and operations. </p>
70 <div class="textblock"><p>&lt; GLM_GTX_color_space extension: Related to RGB to HSV conversions and operations </p>
7171 </div></div>
7272 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7373 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00174.html">color_space_YCoCg</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_color_space_YCoCg extension: RGB to YCoCg conversions and operations.
51 <p>&lt; GLM_GTX_color_space_YCoCg extension: RGB to YCoCg conversions and operations
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga41820be771f6edb66eec3d3376bae693">rgb2YCoCg</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;rgbColor)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#ga41820be771f6edb66eec3d3376bae693">rgb2YCoCg</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;rgbColor)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga3c8d61f4ce259ce76b44fe70f472c766">rgb2YCoCgR</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;rgbColor)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#ga3c8d61f4ce259ce76b44fe70f472c766">rgb2YCoCgR</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;rgbColor)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga638451b1492ea464bcda5d1abb0db614">YCoCg2rgb</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;YCoCgColor)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#ga638451b1492ea464bcda5d1abb0db614">YCoCg2rgb</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;YCoCgColor)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga75497f0965bd4834d39a88c10dee12c4">YCoCgR2rgb</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;YCoCgColor)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#ga75497f0965bd4834d39a88c10dee12c4">YCoCgR2rgb</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;YCoCgColor)</td></tr>
6464 </table>
6565 <hr/><a name="_details"></a><h2>Detailed Description</h2>
66 <div class="textblock"><p>GLM_GTX_color_space_YCoCg extension: RGB to YCoCg conversions and operations. </p>
66 <div class="textblock"><p>&lt; GLM_GTX_color_space_YCoCg extension: RGB to YCoCg conversions and operations </p>
6767 </div></div>
6868 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6969 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00175.html">compatibility</a> </li>
4040 </ul>
4949 </div>
5050 <div class="contents">
5151
52 <p>GLM_GTX_compatibility extension: Provide functions to increase the compatibility with Cg and HLSL languages.
52 <p>&lt; GLM_GTX_compatibility extension: Provide functions to increase the compatibility with Cg and HLSL languages
5353 <a href="#_details">More...</a></p>
5454 <table class="memberdecls">
5555 <tr><td colspan="2"><h2><a name="typedef-members"></a>
5656 Typedefs</h2></td></tr>
5757 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaddcd7aa2e30e61af5b38660613d3979e"></a><!-- doxytag: member="glm::gtx::compatibility::bool1" ref="gaddcd7aa2e30e61af5b38660613d3979e" args="" -->
58 typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a></td></tr>
58 typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a></td></tr>
5959 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f895c936f0c29c8729afbbf22806090"></a><!-- doxytag: member="glm::gtx::compatibility::bool1x1" ref="ga7f895c936f0c29c8729afbbf22806090" args="" -->
60 typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a></td></tr>
60 typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a></td></tr>
6161 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga88cfb6bf63a7fd1f03fe5abeae2aec1d"></a><!-- doxytag: member="glm::gtx::compatibility::bool2" ref="ga88cfb6bf63a7fd1f03fe5abeae2aec1d" args="" -->
62 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga88cfb6bf63a7fd1f03fe5abeae2aec1d">bool2</a></td></tr>
62 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga88cfb6bf63a7fd1f03fe5abeae2aec1d">bool2</a></td></tr>
6363 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga51dfdd84c191d9433ebf5e626af2c1f9"></a><!-- doxytag: member="glm::gtx::compatibility::bool2x2" ref="ga51dfdd84c191d9433ebf5e626af2c1f9" args="" -->
64 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga51dfdd84c191d9433ebf5e626af2c1f9">bool2x2</a></td></tr>
64 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga51dfdd84c191d9433ebf5e626af2c1f9">bool2x2</a></td></tr>
6565 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3982a05435c6c2d492b747f8adf6b9e0"></a><!-- doxytag: member="glm::gtx::compatibility::bool2x3" ref="ga3982a05435c6c2d492b747f8adf6b9e0" args="" -->
66 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga3982a05435c6c2d492b747f8adf6b9e0">bool2x3</a></td></tr>
66 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga3982a05435c6c2d492b747f8adf6b9e0">bool2x3</a></td></tr>
6767 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga78a505943e47244f4495d07e4884c318"></a><!-- doxytag: member="glm::gtx::compatibility::bool2x4" ref="ga78a505943e47244f4495d07e4884c318" args="" -->
68 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga78a505943e47244f4495d07e4884c318">bool2x4</a></td></tr>
68 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga78a505943e47244f4495d07e4884c318">bool2x4</a></td></tr>
6969 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gade36f151806e985eec29fdf96ae6a2bb"></a><!-- doxytag: member="glm::gtx::compatibility::bool3" ref="gade36f151806e985eec29fdf96ae6a2bb" args="" -->
70 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gade36f151806e985eec29fdf96ae6a2bb">bool3</a></td></tr>
70 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gade36f151806e985eec29fdf96ae6a2bb">bool3</a></td></tr>
7171 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf4e8c9209cfd75ac029f8d95e9520e2d"></a><!-- doxytag: member="glm::gtx::compatibility::bool3x2" ref="gaf4e8c9209cfd75ac029f8d95e9520e2d" args="" -->
72 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaf4e8c9209cfd75ac029f8d95e9520e2d">bool3x2</a></td></tr>
72 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaf4e8c9209cfd75ac029f8d95e9520e2d">bool3x2</a></td></tr>
7373 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga977c0274e9364b129774aedb65b3dcbd"></a><!-- doxytag: member="glm::gtx::compatibility::bool3x3" ref="ga977c0274e9364b129774aedb65b3dcbd" args="" -->
74 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga977c0274e9364b129774aedb65b3dcbd">bool3x3</a></td></tr>
74 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga977c0274e9364b129774aedb65b3dcbd">bool3x3</a></td></tr>
7575 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5174a0758ee4bc91a51b1eb7b100a416"></a><!-- doxytag: member="glm::gtx::compatibility::bool3x4" ref="ga5174a0758ee4bc91a51b1eb7b100a416" args="" -->
76 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga5174a0758ee4bc91a51b1eb7b100a416">bool3x4</a></td></tr>
76 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga5174a0758ee4bc91a51b1eb7b100a416">bool3x4</a></td></tr>
7777 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1ee8c362caed549a5a83fdd9db6ec6c2"></a><!-- doxytag: member="glm::gtx::compatibility::bool4" ref="ga1ee8c362caed549a5a83fdd9db6ec6c2" args="" -->
78 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga1ee8c362caed549a5a83fdd9db6ec6c2">bool4</a></td></tr>
78 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga1ee8c362caed549a5a83fdd9db6ec6c2">bool4</a></td></tr>
7979 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga590198580792550bff2a6bd7f811c8d9"></a><!-- doxytag: member="glm::gtx::compatibility::bool4x2" ref="ga590198580792550bff2a6bd7f811c8d9" args="" -->
80 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga590198580792550bff2a6bd7f811c8d9">bool4x2</a></td></tr>
80 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga590198580792550bff2a6bd7f811c8d9">bool4x2</a></td></tr>
8181 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac8ac5c2c5db2f164ae2e25d1b9898a6b"></a><!-- doxytag: member="glm::gtx::compatibility::bool4x3" ref="gac8ac5c2c5db2f164ae2e25d1b9898a6b" args="" -->
82 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gac8ac5c2c5db2f164ae2e25d1b9898a6b">bool4x3</a></td></tr>
82 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gac8ac5c2c5db2f164ae2e25d1b9898a6b">bool4x3</a></td></tr>
8383 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac437f71eba4fabf6d7551f1889af2ea5"></a><!-- doxytag: member="glm::gtx::compatibility::bool4x4" ref="gac437f71eba4fabf6d7551f1889af2ea5" args="" -->
84 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gac437f71eba4fabf6d7551f1889af2ea5">bool4x4</a></td></tr>
84 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gac437f71eba4fabf6d7551f1889af2ea5">bool4x4</a></td></tr>
8585 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20b861a9b6e2a300323671c57a02525b"></a><!-- doxytag: member="glm::gtx::compatibility::double1" ref="ga20b861a9b6e2a300323671c57a02525b" args="" -->
86 typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga20b861a9b6e2a300323671c57a02525b">double1</a></td></tr>
86 typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga20b861a9b6e2a300323671c57a02525b">double1</a></td></tr>
8787 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga45f16a4dd0db1f199afaed9fd12fe9a8"></a><!-- doxytag: member="glm::gtx::compatibility::double1x1" ref="ga45f16a4dd0db1f199afaed9fd12fe9a8" args="" -->
88 typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a></td></tr>
88 typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a></td></tr>
8989 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7a2bed57d1cc7209ee6d027010bc96b6"></a><!-- doxytag: member="glm::gtx::compatibility::double2" ref="ga7a2bed57d1cc7209ee6d027010bc96b6" args="" -->
90 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga7a2bed57d1cc7209ee6d027010bc96b6">double2</a></td></tr>
90 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga7a2bed57d1cc7209ee6d027010bc96b6">double2</a></td></tr>
9191 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga96772f5981821b9e80c572481e37f220"></a><!-- doxytag: member="glm::gtx::compatibility::double2x2" ref="ga96772f5981821b9e80c572481e37f220" args="" -->
92 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga96772f5981821b9e80c572481e37f220">double2x2</a></td></tr>
92 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga96772f5981821b9e80c572481e37f220">double2x2</a></td></tr>
9393 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07bbc143dfea7838be68d63c114317f4"></a><!-- doxytag: member="glm::gtx::compatibility::double2x3" ref="ga07bbc143dfea7838be68d63c114317f4" args="" -->
94 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga07bbc143dfea7838be68d63c114317f4">double2x3</a></td></tr>
94 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga07bbc143dfea7838be68d63c114317f4">double2x3</a></td></tr>
9595 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1e68c0a16e5684f44d86faac2a7d6810"></a><!-- doxytag: member="glm::gtx::compatibility::double2x4" ref="ga1e68c0a16e5684f44d86faac2a7d6810" args="" -->
96 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga1e68c0a16e5684f44d86faac2a7d6810">double2x4</a></td></tr>
96 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga1e68c0a16e5684f44d86faac2a7d6810">double2x4</a></td></tr>
9797 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaed0358fe1eb696b655a13eac4ececb2a"></a><!-- doxytag: member="glm::gtx::compatibility::double3" ref="gaed0358fe1eb696b655a13eac4ececb2a" args="" -->
98 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaed0358fe1eb696b655a13eac4ececb2a">double3</a></td></tr>
98 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaed0358fe1eb696b655a13eac4ececb2a">double3</a></td></tr>
9999 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e8dd2531703ce00b253ddd3c0c6eaca"></a><!-- doxytag: member="glm::gtx::compatibility::double3x2" ref="ga6e8dd2531703ce00b253ddd3c0c6eaca" args="" -->
100 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga6e8dd2531703ce00b253ddd3c0c6eaca">double3x2</a></td></tr>
100 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga6e8dd2531703ce00b253ddd3c0c6eaca">double3x2</a></td></tr>
101101 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5dfb1357edcef48fcfdf9908906ae086"></a><!-- doxytag: member="glm::gtx::compatibility::double3x3" ref="ga5dfb1357edcef48fcfdf9908906ae086" args="" -->
102 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga5dfb1357edcef48fcfdf9908906ae086">double3x3</a></td></tr>
102 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga5dfb1357edcef48fcfdf9908906ae086">double3x3</a></td></tr>
103103 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3b83eafbc284acce070855469c39b991"></a><!-- doxytag: member="glm::gtx::compatibility::double3x4" ref="ga3b83eafbc284acce070855469c39b991" args="" -->
104 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga3b83eafbc284acce070855469c39b991">double3x4</a></td></tr>
104 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga3b83eafbc284acce070855469c39b991">double3x4</a></td></tr>
105105 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gace0ba846c7443d0d56abb0ca3e61469d"></a><!-- doxytag: member="glm::gtx::compatibility::double4" ref="gace0ba846c7443d0d56abb0ca3e61469d" args="" -->
106 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gace0ba846c7443d0d56abb0ca3e61469d">double4</a></td></tr>
106 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gace0ba846c7443d0d56abb0ca3e61469d">double4</a></td></tr>
107107 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga19c9ec02aa62b78e9709c4b2e2ae6f35"></a><!-- doxytag: member="glm::gtx::compatibility::double4x2" ref="ga19c9ec02aa62b78e9709c4b2e2ae6f35" args="" -->
108 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga19c9ec02aa62b78e9709c4b2e2ae6f35">double4x2</a></td></tr>
108 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga19c9ec02aa62b78e9709c4b2e2ae6f35">double4x2</a></td></tr>
109109 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga53c7dc9532c324aefb75a5f08033cd12"></a><!-- doxytag: member="glm::gtx::compatibility::double4x3" ref="ga53c7dc9532c324aefb75a5f08033cd12" args="" -->
110 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga53c7dc9532c324aefb75a5f08033cd12">double4x3</a></td></tr>
110 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga53c7dc9532c324aefb75a5f08033cd12">double4x3</a></td></tr>
111111 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2cc8e4fa772bfc5c1cada72ee5cadaf8"></a><!-- doxytag: member="glm::gtx::compatibility::double4x4" ref="ga2cc8e4fa772bfc5c1cada72ee5cadaf8" args="" -->
112 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga2cc8e4fa772bfc5c1cada72ee5cadaf8">double4x4</a></td></tr>
112 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga2cc8e4fa772bfc5c1cada72ee5cadaf8">double4x4</a></td></tr>
113113 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf5208d01f6c6fbcb7bb55d610b9c0ead"></a><!-- doxytag: member="glm::gtx::compatibility::float1" ref="gaf5208d01f6c6fbcb7bb55d610b9c0ead" args="" -->
114 typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a></td></tr>
114 typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a></td></tr>
115115 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73720b8dc4620835b17f74d428f98c0c"></a><!-- doxytag: member="glm::gtx::compatibility::float1x1" ref="ga73720b8dc4620835b17f74d428f98c0c" args="" -->
116 typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a></td></tr>
116 typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a></td></tr>
117117 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga36aed7f41ff3a1be99f215754f43376f"></a><!-- doxytag: member="glm::gtx::compatibility::float2" ref="ga36aed7f41ff3a1be99f215754f43376f" args="" -->
118 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga36aed7f41ff3a1be99f215754f43376f">float2</a></td></tr>
118 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga36aed7f41ff3a1be99f215754f43376f">float2</a></td></tr>
119119 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf8d19b6f81f5cb8151f37c66c15691fa"></a><!-- doxytag: member="glm::gtx::compatibility::float2x2" ref="gaf8d19b6f81f5cb8151f37c66c15691fa" args="" -->
120 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaf8d19b6f81f5cb8151f37c66c15691fa">float2x2</a></td></tr>
120 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaf8d19b6f81f5cb8151f37c66c15691fa">float2x2</a></td></tr>
121121 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaafc2b478b36de8b9da6fe1e0f88f68d4"></a><!-- doxytag: member="glm::gtx::compatibility::float2x3" ref="gaafc2b478b36de8b9da6fe1e0f88f68d4" args="" -->
122 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaafc2b478b36de8b9da6fe1e0f88f68d4">float2x3</a></td></tr>
122 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaafc2b478b36de8b9da6fe1e0f88f68d4">float2x3</a></td></tr>
123123 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga77d14ba22d90b0af72a1572ee1bd9458"></a><!-- doxytag: member="glm::gtx::compatibility::float2x4" ref="ga77d14ba22d90b0af72a1572ee1bd9458" args="" -->
124 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga77d14ba22d90b0af72a1572ee1bd9458">float2x4</a></td></tr>
124 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga77d14ba22d90b0af72a1572ee1bd9458">float2x4</a></td></tr>
125125 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1fe9cc8caced9aa000c36ca3c0a046ab"></a><!-- doxytag: member="glm::gtx::compatibility::float3" ref="ga1fe9cc8caced9aa000c36ca3c0a046ab" args="" -->
126 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga1fe9cc8caced9aa000c36ca3c0a046ab">float3</a></td></tr>
126 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga1fe9cc8caced9aa000c36ca3c0a046ab">float3</a></td></tr>
127127 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga46c62307ff5e8418d27be225c1187e25"></a><!-- doxytag: member="glm::gtx::compatibility::float3x2" ref="ga46c62307ff5e8418d27be225c1187e25" args="" -->
128 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga46c62307ff5e8418d27be225c1187e25">float3x2</a></td></tr>
128 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga46c62307ff5e8418d27be225c1187e25">float3x2</a></td></tr>
129129 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5e6e08a42341c82268a4a94a02f7b016"></a><!-- doxytag: member="glm::gtx::compatibility::float3x3" ref="ga5e6e08a42341c82268a4a94a02f7b016" args="" -->
130 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga5e6e08a42341c82268a4a94a02f7b016">float3x3</a></td></tr>
130 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga5e6e08a42341c82268a4a94a02f7b016">float3x3</a></td></tr>
131131 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga14a4142cbea2f8ade68c6c4ca0bca2e6"></a><!-- doxytag: member="glm::gtx::compatibility::float3x4" ref="ga14a4142cbea2f8ade68c6c4ca0bca2e6" args="" -->
132 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga14a4142cbea2f8ade68c6c4ca0bca2e6">float3x4</a></td></tr>
132 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga14a4142cbea2f8ade68c6c4ca0bca2e6">float3x4</a></td></tr>
133133 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1b1ca9850faf4c3ffddf95093a17b49c"></a><!-- doxytag: member="glm::gtx::compatibility::float4" ref="ga1b1ca9850faf4c3ffddf95093a17b49c" args="" -->
134 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga1b1ca9850faf4c3ffddf95093a17b49c">float4</a></td></tr>
134 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga1b1ca9850faf4c3ffddf95093a17b49c">float4</a></td></tr>
135135 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7d53a0bdb8ce3ea6f26483d03a93309c"></a><!-- doxytag: member="glm::gtx::compatibility::float4x2" ref="ga7d53a0bdb8ce3ea6f26483d03a93309c" args="" -->
136 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga7d53a0bdb8ce3ea6f26483d03a93309c">float4x2</a></td></tr>
136 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga7d53a0bdb8ce3ea6f26483d03a93309c">float4x2</a></td></tr>
137137 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga90ec9566c9961638c70e2ba2e3fd94fc"></a><!-- doxytag: member="glm::gtx::compatibility::float4x3" ref="ga90ec9566c9961638c70e2ba2e3fd94fc" args="" -->
138 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga90ec9566c9961638c70e2ba2e3fd94fc">float4x3</a></td></tr>
138 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga90ec9566c9961638c70e2ba2e3fd94fc">float4x3</a></td></tr>
139139 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1ab661a1b315e963ce81a7ebfb110aa7"></a><!-- doxytag: member="glm::gtx::compatibility::float4x4" ref="ga1ab661a1b315e963ce81a7ebfb110aa7" args="" -->
140 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga1ab661a1b315e963ce81a7ebfb110aa7">float4x4</a></td></tr>
140 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga1ab661a1b315e963ce81a7ebfb110aa7">float4x4</a></td></tr>
141141 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac92f2c2693fb34285be07e772fcf0a53"></a><!-- doxytag: member="glm::gtx::compatibility::half1" ref="gac92f2c2693fb34285be07e772fcf0a53" args="" -->
142 typedef <a class="el" href="a00009.html">gtc::half_float::half</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gac92f2c2693fb34285be07e772fcf0a53">half1</a></td></tr>
142 typedef <a class="el" href="a00009.html">gtc::half_float::half</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gac92f2c2693fb34285be07e772fcf0a53">half1</a></td></tr>
143143 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9117ea66da761db845b445c4e7e1c745"></a><!-- doxytag: member="glm::gtx::compatibility::half1x1" ref="ga9117ea66da761db845b445c4e7e1c745" args="" -->
144 typedef <a class="el" href="a00009.html">gtc::half_float::half</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga9117ea66da761db845b445c4e7e1c745">half1x1</a></td></tr>
144 typedef <a class="el" href="a00009.html">gtc::half_float::half</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga9117ea66da761db845b445c4e7e1c745">half1x1</a></td></tr>
145145 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf768e8598259bc50119150ebea01fdbb"></a><!-- doxytag: member="glm::gtx::compatibility::half2" ref="gaf768e8598259bc50119150ebea01fdbb" args="" -->
146146 typedef <a class="el" href="a00020.html">detail::tvec2</a><br class="typebreak"/>
147 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaf768e8598259bc50119150ebea01fdbb">half2</a></td></tr>
147 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaf768e8598259bc50119150ebea01fdbb">half2</a></td></tr>
148148 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae04667191899a90d334e7585f341c523"></a><!-- doxytag: member="glm::gtx::compatibility::half2x2" ref="gae04667191899a90d334e7585f341c523" args="" -->
149149 typedef <a class="el" href="a00010.html">detail::tmat2x2</a><br class="typebreak"/>
150 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gae04667191899a90d334e7585f341c523">half2x2</a></td></tr>
150 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gae04667191899a90d334e7585f341c523">half2x2</a></td></tr>
151151 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga44334615025353ffd16946ee83c96ebe"></a><!-- doxytag: member="glm::gtx::compatibility::half2x3" ref="ga44334615025353ffd16946ee83c96ebe" args="" -->
152152 typedef <a class="el" href="a00011.html">detail::tmat2x3</a><br class="typebreak"/>
153 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga44334615025353ffd16946ee83c96ebe">half2x3</a></td></tr>
153 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga44334615025353ffd16946ee83c96ebe">half2x3</a></td></tr>
154154 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae0b63041228648f9223a421429c5a243"></a><!-- doxytag: member="glm::gtx::compatibility::half2x4" ref="gae0b63041228648f9223a421429c5a243" args="" -->
155155 typedef <a class="el" href="a00012.html">detail::tmat2x4</a><br class="typebreak"/>
156 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gae0b63041228648f9223a421429c5a243">half2x4</a></td></tr>
156 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gae0b63041228648f9223a421429c5a243">half2x4</a></td></tr>
157157 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadb391aad07ab3f0a00d53a0a322fe52e"></a><!-- doxytag: member="glm::gtx::compatibility::half3" ref="gadb391aad07ab3f0a00d53a0a322fe52e" args="" -->
158158 typedef <a class="el" href="a00021.html">detail::tvec3</a><br class="typebreak"/>
159 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gadb391aad07ab3f0a00d53a0a322fe52e">half3</a></td></tr>
159 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gadb391aad07ab3f0a00d53a0a322fe52e">half3</a></td></tr>
160160 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabb94c5e2a5c5091b7c65e132a02b2e55"></a><!-- doxytag: member="glm::gtx::compatibility::half3x2" ref="gabb94c5e2a5c5091b7c65e132a02b2e55" args="" -->
161161 typedef <a class="el" href="a00013.html">detail::tmat3x2</a><br class="typebreak"/>
162 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gabb94c5e2a5c5091b7c65e132a02b2e55">half3x2</a></td></tr>
162 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gabb94c5e2a5c5091b7c65e132a02b2e55">half3x2</a></td></tr>
163163 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2a4cf36c30efcd3358d617840ed8a3f2"></a><!-- doxytag: member="glm::gtx::compatibility::half3x3" ref="ga2a4cf36c30efcd3358d617840ed8a3f2" args="" -->
164164 typedef <a class="el" href="a00014.html">detail::tmat3x3</a><br class="typebreak"/>
165 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga2a4cf36c30efcd3358d617840ed8a3f2">half3x3</a></td></tr>
165 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga2a4cf36c30efcd3358d617840ed8a3f2">half3x3</a></td></tr>
166166 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadecf6b2be379805949e6e74a24e2bdbd"></a><!-- doxytag: member="glm::gtx::compatibility::half3x4" ref="gadecf6b2be379805949e6e74a24e2bdbd" args="" -->
167167 typedef <a class="el" href="a00015.html">detail::tmat3x4</a><br class="typebreak"/>
168 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gadecf6b2be379805949e6e74a24e2bdbd">half3x4</a></td></tr>
168 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gadecf6b2be379805949e6e74a24e2bdbd">half3x4</a></td></tr>
169169 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa4906c782e978976545039046ed3d629"></a><!-- doxytag: member="glm::gtx::compatibility::half4" ref="gaa4906c782e978976545039046ed3d629" args="" -->
170170 typedef <a class="el" href="a00022.html">detail::tvec4</a><br class="typebreak"/>
171 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaa4906c782e978976545039046ed3d629">half4</a></td></tr>
171 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaa4906c782e978976545039046ed3d629">half4</a></td></tr>
172172 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga34877ae24fd35deb8001cc358366e47f"></a><!-- doxytag: member="glm::gtx::compatibility::half4x2" ref="ga34877ae24fd35deb8001cc358366e47f" args="" -->
173173 typedef <a class="el" href="a00016.html">detail::tmat4x2</a><br class="typebreak"/>
174 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga34877ae24fd35deb8001cc358366e47f">half4x2</a></td></tr>
174 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga34877ae24fd35deb8001cc358366e47f">half4x2</a></td></tr>
175175 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaae1ce7ae382a802a08180c21bfb2d863"></a><!-- doxytag: member="glm::gtx::compatibility::half4x3" ref="gaae1ce7ae382a802a08180c21bfb2d863" args="" -->
176176 typedef <a class="el" href="a00017.html">detail::tmat4x3</a><br class="typebreak"/>
177 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaae1ce7ae382a802a08180c21bfb2d863">half4x3</a></td></tr>
177 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaae1ce7ae382a802a08180c21bfb2d863">half4x3</a></td></tr>
178178 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad5c6e0603afbcd8ccf217fe2dca50cc1"></a><!-- doxytag: member="glm::gtx::compatibility::half4x4" ref="gad5c6e0603afbcd8ccf217fe2dca50cc1" args="" -->
179179 typedef <a class="el" href="a00018.html">detail::tmat4x4</a><br class="typebreak"/>
180 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gad5c6e0603afbcd8ccf217fe2dca50cc1">half4x4</a></td></tr>
180 &lt; <a class="el" href="a00009.html">gtc::half_float::half</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gad5c6e0603afbcd8ccf217fe2dca50cc1">half4x4</a></td></tr>
181181 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0670a2111b5e4a6410bd027fa0232fc3"></a><!-- doxytag: member="glm::gtx::compatibility::int1" ref="ga0670a2111b5e4a6410bd027fa0232fc3" args="" -->
182 typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a></td></tr>
182 typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a></td></tr>
183183 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga056ffe02d3a45af626f8e62221881c7a"></a><!-- doxytag: member="glm::gtx::compatibility::int1x1" ref="ga056ffe02d3a45af626f8e62221881c7a" args="" -->
184 typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a></td></tr>
184 typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a></td></tr>
185185 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga96b72b048dd3d9eb7caa93f9589b46a0"></a><!-- doxytag: member="glm::gtx::compatibility::int2" ref="ga96b72b048dd3d9eb7caa93f9589b46a0" args="" -->
186 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga96b72b048dd3d9eb7caa93f9589b46a0">int2</a></td></tr>
186 typedef <a class="el" href="a00020.html">detail::tvec2</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga96b72b048dd3d9eb7caa93f9589b46a0">int2</a></td></tr>
187187 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab7644293a70c1e329624f556b779edde"></a><!-- doxytag: member="glm::gtx::compatibility::int2x2" ref="gab7644293a70c1e329624f556b779edde" args="" -->
188 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gab7644293a70c1e329624f556b779edde">int2x2</a></td></tr>
188 typedef <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gab7644293a70c1e329624f556b779edde">int2x2</a></td></tr>
189189 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf2c5ace70f19d3916b43f25ab7ffbc95"></a><!-- doxytag: member="glm::gtx::compatibility::int2x3" ref="gaf2c5ace70f19d3916b43f25ab7ffbc95" args="" -->
190 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaf2c5ace70f19d3916b43f25ab7ffbc95">int2x3</a></td></tr>
190 typedef <a class="el" href="a00011.html">detail::tmat2x3</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaf2c5ace70f19d3916b43f25ab7ffbc95">int2x3</a></td></tr>
191191 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20ba14d42f3856221a0eb5194184bcf9"></a><!-- doxytag: member="glm::gtx::compatibility::int2x4" ref="ga20ba14d42f3856221a0eb5194184bcf9" args="" -->
192 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga20ba14d42f3856221a0eb5194184bcf9">int2x4</a></td></tr>
192 typedef <a class="el" href="a00012.html">detail::tmat2x4</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga20ba14d42f3856221a0eb5194184bcf9">int2x4</a></td></tr>
193193 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0e57fa71b1be1f6501d3985b7b7d4dac"></a><!-- doxytag: member="glm::gtx::compatibility::int3" ref="ga0e57fa71b1be1f6501d3985b7b7d4dac" args="" -->
194 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga0e57fa71b1be1f6501d3985b7b7d4dac">int3</a></td></tr>
194 typedef <a class="el" href="a00021.html">detail::tvec3</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga0e57fa71b1be1f6501d3985b7b7d4dac">int3</a></td></tr>
195195 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga75bc457489f7d23f5ea56445c0b3fa3f"></a><!-- doxytag: member="glm::gtx::compatibility::int3x2" ref="ga75bc457489f7d23f5ea56445c0b3fa3f" args="" -->
196 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga75bc457489f7d23f5ea56445c0b3fa3f">int3x2</a></td></tr>
196 typedef <a class="el" href="a00013.html">detail::tmat3x2</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga75bc457489f7d23f5ea56445c0b3fa3f">int3x2</a></td></tr>
197197 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga90d6b84bdde0d8247774aac30909ed03"></a><!-- doxytag: member="glm::gtx::compatibility::int3x3" ref="ga90d6b84bdde0d8247774aac30909ed03" args="" -->
198 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga90d6b84bdde0d8247774aac30909ed03">int3x3</a></td></tr>
198 typedef <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga90d6b84bdde0d8247774aac30909ed03">int3x3</a></td></tr>
199199 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga91da3b288518f40c78ee1d0e1fb1cdb3"></a><!-- doxytag: member="glm::gtx::compatibility::int3x4" ref="ga91da3b288518f40c78ee1d0e1fb1cdb3" args="" -->
200 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga91da3b288518f40c78ee1d0e1fb1cdb3">int3x4</a></td></tr>
200 typedef <a class="el" href="a00015.html">detail::tmat3x4</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga91da3b288518f40c78ee1d0e1fb1cdb3">int3x4</a></td></tr>
201201 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga827bb0abe63248b0ae292a83ff55097a"></a><!-- doxytag: member="glm::gtx::compatibility::int4" ref="ga827bb0abe63248b0ae292a83ff55097a" args="" -->
202 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga827bb0abe63248b0ae292a83ff55097a">int4</a></td></tr>
202 typedef <a class="el" href="a00022.html">detail::tvec4</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga827bb0abe63248b0ae292a83ff55097a">int4</a></td></tr>
203203 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9101cda6ad27c3d5aa596ef9baeca75d"></a><!-- doxytag: member="glm::gtx::compatibility::int4x2" ref="ga9101cda6ad27c3d5aa596ef9baeca75d" args="" -->
204 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga9101cda6ad27c3d5aa596ef9baeca75d">int4x2</a></td></tr>
204 typedef <a class="el" href="a00016.html">detail::tmat4x2</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga9101cda6ad27c3d5aa596ef9baeca75d">int4x2</a></td></tr>
205205 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5f93d57c0c99fd11c353e952b107b036"></a><!-- doxytag: member="glm::gtx::compatibility::int4x3" ref="ga5f93d57c0c99fd11c353e952b107b036" args="" -->
206 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga5f93d57c0c99fd11c353e952b107b036">int4x3</a></td></tr>
206 typedef <a class="el" href="a00017.html">detail::tmat4x3</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga5f93d57c0c99fd11c353e952b107b036">int4x3</a></td></tr>
207207 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacd4827b69f52f6486625bf65d23fe53f"></a><!-- doxytag: member="glm::gtx::compatibility::int4x4" ref="gacd4827b69f52f6486625bf65d23fe53f" args="" -->
208 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gacd4827b69f52f6486625bf65d23fe53f">int4x4</a></td></tr>
208 typedef <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gacd4827b69f52f6486625bf65d23fe53f">int4x4</a></td></tr>
209209 <tr><td colspan="2"><h2><a name="func-members"></a>
210210 Functions</h2></td></tr>
211211 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gacea44c6ab8e09b0616c58a514b1a9a81"></a><!-- doxytag: member="glm::gtx::compatibility::atan2" ref="gacea44c6ab8e09b0616c58a514b1a9a81" args="(T x, T y)" -->
212212 template&lt;typename T &gt; </td></tr>
213 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gacea44c6ab8e09b0616c58a514b1a9a81">atan2</a> (T x, T y)</td></tr>
213 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gacea44c6ab8e09b0616c58a514b1a9a81">atan2</a> (T x, T y)</td></tr>
214214 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7aa5d9aae622970abb85b946ded2c64e"></a><!-- doxytag: member="glm::gtx::compatibility::atan2" ref="ga7aa5d9aae622970abb85b946ded2c64e" args="(const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y)" -->
215215 template&lt;typename T &gt; </td></tr>
216216 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
217 <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga7aa5d9aae622970abb85b946ded2c64e">atan2</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;x, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;y)</td></tr>
217 <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga7aa5d9aae622970abb85b946ded2c64e">atan2</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;x, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;y)</td></tr>
218218 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4af7333865c906a5199342ec99ab6002"></a><!-- doxytag: member="glm::gtx::compatibility::atan2" ref="ga4af7333865c906a5199342ec99ab6002" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)" -->
219219 template&lt;typename T &gt; </td></tr>
220220 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
221 <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga4af7333865c906a5199342ec99ab6002">atan2</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;y)</td></tr>
221 <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga4af7333865c906a5199342ec99ab6002">atan2</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;y)</td></tr>
222222 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga83dab39f1f74ed90e9511a5f88805a08"></a><!-- doxytag: member="glm::gtx::compatibility::atan2" ref="ga83dab39f1f74ed90e9511a5f88805a08" args="(const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y)" -->
223223 template&lt;typename T &gt; </td></tr>
224224 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
225 <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga83dab39f1f74ed90e9511a5f88805a08">atan2</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;x, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;y)</td></tr>
225 <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga83dab39f1f74ed90e9511a5f88805a08">atan2</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;x, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;y)</td></tr>
226226 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga048f613527d6146d30bd45cfb9593ba4"></a><!-- doxytag: member="glm::gtx::compatibility::isfinite" ref="ga048f613527d6146d30bd45cfb9593ba4" args="(genType const &amp;x)" -->
227227 template&lt;typename genType &gt; </td></tr>
228 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga048f613527d6146d30bd45cfb9593ba4">isfinite</a> (genType const &amp;x)</td></tr>
228 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga048f613527d6146d30bd45cfb9593ba4">isfinite</a> (genType const &amp;x)</td></tr>
229229 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga12215da84a440c62e35e7154afc81459"></a><!-- doxytag: member="glm::gtx::compatibility::isfinite" ref="ga12215da84a440c62e35e7154afc81459" args="(const detail::tvec2&lt; valType &gt; &amp;x)" -->
230230 template&lt;typename valType &gt; </td></tr>
231 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga12215da84a440c62e35e7154afc81459">isfinite</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; valType &gt; &amp;x)</td></tr>
231 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga12215da84a440c62e35e7154afc81459">isfinite</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; valType &gt; &amp;x)</td></tr>
232232 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga70bf5b8e7026d0dd0dafbb0be71749c1"></a><!-- doxytag: member="glm::gtx::compatibility::isfinite" ref="ga70bf5b8e7026d0dd0dafbb0be71749c1" args="(const detail::tvec3&lt; valType &gt; &amp;x)" -->
233233 template&lt;typename valType &gt; </td></tr>
234 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga70bf5b8e7026d0dd0dafbb0be71749c1">isfinite</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; &amp;x)</td></tr>
234 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga70bf5b8e7026d0dd0dafbb0be71749c1">isfinite</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; &amp;x)</td></tr>
235235 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaac16c71a3143a79662e84917163d6f62"></a><!-- doxytag: member="glm::gtx::compatibility::isfinite" ref="gaac16c71a3143a79662e84917163d6f62" args="(const detail::tvec4&lt; valType &gt; &amp;x)" -->
236236 template&lt;typename valType &gt; </td></tr>
237 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gaac16c71a3143a79662e84917163d6f62">isfinite</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; valType &gt; &amp;x)</td></tr>
237 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gaac16c71a3143a79662e84917163d6f62">isfinite</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; valType &gt; &amp;x)</td></tr>
238238 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga80ff18eeb665e1ae21650040192cb723"></a><!-- doxytag: member="glm::gtx::compatibility::isinf" ref="ga80ff18eeb665e1ae21650040192cb723" args="(const detail::tvec4&lt; genType &gt; &amp;x)" -->
239239 template&lt;typename genType &gt; </td></tr>
240 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga80ff18eeb665e1ae21650040192cb723">isinf</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; genType &gt; &amp;x)</td></tr>
240 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga80ff18eeb665e1ae21650040192cb723">isinf</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; genType &gt; &amp;x)</td></tr>
241241 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab262f10a801ed389ab19f064f7dee84d"></a><!-- doxytag: member="glm::gtx::compatibility::isinf" ref="gab262f10a801ed389ab19f064f7dee84d" args="(genType const &amp;x)" -->
242242 template&lt;typename genType &gt; </td></tr>
243 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gab262f10a801ed389ab19f064f7dee84d">isinf</a> (genType const &amp;x)</td></tr>
243 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gab262f10a801ed389ab19f064f7dee84d">isinf</a> (genType const &amp;x)</td></tr>
244244 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga729b78525d42f823537d1c438cf0f1aa"></a><!-- doxytag: member="glm::gtx::compatibility::isinf" ref="ga729b78525d42f823537d1c438cf0f1aa" args="(const detail::tvec2&lt; genType &gt; &amp;x)" -->
245245 template&lt;typename genType &gt; </td></tr>
246 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga729b78525d42f823537d1c438cf0f1aa">isinf</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; genType &gt; &amp;x)</td></tr>
246 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga729b78525d42f823537d1c438cf0f1aa">isinf</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; genType &gt; &amp;x)</td></tr>
247247 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac819e4811ec43828734e60e828b303eb"></a><!-- doxytag: member="glm::gtx::compatibility::isinf" ref="gac819e4811ec43828734e60e828b303eb" args="(const detail::tvec3&lt; genType &gt; &amp;x)" -->
248248 template&lt;typename genType &gt; </td></tr>
249 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gac819e4811ec43828734e60e828b303eb">isinf</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; genType &gt; &amp;x)</td></tr>
249 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gac819e4811ec43828734e60e828b303eb">isinf</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; genType &gt; &amp;x)</td></tr>
250250 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab221b862baf158dabffa0b6b5d3bee6d"></a><!-- doxytag: member="glm::gtx::compatibility::isnan" ref="gab221b862baf158dabffa0b6b5d3bee6d" args="(genType const &amp;x)" -->
251251 template&lt;typename genType &gt; </td></tr>
252 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gab221b862baf158dabffa0b6b5d3bee6d">isnan</a> (genType const &amp;x)</td></tr>
252 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gab221b862baf158dabffa0b6b5d3bee6d">isnan</a> (genType const &amp;x)</td></tr>
253253 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa2f960030123937941320d6e570c9ed3"></a><!-- doxytag: member="glm::gtx::compatibility::isnan" ref="gaa2f960030123937941320d6e570c9ed3" args="(const detail::tvec2&lt; genType &gt; &amp;x)" -->
254254 template&lt;typename genType &gt; </td></tr>
255 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gaa2f960030123937941320d6e570c9ed3">isnan</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; genType &gt; &amp;x)</td></tr>
255 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gaa2f960030123937941320d6e570c9ed3">isnan</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; genType &gt; &amp;x)</td></tr>
256256 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga75b72c912102e33256b2d0100edd23dc"></a><!-- doxytag: member="glm::gtx::compatibility::isnan" ref="ga75b72c912102e33256b2d0100edd23dc" args="(const detail::tvec3&lt; genType &gt; &amp;x)" -->
257257 template&lt;typename genType &gt; </td></tr>
258 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga75b72c912102e33256b2d0100edd23dc">isnan</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; genType &gt; &amp;x)</td></tr>
258 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga75b72c912102e33256b2d0100edd23dc">isnan</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; genType &gt; &amp;x)</td></tr>
259259 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga17ed6a80235a6906e902ce6350740a32"></a><!-- doxytag: member="glm::gtx::compatibility::isnan" ref="ga17ed6a80235a6906e902ce6350740a32" args="(const detail::tvec4&lt; genType &gt; &amp;x)" -->
260260 template&lt;typename genType &gt; </td></tr>
261 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga17ed6a80235a6906e902ce6350740a32">isnan</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; genType &gt; &amp;x)</td></tr>
261 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga17ed6a80235a6906e902ce6350740a32">isnan</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; genType &gt; &amp;x)</td></tr>
262262 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gafe1e12ad09189be637164559d225db78"></a><!-- doxytag: member="glm::gtx::compatibility::lerp" ref="gafe1e12ad09189be637164559d225db78" args="(const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y, T a)" -->
263263 template&lt;typename T &gt; </td></tr>
264264 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
265 <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gafe1e12ad09189be637164559d225db78">lerp</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;x, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;y, T a)</td></tr>
265 <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gafe1e12ad09189be637164559d225db78">lerp</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;x, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;y, T a)</td></tr>
266266 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga221f6378c8c9f710edaceccb748f5b18"></a><!-- doxytag: member="glm::gtx::compatibility::lerp" ref="ga221f6378c8c9f710edaceccb748f5b18" args="(const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y, const detail::tvec2&lt; T &gt; &amp;a)" -->
267267 template&lt;typename T &gt; </td></tr>
268268 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
269 <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga221f6378c8c9f710edaceccb748f5b18">lerp</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;x, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;y, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;a)</td></tr>
269 <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga221f6378c8c9f710edaceccb748f5b18">lerp</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;x, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;y, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;a)</td></tr>
270270 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5f7bfd8f1e917fd897a738177492c59a"></a><!-- doxytag: member="glm::gtx::compatibility::lerp" ref="ga5f7bfd8f1e917fd897a738177492c59a" args="(const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y, T a)" -->
271271 template&lt;typename T &gt; </td></tr>
272272 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
273 <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga5f7bfd8f1e917fd897a738177492c59a">lerp</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;x, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;y, T a)</td></tr>
273 <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga5f7bfd8f1e917fd897a738177492c59a">lerp</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;x, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;y, T a)</td></tr>
274274 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac6fa04956f007fbb8b4c51ba93d3a13a"></a><!-- doxytag: member="glm::gtx::compatibility::lerp" ref="gac6fa04956f007fbb8b4c51ba93d3a13a" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y, const detail::tvec3&lt; T &gt; &amp;a)" -->
275275 template&lt;typename T &gt; </td></tr>
276276 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
277 <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gac6fa04956f007fbb8b4c51ba93d3a13a">lerp</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;y, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;a)</td></tr>
277 <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gac6fa04956f007fbb8b4c51ba93d3a13a">lerp</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;y, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;a)</td></tr>
278278 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae7298450eb0c1489eda07ccdfdcbf205"></a><!-- doxytag: member="glm::gtx::compatibility::lerp" ref="gae7298450eb0c1489eda07ccdfdcbf205" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y, T a)" -->
279279 template&lt;typename T &gt; </td></tr>
280280 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
281 <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gae7298450eb0c1489eda07ccdfdcbf205">lerp</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;y, T a)</td></tr>
281 <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gae7298450eb0c1489eda07ccdfdcbf205">lerp</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;y, T a)</td></tr>
282282 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga466cc6c042c517982f69db928fd697cf"></a><!-- doxytag: member="glm::gtx::compatibility::lerp" ref="ga466cc6c042c517982f69db928fd697cf" args="(const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y, const detail::tvec4&lt; T &gt; &amp;a)" -->
283283 template&lt;typename T &gt; </td></tr>
284284 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
285 <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga466cc6c042c517982f69db928fd697cf">lerp</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;x, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;y, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;a)</td></tr>
285 <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga466cc6c042c517982f69db928fd697cf">lerp</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;x, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;y, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;a)</td></tr>
286286 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga56463ea9166068ab33107e1cea942023"></a><!-- doxytag: member="glm::gtx::compatibility::lerp" ref="ga56463ea9166068ab33107e1cea942023" args="(T x, T y, T a)" -->
287287 template&lt;typename T &gt; </td></tr>
288 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga56463ea9166068ab33107e1cea942023">lerp</a> (T x, T y, T a)</td></tr>
288 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga56463ea9166068ab33107e1cea942023">lerp</a> (T x, T y, T a)</td></tr>
289289 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadcd5e59d930f0e9b26a78740b403412b"></a><!-- doxytag: member="glm::gtx::compatibility::saturate" ref="gadcd5e59d930f0e9b26a78740b403412b" args="(const detail::tvec2&lt; T &gt; &amp;x)" -->
290290 template&lt;typename T &gt; </td></tr>
291291 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
292 <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gadcd5e59d930f0e9b26a78740b403412b">saturate</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;x)</td></tr>
292 <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gadcd5e59d930f0e9b26a78740b403412b">saturate</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;x)</td></tr>
293293 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga30791379500c2646301973bc133cb240"></a><!-- doxytag: member="glm::gtx::compatibility::saturate" ref="ga30791379500c2646301973bc133cb240" args="(const detail::tvec3&lt; T &gt; &amp;x)" -->
294294 template&lt;typename T &gt; </td></tr>
295295 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
296 <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga30791379500c2646301973bc133cb240">saturate</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x)</td></tr>
296 <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga30791379500c2646301973bc133cb240">saturate</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x)</td></tr>
297297 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa2afedf17ac7da10d95f383ea6be3124"></a><!-- doxytag: member="glm::gtx::compatibility::saturate" ref="gaa2afedf17ac7da10d95f383ea6be3124" args="(T x)" -->
298298 template&lt;typename T &gt; </td></tr>
299 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gaa2afedf17ac7da10d95f383ea6be3124">saturate</a> (T x)</td></tr>
299 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gaa2afedf17ac7da10d95f383ea6be3124">saturate</a> (T x)</td></tr>
300300 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga10a1c2401e1051008c551c3a0eadf6e4"></a><!-- doxytag: member="glm::gtx::compatibility::saturate" ref="ga10a1c2401e1051008c551c3a0eadf6e4" args="(const detail::tvec4&lt; T &gt; &amp;x)" -->
301301 template&lt;typename T &gt; </td></tr>
302302 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
303 <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga10a1c2401e1051008c551c3a0eadf6e4">saturate</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;x)</td></tr>
303 <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga10a1c2401e1051008c551c3a0eadf6e4">saturate</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;x)</td></tr>
304304 </table>
305305 <hr/><a name="_details"></a><h2>Detailed Description</h2>
306 <div class="textblock"><p>GLM_GTX_compatibility extension: Provide functions to increase the compatibility with Cg and HLSL languages. </p>
306 <div class="textblock"><p>&lt; GLM_GTX_compatibility extension: Provide functions to increase the compatibility with Cg and HLSL languages </p>
307307 </div></div>
308308 <hr class="footer"/><address class="footer"><small>Generated by&#160;
309309 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00176.html">component_wise</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_component_wise extension: Operations between components of a type.
51 <p>&lt; GLM_GTX_component_wise extension: Operations between components of a type
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00256.html#ga67c4614f0fc500f0d0f9db9b2d7f8c00">compAdd</a> (genType const &amp;v)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga67c4614f0fc500f0d0f9db9b2d7f8c00">compAdd</a> (genType const &amp;v)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00256.html#gaf5600944ec0e04504a9577a483f05a50">compMax</a> (genType const &amp;v)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gaf5600944ec0e04504a9577a483f05a50">compMax</a> (genType const &amp;v)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00256.html#ga62000aa6f70f216f84b771caeb64ea1d">compMin</a> (genType const &amp;v)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga62000aa6f70f216f84b771caeb64ea1d">compMin</a> (genType const &amp;v)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00256.html#ga5a504b61c83eb400b0b253b9984af52f">compMul</a> (genType const &amp;v)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga5a504b61c83eb400b0b253b9984af52f">compMul</a> (genType const &amp;v)</td></tr>
6464 </table>
6565 <hr/><a name="_details"></a><h2>Detailed Description</h2>
66 <div class="textblock"><p>GLM_GTX_component_wise extension: Operations between components of a type. </p>
66 <div class="textblock"><p>&lt; GLM_GTX_component_wise extension: Operations between components of a type </p>
6767 </div></div>
6868 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6969 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00177.html">epsilon</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_epsilon extension: Comparison functions for a user defined epsilon values.
51 <p>&lt; GLM_GTX_epsilon extension: Comparison functions for a user defined epsilon values.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gae56f18f757e2d08bae0d5ce0d8e59980">equalEpsilon</a> (genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;epsilon)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00256.html#gae56f18f757e2d08bae0d5ce0d8e59980">equalEpsilon</a> (genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;epsilon)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#ga2f60f387fd69452ec68d5b38682d87b8">notEqualEpsilon</a> (genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;epsilon)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00256.html#ga2f60f387fd69452ec68d5b38682d87b8">notEqualEpsilon</a> (genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;epsilon)</td></tr>
6060 </table>
6161 <hr/><a name="_details"></a><h2>Detailed Description</h2>
62 <div class="textblock"><p>GLM_GTX_epsilon extension: Comparison functions for a user defined epsilon values. </p>
62 <div class="textblock"><p>&lt; GLM_GTX_epsilon extension: Comparison functions for a user defined epsilon values. </p>
6363 </div></div>
6464 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6565 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00178.html">euler_angles</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_euler_angles extension: Build matrices from Euler angles.
51 <p>&lt; GLM_GTX_euler_angles extension: Build matrices from Euler angles.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#ga383b615b7c516d129d8a569caeb02e60">eulerAngleX</a> (valType const &amp;angleX)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#ga383b615b7c516d129d8a569caeb02e60">eulerAngleX</a> (valType const &amp;angleX)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#gab31953fcb1febf66c095f80928c11880">eulerAngleXY</a> (valType const &amp;angleX, valType const &amp;angleY)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gab31953fcb1febf66c095f80928c11880">eulerAngleXY</a> (valType const &amp;angleX, valType const &amp;angleY)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#gaacdf1305fa3190de23ebff5f717d5b1a">eulerAngleXZ</a> (valType const &amp;angleX, valType const &amp;angleZ)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gaacdf1305fa3190de23ebff5f717d5b1a">eulerAngleXZ</a> (valType const &amp;angleX, valType const &amp;angleZ)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#ga19efbeee8e1e51be3424fad187aada03">eulerAngleY</a> (valType const &amp;angleY)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#ga19efbeee8e1e51be3424fad187aada03">eulerAngleY</a> (valType const &amp;angleY)</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#gac7eb231dc5b6519dcd1e28f8662d0db6">eulerAngleYX</a> (valType const &amp;angleY, valType const &amp;angleX)</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gac7eb231dc5b6519dcd1e28f8662d0db6">eulerAngleYX</a> (valType const &amp;angleY, valType const &amp;angleX)</td></tr>
6666 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#ga9a1c23259481176631e5910b8a294c0c">eulerAngleYXZ</a> (valType const &amp;yaw, valType const &amp;pitch, valType const &amp;roll)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#ga9a1c23259481176631e5910b8a294c0c">eulerAngleYXZ</a> (valType const &amp;yaw, valType const &amp;pitch, valType const &amp;roll)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#gac528b349b40a8c1d1b34c4a17221bb48">eulerAngleYZ</a> (valType const &amp;angleY, valType const &amp;angleZ)</td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gac528b349b40a8c1d1b34c4a17221bb48">eulerAngleYZ</a> (valType const &amp;angleY, valType const &amp;angleZ)</td></tr>
7070 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#ga950aebf621ca275949b90845a1e76d79">eulerAngleZ</a> (valType const &amp;angleZ)</td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#ga950aebf621ca275949b90845a1e76d79">eulerAngleZ</a> (valType const &amp;angleZ)</td></tr>
7272 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#ga5afd9174575eab4105c9e3c07a9f68f7">eulerAngleZX</a> (valType const &amp;angleZ, valType const &amp;angleX)</td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#ga5afd9174575eab4105c9e3c07a9f68f7">eulerAngleZX</a> (valType const &amp;angleZ, valType const &amp;angleX)</td></tr>
7474 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#gade7193b3d889285671cdfafd62339a87">eulerAngleZY</a> (valType const &amp;angleZ, valType const &amp;angleY)</td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gade7193b3d889285671cdfafd62339a87">eulerAngleZY</a> (valType const &amp;angleZ, valType const &amp;angleY)</td></tr>
7676 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#ga6b666a8d6dede8301520d023d0e96470">orientate2</a> (T const &amp;angle)</td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#ga6b666a8d6dede8301520d023d0e96470">orientate2</a> (T const &amp;angle)</td></tr>
7878 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#ga765fa54166b360a715735a67cbea28c0">orientate3</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;angles)</td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#ga765fa54166b360a715735a67cbea28c0">orientate3</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;angles)</td></tr>
8080 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
81 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#gaabc9340ff9d773e8117f2bed0b1bcacd">orientate3</a> (T const &amp;angle)</td></tr>
81 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gaabc9340ff9d773e8117f2bed0b1bcacd">orientate3</a> (T const &amp;angle)</td></tr>
8282 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
83 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#gac9b9ee10382d273e6f2497f0c34ba125">orientate4</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;angles)</td></tr>
83 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gac9b9ee10382d273e6f2497f0c34ba125">orientate4</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;angles)</td></tr>
8484 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
85 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#gab21847188e03d21037f895642252dcc7">yawPitchRoll</a> (valType const &amp;yaw, valType const &amp;pitch, valType const &amp;roll)</td></tr>
85 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gab21847188e03d21037f895642252dcc7">yawPitchRoll</a> (valType const &amp;yaw, valType const &amp;pitch, valType const &amp;roll)</td></tr>
8686 </table>
8787 <hr/><a name="_details"></a><h2>Detailed Description</h2>
88 <div class="textblock"><p>GLM_GTX_euler_angles extension: Build matrices from Euler angles. </p>
88 <div class="textblock"><p>&lt; GLM_GTX_euler_angles extension: Build matrices from Euler angles. </p>
8989 </div></div>
9090 <hr class="footer"/><address class="footer"><small>Generated by&#160;
9191 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00179.html">extend</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_extend extension: Extend a position from a source to a position at a defined length.
51 <p>&lt; GLM_GTX_extend extension: Extend a position from a source to a position at a defined length.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00259.html#ga9fe82185d36e8136fb2656bacf3d4a86">extend</a> (genType const &amp;Origin, genType const &amp;Source, typename genType::value_type const Length)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#ga9fe82185d36e8136fb2656bacf3d4a86">extend</a> (genType const &amp;Origin, genType const &amp;Source, typename genType::value_type const Length)</td></tr>
5858 </table>
5959 <hr/><a name="_details"></a><h2>Detailed Description</h2>
60 <div class="textblock"><p>GLM_GTX_extend extension: Extend a position from a source to a position at a defined length. </p>
60 <div class="textblock"><p>&lt; GLM_GTX_extend extension: Extend a position from a source to a position at a defined length. </p>
6161 </div></div>
6262 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6363 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00180.html">extented_min_max</a> </li>
4040 </ul>
4646 </div>
4747 <div class="contents">
4848
49 <p>GLM_GTX_extented_min_max extension: Min and max functions for 3 to 4 parameters.
49 <p>&lt; GLM_GTX_extented_min_max extension: Min and max functions for 3 to 4 parameters.
5050 <a href="#_details">More...</a></p>
5151 <table class="memberdecls">
5252 </table>
5353 <hr/><a name="_details"></a><h2>Detailed Description</h2>
54 <div class="textblock"><p>GLM_GTX_extented_min_max extension: Min and max functions for 3 to 4 parameters. </p>
54 <div class="textblock"><p>&lt; GLM_GTX_extented_min_max extension: Min and max functions for 3 to 4 parameters. </p>
5555 </div></div>
5656 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00181.html">fast_exponential</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_fast_exponential extension: Fast but less accurate implementations of exponential based functions.
51 <p>&lt; GLM_GTX_fast_exponential extension: Fast but less accurate implementations of exponential based functions.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#ga10df16993c31fda159ebe8fc0d95167f">fastExp</a> (const T &amp;x)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00260.html#ga10df16993c31fda159ebe8fc0d95167f">fastExp</a> (const T &amp;x)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#ga12669721e13e183233ed5c6025dce5e4">fastExp2</a> (const T &amp;x)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00260.html#ga12669721e13e183233ed5c6025dce5e4">fastExp2</a> (const T &amp;x)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#ga23893e648b441fb48f8c0ab504cf8aeb">fastLn</a> (const T &amp;x)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00260.html#ga23893e648b441fb48f8c0ab504cf8aeb">fastLn</a> (const T &amp;x)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#gaf0c2539c6843c1e0e514445bd4c4a72b">fastLog</a> (const T &amp;x)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00260.html#gaf0c2539c6843c1e0e514445bd4c4a72b">fastLog</a> (const T &amp;x)</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#gaef27f6ec081ab71024019faa178d4506">fastLog2</a> (const T &amp;x)</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00260.html#gaef27f6ec081ab71024019faa178d4506">fastLog2</a> (const T &amp;x)</td></tr>
6666 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#gaaf77117ea021fa1ece715d0b94dd8a2b">fastPow</a> (valType const &amp;x, valType const &amp;y)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00260.html#gaaf77117ea021fa1ece715d0b94dd8a2b">fastPow</a> (valType const &amp;x, valType const &amp;y)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#gaf19f293cf66712dc015880ef7645ec1e">fastPow</a> (const T &amp;x, const U &amp;y)</td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00260.html#gaf19f293cf66712dc015880ef7645ec1e">fastPow</a> (const T &amp;x, const U &amp;y)</td></tr>
7070 </table>
7171 <hr/><a name="_details"></a><h2>Detailed Description</h2>
72 <div class="textblock"><p>GLM_GTX_fast_exponential extension: Fast but less accurate implementations of exponential based functions. </p>
72 <div class="textblock"><p>&lt; GLM_GTX_fast_exponential extension: Fast but less accurate implementations of exponential based functions. </p>
7373 </div></div>
7474 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7575 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00182.html">fast_square_root</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_fast_square_root extension: Fast but less accurate implementations of square root based functions.
51 <p>&lt; GLM_GTX_fast_square_root extension: Fast but less accurate implementations of square root based functions.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga68162c92de0e592216be943345169da7">fastDistance</a> (genType const &amp;x, genType const &amp;y)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#ga68162c92de0e592216be943345169da7">fastDistance</a> (genType const &amp;x, genType const &amp;y)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga1858a37f06c79e17f287bbaa8f75b08e">fastInverseSqrt</a> (genType const &amp;x)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#ga1858a37f06c79e17f287bbaa8f75b08e">fastInverseSqrt</a> (genType const &amp;x)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#gada4490e940c0c4e08beab6db793f8934">fastLength</a> (genType const &amp;x)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#gada4490e940c0c4e08beab6db793f8934">fastLength</a> (genType const &amp;x)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga7e785d24d7bbac63f273baf9af1160da">fastNormalize</a> (genType const &amp;x)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#ga7e785d24d7bbac63f273baf9af1160da">fastNormalize</a> (genType const &amp;x)</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#gaced2a1b7a161290e4d401967607d56db">fastSqrt</a> (genType const &amp;x)</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#gaced2a1b7a161290e4d401967607d56db">fastSqrt</a> (genType const &amp;x)</td></tr>
6666 </table>
6767 <hr/><a name="_details"></a><h2>Detailed Description</h2>
68 <div class="textblock"><p>GLM_GTX_fast_square_root extension: Fast but less accurate implementations of square root based functions. </p>
68 <div class="textblock"><p>&lt; GLM_GTX_fast_square_root extension: Fast but less accurate implementations of square root based functions. </p>
6969 </div></div>
7070 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7171 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00183.html">fast_trigonometry</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_fast_trigonometry extension: Fast but less accurate implementations of trigonometric functions.
51 <p>&lt; GLM_GTX_fast_trigonometry extension: Fast but less accurate implementations of trigonometric functions.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#ga4a704d388edfa3912257b69184d730ba">fastAcos</a> (const T &amp;angle)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga4a704d388edfa3912257b69184d730ba">fastAcos</a> (const T &amp;angle)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#ga73073afdd18dce08727f232c892c5dcd">fastAsin</a> (const T &amp;angle)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga73073afdd18dce08727f232c892c5dcd">fastAsin</a> (const T &amp;angle)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#ga0288bb1ab677dec79ad89e9551c168c5">fastAtan</a> (const T &amp;angle)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga0288bb1ab677dec79ad89e9551c168c5">fastAtan</a> (const T &amp;angle)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#gafae71c7958e50cf435f9e73ee4e579f7">fastAtan</a> (const T &amp;y, const T &amp;x)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#gafae71c7958e50cf435f9e73ee4e579f7">fastAtan</a> (const T &amp;y, const T &amp;x)</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#ga53a9033f33561a2b7133326d721a05cc">fastCos</a> (const T &amp;angle)</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga53a9033f33561a2b7133326d721a05cc">fastCos</a> (const T &amp;angle)</td></tr>
6666 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#ga0844ea62ea81d215b56449f1b3b4968a">fastSin</a> (const T &amp;angle)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga0844ea62ea81d215b56449f1b3b4968a">fastSin</a> (const T &amp;angle)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#ga311fc8d0d067bf3d229566aae8f81a1a">fastTan</a> (const T &amp;angle)</td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga311fc8d0d067bf3d229566aae8f81a1a">fastTan</a> (const T &amp;angle)</td></tr>
7070 </table>
7171 <hr/><a name="_details"></a><h2>Detailed Description</h2>
72 <div class="textblock"><p>GLM_GTX_fast_trigonometry extension: Fast but less accurate implementations of trigonometric functions. </p>
72 <div class="textblock"><p>&lt; GLM_GTX_fast_trigonometry extension: Fast but less accurate implementations of trigonometric functions. </p>
7373 </div></div>
7474 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7575 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00184.html">gradient_paint</a> </li>
4040 </ul>
4646 </div>
4747 <div class="contents">
4848
49 <p>GLM_GTX_gradient_paint extension: Compute a radient gradient according section OpenVG 1.1 specifications, 9.3.2 Radial Gradients.
49 <p>&lt; GLM_GTX_gradient_paint extension: Compute a radient gradient according section OpenVG 1.1 specifications, 9.3.2 Radial Gradients
5050 <a href="#_details">More...</a></p>
5151 <table class="memberdecls">
5252 </table>
5353 <hr/><a name="_details"></a><h2>Detailed Description</h2>
54 <div class="textblock"><p>GLM_GTX_gradient_paint extension: Compute a radient gradient according section OpenVG 1.1 specifications, 9.3.2 Radial Gradients. </p>
54 <div class="textblock"><p>&lt; GLM_GTX_gradient_paint extension: Compute a radient gradient according section OpenVG 1.1 specifications, 9.3.2 Radial Gradients </p>
5555 </div></div>
5656 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00185.html">handed_coordinate_space</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_handed_coordinate_space extension: To know if a set of three basis vectors defines a right or left-handed coordinate system.
51 <p>&lt; GLM_GTX_handed_coordinate_space extension: To know if a set of three basis vectors defines a right or left-handed coordinate system.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#gac222c8dd989fe9fb2142f18320bd683c">leftHanded</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;tangent, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;binormal, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;normal)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#gac222c8dd989fe9fb2142f18320bd683c">leftHanded</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;tangent, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;binormal, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;normal)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#ga472eb0d6e9fcf9b503d3c1a74fdee645">rightHanded</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;tangent, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;binormal, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;normal)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#ga472eb0d6e9fcf9b503d3c1a74fdee645">rightHanded</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;tangent, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;binormal, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;normal)</td></tr>
6060 </table>
6161 <hr/><a name="_details"></a><h2>Detailed Description</h2>
62 <div class="textblock"><p>GLM_GTX_handed_coordinate_space extension: To know if a set of three basis vectors defines a right or left-handed coordinate system. </p>
62 <div class="textblock"><p>&lt; GLM_GTX_handed_coordinate_space extension: To know if a set of three basis vectors defines a right or left-handed coordinate system. </p>
6363 </div></div>
6464 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6565 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00186.html">inertia</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_inertia extension: Create inertia matrices.
51 <p>&lt; GLM_GTX_inertia extension: Create inertia matrices
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00265.html#gac855b3f388128290af0b3016f5e644e4">ballInertia3</a> (const T Mass, const T Radius)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#gac855b3f388128290af0b3016f5e644e4">ballInertia3</a> (const T Mass, const T Radius)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00265.html#ga33e5d8cfae7d8d2ee4369bbc68b20304">ballInertia4</a> (const T Mass, const T Radius)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#ga33e5d8cfae7d8d2ee4369bbc68b20304">ballInertia4</a> (const T Mass, const T Radius)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00265.html#ga2bc514c4c44559a1f76776ad723833b8">boxInertia3</a> (const T Mass, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;Scale)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#ga2bc514c4c44559a1f76776ad723833b8">boxInertia3</a> (const T Mass, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;Scale)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00265.html#ga02d62ab1fe6c9eaaac001f0c73c787f2">boxInertia4</a> (const T Mass, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;Scale)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#ga02d62ab1fe6c9eaaac001f0c73c787f2">boxInertia4</a> (const T Mass, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;Scale)</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00265.html#gaceea61bf41a4cc6f934543bb42c30ab2">diskInertia3</a> (const T Mass, const T Radius)</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#gaceea61bf41a4cc6f934543bb42c30ab2">diskInertia3</a> (const T Mass, const T Radius)</td></tr>
6666 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00265.html#ga0f6f854161239bed615b5cba1cd85d8a">diskInertia4</a> (const T Mass, const T Radius)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#ga0f6f854161239bed615b5cba1cd85d8a">diskInertia4</a> (const T Mass, const T Radius)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00265.html#gad3bcd1a2ac02d030f6b774f5692aee01">sphereInertia3</a> (const T Mass, const T Radius)</td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#gad3bcd1a2ac02d030f6b774f5692aee01">sphereInertia3</a> (const T Mass, const T Radius)</td></tr>
7070 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00265.html#ga3d50f9cd04751451b22d712f1ce26351">sphereInertia4</a> (const T Mass, const T Radius)</td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#ga3d50f9cd04751451b22d712f1ce26351">sphereInertia4</a> (const T Mass, const T Radius)</td></tr>
7272 </table>
7373 <hr/><a name="_details"></a><h2>Detailed Description</h2>
74 <div class="textblock"><p>GLM_GTX_inertia extension: Create inertia matrices. </p>
74 <div class="textblock"><p>&lt; GLM_GTX_inertia extension: Create inertia matrices </p>
7575 </div></div>
7676 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7777 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00187.html">int_10_10_10_2</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_int_10_10_10_2 extension: Add support for integer for core functions.
51 <p>&lt; GLM_GTX_int_10_10_10_2 extension: Add support for integer for core functions
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00288.html#ga162201f4386c2973e6ebd76ac0941de0">dword</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00266.html#ga01b292ff461ea3d8e90a916c5b374fb1">uint10_10_10_2_cast</a> (<a class="el" href="a00022.html">glm::vec4</a> const &amp;v)</td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00287.html#ga162201f4386c2973e6ebd76ac0941de0">dword</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00265.html#ga01b292ff461ea3d8e90a916c5b374fb1">uint10_10_10_2_cast</a> (<a class="el" href="a00022.html">glm::vec4</a> const &amp;v)</td></tr>
5757 </table>
5858 <hr/><a name="_details"></a><h2>Detailed Description</h2>
59 <div class="textblock"><p>GLM_GTX_int_10_10_10_2 extension: Add support for integer for core functions. </p>
59 <div class="textblock"><p>&lt; GLM_GTX_int_10_10_10_2 extension: Add support for integer for core functions </p>
6060 </div></div>
6161 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6262 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00188.html">integer</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_integer extension: Add support for integer for core functions.
51 <p>&lt; GLM_GTX_integer extension: Add support for integer for core functions
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00267.html#gab45d1385cbb477a5684f80b0e24807e4">factorial</a> (genType const &amp;x)</td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00267.html#gaf48bc86895ab82c0e1f6f282d5cb6861">mod</a> (int x, int y)</td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00267.html#gaf34adb6543aab76a364f40bb77dbaeb8">pow</a> (int x, int y)</td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00267.html#gac6ee2be886e1f3be68adc5ee0552bad7">sqrt</a> (int x)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00266.html#gab45d1385cbb477a5684f80b0e24807e4">factorial</a> (genType const &amp;x)</td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00266.html#gaf48bc86895ab82c0e1f6f282d5cb6861">mod</a> (int x, int y)</td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00266.html#gaf34adb6543aab76a364f40bb77dbaeb8">pow</a> (int x, int y)</td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00266.html#gac6ee2be886e1f3be68adc5ee0552bad7">sqrt</a> (int x)</td></tr>
6161 </table>
6262 <hr/><a name="_details"></a><h2>Detailed Description</h2>
63 <div class="textblock"><p>GLM_GTX_integer extension: Add support for integer for core functions. </p>
63 <div class="textblock"><p>&lt; GLM_GTX_integer extension: Add support for integer for core functions </p>
6464 </div></div>
6565 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6666 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00189.html">intersect</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_intersect extension: Add intersection functions.
51 <p>&lt; GLM_GTX_intersect extension: Add intersection functions
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00268.html#ga33f0584acca58d7446daf594c3b8295f">intersectLineSphere</a> (genType const &amp;point0, genType const &amp;point1, genType const &amp;center, typename genType::value_type radius, genType &amp;position, genType &amp;normal)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00267.html#ga33f0584acca58d7446daf594c3b8295f">intersectLineSphere</a> (genType const &amp;point0, genType const &amp;point1, genType const &amp;center, typename genType::value_type radius, genType &amp;position, genType &amp;normal)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00268.html#ga0922c431baec628c6955011c79d39cd9">intersectLineTriangle</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;position)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00267.html#ga0922c431baec628c6955011c79d39cd9">intersectLineTriangle</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;position)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00268.html#gaa03b236dbd4df6b0519b1f2ceea7ef8c">intersectRaySphere</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;center, typename genType::value_type radius, genType &amp;position, genType &amp;normal)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00267.html#gaa03b236dbd4df6b0519b1f2ceea7ef8c">intersectRaySphere</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;center, typename genType::value_type radius, genType &amp;position, genType &amp;normal)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00268.html#ga6ce58ac1371605381abb3e00cfe36d78">intersectRayTriangle</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;baryPosition)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00267.html#ga6ce58ac1371605381abb3e00cfe36d78">intersectRayTriangle</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;baryPosition)</td></tr>
6464 </table>
6565 <hr/><a name="_details"></a><h2>Detailed Description</h2>
66 <div class="textblock"><p>GLM_GTX_intersect extension: Add intersection functions. </p>
66 <div class="textblock"><p>&lt; GLM_GTX_intersect extension: Add intersection functions </p>
6767 </div></div>
6868 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6969 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00190.html">log_base</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_log_base extension: Logarithm for any base. base can be a vector or a scalar.
51 <p>&lt; GLM_GTX_log_base extension: Logarithm for any base. base can be a vector or a scalar.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00269.html#ga78c6b55186a549948b9783bdee1dd5e0">log</a> (genType const &amp;x, genType const &amp;base)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00268.html#ga78c6b55186a549948b9783bdee1dd5e0">log</a> (genType const &amp;x, genType const &amp;base)</td></tr>
5858 </table>
5959 <hr/><a name="_details"></a><h2>Detailed Description</h2>
60 <div class="textblock"><p>GLM_GTX_log_base extension: Logarithm for any base. base can be a vector or a scalar. </p>
60 <div class="textblock"><p>&lt; GLM_GTX_log_base extension: Logarithm for any base. base can be a vector or a scalar. </p>
6161 </div></div>
6262 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6363 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00191.html">matrix_cross_product</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_matrix_cross_product: Build cross product matrices.
51 <p>&lt; GLM_GTX_matrix_cross_product: Build cross product matrices
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#gaa153d0f2600403c659a81a39b59b0f2c">matrixCross3</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;x)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00269.html#gaa153d0f2600403c659a81a39b59b0f2c">matrixCross3</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;x)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#ga8cb94c98874b9b3deff5ad590e0cac23">matrixCross4</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;x)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00269.html#ga8cb94c98874b9b3deff5ad590e0cac23">matrixCross4</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;x)</td></tr>
6060 </table>
6161 <hr/><a name="_details"></a><h2>Detailed Description</h2>
62 <div class="textblock"><p>GLM_GTX_matrix_cross_product: Build cross product matrices. </p>
62 <div class="textblock"><p>&lt; GLM_GTX_matrix_cross_product: Build cross product matrices </p>
6363 </div></div>
6464 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6565 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00192.html">matrix_interpolation</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_matrix_interpolation extension: Add transformation matrices.
51 <p>&lt; GLM_GTX_matrix_interpolation extension: Add transformation matrices
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
6161 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00305.html#ga3a26ef5b04c25263a647ee828faa3bb4">interpolate</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m1, <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m2, T const delta)</td></tr>
6262 </table>
6363 <hr/><a name="_details"></a><h2>Detailed Description</h2>
64 <div class="textblock"><p>GLM_GTX_matrix_interpolation extension: Add transformation matrices. </p>
64 <div class="textblock"><p>&lt; GLM_GTX_matrix_interpolation extension: Add transformation matrices </p>
6565 </div></div>
6666 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6767 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00193.html">matrix_major_storage</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_matrix_major_storage: Build matrices with specific matrix order, row or column.
51 <p>&lt; GLM_GTX_matrix_major_storage: Build matrices with specific matrix order, row or column
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga340582d0baf34cf642a6f2ffa34d1d12">colMajor2</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;v1, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;v2)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#ga340582d0baf34cf642a6f2ffa34d1d12">colMajor2</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;v1, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;v2)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga790e5da0b14c7e16485316a744053f1a">colMajor2</a> (const <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt; &amp;m)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#ga790e5da0b14c7e16485316a744053f1a">colMajor2</a> (const <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt; &amp;m)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga2951b0d82dcc941092fcca1035d789e1">colMajor3</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v1, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v2, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v3)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#ga2951b0d82dcc941092fcca1035d789e1">colMajor3</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v1, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v2, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v3)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#gabe588fc41bddce04701dbf3a1ac05e27">colMajor3</a> (const <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; &amp;m)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#gabe588fc41bddce04701dbf3a1ac05e27">colMajor3</a> (const <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; &amp;m)</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga03d1d5a138cc0b75a380376e6c114d6c">colMajor4</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v1, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v2, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v3, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v4)</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#ga03d1d5a138cc0b75a380376e6c114d6c">colMajor4</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v1, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v2, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v3, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v4)</td></tr>
6666 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga5eb07557f70bf4c8de34260bfd7290e7">colMajor4</a> (const <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;m)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#ga5eb07557f70bf4c8de34260bfd7290e7">colMajor4</a> (const <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;m)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#gac567549fa1a74fe436290181c1a59850">rowMajor2</a> (const <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt; &amp;m)</td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#gac567549fa1a74fe436290181c1a59850">rowMajor2</a> (const <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt; &amp;m)</td></tr>
7070 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga136490f7562fa59d7733e2664f8c9fbb">rowMajor2</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;v1, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;v2)</td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#ga136490f7562fa59d7733e2664f8c9fbb">rowMajor2</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;v1, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;v2)</td></tr>
7272 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga276a9398b180d8028b4a73fb9e675a23">rowMajor3</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v1, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v2, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v3)</td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#ga276a9398b180d8028b4a73fb9e675a23">rowMajor3</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v1, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v2, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v3)</td></tr>
7474 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#gafa70a1af7982d99ad6842684dde3c663">rowMajor3</a> (const <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; &amp;m)</td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#gafa70a1af7982d99ad6842684dde3c663">rowMajor3</a> (const <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; &amp;m)</td></tr>
7676 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#gab834e851140a115bad912ebac8335bc6">rowMajor4</a> (const <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;m)</td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#gab834e851140a115bad912ebac8335bc6">rowMajor4</a> (const <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;m)</td></tr>
7878 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#gae1d60e551ab2912d6bb32a999c65b932">rowMajor4</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v1, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v2, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v3, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v4)</td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#gae1d60e551ab2912d6bb32a999c65b932">rowMajor4</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v1, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v2, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v3, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v4)</td></tr>
8080 </table>
8181 <hr/><a name="_details"></a><h2>Detailed Description</h2>
82 <div class="textblock"><p>GLM_GTX_matrix_major_storage: Build matrices with specific matrix order, row or column. </p>
82 <div class="textblock"><p>&lt; GLM_GTX_matrix_major_storage: Build matrices with specific matrix order, row or column </p>
8383 </div></div>
8484 <hr class="footer"/><address class="footer"><small>Generated by&#160;
8585 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00194.html">matrix_operation</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_matrix_operation: Build diagonal matrices.
51 <p>&lt; GLM_GTX_matrix_operation: Build diagonal matrices
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00010.html">detail::tmat2x2</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#gae2848e38a4533d20f5e7af384440d4d6">diagonal2x2</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; valType &gt; const &amp;v)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00010.html">detail::tmat2x2</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#gae2848e38a4533d20f5e7af384440d4d6">diagonal2x2</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; valType &gt; const &amp;v)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00011.html">detail::tmat2x3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga61c9061e742d63c52cde17c0bc47a9f3">diagonal2x3</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; valType &gt; const &amp;v)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00011.html">detail::tmat2x3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga61c9061e742d63c52cde17c0bc47a9f3">diagonal2x3</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; valType &gt; const &amp;v)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00012.html">detail::tmat2x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga1a2d2575b5a228370228d0ab34e704aa">diagonal2x4</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; valType &gt; const &amp;v)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00012.html">detail::tmat2x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga1a2d2575b5a228370228d0ab34e704aa">diagonal2x4</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; valType &gt; const &amp;v)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00013.html">detail::tmat3x2</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga5e0245ab431bc049e69abeaaaaf2f455">diagonal3x2</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; valType &gt; const &amp;v)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00013.html">detail::tmat3x2</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga5e0245ab431bc049e69abeaaaaf2f455">diagonal3x2</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; valType &gt; const &amp;v)</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#gacdd60defc29a8d1aa6be63387d3da76a">diagonal3x3</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v)</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#gacdd60defc29a8d1aa6be63387d3da76a">diagonal3x3</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v)</td></tr>
6666 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00015.html">detail::tmat3x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga3fb59fa3dd6a1db3a8712bcc0c92c926">diagonal3x4</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00015.html">detail::tmat3x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga3fb59fa3dd6a1db3a8712bcc0c92c926">diagonal3x4</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00016.html">detail::tmat4x2</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga25edcc4359dc5a420df609bec1a83289">diagonal4x2</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; valType &gt; const &amp;v)</td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00016.html">detail::tmat4x2</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga25edcc4359dc5a420df609bec1a83289">diagonal4x2</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; valType &gt; const &amp;v)</td></tr>
7070 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00017.html">detail::tmat4x3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga7b855b1e9e014561a5edcd8cfd928fcc">diagonal4x3</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v)</td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00017.html">detail::tmat4x3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga7b855b1e9e014561a5edcd8cfd928fcc">diagonal4x3</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v)</td></tr>
7272 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga2b8a31afd6c7a64309810db58a35a6e8">diagonal4x4</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; valType &gt; const &amp;v)</td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga2b8a31afd6c7a64309810db58a35a6e8">diagonal4x4</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; valType &gt; const &amp;v)</td></tr>
7474 </table>
7575 <hr/><a name="_details"></a><h2>Detailed Description</h2>
76 <div class="textblock"><p>GLM_GTX_matrix_operation: Build diagonal matrices. </p>
76 <div class="textblock"><p>&lt; GLM_GTX_matrix_operation: Build diagonal matrices </p>
7777 </div></div>
7878 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7979 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00195.html">matrix_query</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_matrix_query: Query to evaluate matrix properties.
51 <p>&lt; GLM_GTX_matrix_query: Query to evaluate matrix properties
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#ga131e3e65bd8a1ac035f849483631f122">isIdentity</a> (const genType &amp;m, const typename genType::value_type epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga131e3e65bd8a1ac035f849483631f122">isIdentity</a> (const genType &amp;m, const typename genType::value_type epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#ga4c3e999f20d9b74852a61ef5772f3f02">isNormalized</a> (const <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga4c3e999f20d9b74852a61ef5772f3f02">isNormalized</a> (const <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#ga249b7a2cc71db930e512f2a3ad9c9cc8">isNormalized</a> (const <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga249b7a2cc71db930e512f2a3ad9c9cc8">isNormalized</a> (const <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#ga84fd1f76999aa657ca27f44725b8cc79">isNormalized</a> (const <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga84fd1f76999aa657ca27f44725b8cc79">isNormalized</a> (const <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#ga3ea08cf50837874a590ef71c78500b5e">isNull</a> (const <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga3ea08cf50837874a590ef71c78500b5e">isNull</a> (const <a class="el" href="a00010.html">detail::tmat2x2</a>&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
6666 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#ga87d08d0f7cef6d818414b7c69ce8e0fc">isNull</a> (const <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga87d08d0f7cef6d818414b7c69ce8e0fc">isNull</a> (const <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
6868 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#gaaecd78d1c5c5f361a763979311e3d115">isNull</a> (const <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#gaaecd78d1c5c5f361a763979311e3d115">isNull</a> (const <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
7070 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#ga87823a9c3fb605773789866fc31f60e8">isOrthogonal</a> (const genType &amp;m, const typename genType::value_type epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga87823a9c3fb605773789866fc31f60e8">isOrthogonal</a> (const genType &amp;m, const typename genType::value_type epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
7272 </table>
7373 <hr/><a name="_details"></a><h2>Detailed Description</h2>
74 <div class="textblock"><p>GLM_GTX_matrix_query: Query to evaluate matrix properties. </p>
74 <div class="textblock"><p>&lt; GLM_GTX_matrix_query: Query to evaluate matrix properties </p>
7575 </div></div>
7676 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7777 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00196.html">mixed_product</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_mixed_product extension: Mixed product of 3 vectors.
51 <p>&lt; GLM_GTX_mixed_product extension: Mixed product of 3 vectors.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gacd91c1d0c25c158ab83965b98553970d"></a><!-- doxytag: member="glm::gtx::mixed_product::mixedProduct" ref="gacd91c1d0c25c158ab83965b98553970d" args="(detail::tvec3&lt; valType &gt; const &amp;v1, detail::tvec3&lt; valType &gt; const &amp;v2, detail::tvec3&lt; valType &gt; const &amp;v3)" -->
5757 template&lt;typename valType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00274.html#gacd91c1d0c25c158ab83965b98553970d">mixedProduct</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v1, <a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v2, <a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v3)</td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#gacd91c1d0c25c158ab83965b98553970d">mixedProduct</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v1, <a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v2, <a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v3)</td></tr>
5959 </table>
6060 <hr/><a name="_details"></a><h2>Detailed Description</h2>
61 <div class="textblock"><p>GLM_GTX_mixed_product extension: Mixed product of 3 vectors. </p>
61 <div class="textblock"><p>&lt; GLM_GTX_mixed_product extension: Mixed product of 3 vectors. </p>
6262 </div></div>
6363 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6464 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00197.html">multiple</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_multiple: Find the closest number of a number multiple of other number.
51 <p>&lt; GLM_GTX_multiple: Find the closest number of a number multiple of other number.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga417f3ba2d04c2fa9ffdeca47b0ad0443">higherMultiple</a> (genType const &amp;Source, genType const &amp;Multiple)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00274.html#ga417f3ba2d04c2fa9ffdeca47b0ad0443">higherMultiple</a> (genType const &amp;Source, genType const &amp;Multiple)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga28760c297ccc5f54111d4469dc1bd1f6">lowerMultiple</a> (genType const &amp;Source, genType const &amp;Multiple)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00274.html#ga28760c297ccc5f54111d4469dc1bd1f6">lowerMultiple</a> (genType const &amp;Source, genType const &amp;Multiple)</td></tr>
6060 </table>
6161 <hr/><a name="_details"></a><h2>Detailed Description</h2>
62 <div class="textblock"><p>GLM_GTX_multiple: Find the closest number of a number multiple of other number. </p>
62 <div class="textblock"><p>&lt; GLM_GTX_multiple: Find the closest number of a number multiple of other number. </p>
6363 </div></div>
6464 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6565 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00198.html">noise</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_noise extension: Comparison functions for a user defined epsilon values.
51 <p>&lt; GLM_GTX_noise extension: Comparison functions for a user defined epsilon values.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
6161 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00306.html#gaab96cbe99e3757bb55c7d830462fab94">simplex</a> (vecType&lt; T &gt; const &amp;p)</td></tr>
6262 </table>
6363 <hr/><a name="_details"></a><h2>Detailed Description</h2>
64 <div class="textblock"><p>GLM_GTX_noise extension: Comparison functions for a user defined epsilon values. </p>
64 <div class="textblock"><p>&lt; GLM_GTX_noise extension: Comparison functions for a user defined epsilon values. </p>
6565 </div></div>
6666 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6767 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00199.html">norm</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_norm extension: Various way to compute vector norms.
51 <p>&lt; GLM_GTX_norm extension: Various way to compute vector norms.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga8ced68108693319d844c896d3e8a2887">distance2</a> (const T p0, const T p1)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga8ced68108693319d844c896d3e8a2887">distance2</a> (const T p0, const T p1)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#gada108564c8942d3ef4764000dd594a9e">distance2</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;p0, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;p1)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#gada108564c8942d3ef4764000dd594a9e">distance2</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;p0, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;p1)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga98e5a19ff47fa12f7706625348ef42db">distance2</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;p0, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;p1)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga98e5a19ff47fa12f7706625348ef42db">distance2</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;p0, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;p1)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga33760ddfae66d50cc5068e132086aa23">distance2</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;p0, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;p1)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga33760ddfae66d50cc5068e132086aa23">distance2</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;p0, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;p1)</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#gab9942ce9c9a3de0fcb2b2d1a7eea5d1b">l1Norm</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;y)</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#gab9942ce9c9a3de0fcb2b2d1a7eea5d1b">l1Norm</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;y)</td></tr>
6666 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga98acb7ecd07cedacaff9af8b4085a29a">l1Norm</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga98acb7ecd07cedacaff9af8b4085a29a">l1Norm</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga281fb89a1b196753973cb6932ed43042">l2Norm</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x)</td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga281fb89a1b196753973cb6932ed43042">l2Norm</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x)</td></tr>
7070 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga2963700ea5540e339e021733f9b1c285">l2Norm</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;y)</td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga2963700ea5540e339e021733f9b1c285">l2Norm</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;y)</td></tr>
7272 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga0ba79b01a2b7935086007d58357acea3">length2</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;x)</td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga0ba79b01a2b7935086007d58357acea3">length2</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;x)</td></tr>
7474 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga461cea3ee3b98f8fcfea856def1f0ede">length2</a> (const T x)</td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga461cea3ee3b98f8fcfea856def1f0ede">length2</a> (const T x)</td></tr>
7676 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#gac7f1bcdfe9c78e388cffd45683fa7fdd">length2</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;x)</td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#gac7f1bcdfe9c78e388cffd45683fa7fdd">length2</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;x)</td></tr>
7878 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga812dd3800d13ed6c2808041d34c5f6a0">length2</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x)</td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga812dd3800d13ed6c2808041d34c5f6a0">length2</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x)</td></tr>
8080 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
81 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#gae70a605bad6c714a2e091db043408d99">length2</a> (const <a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; &amp;q)</td></tr>
81 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#gae70a605bad6c714a2e091db043408d99">length2</a> (const <a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; &amp;q)</td></tr>
8282 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
83 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#gacfed1ae105bff09745f86d8789503776">lxNorm</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x, unsigned int Depth)</td></tr>
83 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#gacfed1ae105bff09745f86d8789503776">lxNorm</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x, unsigned int Depth)</td></tr>
8484 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
85 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#gab6b384000fdc1a560fd927684f4f3a2a">lxNorm</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;y, unsigned int Depth)</td></tr>
85 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#gab6b384000fdc1a560fd927684f4f3a2a">lxNorm</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;y, unsigned int Depth)</td></tr>
8686 </table>
8787 <hr/><a name="_details"></a><h2>Detailed Description</h2>
88 <div class="textblock"><p>GLM_GTX_norm extension: Various way to compute vector norms. </p>
88 <div class="textblock"><p>&lt; GLM_GTX_norm extension: Various way to compute vector norms. </p>
8989 </div></div>
9090 <hr class="footer"/><address class="footer"><small>Generated by&#160;
9191 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00200.html">normal</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_normal extension: Compute the normal of a triangle.
51 <p>&lt; GLM_GTX_normal extension: Compute the normal of a triangle.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00277.html#ga465b51d9e302c22572a656e657631310">triangleNormal</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;p1, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;p2, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;p3)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga465b51d9e302c22572a656e657631310">triangleNormal</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;p1, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;p2, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;p3)</td></tr>
5858 </table>
5959 <hr/><a name="_details"></a><h2>Detailed Description</h2>
60 <div class="textblock"><p>GLM_GTX_normal extension: Compute the normal of a triangle. </p>
60 <div class="textblock"><p>&lt; GLM_GTX_normal extension: Compute the normal of a triangle. </p>
6161 </div></div>
6262 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6363 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00201.html">normalize_dot</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_normalize_dot extension: Dot product of vectors that need to be normalize with a single square root.
51 <p>&lt; GLM_GTX_normalize_dot extension: Dot product of vectors that need to be normalize with a single square root.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00278.html#ga4828b79df21f008a71824a0eecf6e4d7">fastNormalizeDot</a> (genType const &amp;x, genType const &amp;y)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00277.html#ga4828b79df21f008a71824a0eecf6e4d7">fastNormalizeDot</a> (genType const &amp;x, genType const &amp;y)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00278.html#ga71e52e38395048672c908861a3758b76">normalizeDot</a> (genType const &amp;x, genType const &amp;y)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00277.html#ga71e52e38395048672c908861a3758b76">normalizeDot</a> (genType const &amp;x, genType const &amp;y)</td></tr>
6060 </table>
6161 <hr/><a name="_details"></a><h2>Detailed Description</h2>
62 <div class="textblock"><p>GLM_GTX_normalize_dot extension: Dot product of vectors that need to be normalize with a single square root. </p>
62 <div class="textblock"><p>&lt; GLM_GTX_normalize_dot extension: Dot product of vectors that need to be normalize with a single square root. </p>
6363 </div></div>
6464 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6565 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00202.html">number_precision</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_number_precision extension: Defined size types.
51 <p>&lt; GLM_GTX_number_precision extension: Defined size types.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="typedef-members"></a>
5555 Typedefs</h2></td></tr>
5656 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafb6d00d30a02bc379153fbf0859c55fe"></a><!-- doxytag: member="glm::gtx::number_precision::f16mat1" ref="gafb6d00d30a02bc379153fbf0859c55fe" args="" -->
57 typedef <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gafb6d00d30a02bc379153fbf0859c55fe">f16mat1</a></td></tr>
57 typedef <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#gafb6d00d30a02bc379153fbf0859c55fe">f16mat1</a></td></tr>
5858 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga228eca02d3e3f24c2eec052ee7f719fa"></a><!-- doxytag: member="glm::gtx::number_precision::f16mat1x1" ref="ga228eca02d3e3f24c2eec052ee7f719fa" args="" -->
59 typedef <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga228eca02d3e3f24c2eec052ee7f719fa">f16mat1x1</a></td></tr>
59 typedef <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga228eca02d3e3f24c2eec052ee7f719fa">f16mat1x1</a></td></tr>
6060 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga116e2376ef94e8c60bc5c2b66fc5a6db"></a><!-- doxytag: member="glm::gtx::number_precision::f16vec1" ref="ga116e2376ef94e8c60bc5c2b66fc5a6db" args="" -->
61 typedef <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga116e2376ef94e8c60bc5c2b66fc5a6db">f16vec1</a></td></tr>
61 typedef <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga116e2376ef94e8c60bc5c2b66fc5a6db">f16vec1</a></td></tr>
6262 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga145ad477a2a3e152855511c3b52469a6"></a><!-- doxytag: member="glm::gtx::number_precision::f32mat1" ref="ga145ad477a2a3e152855511c3b52469a6" args="" -->
63 typedef <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga145ad477a2a3e152855511c3b52469a6">f32mat1</a></td></tr>
63 typedef <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga145ad477a2a3e152855511c3b52469a6">f32mat1</a></td></tr>
6464 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac88c6a4dbfc380aa26e3adbbade36348"></a><!-- doxytag: member="glm::gtx::number_precision::f32mat1x1" ref="gac88c6a4dbfc380aa26e3adbbade36348" args="" -->
65 typedef <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gac88c6a4dbfc380aa26e3adbbade36348">f32mat1x1</a></td></tr>
65 typedef <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#gac88c6a4dbfc380aa26e3adbbade36348">f32mat1x1</a></td></tr>
6666 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07f8d7348eb7ae059a84c118fdfeb943"></a><!-- doxytag: member="glm::gtx::number_precision::f32vec1" ref="ga07f8d7348eb7ae059a84c118fdfeb943" args="" -->
67 typedef <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga07f8d7348eb7ae059a84c118fdfeb943">f32vec1</a></td></tr>
67 typedef <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga07f8d7348eb7ae059a84c118fdfeb943">f32vec1</a></td></tr>
6868 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga59bfa589419b5265d01314fcecd33435"></a><!-- doxytag: member="glm::gtx::number_precision::f64mat1" ref="ga59bfa589419b5265d01314fcecd33435" args="" -->
69 typedef <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga59bfa589419b5265d01314fcecd33435">f64mat1</a></td></tr>
69 typedef <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga59bfa589419b5265d01314fcecd33435">f64mat1</a></td></tr>
7070 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga448eeb08d0b7d8c43a8b292c981955fd"></a><!-- doxytag: member="glm::gtx::number_precision::f64mat1x1" ref="ga448eeb08d0b7d8c43a8b292c981955fd" args="" -->
71 typedef <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga448eeb08d0b7d8c43a8b292c981955fd">f64mat1x1</a></td></tr>
71 typedef <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga448eeb08d0b7d8c43a8b292c981955fd">f64mat1x1</a></td></tr>
7272 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae5987a61b8c03d5c432a9e62f0b3efe1"></a><!-- doxytag: member="glm::gtx::number_precision::f64vec1" ref="gae5987a61b8c03d5c432a9e62f0b3efe1" args="" -->
73 typedef <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gae5987a61b8c03d5c432a9e62f0b3efe1">f64vec1</a></td></tr>
73 typedef <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#gae5987a61b8c03d5c432a9e62f0b3efe1">f64vec1</a></td></tr>
7474 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52cc069a92e126c3a8dcde93424d2ef0"></a><!-- doxytag: member="glm::gtx::number_precision::u16vec1" ref="ga52cc069a92e126c3a8dcde93424d2ef0" args="" -->
75 typedef <a class="el" href="a00246.html#ga91ec65f57d610f6902fd081f1d1e265a">u16</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga52cc069a92e126c3a8dcde93424d2ef0">u16vec1</a></td></tr>
75 typedef <a class="el" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a">u16</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga52cc069a92e126c3a8dcde93424d2ef0">u16vec1</a></td></tr>
7676 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9bbc1e14aea65cba5e2dcfef6a67d9f3"></a><!-- doxytag: member="glm::gtx::number_precision::u32vec1" ref="ga9bbc1e14aea65cba5e2dcfef6a67d9f3" args="" -->
77 typedef <a class="el" href="a00246.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">u32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">u32vec1</a></td></tr>
77 typedef <a class="el" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">u32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">u32vec1</a></td></tr>
7878 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga818de170e2584ab037130f2881925974"></a><!-- doxytag: member="glm::gtx::number_precision::u64vec1" ref="ga818de170e2584ab037130f2881925974" args="" -->
79 typedef <a class="el" href="a00246.html#ga02ecb7390e4c4515df2268d18f99abc0">u64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga818de170e2584ab037130f2881925974">u64vec1</a></td></tr>
79 typedef <a class="el" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0">u64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga818de170e2584ab037130f2881925974">u64vec1</a></td></tr>
8080 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5853fe457f4c8a6bc09343d0e9833980"></a><!-- doxytag: member="glm::gtx::number_precision::u8vec1" ref="ga5853fe457f4c8a6bc09343d0e9833980" args="" -->
81 typedef <a class="el" href="a00246.html#gad8d9dbef83392da434801486bf814fe4">u8</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga5853fe457f4c8a6bc09343d0e9833980">u8vec1</a></td></tr>
81 typedef <a class="el" href="a00245.html#gad8d9dbef83392da434801486bf814fe4">u8</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga5853fe457f4c8a6bc09343d0e9833980">u8vec1</a></td></tr>
8282 </table>
8383 <hr/><a name="_details"></a><h2>Detailed Description</h2>
84 <div class="textblock"><p>GLM_GTX_number_precision extension: Defined size types. </p>
84 <div class="textblock"><p>&lt; GLM_GTX_number_precision extension: Defined size types. </p>
8585 </div></div>
8686 <hr class="footer"/><address class="footer"><small>Generated by&#160;
8787 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00203.html">ocl_type</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_ocl_type extension: OpenCL types.
51 <p>&lt; GLM_GTX_ocl_type extension: OpenCL types.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="typedef-members"></a>
5555 Typedefs</h2></td></tr>
5656 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga595300752d3c11b13411074df8fcadc7"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_char" ref="ga595300752d3c11b13411074df8fcadc7" args="" -->
57 typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga595300752d3c11b13411074df8fcadc7">cl_char</a></td></tr>
57 typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga595300752d3c11b13411074df8fcadc7">cl_char</a></td></tr>
5858 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafe341e63c543ce750d41ed776ca0f8cc"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_char1" ref="gafe341e63c543ce750d41ed776ca0f8cc" args="" -->
59 typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gafe341e63c543ce750d41ed776ca0f8cc">cl_char1</a></td></tr>
59 typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gafe341e63c543ce750d41ed776ca0f8cc">cl_char1</a></td></tr>
6060 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5eaab898e9289ffad98798d96a8ff22e"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_char2" ref="ga5eaab898e9289ffad98798d96a8ff22e" args="" -->
6161 typedef <a class="el" href="a00020.html">detail::tvec2</a><br class="typebreak"/>
62 &lt; detail::int8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga5eaab898e9289ffad98798d96a8ff22e">cl_char2</a></td></tr>
62 &lt; detail::int8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga5eaab898e9289ffad98798d96a8ff22e">cl_char2</a></td></tr>
6363 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3f60c528dc517a88386358e525238198"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_char3" ref="ga3f60c528dc517a88386358e525238198" args="" -->
6464 typedef <a class="el" href="a00021.html">detail::tvec3</a><br class="typebreak"/>
65 &lt; detail::int8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga3f60c528dc517a88386358e525238198">cl_char3</a></td></tr>
65 &lt; detail::int8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga3f60c528dc517a88386358e525238198">cl_char3</a></td></tr>
6666 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7235804672db90b3b2e8bba142ff4977"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_char4" ref="ga7235804672db90b3b2e8bba142ff4977" args="" -->
6767 typedef <a class="el" href="a00022.html">detail::tvec4</a><br class="typebreak"/>
68 &lt; detail::int8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga7235804672db90b3b2e8bba142ff4977">cl_char4</a></td></tr>
68 &lt; detail::int8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga7235804672db90b3b2e8bba142ff4977">cl_char4</a></td></tr>
6969 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6a505bfaeb7d16f0aee456c238d31f06"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_float" ref="ga6a505bfaeb7d16f0aee456c238d31f06" args="" -->
70 typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga6a505bfaeb7d16f0aee456c238d31f06">cl_float</a></td></tr>
70 typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga6a505bfaeb7d16f0aee456c238d31f06">cl_float</a></td></tr>
7171 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabd9de5d6f4075dcf643bcb3c74b4d169"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_float1" ref="gabd9de5d6f4075dcf643bcb3c74b4d169" args="" -->
72 typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gabd9de5d6f4075dcf643bcb3c74b4d169">cl_float1</a></td></tr>
72 typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gabd9de5d6f4075dcf643bcb3c74b4d169">cl_float1</a></td></tr>
7373 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1d631e031b44406b9ecf4c9390ff4aaf"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_float2" ref="ga1d631e031b44406b9ecf4c9390ff4aaf" args="" -->
7474 typedef <a class="el" href="a00020.html">detail::tvec2</a><br class="typebreak"/>
75 &lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga1d631e031b44406b9ecf4c9390ff4aaf">cl_float2</a></td></tr>
75 &lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga1d631e031b44406b9ecf4c9390ff4aaf">cl_float2</a></td></tr>
7676 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad4526a10e23f201f55649f264856683"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_float3" ref="gaad4526a10e23f201f55649f264856683" args="" -->
7777 typedef <a class="el" href="a00021.html">detail::tvec3</a><br class="typebreak"/>
78 &lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gaad4526a10e23f201f55649f264856683">cl_float3</a></td></tr>
78 &lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gaad4526a10e23f201f55649f264856683">cl_float3</a></td></tr>
7979 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6a4d1b4f7bfdb1721f1554b30096b325"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_float4" ref="ga6a4d1b4f7bfdb1721f1554b30096b325" args="" -->
8080 typedef <a class="el" href="a00022.html">detail::tvec4</a><br class="typebreak"/>
81 &lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga6a4d1b4f7bfdb1721f1554b30096b325">cl_float4</a></td></tr>
81 &lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga6a4d1b4f7bfdb1721f1554b30096b325">cl_float4</a></td></tr>
8282 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8bb152355ac899354df1742c673faad0"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_half" ref="ga8bb152355ac899354df1742c673faad0" args="" -->
83 typedef detail::float16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga8bb152355ac899354df1742c673faad0">cl_half</a></td></tr>
83 typedef detail::float16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga8bb152355ac899354df1742c673faad0">cl_half</a></td></tr>
8484 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga15daeef78674bfa6218f1fc8050e0967"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_int" ref="ga15daeef78674bfa6218f1fc8050e0967" args="" -->
85 typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga15daeef78674bfa6218f1fc8050e0967">cl_int</a></td></tr>
85 typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga15daeef78674bfa6218f1fc8050e0967">cl_int</a></td></tr>
8686 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga929eeb0ebaa707edf32fe6381eac38a2"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_int1" ref="ga929eeb0ebaa707edf32fe6381eac38a2" args="" -->
87 typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga929eeb0ebaa707edf32fe6381eac38a2">cl_int1</a></td></tr>
87 typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga929eeb0ebaa707edf32fe6381eac38a2">cl_int1</a></td></tr>
8888 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga75d44bea03be3491e5636dea711b70eb"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_int2" ref="ga75d44bea03be3491e5636dea711b70eb" args="" -->
8989 typedef <a class="el" href="a00020.html">detail::tvec2</a><br class="typebreak"/>
90 &lt; detail::int32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga75d44bea03be3491e5636dea711b70eb">cl_int2</a></td></tr>
90 &lt; detail::int32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga75d44bea03be3491e5636dea711b70eb">cl_int2</a></td></tr>
9191 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga685501809b08b64d48ede7cd04818675"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_int3" ref="ga685501809b08b64d48ede7cd04818675" args="" -->
9292 typedef <a class="el" href="a00021.html">detail::tvec3</a><br class="typebreak"/>
93 &lt; detail::int32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga685501809b08b64d48ede7cd04818675">cl_int3</a></td></tr>
93 &lt; detail::int32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga685501809b08b64d48ede7cd04818675">cl_int3</a></td></tr>
9494 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7cf765cb37a5717826260a44e7c37d03"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_int4" ref="ga7cf765cb37a5717826260a44e7c37d03" args="" -->
9595 typedef <a class="el" href="a00022.html">detail::tvec4</a><br class="typebreak"/>
96 &lt; detail::int32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga7cf765cb37a5717826260a44e7c37d03">cl_int4</a></td></tr>
96 &lt; detail::int32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga7cf765cb37a5717826260a44e7c37d03">cl_int4</a></td></tr>
9797 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga58de53886632d819d967a2972a977c37"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_long" ref="ga58de53886632d819d967a2972a977c37" args="" -->
98 typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga58de53886632d819d967a2972a977c37">cl_long</a></td></tr>
98 typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga58de53886632d819d967a2972a977c37">cl_long</a></td></tr>
9999 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga23c699d4f4ccf698822b67da14b87481"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_long1" ref="ga23c699d4f4ccf698822b67da14b87481" args="" -->
100 typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga23c699d4f4ccf698822b67da14b87481">cl_long1</a></td></tr>
100 typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga23c699d4f4ccf698822b67da14b87481">cl_long1</a></td></tr>
101101 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga64aa9b2dc534ebd9cb26010e2eabd987"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_long2" ref="ga64aa9b2dc534ebd9cb26010e2eabd987" args="" -->
102102 typedef <a class="el" href="a00020.html">detail::tvec2</a><br class="typebreak"/>
103 &lt; detail::int64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga64aa9b2dc534ebd9cb26010e2eabd987">cl_long2</a></td></tr>
103 &lt; detail::int64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga64aa9b2dc534ebd9cb26010e2eabd987">cl_long2</a></td></tr>
104104 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6deed316e020729bc448758fc2e72388"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_long3" ref="ga6deed316e020729bc448758fc2e72388" args="" -->
105105 typedef <a class="el" href="a00021.html">detail::tvec3</a><br class="typebreak"/>
106 &lt; detail::int64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga6deed316e020729bc448758fc2e72388">cl_long3</a></td></tr>
106 &lt; detail::int64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga6deed316e020729bc448758fc2e72388">cl_long3</a></td></tr>
107107 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4f38be1bb22d86fa7617da6f6907b74c"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_long4" ref="ga4f38be1bb22d86fa7617da6f6907b74c" args="" -->
108108 typedef <a class="el" href="a00022.html">detail::tvec4</a><br class="typebreak"/>
109 &lt; detail::int64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga4f38be1bb22d86fa7617da6f6907b74c">cl_long4</a></td></tr>
109 &lt; detail::int64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga4f38be1bb22d86fa7617da6f6907b74c">cl_long4</a></td></tr>
110110 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga30b0387f3031a789362d91fc2dd2dc3f"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_short" ref="ga30b0387f3031a789362d91fc2dd2dc3f" args="" -->
111 typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga30b0387f3031a789362d91fc2dd2dc3f">cl_short</a></td></tr>
111 typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga30b0387f3031a789362d91fc2dd2dc3f">cl_short</a></td></tr>
112112 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacedae42c667e97db08055a962e4ac73f"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_short1" ref="gacedae42c667e97db08055a962e4ac73f" args="" -->
113 typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gacedae42c667e97db08055a962e4ac73f">cl_short1</a></td></tr>
113 typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gacedae42c667e97db08055a962e4ac73f">cl_short1</a></td></tr>
114114 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga035b54a5fd591587d9fa6131e8a0c73c"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_short2" ref="ga035b54a5fd591587d9fa6131e8a0c73c" args="" -->
115115 typedef <a class="el" href="a00020.html">detail::tvec2</a><br class="typebreak"/>
116 &lt; detail::int16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga035b54a5fd591587d9fa6131e8a0c73c">cl_short2</a></td></tr>
116 &lt; detail::int16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga035b54a5fd591587d9fa6131e8a0c73c">cl_short2</a></td></tr>
117117 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaacc919abeb1dac5c46b35cba6f2ff1f6"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_short3" ref="gaacc919abeb1dac5c46b35cba6f2ff1f6" args="" -->
118118 typedef <a class="el" href="a00021.html">detail::tvec3</a><br class="typebreak"/>
119 &lt; detail::int16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gaacc919abeb1dac5c46b35cba6f2ff1f6">cl_short3</a></td></tr>
119 &lt; detail::int16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gaacc919abeb1dac5c46b35cba6f2ff1f6">cl_short3</a></td></tr>
120120 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4682ecd16257fe283e891b3979e3037c"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_short4" ref="ga4682ecd16257fe283e891b3979e3037c" args="" -->
121121 typedef <a class="el" href="a00022.html">detail::tvec4</a><br class="typebreak"/>
122 &lt; detail::int16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga4682ecd16257fe283e891b3979e3037c">cl_short4</a></td></tr>
122 &lt; detail::int16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga4682ecd16257fe283e891b3979e3037c">cl_short4</a></td></tr>
123123 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga791bdd6f40533322f03efcc031dc43e7"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_uchar" ref="ga791bdd6f40533322f03efcc031dc43e7" args="" -->
124 typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga791bdd6f40533322f03efcc031dc43e7">cl_uchar</a></td></tr>
124 typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga791bdd6f40533322f03efcc031dc43e7">cl_uchar</a></td></tr>
125125 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga458a3244086d84cb4a02356e17e10e41"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_uchar1" ref="ga458a3244086d84cb4a02356e17e10e41" args="" -->
126 typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga458a3244086d84cb4a02356e17e10e41">cl_uchar1</a></td></tr>
126 typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga458a3244086d84cb4a02356e17e10e41">cl_uchar1</a></td></tr>
127127 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafee78def47febbb4ff7789df67f80e67"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_uchar2" ref="gafee78def47febbb4ff7789df67f80e67" args="" -->
128128 typedef <a class="el" href="a00020.html">detail::tvec2</a><br class="typebreak"/>
129 &lt; detail::uint8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gafee78def47febbb4ff7789df67f80e67">cl_uchar2</a></td></tr>
129 &lt; detail::uint8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gafee78def47febbb4ff7789df67f80e67">cl_uchar2</a></td></tr>
130130 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga03f1fdd60172bf92db40de83e13ab2f8"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_uchar3" ref="ga03f1fdd60172bf92db40de83e13ab2f8" args="" -->
131131 typedef <a class="el" href="a00021.html">detail::tvec3</a><br class="typebreak"/>
132 &lt; detail::uint8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga03f1fdd60172bf92db40de83e13ab2f8">cl_uchar3</a></td></tr>
132 &lt; detail::uint8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga03f1fdd60172bf92db40de83e13ab2f8">cl_uchar3</a></td></tr>
133133 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1ba627aa90581618f0aff17a4f52ebc6"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_uchar4" ref="ga1ba627aa90581618f0aff17a4f52ebc6" args="" -->
134134 typedef <a class="el" href="a00022.html">detail::tvec4</a><br class="typebreak"/>
135 &lt; detail::uint8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga1ba627aa90581618f0aff17a4f52ebc6">cl_uchar4</a></td></tr>
135 &lt; detail::uint8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga1ba627aa90581618f0aff17a4f52ebc6">cl_uchar4</a></td></tr>
136136 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafab0cba90c3db2c143bb3e1bc38ac41f"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_uint" ref="gafab0cba90c3db2c143bb3e1bc38ac41f" args="" -->
137 typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gafab0cba90c3db2c143bb3e1bc38ac41f">cl_uint</a></td></tr>
137 typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gafab0cba90c3db2c143bb3e1bc38ac41f">cl_uint</a></td></tr>
138138 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga463351df94e9f31c91787e9ead1d0f5e"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_uint1" ref="ga463351df94e9f31c91787e9ead1d0f5e" args="" -->
139 typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga463351df94e9f31c91787e9ead1d0f5e">cl_uint1</a></td></tr>
139 typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga463351df94e9f31c91787e9ead1d0f5e">cl_uint1</a></td></tr>
140140 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf64dcd996174ae3271a9590c232d680f"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_uint2" ref="gaf64dcd996174ae3271a9590c232d680f" args="" -->
141141 typedef <a class="el" href="a00020.html">detail::tvec2</a><br class="typebreak"/>
142 &lt; detail::uint32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gaf64dcd996174ae3271a9590c232d680f">cl_uint2</a></td></tr>
142 &lt; detail::uint32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gaf64dcd996174ae3271a9590c232d680f">cl_uint2</a></td></tr>
143143 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga423c13d5b93ab6f5fcdf248e0c89fb8d"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_uint3" ref="ga423c13d5b93ab6f5fcdf248e0c89fb8d" args="" -->
144144 typedef <a class="el" href="a00021.html">detail::tvec3</a><br class="typebreak"/>
145 &lt; detail::uint32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga423c13d5b93ab6f5fcdf248e0c89fb8d">cl_uint3</a></td></tr>
145 &lt; detail::uint32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga423c13d5b93ab6f5fcdf248e0c89fb8d">cl_uint3</a></td></tr>
146146 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae75d9f1c7e3cebf862623eb3073870b0"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_uint4" ref="gae75d9f1c7e3cebf862623eb3073870b0" args="" -->
147147 typedef <a class="el" href="a00022.html">detail::tvec4</a><br class="typebreak"/>
148 &lt; detail::uint32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gae75d9f1c7e3cebf862623eb3073870b0">cl_uint4</a></td></tr>
148 &lt; detail::uint32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gae75d9f1c7e3cebf862623eb3073870b0">cl_uint4</a></td></tr>
149149 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf00884c494b2bd9d47c739847c5e8eaf"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_ulong" ref="gaf00884c494b2bd9d47c739847c5e8eaf" args="" -->
150 typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gaf00884c494b2bd9d47c739847c5e8eaf">cl_ulong</a></td></tr>
150 typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gaf00884c494b2bd9d47c739847c5e8eaf">cl_ulong</a></td></tr>
151151 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38c51ec5073e63c422c741cf7e40a6a8"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_ulong1" ref="ga38c51ec5073e63c422c741cf7e40a6a8" args="" -->
152 typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga38c51ec5073e63c422c741cf7e40a6a8">cl_ulong1</a></td></tr>
152 typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga38c51ec5073e63c422c741cf7e40a6a8">cl_ulong1</a></td></tr>
153153 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga983b584fd1a89ba357c4d161f57a97a5"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_ulong2" ref="ga983b584fd1a89ba357c4d161f57a97a5" args="" -->
154154 typedef <a class="el" href="a00020.html">detail::tvec2</a><br class="typebreak"/>
155 &lt; detail::uint64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga983b584fd1a89ba357c4d161f57a97a5">cl_ulong2</a></td></tr>
155 &lt; detail::uint64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga983b584fd1a89ba357c4d161f57a97a5">cl_ulong2</a></td></tr>
156156 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad8f2d09028d9522ff6b792ceaeeebbc"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_ulong3" ref="gaad8f2d09028d9522ff6b792ceaeeebbc" args="" -->
157157 typedef <a class="el" href="a00021.html">detail::tvec3</a><br class="typebreak"/>
158 &lt; detail::uint64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gaad8f2d09028d9522ff6b792ceaeeebbc">cl_ulong3</a></td></tr>
158 &lt; detail::uint64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gaad8f2d09028d9522ff6b792ceaeeebbc">cl_ulong3</a></td></tr>
159159 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5724575e5574de465785f06eeefd8789"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_ulong4" ref="ga5724575e5574de465785f06eeefd8789" args="" -->
160160 typedef <a class="el" href="a00022.html">detail::tvec4</a><br class="typebreak"/>
161 &lt; detail::uint64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga5724575e5574de465785f06eeefd8789">cl_ulong4</a></td></tr>
161 &lt; detail::uint64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga5724575e5574de465785f06eeefd8789">cl_ulong4</a></td></tr>
162162 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga17431e27a8e8d20ec69a3ba3f6557a2d"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_ushort" ref="ga17431e27a8e8d20ec69a3ba3f6557a2d" args="" -->
163 typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga17431e27a8e8d20ec69a3ba3f6557a2d">cl_ushort</a></td></tr>
163 typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga17431e27a8e8d20ec69a3ba3f6557a2d">cl_ushort</a></td></tr>
164164 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2765c8e248830f14881cafc7ff08ce48"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_ushort1" ref="ga2765c8e248830f14881cafc7ff08ce48" args="" -->
165 typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga2765c8e248830f14881cafc7ff08ce48">cl_ushort1</a></td></tr>
165 typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga2765c8e248830f14881cafc7ff08ce48">cl_ushort1</a></td></tr>
166166 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83879286ad8a304211a9bd1dec8a81b9"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_ushort2" ref="ga83879286ad8a304211a9bd1dec8a81b9" args="" -->
167167 typedef <a class="el" href="a00020.html">detail::tvec2</a><br class="typebreak"/>
168 &lt; detail::uint16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga83879286ad8a304211a9bd1dec8a81b9">cl_ushort2</a></td></tr>
168 &lt; detail::uint16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga83879286ad8a304211a9bd1dec8a81b9">cl_ushort2</a></td></tr>
169169 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8ffa538b79f80a173f52a83c3bcc0587"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_ushort3" ref="ga8ffa538b79f80a173f52a83c3bcc0587" args="" -->
170170 typedef <a class="el" href="a00021.html">detail::tvec3</a><br class="typebreak"/>
171 &lt; detail::uint16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga8ffa538b79f80a173f52a83c3bcc0587">cl_ushort3</a></td></tr>
171 &lt; detail::uint16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga8ffa538b79f80a173f52a83c3bcc0587">cl_ushort3</a></td></tr>
172172 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaef286e330c9eaa72e71c5081a85592b3"></a><!-- doxytag: member="glm::gtx::ocl_type::cl_ushort4" ref="gaef286e330c9eaa72e71c5081a85592b3" args="" -->
173173 typedef <a class="el" href="a00022.html">detail::tvec4</a><br class="typebreak"/>
174 &lt; detail::uint16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gaef286e330c9eaa72e71c5081a85592b3">cl_ushort4</a></td></tr>
174 &lt; detail::uint16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gaef286e330c9eaa72e71c5081a85592b3">cl_ushort4</a></td></tr>
175175 </table>
176176 <hr/><a name="_details"></a><h2>Detailed Description</h2>
177 <div class="textblock"><p>GLM_GTX_ocl_type extension: OpenCL types. </p>
177 <div class="textblock"><p>&lt; GLM_GTX_ocl_type extension: OpenCL types. </p>
178178 </div></div>
179179 <hr class="footer"/><address class="footer"><small>Generated by&#160;
180180 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00204.html">optimum_pow</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_optimum_pow extension: Integer exponentiation of power functions.
51 <p>&lt; GLM_GTX_optimum_pow extension: Integer exponentiation of power functions.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00281.html#gaed0305d69d3e3ba925d2c6e138b4f4bf">pow2</a> (const genType &amp;x)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00280.html#gaed0305d69d3e3ba925d2c6e138b4f4bf">pow2</a> (const genType &amp;x)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00281.html#ga8b7ca4439147682892326d3d61294f46">pow3</a> (const genType &amp;x)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00280.html#ga8b7ca4439147682892326d3d61294f46">pow3</a> (const genType &amp;x)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00281.html#gafe1d0d8f5f0501c4940ebb8ae76a1ebf">pow4</a> (const genType &amp;x)</td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga5c30ce6c77e1eed03913e732553aec97">powOfTwo</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; int &gt; &amp;x)</td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#gae72355bc57d5aa5e9b0b823a0d893c82">powOfTwo</a> (int num)</td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#gade3950ec7aa0f42e30ee40f8d7e451ae">powOfTwo</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; int &gt; &amp;x)</td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga83ef1a060cd70af2e1a00eefdb37a436">powOfTwo</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; int &gt; &amp;x)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00280.html#gafe1d0d8f5f0501c4940ebb8ae76a1ebf">pow4</a> (const genType &amp;x)</td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga5c30ce6c77e1eed03913e732553aec97">powOfTwo</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; int &gt; &amp;x)</td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gae72355bc57d5aa5e9b0b823a0d893c82">powOfTwo</a> (int num)</td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gade3950ec7aa0f42e30ee40f8d7e451ae">powOfTwo</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; int &gt; &amp;x)</td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga83ef1a060cd70af2e1a00eefdb37a436">powOfTwo</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; int &gt; &amp;x)</td></tr>
6666 </table>
6767 <hr/><a name="_details"></a><h2>Detailed Description</h2>
68 <div class="textblock"><p>GLM_GTX_optimum_pow extension: Integer exponentiation of power functions. </p>
68 <div class="textblock"><p>&lt; GLM_GTX_optimum_pow extension: Integer exponentiation of power functions. </p>
6969 </div></div>
7070 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7171 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00205.html">orthonormalize</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_orthonormalize extension: Orthonormalize matrices.
51 <p>&lt; GLM_GTX_orthonormalize extension: Orthonormalize matrices.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00282.html#gaea1a740541f786951af15832223404dd">orthonormalize</a> (const <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; &amp;m)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00281.html#gaea1a740541f786951af15832223404dd">orthonormalize</a> (const <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; &amp;m)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00282.html#ga6a15dbab7c2ac16b0a836cc267b2e3a3">orthonormalize</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;y)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00281.html#ga6a15dbab7c2ac16b0a836cc267b2e3a3">orthonormalize</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;x, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;y)</td></tr>
6060 </table>
6161 <hr/><a name="_details"></a><h2>Detailed Description</h2>
62 <div class="textblock"><p>GLM_GTX_orthonormalize extension: Orthonormalize matrices. </p>
62 <div class="textblock"><p>&lt; GLM_GTX_orthonormalize extension: Orthonormalize matrices. </p>
6363 </div></div>
6464 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6565 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00206.html">perpendicular</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_perpendicular extension: Perpendicular of a vector from other one.
51 <p>&lt; GLM_GTX_perpendicular extension: Perpendicular of a vector from other one
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00283.html#ga2e991fe07f1b020a37523922bb421e92">perp</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; const &amp;x, <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; const &amp;Normal)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00282.html#ga2e991fe07f1b020a37523922bb421e92">perp</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; const &amp;x, <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; const &amp;Normal)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00283.html#ga7861045e0e6ab4ddc2721cd472608cb5">perp</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; const &amp;x, <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; const &amp;Normal)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00282.html#ga7861045e0e6ab4ddc2721cd472608cb5">perp</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; const &amp;x, <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; const &amp;Normal)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00283.html#ga798c55f9dabedd2f7b9c691cb9751dab">perp</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;x, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;Normal)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00282.html#ga798c55f9dabedd2f7b9c691cb9751dab">perp</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;x, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;Normal)</td></tr>
6262 </table>
6363 <hr/><a name="_details"></a><h2>Detailed Description</h2>
64 <div class="textblock"><p>GLM_GTX_perpendicular extension: Perpendicular of a vector from other one. </p>
64 <div class="textblock"><p>&lt; GLM_GTX_perpendicular extension: Perpendicular of a vector from other one </p>
6565 </div></div>
6666 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6767 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00207.html">polar_coordinates</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_polar_coordinates extension: Conversion from Euclidean space to polar space and revert.
51 <p>&lt; GLM_GTX_polar_coordinates extension: Conversion from Euclidean space to polar space and revert.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00284.html#ga7c4788941d42c56c6ee2fd235765127e">euclidean</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;polar)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00283.html#ga7c4788941d42c56c6ee2fd235765127e">euclidean</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;polar)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00284.html#gab4f7bb55a54520917a592699bdb0b2f5">polar</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;euclidean)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00283.html#gab4f7bb55a54520917a592699bdb0b2f5">polar</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;euclidean)</td></tr>
6060 </table>
6161 <hr/><a name="_details"></a><h2>Detailed Description</h2>
62 <div class="textblock"><p>GLM_GTX_polar_coordinates extension: Conversion from Euclidean space to polar space and revert. </p>
62 <div class="textblock"><p>&lt; GLM_GTX_polar_coordinates extension: Conversion from Euclidean space to polar space and revert. </p>
6363 </div></div>
6464 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6565 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00208.html">projection</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_projection extension: Projection of a vector to other one.
51 <p>&lt; GLM_GTX_projection extension: Projection of a vector to other one
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga2bf24fe9717e1711a4f454430c79d726">proj</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; const &amp;x, <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; const &amp;Normal)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00284.html#ga2bf24fe9717e1711a4f454430c79d726">proj</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; const &amp;x, <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; const &amp;Normal)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#gad7b34da085fffc605c196fb5a18b7fa9">proj</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; const &amp;x, <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; const &amp;Normal)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00284.html#gad7b34da085fffc605c196fb5a18b7fa9">proj</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; const &amp;x, <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; const &amp;Normal)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga314c3fadce5d1a063c38da013ed20cde">proj</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;x, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;Normal)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00284.html#ga314c3fadce5d1a063c38da013ed20cde">proj</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;x, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;Normal)</td></tr>
6262 </table>
6363 <hr/><a name="_details"></a><h2>Detailed Description</h2>
64 <div class="textblock"><p>GLM_GTX_projection extension: Projection of a vector to other one. </p>
64 <div class="textblock"><p>&lt; GLM_GTX_projection extension: Projection of a vector to other one </p>
6565 </div></div>
6666 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6767 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00209.html">quaternion</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_quaternion extension: Quaternion types and functions.
51 <p>&lt; GLM_GTX_quaternion extension: Quaternion types and functions
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga6a3387a7d60728f60d86546b2f4d4d30">angle</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga6a3387a7d60728f60d86546b2f4d4d30">angle</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga4412b01c376d9cfc9cc06b2d511d0f16">angleAxis</a> (valType const &amp;angle, valType const &amp;x, valType const &amp;y, valType const &amp;z)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga4412b01c376d9cfc9cc06b2d511d0f16">angleAxis</a> (valType const &amp;angle, valType const &amp;x, valType const &amp;y, valType const &amp;z)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gaac770715e5e3dc93f48c6634b59efd43">angleAxis</a> (valType const &amp;angle, <a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;axis)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#gaac770715e5e3dc93f48c6634b59efd43">angleAxis</a> (valType const &amp;angle, <a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;axis)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga6dd1904e2a6cc8e54bd324994094a6f9">axis</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga6dd1904e2a6cc8e54bd324994094a6f9">axis</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x)</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga2a222a07e879ab25de36d6b5a8f6610d">cross</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q, <a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v)</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga2a222a07e879ab25de36d6b5a8f6610d">cross</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q, <a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v)</td></tr>
6666 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga07cefaf434b895aa6a1841837f0c106d">cross</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v, <a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga07cefaf434b895aa6a1841837f0c106d">cross</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v, <a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga49d24e9d018f400ee11176b7e9433384">eularAngles</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x)</td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga39be27be43d9f80ce5bfc5e1adf21412">eulerAngles</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x)</td></tr>
7070 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gaed2302270ec468d26de745516ccb5d4b">exp</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q, valType const &amp;exponent)</td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#gaed2302270ec468d26de745516ccb5d4b">exp</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q, valType const &amp;exponent)</td></tr>
7272 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga23eb8e1aeaf751f7cc46fbaa291e223d">extractRealComponent</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q)</td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga23eb8e1aeaf751f7cc46fbaa291e223d">extractRealComponent</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q)</td></tr>
7474 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga65d5734ce29049d334992f6a59e27e58">fastMix</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;x, <a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;y, T const &amp;a)</td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga65d5734ce29049d334992f6a59e27e58">fastMix</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;x, <a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;y, T const &amp;a)</td></tr>
7676 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gaa15c443e97ac7476d04627d868995891">intermediate</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;prev, <a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;curr, <a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;next)</td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#gaa15c443e97ac7476d04627d868995891">intermediate</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;prev, <a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;curr, <a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;next)</td></tr>
7878 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga11af1897310ec8a09210fb7b4deb0027">log</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q)</td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga11af1897310ec8a09210fb7b4deb0027">log</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q)</td></tr>
8080 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
81 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gafad23e37f1723bbbbd7f9498cd729126">pitch</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x)</td></tr>
81 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#gafad23e37f1723bbbbd7f9498cd729126">pitch</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x)</td></tr>
8282 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
83 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga42873121534327c9e5238f3ca3d6cd03">pow</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x, valType const &amp;y)</td></tr>
83 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga42873121534327c9e5238f3ca3d6cd03">pow</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x, valType const &amp;y)</td></tr>
8484 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
85 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga60a4f955b2836d85f3d21ded84879926">roll</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x)</td></tr>
85 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga60a4f955b2836d85f3d21ded84879926">roll</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x)</td></tr>
8686 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
87 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga7f163c787898b76dc1d91eb48523ce87">rotate</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q, <a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v)</td></tr>
87 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga7f163c787898b76dc1d91eb48523ce87">rotate</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q, <a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; const &amp;v)</td></tr>
8888 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
89 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga92cb29907ffd24771d31f06c94e6d166">rotate</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q, <a class="el" href="a00022.html">detail::tvec4</a>&lt; valType &gt; const &amp;v)</td></tr>
89 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga92cb29907ffd24771d31f06c94e6d166">rotate</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q, <a class="el" href="a00022.html">detail::tvec4</a>&lt; valType &gt; const &amp;v)</td></tr>
9090 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
91 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga22566896a998311431a0612e1c222002">shortMix</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;x, <a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;y, T const &amp;a)</td></tr>
91 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga22566896a998311431a0612e1c222002">shortMix</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;x, <a class="el" href="a00019.html">detail::tquat</a>&lt; T &gt; const &amp;y, T const &amp;a)</td></tr>
9292 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
93 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga203b736245b7519eb151ac46e0bf7f21">squad</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q1, <a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q2, <a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;s1, <a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;s2, valType const &amp;h)</td></tr>
93 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga203b736245b7519eb151ac46e0bf7f21">squad</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q1, <a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;q2, <a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;s1, <a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;s2, valType const &amp;h)</td></tr>
9494 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
95 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga61ec971322157330116a3aefe5bae609">toMat3</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x)</td></tr>
95 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga61ec971322157330116a3aefe5bae609">toMat3</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x)</td></tr>
9696 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
97 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga80622343bd7ccf43c9b4cb677ba3ce38">toMat4</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x)</td></tr>
97 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga80622343bd7ccf43c9b4cb677ba3ce38">toMat4</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x)</td></tr>
9898 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
99 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga2d9d1916258d13bd5f0373341400f18c">toQuat</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt; const &amp;x)</td></tr>
99 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga2d9d1916258d13bd5f0373341400f18c">toQuat</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt; const &amp;x)</td></tr>
100100 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
101 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga991e534718ab690ff21e201f27bfd43b">toQuat</a> (<a class="el" href="a00014.html">detail::tmat3x3</a>&lt; valType &gt; const &amp;x)</td></tr>
101 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga991e534718ab690ff21e201f27bfd43b">toQuat</a> (<a class="el" href="a00014.html">detail::tmat3x3</a>&lt; valType &gt; const &amp;x)</td></tr>
102102 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
103 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga4795f1cc522d82d672f7be9a405583c4">yaw</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x)</td></tr>
103 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga4795f1cc522d82d672f7be9a405583c4">yaw</a> (<a class="el" href="a00019.html">detail::tquat</a>&lt; valType &gt; const &amp;x)</td></tr>
104104 </table>
105105 <hr/><a name="_details"></a><h2>Detailed Description</h2>
106 <div class="textblock"><p>GLM_GTX_quaternion extension: Quaternion types and functions. </p>
106 <div class="textblock"><p>&lt; GLM_GTX_quaternion extension: Quaternion types and functions </p>
107107 </div></div>
108108 <hr class="footer"/><address class="footer"><small>Generated by&#160;
109109 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00210.html">random</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_random extension: Generate random number from various distribution methods.
51 <p>&lt; GLM_GTX_random extension: Generate random number from various distribution methods
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf7f3b54ec804a8eb627ec78f6d7eab2e"></a><!-- doxytag: member="glm::gtx::random::compRand1" ref="gaf7f3b54ec804a8eb627ec78f6d7eab2e" args="()" -->
5757 template&lt;typename T &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gaf7f3b54ec804a8eb627ec78f6d7eab2e">compRand1</a> ()</td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gaf7f3b54ec804a8eb627ec78f6d7eab2e">compRand1</a> ()</td></tr>
5959 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf7f3b54ec804a8eb627ec78f6d7eab2e"></a><!-- doxytag: member="glm::gtx::random::compRand1" ref="gaf7f3b54ec804a8eb627ec78f6d7eab2e" args="()" -->
6060 template&lt;&gt; </td></tr>
6161 <tr><td class="memTemplItemLeft" align="right" valign="top">float&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#gaf7f3b54ec804a8eb627ec78f6d7eab2e">compRand1</a> ()</td></tr>
6262 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae2889bb7e51018499d7b09f8ea64ea7b"></a><!-- doxytag: member="glm::gtx::random::compRand1" ref="gae2889bb7e51018499d7b09f8ea64ea7b" args="(T Min, T Max)" -->
6363 template&lt;typename T &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gae2889bb7e51018499d7b09f8ea64ea7b">compRand1</a> (T Min, T Max)</td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gae2889bb7e51018499d7b09f8ea64ea7b">compRand1</a> (T Min, T Max)</td></tr>
6565 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac524ec6ee7f45774dc9cbfcb38491d8a"></a><!-- doxytag: member="glm::gtx::random::compRand2" ref="gac524ec6ee7f45774dc9cbfcb38491d8a" args="(const detail::tvec2&lt; T &gt; &amp;Min, const detail::tvec2&lt; T &gt; &amp;Max)" -->
6666 template&lt;typename T &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gac524ec6ee7f45774dc9cbfcb38491d8a">compRand2</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;Min, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;Max)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gac524ec6ee7f45774dc9cbfcb38491d8a">compRand2</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;Min, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;Max)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5082aae274f3851014a8f1665661fc9a"></a><!-- doxytag: member="glm::gtx::random::compRand2" ref="ga5082aae274f3851014a8f1665661fc9a" args="(T Min, T Max)" -->
6969 template&lt;typename T &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga5082aae274f3851014a8f1665661fc9a">compRand2</a> (T Min, T Max)</td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga5082aae274f3851014a8f1665661fc9a">compRand2</a> (T Min, T Max)</td></tr>
7171 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga21c92bd54518b8de81c7888ab376e79c"></a><!-- doxytag: member="glm::gtx::random::compRand3" ref="ga21c92bd54518b8de81c7888ab376e79c" args="(const detail::tvec3&lt; T &gt; &amp;Min, const detail::tvec3&lt; T &gt; &amp;Max)" -->
7272 template&lt;typename T &gt; </td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga21c92bd54518b8de81c7888ab376e79c">compRand3</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;Min, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;Max)</td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga21c92bd54518b8de81c7888ab376e79c">compRand3</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;Min, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;Max)</td></tr>
7474 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga25d17c98a74d5252c0d1f4070e0dce75"></a><!-- doxytag: member="glm::gtx::random::compRand3" ref="ga25d17c98a74d5252c0d1f4070e0dce75" args="(T Min, T Max)" -->
7575 template&lt;typename T &gt; </td></tr>
76 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga25d17c98a74d5252c0d1f4070e0dce75">compRand3</a> (T Min, T Max)</td></tr>
76 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga25d17c98a74d5252c0d1f4070e0dce75">compRand3</a> (T Min, T Max)</td></tr>
7777 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga1fcc4fc54d083529501f4fd73858cacf"></a><!-- doxytag: member="glm::gtx::random::compRand4" ref="ga1fcc4fc54d083529501f4fd73858cacf" args="(const detail::tvec4&lt; T &gt; &amp;Min, const detail::tvec4&lt; T &gt; &amp;Max)" -->
7878 template&lt;typename T &gt; </td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga1fcc4fc54d083529501f4fd73858cacf">compRand4</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;Min, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;Max)</td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga1fcc4fc54d083529501f4fd73858cacf">compRand4</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;Min, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;Max)</td></tr>
8080 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga58863d5503a6c1aefaa5d01775a83267"></a><!-- doxytag: member="glm::gtx::random::compRand4" ref="ga58863d5503a6c1aefaa5d01775a83267" args="(T Min, T Max)" -->
8181 template&lt;typename T &gt; </td></tr>
82 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga58863d5503a6c1aefaa5d01775a83267">compRand4</a> (T Min, T Max)</td></tr>
82 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga58863d5503a6c1aefaa5d01775a83267">compRand4</a> (T Min, T Max)</td></tr>
8383 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaea7fcb106b788c816db85cd1e3be6188"></a><!-- doxytag: member="glm::gtx::random::gaussRand1" ref="gaea7fcb106b788c816db85cd1e3be6188" args="(T mean, T std_deviation)" -->
8484 template&lt;typename T &gt; </td></tr>
85 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gaea7fcb106b788c816db85cd1e3be6188">gaussRand1</a> (T mean, T std_deviation)</td></tr>
85 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gaea7fcb106b788c816db85cd1e3be6188">gaussRand1</a> (T mean, T std_deviation)</td></tr>
8686 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab3ead682395579c9accbcf0cd8ec3396"></a><!-- doxytag: member="glm::gtx::random::gaussRand2" ref="gab3ead682395579c9accbcf0cd8ec3396" args="(T mean, const detail::tvec2&lt; T &gt; &amp;std_deviation)" -->
8787 template&lt;typename T &gt; </td></tr>
88 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gab3ead682395579c9accbcf0cd8ec3396">gaussRand2</a> (T mean, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;std_deviation)</td></tr>
88 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gab3ead682395579c9accbcf0cd8ec3396">gaussRand2</a> (T mean, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;std_deviation)</td></tr>
8989 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae746ec513d4c773e15143854e5245075"></a><!-- doxytag: member="glm::gtx::random::gaussRand2" ref="gae746ec513d4c773e15143854e5245075" args="(const detail::tvec2&lt; T &gt; &amp;mean, const detail::tvec2&lt; T &gt; &amp;std_deviation)" -->
9090 template&lt;typename T &gt; </td></tr>
91 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gae746ec513d4c773e15143854e5245075">gaussRand2</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;mean, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;std_deviation)</td></tr>
91 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gae746ec513d4c773e15143854e5245075">gaussRand2</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;mean, const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;std_deviation)</td></tr>
9292 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gabe761c9b9cc6999fc91acf79a7007ddb"></a><!-- doxytag: member="glm::gtx::random::gaussRand2" ref="gabe761c9b9cc6999fc91acf79a7007ddb" args="(T mean, T std_deviation)" -->
9393 template&lt;typename T &gt; </td></tr>
94 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gabe761c9b9cc6999fc91acf79a7007ddb">gaussRand2</a> (T mean, T std_deviation)</td></tr>
94 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gabe761c9b9cc6999fc91acf79a7007ddb">gaussRand2</a> (T mean, T std_deviation)</td></tr>
9595 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaad5585d8d9e84791ae9e71a43fb55fa5"></a><!-- doxytag: member="glm::gtx::random::gaussRand2" ref="gaad5585d8d9e84791ae9e71a43fb55fa5" args="(const detail::tvec2&lt; T &gt; &amp;mean, T std_deviation)" -->
9696 template&lt;typename T &gt; </td></tr>
97 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gaad5585d8d9e84791ae9e71a43fb55fa5">gaussRand2</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;mean, T std_deviation)</td></tr>
97 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gaad5585d8d9e84791ae9e71a43fb55fa5">gaussRand2</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;mean, T std_deviation)</td></tr>
9898 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadb3cbe26ec31e593af84c46b1a63a073"></a><!-- doxytag: member="glm::gtx::random::gaussRand3" ref="gadb3cbe26ec31e593af84c46b1a63a073" args="(T mean, const detail::tvec3&lt; T &gt; &amp;std_deviation)" -->
9999 template&lt;typename T &gt; </td></tr>
100 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gadb3cbe26ec31e593af84c46b1a63a073">gaussRand3</a> (T mean, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;std_deviation)</td></tr>
100 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gadb3cbe26ec31e593af84c46b1a63a073">gaussRand3</a> (T mean, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;std_deviation)</td></tr>
101101 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga09905dda9035dc260eb593b84b887cbb"></a><!-- doxytag: member="glm::gtx::random::gaussRand3" ref="ga09905dda9035dc260eb593b84b887cbb" args="(const detail::tvec3&lt; T &gt; &amp;mean, const detail::tvec3&lt; T &gt; &amp;std_deviation)" -->
102102 template&lt;typename T &gt; </td></tr>
103 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga09905dda9035dc260eb593b84b887cbb">gaussRand3</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;mean, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;std_deviation)</td></tr>
103 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga09905dda9035dc260eb593b84b887cbb">gaussRand3</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;mean, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;std_deviation)</td></tr>
104104 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga103cde6c382abea173da6b1800acd5c9"></a><!-- doxytag: member="glm::gtx::random::gaussRand3" ref="ga103cde6c382abea173da6b1800acd5c9" args="(T mean, T std_deviation)" -->
105105 template&lt;typename T &gt; </td></tr>
106 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga103cde6c382abea173da6b1800acd5c9">gaussRand3</a> (T mean, T std_deviation)</td></tr>
106 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga103cde6c382abea173da6b1800acd5c9">gaussRand3</a> (T mean, T std_deviation)</td></tr>
107107 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga03af4b788f7777963bdb3ff10fda356d"></a><!-- doxytag: member="glm::gtx::random::gaussRand3" ref="ga03af4b788f7777963bdb3ff10fda356d" args="(const detail::tvec3&lt; T &gt; &amp;mean, T std_deviation)" -->
108108 template&lt;typename T &gt; </td></tr>
109 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga03af4b788f7777963bdb3ff10fda356d">gaussRand3</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;mean, T std_deviation)</td></tr>
109 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga03af4b788f7777963bdb3ff10fda356d">gaussRand3</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;mean, T std_deviation)</td></tr>
110110 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8daff7d57575e5ab4a44a46f52ed72fe"></a><!-- doxytag: member="glm::gtx::random::gaussRand4" ref="ga8daff7d57575e5ab4a44a46f52ed72fe" args="(const detail::tvec4&lt; T &gt; &amp;mean, T std_deviation)" -->
111111 template&lt;typename T &gt; </td></tr>
112 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga8daff7d57575e5ab4a44a46f52ed72fe">gaussRand4</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;mean, T std_deviation)</td></tr>
112 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga8daff7d57575e5ab4a44a46f52ed72fe">gaussRand4</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;mean, T std_deviation)</td></tr>
113113 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga95b58192c05082f2eef5a06b5a4814a0"></a><!-- doxytag: member="glm::gtx::random::gaussRand4" ref="ga95b58192c05082f2eef5a06b5a4814a0" args="(const detail::tvec4&lt; T &gt; &amp;mean, const detail::tvec4&lt; T &gt; &amp;std_deviation)" -->
114114 template&lt;typename T &gt; </td></tr>
115 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga95b58192c05082f2eef5a06b5a4814a0">gaussRand4</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;mean, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;std_deviation)</td></tr>
115 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga95b58192c05082f2eef5a06b5a4814a0">gaussRand4</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;mean, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;std_deviation)</td></tr>
116116 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4d2be5ff350c5348477351d3c67f35bd"></a><!-- doxytag: member="glm::gtx::random::gaussRand4" ref="ga4d2be5ff350c5348477351d3c67f35bd" args="(T mean, const detail::tvec4&lt; T &gt; &amp;std_deviation)" -->
117117 template&lt;typename T &gt; </td></tr>
118 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga4d2be5ff350c5348477351d3c67f35bd">gaussRand4</a> (T mean, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;std_deviation)</td></tr>
118 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga4d2be5ff350c5348477351d3c67f35bd">gaussRand4</a> (T mean, const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;std_deviation)</td></tr>
119119 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab9f9cf1859278ad7f1ccc38cf3092cf2"></a><!-- doxytag: member="glm::gtx::random::gaussRand4" ref="gab9f9cf1859278ad7f1ccc38cf3092cf2" args="(T mean, T std_deviation)" -->
120120 template&lt;typename T &gt; </td></tr>
121 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gab9f9cf1859278ad7f1ccc38cf3092cf2">gaussRand4</a> (T mean, T std_deviation)</td></tr>
121 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gab9f9cf1859278ad7f1ccc38cf3092cf2">gaussRand4</a> (T mean, T std_deviation)</td></tr>
122122 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5d05c63350546c1e7aa058bbf1b7f547"></a><!-- doxytag: member="glm::gtx::random::normalizedRand2" ref="ga5d05c63350546c1e7aa058bbf1b7f547" args="()" -->
123123 template&lt;typename T &gt; </td></tr>
124 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga5d05c63350546c1e7aa058bbf1b7f547">normalizedRand2</a> ()</td></tr>
124 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga5d05c63350546c1e7aa058bbf1b7f547">normalizedRand2</a> ()</td></tr>
125125 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaea95fa28751387132c57e06827abd024"></a><!-- doxytag: member="glm::gtx::random::normalizedRand2" ref="gaea95fa28751387132c57e06827abd024" args="(T Min, T Max)" -->
126126 template&lt;typename T &gt; </td></tr>
127 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gaea95fa28751387132c57e06827abd024">normalizedRand2</a> (T Min, T Max)</td></tr>
127 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gaea95fa28751387132c57e06827abd024">normalizedRand2</a> (T Min, T Max)</td></tr>
128128 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4c732e0408a54bbd709e0c5906e3ecde"></a><!-- doxytag: member="glm::gtx::random::normalizedRand3" ref="ga4c732e0408a54bbd709e0c5906e3ecde" args="(T Min, T Max)" -->
129129 template&lt;typename T &gt; </td></tr>
130 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga4c732e0408a54bbd709e0c5906e3ecde">normalizedRand3</a> (T Min, T Max)</td></tr>
130 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga4c732e0408a54bbd709e0c5906e3ecde">normalizedRand3</a> (T Min, T Max)</td></tr>
131131 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4d7a132cc05433f7c4c8263797f9d5b4"></a><!-- doxytag: member="glm::gtx::random::normalizedRand3" ref="ga4d7a132cc05433f7c4c8263797f9d5b4" args="()" -->
132132 template&lt;typename T &gt; </td></tr>
133 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga4d7a132cc05433f7c4c8263797f9d5b4">normalizedRand3</a> ()</td></tr>
133 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga4d7a132cc05433f7c4c8263797f9d5b4">normalizedRand3</a> ()</td></tr>
134134 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
135 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga8b6a21d90d07f7a655264009590ddcce">signedRand1</a> ()</td></tr>
135 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga8b6a21d90d07f7a655264009590ddcce">signedRand1</a> ()</td></tr>
136136 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8b6a21d90d07f7a655264009590ddcce"></a><!-- doxytag: member="glm::gtx::random::signedRand1" ref="ga8b6a21d90d07f7a655264009590ddcce" args="()" -->
137137 template&lt;&gt; </td></tr>
138138 <tr><td class="memTemplItemLeft" align="right" valign="top">float&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga8b6a21d90d07f7a655264009590ddcce">signedRand1</a> ()</td></tr>
139139 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga65f615e428d1e4009cdf872d434d5267"></a><!-- doxytag: member="glm::gtx::random::signedRand2" ref="ga65f615e428d1e4009cdf872d434d5267" args="()" -->
140140 template&lt;typename T &gt; </td></tr>
141 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga65f615e428d1e4009cdf872d434d5267">signedRand2</a> ()</td></tr>
141 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga65f615e428d1e4009cdf872d434d5267">signedRand2</a> ()</td></tr>
142142 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab3a7fc45bf10792e96e5bbc6aa3ff30b"></a><!-- doxytag: member="glm::gtx::random::signedRand3" ref="gab3a7fc45bf10792e96e5bbc6aa3ff30b" args="()" -->
143143 template&lt;typename T &gt; </td></tr>
144 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gab3a7fc45bf10792e96e5bbc6aa3ff30b">signedRand3</a> ()</td></tr>
144 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gab3a7fc45bf10792e96e5bbc6aa3ff30b">signedRand3</a> ()</td></tr>
145145 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga917ac879bf910263d7af720d03342e8a"></a><!-- doxytag: member="glm::gtx::random::signedRand4" ref="ga917ac879bf910263d7af720d03342e8a" args="()" -->
146146 template&lt;typename T &gt; </td></tr>
147 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga917ac879bf910263d7af720d03342e8a">signedRand4</a> ()</td></tr>
147 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga917ac879bf910263d7af720d03342e8a">signedRand4</a> ()</td></tr>
148148 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga12d03cc32f213b4173e58f05d74232b3"></a><!-- doxytag: member="glm::gtx::random::vecRand2" ref="ga12d03cc32f213b4173e58f05d74232b3" args="()" -->
149149 template&lt;typename T &gt; </td></tr>
150 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga12d03cc32f213b4173e58f05d74232b3">vecRand2</a> ()</td></tr>
150 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga12d03cc32f213b4173e58f05d74232b3">vecRand2</a> ()</td></tr>
151151 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab335a743d4c6bdbc95cf482b1a2edf24"></a><!-- doxytag: member="glm::gtx::random::vecRand2" ref="gab335a743d4c6bdbc95cf482b1a2edf24" args="(T MinRadius, T MaxRadius)" -->
152152 template&lt;typename T &gt; </td></tr>
153 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gab335a743d4c6bdbc95cf482b1a2edf24">vecRand2</a> (T MinRadius, T MaxRadius)</td></tr>
153 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gab335a743d4c6bdbc95cf482b1a2edf24">vecRand2</a> (T MinRadius, T MaxRadius)</td></tr>
154154 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4e2bc1fdcc9bbb6292b858d50d467393"></a><!-- doxytag: member="glm::gtx::random::vecRand3" ref="ga4e2bc1fdcc9bbb6292b858d50d467393" args="(T MinRadius, T MaxRadius)" -->
155155 template&lt;typename T &gt; </td></tr>
156 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga4e2bc1fdcc9bbb6292b858d50d467393">vecRand3</a> (T MinRadius, T MaxRadius)</td></tr>
156 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga4e2bc1fdcc9bbb6292b858d50d467393">vecRand3</a> (T MinRadius, T MaxRadius)</td></tr>
157157 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga63249d58e1327a83638f1cf8b421a0de"></a><!-- doxytag: member="glm::gtx::random::vecRand3" ref="ga63249d58e1327a83638f1cf8b421a0de" args="()" -->
158158 template&lt;typename T &gt; </td></tr>
159 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga63249d58e1327a83638f1cf8b421a0de">vecRand3</a> ()</td></tr>
159 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga63249d58e1327a83638f1cf8b421a0de">vecRand3</a> ()</td></tr>
160160 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac2d7a76d889e0b5e9414791b9403c98c"></a><!-- doxytag: member="glm::gtx::random::vecRand4" ref="gac2d7a76d889e0b5e9414791b9403c98c" args="()" -->
161161 template&lt;typename T &gt; </td></tr>
162 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gac2d7a76d889e0b5e9414791b9403c98c">vecRand4</a> ()</td></tr>
162 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gac2d7a76d889e0b5e9414791b9403c98c">vecRand4</a> ()</td></tr>
163163 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gafa1635f3e6a4db81474e4002f9f3e64b"></a><!-- doxytag: member="glm::gtx::random::vecRand4" ref="gafa1635f3e6a4db81474e4002f9f3e64b" args="(T MinRadius, T MaxRadius)" -->
164164 template&lt;typename T &gt; </td></tr>
165 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gafa1635f3e6a4db81474e4002f9f3e64b">vecRand4</a> (T MinRadius, T MaxRadius)</td></tr>
165 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gafa1635f3e6a4db81474e4002f9f3e64b">vecRand4</a> (T MinRadius, T MaxRadius)</td></tr>
166166 </table>
167167 <hr/><a name="_details"></a><h2>Detailed Description</h2>
168 <div class="textblock"><p>GLM_GTX_random extension: Generate random number from various distribution methods. </p>
168 <div class="textblock"><p>&lt; GLM_GTX_random extension: Generate random number from various distribution methods </p>
169169 </div></div>
170170 <hr class="footer"/><address class="footer"><small>Generated by&#160;
171171 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00211.html">raw_data</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_raw_data extension: Projection of a vector to other one.
51 <p>&lt; GLM_GTX_raw_data extension: Projection of a vector to other one
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="typedef-members"></a>
5555 Typedefs</h2></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga4a5def5e5e8468de8e97132ddf5c72c5">byte</a></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga162201f4386c2973e6ebd76ac0941de0">dword</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00246.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#gab7872fb6c3bcddc8658fe3209f04d275">qword</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga9599d4794d33c5d5d07675b5250b74bd">word</a></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga4a5def5e5e8468de8e97132ddf5c72c5">byte</a></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga162201f4386c2973e6ebd76ac0941de0">dword</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00245.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#gab7872fb6c3bcddc8658fe3209f04d275">qword</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga9599d4794d33c5d5d07675b5250b74bd">word</a></td></tr>
6060 </table>
6161 <hr/><a name="_details"></a><h2>Detailed Description</h2>
62 <div class="textblock"><p>GLM_GTX_raw_data extension: Projection of a vector to other one. </p>
62 <div class="textblock"><p>&lt; GLM_GTX_raw_data extension: Projection of a vector to other one </p>
6363 </div></div>
6464 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6565 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00212.html">reciprocal</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_reciprocal extension: Define secant, cosecant and cotangent functions.
51 <p>&lt; GLM_GTX_reciprocal extension: Define secant, cosecant and cotangent functions.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gad8b3e1d0a99ffb209157baa47370e684">acot</a> (genType const &amp;x)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#gad8b3e1d0a99ffb209157baa47370e684">acot</a> (genType const &amp;x)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gabef15ad1a12c56d39cee1afb251d9086">acoth</a> (genType const &amp;x)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#gabef15ad1a12c56d39cee1afb251d9086">acoth</a> (genType const &amp;x)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gacc31bf591741480d2cde587b598badf7">acsc</a> (genType const &amp;x)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#gacc31bf591741480d2cde587b598badf7">acsc</a> (genType const &amp;x)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga33970e21bf86b28fcb1079a656a6aa97">acsch</a> (genType const &amp;x)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga33970e21bf86b28fcb1079a656a6aa97">acsch</a> (genType const &amp;x)</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gadf3d5c2b777dd7f9ccb284919daeb15b">asec</a> (genType const &amp;x)</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#gadf3d5c2b777dd7f9ccb284919daeb15b">asec</a> (genType const &amp;x)</td></tr>
6666 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga43313adedfb151b9d019fbda2388fa4b">asech</a> (genType const &amp;x)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga43313adedfb151b9d019fbda2388fa4b">asech</a> (genType const &amp;x)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga6c2f14ab2a9148b461392b320259ac62">cot</a> (genType const &amp;angle)</td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga6c2f14ab2a9148b461392b320259ac62">cot</a> (genType const &amp;angle)</td></tr>
7070 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gaf3c2cc20b634fcd623840ecc99a038ad">coth</a> (genType const &amp;angle)</td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#gaf3c2cc20b634fcd623840ecc99a038ad">coth</a> (genType const &amp;angle)</td></tr>
7272 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga1f21e65ffedffde468d93a790f875637">csc</a> (genType const &amp;angle)</td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga1f21e65ffedffde468d93a790f875637">csc</a> (genType const &amp;angle)</td></tr>
7474 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gad690383d8014e5c46a2d35a6a59ff053">csch</a> (genType const &amp;angle)</td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#gad690383d8014e5c46a2d35a6a59ff053">csch</a> (genType const &amp;angle)</td></tr>
7676 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gace10a38c1888d5fe0f77c08ba1775b41">sec</a> (genType const &amp;angle)</td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#gace10a38c1888d5fe0f77c08ba1775b41">sec</a> (genType const &amp;angle)</td></tr>
7878 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga3d6f2c8efdefcf326be500a565d48a29">sech</a> (genType const &amp;angle)</td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga3d6f2c8efdefcf326be500a565d48a29">sech</a> (genType const &amp;angle)</td></tr>
8080 </table>
8181 <hr/><a name="_details"></a><h2>Detailed Description</h2>
82 <div class="textblock"><p>GLM_GTX_reciprocal extension: Define secant, cosecant and cotangent functions. </p>
82 <div class="textblock"><p>&lt; GLM_GTX_reciprocal extension: Define secant, cosecant and cotangent functions. </p>
8383 </div></div>
8484 <hr class="footer"/><address class="footer"><small>Generated by&#160;
8585 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00213.html">rotate_vector</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_rotate_vector extension: Function to directly rotate a vector.
51 <p>&lt; GLM_GTX_rotate_vector extension: Function to directly rotate a vector
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#ga98e847d33908bb6e38273214671dbc25">orientation</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;Normal, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;Up)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gae3a2b116deb10aa573c9931c9ea3c258">orientation</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;Normal, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;Up)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#ga916271935bb670e1a75797860af56ae0">rotate</a> (const <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; &amp;v, T angle)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga74ee9d3b702b3ddfc07478b86c89ce18">rotate</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; const &amp;v, T const &amp;angle)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#gaf1ec9b9e94a158726c62296e92eebcae">rotate</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v, T angle, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;normal)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga0f8b7835ac8d51587476bfcf51f2667f">rotate</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v, T const &amp;angle, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;normal)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#ga9f87d898a478a135fbe49b103c0549e9">rotate</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v, T angle, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;normal)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gacbdc12006e75f857cf9ad07377499d6a">rotate</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; const &amp;v, T const &amp;angle, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;normal)</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#ga1c732f02c6ac2ae68614baa28635be83">rotateX</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v, T angle)</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gabb24431b78204cb7852f0597f4514e6a">rotateX</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v, T const &amp;angle)</td></tr>
6666 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#ga414970e186de4d267d6aa36c568a8bcc">rotateX</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v, T angle)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga89a8f325ae8ed133bc17c3fe21eb729e">rotateX</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; const &amp;v, T const &amp;angle)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#ga6b8ce5c2c1896d3bc1c91dd5e9db96b5">rotateY</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v, T angle)</td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga34f0e716fadf266f55945f18b3bc87e9">rotateY</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v, T const &amp;angle)</td></tr>
7070 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#gae2831fcaafe493b83b75f775cb9fe39e">rotateY</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v, T angle)</td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga6d4d0d7e78fc92f77e3e5474d46e703f">rotateY</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; const &amp;v, T const &amp;angle)</td></tr>
7272 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#ga22980e5be58ee40790e1e7ee1ad4e2fe">rotateZ</a> (const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;v, T angle)</td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gafb9ff0a66486f10ad1c4937bfa54d6e8">rotateZ</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v, T const &amp;angle)</td></tr>
7474 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#gafd0e0ce6a665978a3c72d31f0028d77d">rotateZ</a> (const <a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; &amp;v, T angle)</td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga3137076b99675a999459d52475a926e6">rotateZ</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; T &gt; const &amp;v, T const &amp;angle)</td></tr>
7676 </table>
7777 <hr/><a name="_details"></a><h2>Detailed Description</h2>
78 <div class="textblock"><p>GLM_GTX_rotate_vector extension: Function to directly rotate a vector. </p>
78 <div class="textblock"><p>&lt; GLM_GTX_rotate_vector extension: Function to directly rotate a vector </p>
7979 </div></div>
8080 <hr class="footer"/><address class="footer"><small>Generated by&#160;
8181 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00214.html">simd_mat4</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_simd_mat4 extension: SIMD implementation of mat4 type.
51 <p>&lt; GLM_GTX_simd_mat4 extension: SIMD implementation of mat4 type.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga9be926c258e64bf2413671d104b393e8">determinant</a> (detail::fmat4x4SIMD const &amp;m)</td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">detail::fmat4x4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gace9ca056446fc614a846bac6a3ee1a1e">inverse</a> (detail::fmat4x4SIMD const &amp;m)</td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga8759e2cf163948c9c7ff138c1f56d501">mat4_cast</a> (detail::fmat4x4SIMD const &amp;x)</td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">detail::fmat4x4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga5ae5a4950d3e354236390edfaa25301a">matrixCompMult</a> (detail::fmat4x4SIMD const &amp;x, detail::fmat4x4SIMD const &amp;y)</td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">detail::fmat4x4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gafed2233ac30495621c2bdd4d121f9ced">outerProduct</a> (detail::fvec4SIMD const &amp;c, detail::fvec4SIMD const &amp;r)</td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">detail::fmat4x4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga5da402c7d42808dfc8c8d51e0ac9c868">transpose</a> (detail::fmat4x4SIMD const &amp;x)</td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga9be926c258e64bf2413671d104b393e8">determinant</a> (detail::fmat4x4SIMD const &amp;m)</td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">detail::fmat4x4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#gace9ca056446fc614a846bac6a3ee1a1e">inverse</a> (detail::fmat4x4SIMD const &amp;m)</td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga8759e2cf163948c9c7ff138c1f56d501">mat4_cast</a> (detail::fmat4x4SIMD const &amp;x)</td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">detail::fmat4x4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga5ae5a4950d3e354236390edfaa25301a">matrixCompMult</a> (detail::fmat4x4SIMD const &amp;x, detail::fmat4x4SIMD const &amp;y)</td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">detail::fmat4x4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#gafed2233ac30495621c2bdd4d121f9ced">outerProduct</a> (detail::fvec4SIMD const &amp;c, detail::fvec4SIMD const &amp;r)</td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">detail::fmat4x4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga5da402c7d42808dfc8c8d51e0ac9c868">transpose</a> (detail::fmat4x4SIMD const &amp;x)</td></tr>
6262 </table>
6363 <hr/><a name="_details"></a><h2>Detailed Description</h2>
64 <div class="textblock"><p>GLM_GTX_simd_mat4 extension: SIMD implementation of mat4 type. </p>
64 <div class="textblock"><p>&lt; GLM_GTX_simd_mat4 extension: SIMD implementation of mat4 type. </p>
6565 </div></div>
6666 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6767 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00215.html">simd_vec4</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_simd_vec4 extension: SIMD implementation of vec4 type.
51 <p>&lt; GLM_GTX_simd_vec4 extension: SIMD implementation of vec4 type.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga427e341830f94e41ece21ea4ebc854c3">abs</a> (detail::fvec4SIMD const &amp;x)</td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga3ce76f0bb739c0d5f04e7bfa4251993d">ceil</a> (detail::fvec4SIMD const &amp;x)</td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga73e895d1fdba2b620e84383517c552b0">clamp</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;minVal, detail::fvec4SIMD const &amp;maxVal)</td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gabe4bd036ccfd0e1d53ea828d478cdd2c">cross</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gac514ca90bcc5a17bd7162ea32a220580">distance</a> (detail::fvec4SIMD const &amp;p0, detail::fvec4SIMD const &amp;p1)</td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gae9238f5011fd124d44dad7b39f0d5a0f">distance4</a> (detail::fvec4SIMD const &amp;p0, detail::fvec4SIMD const &amp;p1)</td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gaa50f94e3de246ea1a1914266aef2f74b">dot4</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gab299477526abc9646263950bfbe32b3f">fastInversesqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga0d4469acfe98c8b2eab8696bf25a3dde">fastLength</a> (detail::fvec4SIMD const &amp;x)</td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga1c85830900d5d3f29902b12d46c60dd3">fastLength4</a> (detail::fvec4SIMD const &amp;x)</td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga58eeeead0d2b381f7d461dac26381125">fastNormalize</a> (detail::fvec4SIMD const &amp;x)</td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga56465ed17cafbff1e225f82eeb7184e5">fastSqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
68 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gab7b1e6c9349aec87e1d3346e867588d6">floor</a> (detail::fvec4SIMD const &amp;x)</td></tr>
69 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga4b9f36f4524482b43324f4631944569d">fma</a> (detail::fvec4SIMD const &amp;a, detail::fvec4SIMD const &amp;b, detail::fvec4SIMD const &amp;c)</td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga0a98f9d76fee0ca46c1f97861e3e366c">fract</a> (detail::fvec4SIMD const &amp;x)</td></tr>
71 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gaa4e215b72e48012a6388a1477c84e2ad">inversesqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
72 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gaf76a38ce8c466c9b0bc4c1b5db1a6faa">length</a> (detail::fvec4SIMD const &amp;x)</td></tr>
73 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga6c7fffeb58db66f602585b24a8e4f2db">length4</a> (detail::fvec4SIMD const &amp;x)</td></tr>
74 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga10dbe289232abf23c8d668c646ff05d6">max</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
75 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gac8850ebd4ae655de76f375105cf7b3d8">min</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
76 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gafb120dd721c6b87f5f23c3edd159cfaa">mix</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y, detail::fvec4SIMD const &amp;a)</td></tr>
77 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gaf95a2c5c60a6f2a36911d32901e44aba">mod</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
78 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gaba1f7a090566667c615a4a53c2f4a0c6">mod</a> (detail::fvec4SIMD const &amp;x, float const &amp;y)</td></tr>
79 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga97a71f5eed0feb541ea1131a46e4422e">niceLength</a> (detail::fvec4SIMD const &amp;x)</td></tr>
80 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga159f5857abf0df4250bae94f95b9d015">niceLength4</a> (detail::fvec4SIMD const &amp;x)</td></tr>
81 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga163877845325804cda05e8b5142822d5">niceSqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
82 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga4e5cbc78bdd522b61ecd2154b50251af">normalize</a> (detail::fvec4SIMD const &amp;x)</td></tr>
83 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga42f1073cf493e7c299c72ae95180265d">reflect</a> (detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;N)</td></tr>
84 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga894c3ec0524d03313dc9c72d36290c00">refract</a> (detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;N, float const &amp;eta)</td></tr>
85 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gad17e750a691edfe51fd1f60d8cac2329">round</a> (detail::fvec4SIMD const &amp;x)</td></tr>
86 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga5a32ecd67af075293c5c8278f2938d4d">sign</a> (detail::fvec4SIMD const &amp;x)</td></tr>
87 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga44faf22be31f5809ed97bf611a56f3e9">simdDot</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
88 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gac11cb08f6ba68f761b7146a60e72da55">simdFaceforward</a> (detail::fvec4SIMD const &amp;N, detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;Nref)</td></tr>
89 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gaeadaacf6c87b0699292de98b7140a278">smoothstep</a> (detail::fvec4SIMD const &amp;edge0, detail::fvec4SIMD const &amp;edge1, detail::fvec4SIMD const &amp;x)</td></tr>
90 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga28dbd1d165fc4301de4fb16a049fcfb2">sqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
91 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga459647604ac2aa0a97c4eb739a7302cb">step</a> (detail::fvec4SIMD const &amp;edge, detail::fvec4SIMD const &amp;x)</td></tr>
92 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga4733720fa96ed2125f15e4b96578f486">trunc</a> (detail::fvec4SIMD const &amp;x)</td></tr>
93 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gaf44c64b2f9e70746b8a83571812670fc">vec4_cast</a> (detail::fvec4SIMD const &amp;x)</td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga427e341830f94e41ece21ea4ebc854c3">abs</a> (detail::fvec4SIMD const &amp;x)</td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga3ce76f0bb739c0d5f04e7bfa4251993d">ceil</a> (detail::fvec4SIMD const &amp;x)</td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga73e895d1fdba2b620e84383517c552b0">clamp</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;minVal, detail::fvec4SIMD const &amp;maxVal)</td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gabe4bd036ccfd0e1d53ea828d478cdd2c">cross</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gac514ca90bcc5a17bd7162ea32a220580">distance</a> (detail::fvec4SIMD const &amp;p0, detail::fvec4SIMD const &amp;p1)</td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gae9238f5011fd124d44dad7b39f0d5a0f">distance4</a> (detail::fvec4SIMD const &amp;p0, detail::fvec4SIMD const &amp;p1)</td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gaa50f94e3de246ea1a1914266aef2f74b">dot4</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gab299477526abc9646263950bfbe32b3f">fastInversesqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga0d4469acfe98c8b2eab8696bf25a3dde">fastLength</a> (detail::fvec4SIMD const &amp;x)</td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga1c85830900d5d3f29902b12d46c60dd3">fastLength4</a> (detail::fvec4SIMD const &amp;x)</td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga58eeeead0d2b381f7d461dac26381125">fastNormalize</a> (detail::fvec4SIMD const &amp;x)</td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga56465ed17cafbff1e225f82eeb7184e5">fastSqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
68 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gab7b1e6c9349aec87e1d3346e867588d6">floor</a> (detail::fvec4SIMD const &amp;x)</td></tr>
69 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga4b9f36f4524482b43324f4631944569d">fma</a> (detail::fvec4SIMD const &amp;a, detail::fvec4SIMD const &amp;b, detail::fvec4SIMD const &amp;c)</td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga0a98f9d76fee0ca46c1f97861e3e366c">fract</a> (detail::fvec4SIMD const &amp;x)</td></tr>
71 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gaa4e215b72e48012a6388a1477c84e2ad">inversesqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
72 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gaf76a38ce8c466c9b0bc4c1b5db1a6faa">length</a> (detail::fvec4SIMD const &amp;x)</td></tr>
73 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga6c7fffeb58db66f602585b24a8e4f2db">length4</a> (detail::fvec4SIMD const &amp;x)</td></tr>
74 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga10dbe289232abf23c8d668c646ff05d6">max</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
75 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gac8850ebd4ae655de76f375105cf7b3d8">min</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
76 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gafb120dd721c6b87f5f23c3edd159cfaa">mix</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y, detail::fvec4SIMD const &amp;a)</td></tr>
77 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gaf95a2c5c60a6f2a36911d32901e44aba">mod</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
78 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gaba1f7a090566667c615a4a53c2f4a0c6">mod</a> (detail::fvec4SIMD const &amp;x, float const &amp;y)</td></tr>
79 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga97a71f5eed0feb541ea1131a46e4422e">niceLength</a> (detail::fvec4SIMD const &amp;x)</td></tr>
80 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga159f5857abf0df4250bae94f95b9d015">niceLength4</a> (detail::fvec4SIMD const &amp;x)</td></tr>
81 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga163877845325804cda05e8b5142822d5">niceSqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
82 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga4e5cbc78bdd522b61ecd2154b50251af">normalize</a> (detail::fvec4SIMD const &amp;x)</td></tr>
83 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga42f1073cf493e7c299c72ae95180265d">reflect</a> (detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;N)</td></tr>
84 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga894c3ec0524d03313dc9c72d36290c00">refract</a> (detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;N, float const &amp;eta)</td></tr>
85 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gad17e750a691edfe51fd1f60d8cac2329">round</a> (detail::fvec4SIMD const &amp;x)</td></tr>
86 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga5a32ecd67af075293c5c8278f2938d4d">sign</a> (detail::fvec4SIMD const &amp;x)</td></tr>
87 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga44faf22be31f5809ed97bf611a56f3e9">simdDot</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
88 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gac11cb08f6ba68f761b7146a60e72da55">simdFaceforward</a> (detail::fvec4SIMD const &amp;N, detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;Nref)</td></tr>
89 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gaeadaacf6c87b0699292de98b7140a278">smoothstep</a> (detail::fvec4SIMD const &amp;edge0, detail::fvec4SIMD const &amp;edge1, detail::fvec4SIMD const &amp;x)</td></tr>
90 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga28dbd1d165fc4301de4fb16a049fcfb2">sqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
91 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga459647604ac2aa0a97c4eb739a7302cb">step</a> (detail::fvec4SIMD const &amp;edge, detail::fvec4SIMD const &amp;x)</td></tr>
92 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga4733720fa96ed2125f15e4b96578f486">trunc</a> (detail::fvec4SIMD const &amp;x)</td></tr>
93 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00022.html">detail::tvec4</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gaf44c64b2f9e70746b8a83571812670fc">vec4_cast</a> (detail::fvec4SIMD const &amp;x)</td></tr>
9494 </table>
9595 <hr/><a name="_details"></a><h2>Detailed Description</h2>
96 <div class="textblock"><p>GLM_GTX_simd_vec4 extension: SIMD implementation of vec4 type. </p>
96 <div class="textblock"><p>&lt; GLM_GTX_simd_vec4 extension: SIMD implementation of vec4 type. </p>
9797 </div></div>
9898 <hr class="footer"/><address class="footer"><small>Generated by&#160;
9999 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00216.html">spline</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_simplex extension: Spline functions.
51 <p>&lt; GLM_GTX_simplex extension: Spline functions
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00293.html#gaecb37259be4b2370eab845c6d531f55b">catmullRom</a> (genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00292.html#gaecb37259be4b2370eab845c6d531f55b">catmullRom</a> (genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00293.html#gaae38edb178e0256e966955b19b61f617">cubic</a> (genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00292.html#gaae38edb178e0256e966955b19b61f617">cubic</a> (genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00293.html#ga3ea772a4bdf8b3514ef12b47944c844c">hermite</a> (genType const &amp;v1, genType const &amp;t1, genType const &amp;v2, genType const &amp;t2, typename genType::value_type const &amp;s)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00292.html#ga3ea772a4bdf8b3514ef12b47944c844c">hermite</a> (genType const &amp;v1, genType const &amp;t1, genType const &amp;v2, genType const &amp;t2, typename genType::value_type const &amp;s)</td></tr>
6262 </table>
6363 <hr/><a name="_details"></a><h2>Detailed Description</h2>
64 <div class="textblock"><p>GLM_GTX_simplex extension: Spline functions. </p>
65 <p>GLM_GTX_spline extension: Spline functions. </p>
64 <div class="textblock"><p>&lt; GLM_GTX_simplex extension: Spline functions </p>
65 <p>&lt; GLM_GTX_spline extension: Spline functions </p>
6666 </div></div>
6767 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6868 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00217.html">std_based_type</a> </li>
4040 </ul>
4646 </div>
4747 <div class="contents">
4848
49 <p>GLM_GTX_std_based_type extension: Add support vector types based on C++ standard type.
49 <p>&lt; GLM_GTX_std_based_type extension: Add support vector types based on C++ standard type
5050 <a href="#_details">More...</a></p>
5151 <table class="memberdecls">
5252 </table>
5353 <hr/><a name="_details"></a><h2>Detailed Description</h2>
54 <div class="textblock"><p>GLM_GTX_std_based_type extension: Add support vector types based on C++ standard type. </p>
54 <div class="textblock"><p>&lt; GLM_GTX_std_based_type extension: Add support vector types based on C++ standard type </p>
5555 </div></div>
5656 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5757 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00218.html">string_cast</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_string_cast extension: Setup strings for GLM type values.
51 <p>&lt; GLM_GTX_string_cast extension: Setup strings for GLM type values
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#ga9ab4dfc4ab5f29591638fb56d7752fff">to_string</a> (genType const &amp;x)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00293.html#ga9ab4dfc4ab5f29591638fb56d7752fff">to_string</a> (genType const &amp;x)</td></tr>
5858 </table>
5959 <hr/><a name="_details"></a><h2>Detailed Description</h2>
60 <div class="textblock"><p>GLM_GTX_string_cast extension: Setup strings for GLM type values. </p>
60 <div class="textblock"><p>&lt; GLM_GTX_string_cast extension: Setup strings for GLM type values </p>
6161 </div></div>
6262 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6363 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00219.html">transform</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_transform extension: Add transformation matrices.
51 <p>&lt; GLM_GTX_transform extension: Add transformation matrices
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga6051e4c2205da027f721331b22f70d9d">rotate</a> (T angle, T x, T y, T z)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#ga6051e4c2205da027f721331b22f70d9d">rotate</a> (T angle, T x, T y, T z)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#gaab3c5f8b6405944aaaa6268ab3749f5f">rotate</a> (T angle, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#gaab3c5f8b6405944aaaa6268ab3749f5f">rotate</a> (T angle, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#gac5913a422b1a75e764f1e4de2a04dac3">rotate</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m, T angle, T x, T y, T z)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#gac5913a422b1a75e764f1e4de2a04dac3">rotate</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m, T angle, T x, T y, T z)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga9080c798473b0f9c114d8ad5ab82371d">scale</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#ga9080c798473b0f9c114d8ad5ab82371d">scale</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v)</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga192ab17a07acc4465e397991182b8edb">scale</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m, T x, T y, T z)</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#ga192ab17a07acc4465e397991182b8edb">scale</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m, T x, T y, T z)</td></tr>
6666 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga491ec926cfd56184de78ce4594e004a0">scale</a> (T x, T y, T z)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#ga491ec926cfd56184de78ce4594e004a0">scale</a> (T x, T y, T z)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga21cd332c98fa99eeeff42dc518a081d5">translate</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m, T x, T y, T z)</td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#ga21cd332c98fa99eeeff42dc518a081d5">translate</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; const &amp;m, T x, T y, T z)</td></tr>
7070 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga982331dbdf3a14d1ed6601e67178cff3">translate</a> (T x, T y, T z)</td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#ga982331dbdf3a14d1ed6601e67178cff3">translate</a> (T x, T y, T z)</td></tr>
7272 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#gac0a389d3a4a74010983db8bccab78d7f">translate</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v)</td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#gac0a389d3a4a74010983db8bccab78d7f">translate</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;v)</td></tr>
7474 </table>
7575 <hr/><a name="_details"></a><h2>Detailed Description</h2>
76 <div class="textblock"><p>GLM_GTX_transform extension: Add transformation matrices. </p>
76 <div class="textblock"><p>&lt; GLM_GTX_transform extension: Add transformation matrices </p>
7777 </div></div>
7878 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7979 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00220.html">transform2</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_transform2 extension: Add extra transformation matrices.
51 <p>&lt; GLM_GTX_transform2 extension: Add extra transformation matrices
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#gad67f97fe49fb1709d6d8b6810c7c52fb">proj2D</a> (const <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; &amp;m, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;normal)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#gad67f97fe49fb1709d6d8b6810c7c52fb">proj2D</a> (const <a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; &amp;m, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;normal)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#gabc160967cd323027f973976457590482">proj3D</a> (const <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;m, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;normal)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#gabc160967cd323027f973976457590482">proj3D</a> (const <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;m, const <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; &amp;normal)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#gae193c4807264f8454b1786ceeac02455">scaleBias</a> (valType scale, valType bias)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#gae193c4807264f8454b1786ceeac02455">scaleBias</a> (valType scale, valType bias)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#ga54ded59dc618054791cca47fd9bf1680">scaleBias</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt; const &amp;m, valType scale, valType bias)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga54ded59dc618054791cca47fd9bf1680">scaleBias</a> (<a class="el" href="a00018.html">detail::tmat4x4</a>&lt; valType &gt; const &amp;m, valType scale, valType bias)</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#gaf9900000ffffcb4e50f0f97101a35a27">shearX2D</a> (<a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; const &amp;m, T y)</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#gaf9900000ffffcb4e50f0f97101a35a27">shearX2D</a> (<a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; const &amp;m, T y)</td></tr>
6666 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#ga8b165c7be525526861e19675cca6e192">shearX3D</a> (const <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;m, T y, T z)</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga8b165c7be525526861e19675cca6e192">shearX3D</a> (const <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;m, T y, T z)</td></tr>
6868 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#ga73d1c5572f57bc69cd8296fa6411370a">shearY2D</a> (<a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; const &amp;m, T x)</td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga73d1c5572f57bc69cd8296fa6411370a">shearY2D</a> (<a class="el" href="a00014.html">detail::tmat3x3</a>&lt; T &gt; const &amp;m, T x)</td></tr>
7070 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#gab059e40261cbfe782efb81aa866f1399">shearY3D</a> (const <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;m, T x, T z)</td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#gab059e40261cbfe782efb81aa866f1399">shearY3D</a> (const <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;m, T x, T z)</td></tr>
7272 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#ga3fbd91d387fea4c3f2d74e0ef2250996">shearZ3D</a> (const <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;m, T x, T y)</td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga3fbd91d387fea4c3f2d74e0ef2250996">shearZ3D</a> (const <a class="el" href="a00018.html">detail::tmat4x4</a>&lt; T &gt; &amp;m, T x, T y)</td></tr>
7474 </table>
7575 <hr/><a name="_details"></a><h2>Detailed Description</h2>
76 <div class="textblock"><p>GLM_GTX_transform2 extension: Add extra transformation matrices. </p>
76 <div class="textblock"><p>&lt; GLM_GTX_transform2 extension: Add extra transformation matrices </p>
7777 </div></div>
7878 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7979 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00221.html">ulp</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_ulp extension: Precision calculation functions.
51 <p>&lt; GLM_GTX_ulp extension: Precision calculation functions
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
6767 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00307.html#ga5684a773c89402ea0c9fc71d17d2d54e">prev_float</a> (genType const &amp;x)</td></tr>
6868 </table>
6969 <hr/><a name="_details"></a><h2>Detailed Description</h2>
70 <div class="textblock"><p>GLM_GTX_ulp extension: Precision calculation functions. </p>
70 <div class="textblock"><p>&lt; GLM_GTX_ulp extension: Precision calculation functions </p>
7171 </div></div>
7272 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7373 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00222.html">unsigned_int</a> </li>
4040 </ul>
4949 </div>
5050 <div class="contents">
5151
52 <p>GLM_GTX_unsigned_int extension: Add support for unsigned integer for core functions.
52 <p>&lt; GLM_GTX_unsigned_int extension: Add support for unsigned integer for core functions
5353 <a href="#_details">More...</a></p>
5454 <table class="memberdecls">
5555 <tr><td colspan="2"><h2><a name="typedef-members"></a>
5656 Typedefs</h2></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">typedef signed int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00297.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">typedef signed int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00296.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a></td></tr>
5858 <tr><td colspan="2"><h2><a name="func-members"></a>
5959 Functions</h2></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">uint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00297.html#ga61b96cbe026915bfa3f471d7d1e8d0e7">mod</a> (<a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">uint</a> x, <a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">uint</a> y)</td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">uint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00297.html#ga9f8b197b576d9b2f0b5bfe63dc1f638f">pow</a> (<a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">uint</a> x, <a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">uint</a> y)</td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">uint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00297.html#ga0fe1b8123e6661dda5969ee76a2b23df">sqrt</a> (<a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">uint</a> x)</td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">uint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00296.html#ga61b96cbe026915bfa3f471d7d1e8d0e7">mod</a> (<a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">uint</a> x, <a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">uint</a> y)</td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">uint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00296.html#ga9f8b197b576d9b2f0b5bfe63dc1f638f">pow</a> (<a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">uint</a> x, <a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">uint</a> y)</td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">uint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00296.html#ga0fe1b8123e6661dda5969ee76a2b23df">sqrt</a> (<a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">uint</a> x)</td></tr>
6363 </table>
6464 <hr/><a name="_details"></a><h2>Detailed Description</h2>
65 <div class="textblock"><p>GLM_GTX_unsigned_int extension: Add support for unsigned integer for core functions. </p>
65 <div class="textblock"><p>&lt; GLM_GTX_unsigned_int extension: Add support for unsigned integer for core functions </p>
6666 </div></div>
6767 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6868 <a href="http://www.doxygen.org/index.html">
+0
-142
doc/html/a00223.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>glm::gtx::vector1 Namespace Reference</title>
5 <link href="tabs.css" rel="stylesheet" type="text/css"/>
6 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
7 </head>
8 <body>
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td id="projectlogo"><img alt="Logo" src="logo-mini.png"></td>
16 </tr>
17 </tbody>
18 </table>
19 </div>
20 <div id="navrow1" class="tabs">
21 <ul class="tablist">
22 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
23 <li><a href="modules.html"><span>Modules</span></a></li>
24 <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
25 <li><a href="annotated.html"><span>Classes</span></a></li>
26 <li><a href="files.html"><span>Files</span></a></li>
27 </ul>
28 </div>
29 <div id="navrow2" class="tabs2">
30 <ul class="tablist">
31 <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
32 <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
33 </ul>
34 </div>
35 <div id="nav-path" class="navpath">
36 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
39 <li class="navelem"><a class="el" href="a00223.html">vector1</a> </li>
40 </ul>
41 </div>
42 </div>
43 <div class="header">
44 <div class="summary">
45 <a href="#typedef-members">Typedefs</a> </div>
46 <div class="headertitle">
47 <h1>glm::gtx::vector1 Namespace Reference</h1> </div>
48 </div>
49 <div class="contents">
50
51 <p>GLM_GTX_vector1 extension: 1 component vector.
52 <a href="#_details">More...</a></p>
53 <table class="memberdecls">
54 <tr><td colspan="2"><h2><a name="typedef-members"></a>
55 Typedefs</h2></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec1&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00223.html#a4cb77cff76a0649661d8909ac19bdec8">bvec1</a></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_ivec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00223.html#acad21ad05f36e9ca36c040086837987e">ivec1</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_uvec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00223.html#a3e65e37bdbada1e13e0c66883bb449eb">uvec1</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00223.html#ac60e77a28be159c8f883242b991dd5fb">vec1</a></td></tr>
60 </table>
61 <hr/><a name="_details"></a><h2>Detailed Description</h2>
62 <div class="textblock"><p>GLM_GTX_vector1 extension: 1 component vector. </p>
63 </div><hr/><h2>Typedef Documentation</h2>
64 <a class="anchor" id="a4cb77cff76a0649661d8909ac19bdec8"></a><!-- doxytag: member="glm::gtx::vector1::bvec1" ref="a4cb77cff76a0649661d8909ac19bdec8" args="" -->
65 <div class="memitem">
66 <div class="memproto">
67 <table class="memname">
68 <tr>
69 <td class="memname">typedef detail::tvec1&lt;bool&gt; <a class="el" href="a00223.html#a4cb77cff76a0649661d8909ac19bdec8">bvec1</a></td>
70 </tr>
71 </table>
72 </div>
73 <div class="memdoc">
74
75 <p>1 component vector of boolean. </p>
76 <p>From GLM_GTX_vec1 extension. </p>
77
78 <p>Definition at line <a class="el" href="a00135_source.html#l00081">81</a> of file <a class="el" href="a00135_source.html">vec1.hpp</a>.</p>
79
80 </div>
81 </div>
82 <a class="anchor" id="acad21ad05f36e9ca36c040086837987e"></a><!-- doxytag: member="glm::gtx::vector1::ivec1" ref="acad21ad05f36e9ca36c040086837987e" args="" -->
83 <div class="memitem">
84 <div class="memproto">
85 <table class="memname">
86 <tr>
87 <td class="memname">typedef precision::mediump_ivec1 <a class="el" href="a00223.html#acad21ad05f36e9ca36c040086837987e">ivec1</a></td>
88 </tr>
89 </table>
90 </div>
91 <div class="memdoc">
92
93 <p>1 component vector of signed integer numbers. </p>
94 <p>From GLM_GTX_vec1 extension. </p>
95
96 <p>Definition at line <a class="el" href="a00135_source.html#l00104">104</a> of file <a class="el" href="a00135_source.html">vec1.hpp</a>.</p>
97
98 </div>
99 </div>
100 <a class="anchor" id="a3e65e37bdbada1e13e0c66883bb449eb"></a><!-- doxytag: member="glm::gtx::vector1::uvec1" ref="a3e65e37bdbada1e13e0c66883bb449eb" args="" -->
101 <div class="memitem">
102 <div class="memproto">
103 <table class="memname">
104 <tr>
105 <td class="memname">typedef precision::mediump_uvec1 <a class="el" href="a00223.html#a3e65e37bdbada1e13e0c66883bb449eb">uvec1</a></td>
106 </tr>
107 </table>
108 </div>
109 <div class="memdoc">
110
111 <p>1 component vector of unsigned integer numbers. </p>
112 <p>From GLM_GTX_vec1 extension. </p>
113
114 <p>Definition at line <a class="el" href="a00135_source.html#l00116">116</a> of file <a class="el" href="a00135_source.html">vec1.hpp</a>.</p>
115
116 </div>
117 </div>
118 <a class="anchor" id="ac60e77a28be159c8f883242b991dd5fb"></a><!-- doxytag: member="glm::gtx::vector1::vec1" ref="ac60e77a28be159c8f883242b991dd5fb" args="" -->
119 <div class="memitem">
120 <div class="memproto">
121 <table class="memname">
122 <tr>
123 <td class="memname">typedef precision::mediump_vec1 <a class="el" href="a00223.html#ac60e77a28be159c8f883242b991dd5fb">vec1</a></td>
124 </tr>
125 </table>
126 </div>
127 <div class="memdoc">
128
129 <p>1 component vector of floating-point numbers. </p>
130 <p>From GLM_GTX_vec1 extension. </p>
131
132 <p>Definition at line <a class="el" href="a00135_source.html#l00092">92</a> of file <a class="el" href="a00135_source.html">vec1.hpp</a>.</p>
133
134 </div>
135 </div>
136 </div>
137 <hr class="footer"/><address class="footer"><small>Generated by&#160;
138 <a href="http://www.doxygen.org/index.html">
139 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
140 </body>
141 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>glm::gtx::vector1::precision Namespace Reference</title>
5 <link href="tabs.css" rel="stylesheet" type="text/css"/>
6 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
7 </head>
8 <body>
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td id="projectlogo"><img alt="Logo" src="logo-mini.png"></td>
16 </tr>
17 </tbody>
18 </table>
19 </div>
20 <div id="navrow1" class="tabs">
21 <ul class="tablist">
22 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
23 <li><a href="modules.html"><span>Modules</span></a></li>
24 <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
25 <li><a href="annotated.html"><span>Classes</span></a></li>
26 <li><a href="files.html"><span>Files</span></a></li>
27 </ul>
28 </div>
29 <div id="navrow2" class="tabs2">
30 <ul class="tablist">
31 <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
32 <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
33 </ul>
34 </div>
35 <div id="nav-path" class="navpath">
36 <ul>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
39 <li class="navelem"><b>vector1</b> </li>
40 <li class="navelem"><a class="el" href="a00224.html">precision</a> </li>
41 </ul>
42 </div>
43 </div>
44 <div class="header">
45 <div class="summary">
46 <a href="#typedef-members">Typedefs</a> </div>
47 <div class="headertitle">
48 <h1>glm::gtx::vector1::precision Namespace Reference</h1> </div>
49 </div>
50 <div class="contents">
51
52 <p>&lt; GLM_GTX_vec1 extension: 1 component vector.
53 <a href="#_details">More...</a></p>
54 <table class="memberdecls">
55 <tr><td colspan="2"><h2><a name="typedef-members"></a>
56 Typedefs</h2></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::highp_ivec1_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00224.html#a7b3964cbe14cee973bc856b81708fb36">highp_ivec1</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::highp_uvec1_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00224.html#a9ada3d09911046c294f83bdaebd7ce8e">highp_uvec1</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::highp_vec1_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00224.html#a26cc70c8e50dcdbd7fba41515d3f3f4e">highp_vec1</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_ivec1_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00224.html#a12a4c27c1cc45db7cd062d3e1e7ad443">lowp_ivec1</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_uvec1_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00224.html#acc4c5715d5f36547163197c72ebc7b89">lowp_uvec1</a></td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_vec1_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00224.html#a0b7ff5513e300963adbdda29f20a71d5">lowp_vec1</a></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_ivec1_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00224.html#a9ee2fea9ceb3f51ca2ec46047bbd0203">mediump_ivec1</a></td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_uvec1_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00224.html#a17b8da90f5d16810910a9c8429987cbc">mediump_uvec1</a></td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_vec1_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00224.html#ada105899989019a13f333e271677ab52">mediump_vec1</a></td></tr>
66 </table>
67 <hr/><a name="_details"></a><h2>Detailed Description</h2>
68 <div class="textblock"><p>&lt; GLM_GTX_vec1 extension: 1 component vector. </p>
69 </div><hr/><h2>Typedef Documentation</h2>
70 <a class="anchor" id="a7b3964cbe14cee973bc856b81708fb36"></a><!-- doxytag: member="glm::gtx::vector1::precision::highp_ivec1" ref="a7b3964cbe14cee973bc856b81708fb36" args="" -->
71 <div class="memitem">
72 <div class="memproto">
73 <table class="memname">
74 <tr>
75 <td class="memname">typedef detail::highp_ivec1_t <a class="el" href="a00224.html#a7b3964cbe14cee973bc856b81708fb36">highp_ivec1</a></td>
76 </tr>
77 </table>
78 </div>
79 <div class="memdoc">
80
81 <p>1 component vector of high precision signed integer numbers. </p>
82 <p>There is no guarantee on the actual precision. From GLM_GTX_vec1 extension. </p>
83
84 <p>Definition at line <a class="el" href="a00135_source.html#l00045">45</a> of file <a class="el" href="a00135_source.html">vec1.hpp</a>.</p>
85
86 </div>
87 </div>
88 <a class="anchor" id="a9ada3d09911046c294f83bdaebd7ce8e"></a><!-- doxytag: member="glm::gtx::vector1::precision::highp_uvec1" ref="a9ada3d09911046c294f83bdaebd7ce8e" args="" -->
89 <div class="memitem">
90 <div class="memproto">
91 <table class="memname">
92 <tr>
93 <td class="memname">typedef detail::highp_uvec1_t <a class="el" href="a00224.html#a9ada3d09911046c294f83bdaebd7ce8e">highp_uvec1</a></td>
94 </tr>
95 </table>
96 </div>
97 <div class="memdoc">
98
99 <p>1 component vector of high precision unsigned integer numbers. </p>
100 <p>There is no guarantee on the actual precision. From GLM_GTX_vec1 extension. </p>
101
102 <p>Definition at line <a class="el" href="a00135_source.html#l00058">58</a> of file <a class="el" href="a00135_source.html">vec1.hpp</a>.</p>
103
104 </div>
105 </div>
106 <a class="anchor" id="a26cc70c8e50dcdbd7fba41515d3f3f4e"></a><!-- doxytag: member="glm::gtx::vector1::precision::highp_vec1" ref="a26cc70c8e50dcdbd7fba41515d3f3f4e" args="" -->
107 <div class="memitem">
108 <div class="memproto">
109 <table class="memname">
110 <tr>
111 <td class="memname">typedef detail::highp_vec1_t <a class="el" href="a00224.html#a26cc70c8e50dcdbd7fba41515d3f3f4e">highp_vec1</a></td>
112 </tr>
113 </table>
114 </div>
115 <div class="memdoc">
116
117 <p>1 component vector of high precision floating-point numbers. </p>
118 <p>There is no guarantee on the actual precision. From GLM_GTX_vec1 extension. </p>
119
120 <p>Definition at line <a class="el" href="a00135_source.html#l00032">32</a> of file <a class="el" href="a00135_source.html">vec1.hpp</a>.</p>
121
122 </div>
123 </div>
124 <a class="anchor" id="a12a4c27c1cc45db7cd062d3e1e7ad443"></a><!-- doxytag: member="glm::gtx::vector1::precision::lowp_ivec1" ref="a12a4c27c1cc45db7cd062d3e1e7ad443" args="" -->
125 <div class="memitem">
126 <div class="memproto">
127 <table class="memname">
128 <tr>
129 <td class="memname">typedef detail::lowp_ivec1_t <a class="el" href="a00224.html#a12a4c27c1cc45db7cd062d3e1e7ad443">lowp_ivec1</a></td>
130 </tr>
131 </table>
132 </div>
133 <div class="memdoc">
134
135 <p>1 component vector of low precision signed integer numbers. </p>
136 <p>There is no guarantee on the actual precision. From GLM_GTX_vec1 extension. </p>
137
138 <p>Definition at line <a class="el" href="a00135_source.html#l00053">53</a> of file <a class="el" href="a00135_source.html">vec1.hpp</a>.</p>
139
140 </div>
141 </div>
142 <a class="anchor" id="acc4c5715d5f36547163197c72ebc7b89"></a><!-- doxytag: member="glm::gtx::vector1::precision::lowp_uvec1" ref="acc4c5715d5f36547163197c72ebc7b89" args="" -->
143 <div class="memitem">
144 <div class="memproto">
145 <table class="memname">
146 <tr>
147 <td class="memname">typedef detail::lowp_uvec1_t <a class="el" href="a00224.html#acc4c5715d5f36547163197c72ebc7b89">lowp_uvec1</a></td>
148 </tr>
149 </table>
150 </div>
151 <div class="memdoc">
152
153 <p>1 component vector of low precision unsigned integer numbers. </p>
154 <p>There is no guarantee on the actual precision. From GLM_GTX_vec1 extension. </p>
155
156 <p>Definition at line <a class="el" href="a00135_source.html#l00066">66</a> of file <a class="el" href="a00135_source.html">vec1.hpp</a>.</p>
157
158 </div>
159 </div>
160 <a class="anchor" id="a0b7ff5513e300963adbdda29f20a71d5"></a><!-- doxytag: member="glm::gtx::vector1::precision::lowp_vec1" ref="a0b7ff5513e300963adbdda29f20a71d5" args="" -->
161 <div class="memitem">
162 <div class="memproto">
163 <table class="memname">
164 <tr>
165 <td class="memname">typedef detail::lowp_vec1_t <a class="el" href="a00224.html#a0b7ff5513e300963adbdda29f20a71d5">lowp_vec1</a></td>
166 </tr>
167 </table>
168 </div>
169 <div class="memdoc">
170
171 <p>1 component vector of low precision floating-point numbers. </p>
172 <p>There is no guarantee on the actual precision. From GLM_GTX_vec1 extension. </p>
173
174 <p>Definition at line <a class="el" href="a00135_source.html#l00040">40</a> of file <a class="el" href="a00135_source.html">vec1.hpp</a>.</p>
175
176 </div>
177 </div>
178 <a class="anchor" id="a9ee2fea9ceb3f51ca2ec46047bbd0203"></a><!-- doxytag: member="glm::gtx::vector1::precision::mediump_ivec1" ref="a9ee2fea9ceb3f51ca2ec46047bbd0203" args="" -->
179 <div class="memitem">
180 <div class="memproto">
181 <table class="memname">
182 <tr>
183 <td class="memname">typedef detail::mediump_ivec1_t <a class="el" href="a00224.html#a9ee2fea9ceb3f51ca2ec46047bbd0203">mediump_ivec1</a></td>
184 </tr>
185 </table>
186 </div>
187 <div class="memdoc">
188
189 <p>1 component vector of medium precision signed integer numbers. </p>
190 <p>There is no guarantee on the actual precision. From GLM_GTX_vec1 extension. </p>
191
192 <p>Definition at line <a class="el" href="a00135_source.html#l00049">49</a> of file <a class="el" href="a00135_source.html">vec1.hpp</a>.</p>
193
194 </div>
195 </div>
196 <a class="anchor" id="a17b8da90f5d16810910a9c8429987cbc"></a><!-- doxytag: member="glm::gtx::vector1::precision::mediump_uvec1" ref="a17b8da90f5d16810910a9c8429987cbc" args="" -->
197 <div class="memitem">
198 <div class="memproto">
199 <table class="memname">
200 <tr>
201 <td class="memname">typedef detail::mediump_uvec1_t <a class="el" href="a00224.html#a17b8da90f5d16810910a9c8429987cbc">mediump_uvec1</a></td>
202 </tr>
203 </table>
204 </div>
205 <div class="memdoc">
206
207 <p>1 component vector of medium precision unsigned integer numbers. </p>
208 <p>There is no guarantee on the actual precision. From GLM_GTX_vec1 extension. </p>
209
210 <p>Definition at line <a class="el" href="a00135_source.html#l00062">62</a> of file <a class="el" href="a00135_source.html">vec1.hpp</a>.</p>
211
212 </div>
213 </div>
214 <a class="anchor" id="ada105899989019a13f333e271677ab52"></a><!-- doxytag: member="glm::gtx::vector1::precision::mediump_vec1" ref="ada105899989019a13f333e271677ab52" args="" -->
215 <div class="memitem">
216 <div class="memproto">
217 <table class="memname">
218 <tr>
219 <td class="memname">typedef detail::mediump_vec1_t <a class="el" href="a00224.html#ada105899989019a13f333e271677ab52">mediump_vec1</a></td>
220 </tr>
221 </table>
222 </div>
223 <div class="memdoc">
224
225 <p>1 component vector of medium precision floating-point numbers. </p>
226 <p>There is no guarantee on the actual precision. From GLM_GTX_vec1 extension. </p>
227
228 <p>Definition at line <a class="el" href="a00135_source.html#l00036">36</a> of file <a class="el" href="a00135_source.html">vec1.hpp</a>.</p>
229
230 </div>
231 </div>
232 </div>
233 <hr class="footer"/><address class="footer"><small>Generated by&#160;
234 <a href="http://www.doxygen.org/index.html">
235 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
236 </body>
237 </html>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00225.html">vector_access</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_vector_access extension: Function to set values to vectors.
51 <p>&lt; GLM_GTX_vector_access extension: Function to set values to vectors
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00298.html#ga97b820e01a1b136b670aaa01d0a634bf">set</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00297.html#ga97b820e01a1b136b670aaa01d0a634bf">set</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00298.html#ga6488f8e2334661e56c5439845ad2d8d9">set</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y, valType const &amp;z, valType const &amp;w)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00297.html#ga6488f8e2334661e56c5439845ad2d8d9">set</a> (<a class="el" href="a00022.html">detail::tvec4</a>&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y, valType const &amp;z, valType const &amp;w)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00298.html#ga035a27cb5b0c30a1f1719e007ffb890e">set</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y, valType const &amp;z)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00297.html#ga035a27cb5b0c30a1f1719e007ffb890e">set</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y, valType const &amp;z)</td></tr>
6262 </table>
6363 <hr/><a name="_details"></a><h2>Detailed Description</h2>
64 <div class="textblock"><p>GLM_GTX_vector_access extension: Function to set values to vectors. </p>
64 <div class="textblock"><p>&lt; GLM_GTX_vector_access extension: Function to set values to vectors </p>
6565 </div></div>
6666 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6767 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00226.html">vector_angle</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_vector_angle extension: Compute angle between vectors.
51 <p>&lt; GLM_GTX_vector_angle extension: Compute angle between vectors
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">vecType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#ga279a2aed9a8061eb517a59fecdb6196a">angle</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
58 <tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">vecType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#gae5ca5e80b176900509b0f12a6ca8b164">orientedAngle</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
60 <tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">vecType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#gad9f384cfa3b7879dc5926fad0023cce9">orientedAngleFromRef</a> (vecType const &amp;x, vecType const &amp;y, <a class="el" href="a00021.html">detail::tvec3</a>&lt; typename vecType::value_type &gt; const &amp;ref)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
58 vecType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00298.html#ga772681c48065b380295f25ded4c9a70e">angle</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00298.html#ga694a29c83046cc64d917e654f044e792">orientedAngle</a> (<a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;x, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;y, <a class="el" href="a00021.html">detail::tvec3</a>&lt; T &gt; const &amp;ref)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00298.html#ga4ac0ffd1ca09ae58ff79486240296663">orientedAngle</a> (<a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; const &amp;x, <a class="el" href="a00020.html">detail::tvec2</a>&lt; T &gt; const &amp;y)</td></tr>
6263 </table>
6364 <hr/><a name="_details"></a><h2>Detailed Description</h2>
64 <div class="textblock"><p>GLM_GTX_vector_angle extension: Compute angle between vectors. </p>
65 <div class="textblock"><p>&lt; GLM_GTX_vector_angle extension: Compute angle between vectors </p>
6566 </div></div>
6667 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6768 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00227.html">vector_query</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_vector_query extension: Query informations of vector types.
51 <p>&lt; GLM_GTX_vector_query extension: Query informations of vector types
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#gadf4603b05ea58193d1f63f128160757e">areCollinear</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#gadf4603b05ea58193d1f63f128160757e">areCollinear</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#gacac4975ef9ab28dafe0b07f543fd1d35">areOpposite</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#gacac4975ef9ab28dafe0b07f543fd1d35">areOpposite</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#ga6d56f0cfc253d49844bac10cefb1ec92">areOrthogonal</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#ga6d56f0cfc253d49844bac10cefb1ec92">areOrthogonal</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#ga300e715a70b718689fd405e65b09f26a">areOrthonormal</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#ga300e715a70b718689fd405e65b09f26a">areOrthonormal</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#gac91707dd854ae62484e9670311105545">areSimilar</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#gac91707dd854ae62484e9670311105545">areSimilar</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
6666 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#ga727dbe962529a68632f779ccc79e2cef">isNormalized</a> (genType const &amp;v, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#ga727dbe962529a68632f779ccc79e2cef">isNormalized</a> (genType const &amp;v, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
6868 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#gab8f7a48850ba11f19dbbfcc0429b116c">isNull</a> (genType const &amp;v, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#gab8f7a48850ba11f19dbbfcc0429b116c">isNull</a> (genType const &amp;v, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
7070 </table>
7171 <hr/><a name="_details"></a><h2>Detailed Description</h2>
72 <div class="textblock"><p>GLM_GTX_vector_query extension: Query informations of vector types. </p>
72 <div class="textblock"><p>&lt; GLM_GTX_vector_query extension: Query informations of vector types </p>
7373 </div></div>
7474 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7575 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00228.html">verbose_operator</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_verbose_operator extension: Use words to replace operators.
51 <p>&lt; GLM_GTX_verbose_operator extension: Use words to replace operators
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00301.html#ga43dc29338ef121abd4a47c93dcd822f7">add</a> (genTypeT const &amp;a, genTypeU const &amp;b)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#ga43dc29338ef121abd4a47c93dcd822f7">add</a> (genTypeT const &amp;a, genTypeU const &amp;b)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00301.html#gac3fc94c8ffc6cdbfd36cffc6d06c8072">div</a> (genTypeT const &amp;a, genTypeU const &amp;b)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#gac3fc94c8ffc6cdbfd36cffc6d06c8072">div</a> (genTypeT const &amp;a, genTypeU const &amp;b)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU , typename genTypeV &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00301.html#ga4997f51a19fbe8f947fd5589af27619f">mad</a> (genTypeT const &amp;a, genTypeU const &amp;b, genTypeV const &amp;c)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#ga4997f51a19fbe8f947fd5589af27619f">mad</a> (genTypeT const &amp;a, genTypeU const &amp;b, genTypeV const &amp;c)</td></tr>
6262 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00301.html#gac87bf44315f4f2b57ace7dc9eb2cf851">mul</a> (genTypeT const &amp;a, genTypeU const &amp;b)</td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#gac87bf44315f4f2b57ace7dc9eb2cf851">mul</a> (genTypeT const &amp;a, genTypeU const &amp;b)</td></tr>
6464 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00301.html#gae0f130b059368ee8ef65522b0d434e7e">sub</a> (genTypeT const &amp;a, genTypeU const &amp;b)</td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#gae0f130b059368ee8ef65522b0d434e7e">sub</a> (genTypeT const &amp;a, genTypeU const &amp;b)</td></tr>
6666 </table>
6767 <hr/><a name="_details"></a><h2>Detailed Description</h2>
68 <div class="textblock"><p>GLM_GTX_verbose_operator extension: Use words to replace operators. </p>
68 <div class="textblock"><p>&lt; GLM_GTX_verbose_operator extension: Use words to replace operators </p>
6969 </div></div>
7070 <hr class="footer"/><address class="footer"><small>Generated by&#160;
7171 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><a class="el" href="a00168.html">gtx</a> </li>
3939 <li class="navelem"><a class="el" href="a00229.html">wrap</a> </li>
4040 </ul>
4848 </div>
4949 <div class="contents">
5050
51 <p>GLM_GTX_wrap: Wrapping mode using my texture samping.
51 <p>&lt; GLM_GTX_wrap: Wrapping mode using my texture samping.
5252 <a href="#_details">More...</a></p>
5353 <table class="memberdecls">
5454 <tr><td colspan="2"><h2><a name="func-members"></a>
5555 Functions</h2></td></tr>
5656 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00302.html#ga4cadbe69771221fe96b15a747b89948e">clamp</a> (genType const &amp;Texcoord)</td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00301.html#ga4cadbe69771221fe96b15a747b89948e">clamp</a> (genType const &amp;Texcoord)</td></tr>
5858 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00302.html#gae158e6e90ba29f07f3fe590b3e9a077e">mirrorRepeat</a> (genType const &amp;Texcoord)</td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00301.html#gae158e6e90ba29f07f3fe590b3e9a077e">mirrorRepeat</a> (genType const &amp;Texcoord)</td></tr>
6060 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00302.html#ga3a80250939448f34862edddfb763e2ce">repeat</a> (genType const &amp;Texcoord)</td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00301.html#ga3a80250939448f34862edddfb763e2ce">repeat</a> (genType const &amp;Texcoord)</td></tr>
6262 </table>
6363 <hr/><a name="_details"></a><h2>Detailed Description</h2>
64 <div class="textblock"><p>GLM_GTX_wrap: Wrapping mode using my texture samping. </p>
64 <div class="textblock"><p>&lt; GLM_GTX_wrap: Wrapping mode using my texture samping. </p>
6565 </div></div>
6666 <hr class="footer"/><address class="footer"><small>Generated by&#160;
6767 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>glm::img Namespace Reference</title>
4 <title>glm::virtrev Namespace Reference</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00230.html">img</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
38 <li class="navelem"><a class="el" href="a00230.html">virtrev</a> </li>
3939 </ul>
4040 </div>
4141 </div>
4242 <div class="header">
4343 <div class="headertitle">
44 <h1>glm::img Namespace Reference</h1> </div>
44 <h1>glm::virtrev Namespace Reference</h1> </div>
4545 </div>
4646 <div class="contents">
4747
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>glm::virtrev_glmext::xstream Namespace Reference</title>
5 <link href="tabs.css" rel="stylesheet" type="text/css"/>
6 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
7 </head>
8 <body>
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td id="projectlogo"><img alt="Logo" src="logo-mini.png"></td>
16 </tr>
17 </tbody>
18 </table>
19 </div>
20 <div id="navrow1" class="tabs">
21 <ul class="tablist">
22 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
23 <li><a href="modules.html"><span>Modules</span></a></li>
24 <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
25 <li><a href="annotated.html"><span>Classes</span></a></li>
26 <li><a href="files.html"><span>Files</span></a></li>
27 </ul>
28 </div>
29 <div id="navrow2" class="tabs2">
30 <ul class="tablist">
31 <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
32 <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
33 </ul>
34 </div>
35 <div id="nav-path" class="navpath">
36 <ul>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
38 <li class="navelem"><b>virtrev_glmext</b> </li>
39 <li class="navelem"><a class="el" href="a00232.html">xstream</a> </li>
40 </ul>
41 </div>
42 </div>
43 <div class="header">
44 <div class="headertitle">
45 <h1>glm::virtrev_glmext::xstream Namespace Reference</h1> </div>
46 </div>
47 <div class="contents">
48
49 <p>GLM_VIRTREV_xstream extension: Streaming vector and matrix in a xml way.
50 <a href="#_details">More...</a></p>
51 <table class="memberdecls">
52 </table>
53 <hr/><a name="_details"></a><h2>Detailed Description</h2>
54 <div class="textblock"><p>GLM_VIRTREV_xstream extension: Streaming vector and matrix in a xml way. </p>
55 </div></div>
56 <hr class="footer"/><address class="footer"><small>Generated by&#160;
57 <a href="http://www.doxygen.org/index.html">
58 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
59 </body>
60 </html>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>glm::virtrev_glmext::xstream Namespace Reference</title>
4 <title>GLM Core</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2121 <ul class="tablist">
2222 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
2323 <li><a href="modules.html"><span>Modules</span></a></li>
24 <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
24 <li><a href="namespaces.html"><span>Namespaces</span></a></li>
2525 <li><a href="annotated.html"><span>Classes</span></a></li>
2626 <li><a href="files.html"><span>Files</span></a></li>
2727 </ul>
2828 </div>
29 <div id="navrow2" class="tabs2">
30 <ul class="tablist">
31 <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
32 <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
33 </ul>
34 </div>
35 <div id="nav-path" class="navpath">
36 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
38 <li class="navelem"><b>virtrev_glmext</b> </li>
39 <li class="navelem"><a class="el" href="a00233.html">xstream</a> </li>
40 </ul>
41 </div>
4229 </div>
4330 <div class="header">
31 <div class="summary">
32 <a href="#groups">Modules</a> </div>
4433 <div class="headertitle">
45 <h1>glm::virtrev_glmext::xstream Namespace Reference</h1> </div>
34 <h1>GLM Core</h1> </div>
4635 </div>
4736 <div class="contents">
4837
49 <p>GLM_VIRTREV_xstream extension: Streaming vector and matrix in a xml way.
38 <p>The core of GLM, which implements exactly and only the GLSL specification to the degree possible.
5039 <a href="#_details">More...</a></p>
5140 <table class="memberdecls">
41 <tr><td colspan="2"><h2><a name="groups"></a>
42 Modules</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html">Types</a></td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html">Precision types</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html">Template types</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html">Functions</a></td></tr>
5247 </table>
5348 <hr/><a name="_details"></a><h2>Detailed Description</h2>
54 <div class="textblock"><p>GLM_VIRTREV_xstream extension: Streaming vector and matrix in a xml way. </p>
55 </div></div>
49 <p>The core of GLM, which implements exactly and only the GLSL specification to the degree possible. </p>
50 <p>The GLM core consists of <a class="el" href="a00234.html">C++ types that mirror GLSL types</a>, <a class="el" href="a00237.html">C++ functions that mirror the GLSL functions</a>. It also includes <a class="el" href="a00235.html">a set of precision-based types</a> that can be used in the appropriate functions. The C++ types are all based on a basic set of <a class="el" href="a00236.html">template types</a>.</p>
51 <p>The best documentation for GLM Core is the current GLSL specification, <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.10.6.clean.pdf">version 4.1 (pdf file)</a>. There are a few <a class="el" href="a00004.html">differences</a> between GLM core and GLSL. </p>
52 </div>
5653 <hr class="footer"/><address class="footer"><small>Generated by&#160;
5754 <a href="http://www.doxygen.org/index.html">
5855 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM Core</title>
4 <title>Types</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#groups">Modules</a> </div>
32 <a href="#typedef-members">Typedefs</a> </div>
3333 <div class="headertitle">
34 <h1>GLM Core</h1> </div>
35 </div>
34 <h1>Types</h1> </div>
35 <div class="ingroups"><a class="el" href="a00233.html">GLM Core</a></div></div>
3636 <div class="contents">
3737
38 <p>The core of GLM, which implements exactly and only the GLSL specification to the degree possible.
38 <p>The standard types defined by the specification.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
41 <tr><td colspan="2"><h2><a name="groups"></a>
42 Modules</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html">Types</a></td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html">Precision types</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html">Template types</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html">Functions</a></td></tr>
41 <tr><td colspan="2"><h2><a name="typedef-members"></a>
42 Typedefs</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga3bdc45d8289530ec60f8b0afd86dec9d">bvec2</a></td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa6930ec345061c66a5fcb4839bbc23b2">bvec3</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga3b7e171999130bbe808335a4e41356a0">bvec4</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac47a6148fdae0fe40858fb357aa9e9c5">dmat2</a></td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga154eeba579bb2792509d4f68d7269116">dmat2x2</a></td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6722002d2b3591b9617696009cb92d7d">dmat2x3</a></td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga839ae2cf7dd0064e97529dfe10017ad2">dmat2x4</a></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga92c12ba0463edf4aa5d6d0e506591cf0">dmat3</a></td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga94c2f5b05e0be254d81b53fdea6602d7">dmat3x2</a></td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf72ab1d43dc5d437d2c9ea53ea038e3b">dmat3x3</a></td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga04f2a951763897578c4c08e61989f1d1">dmat3x4</a></td></tr>
54 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga5db20fe7521b2e5bfa67a3131bdd0623">dmat4</a></td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1c381a2410bbabe8464254b1ff76173c">dmat4x2</a></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga250ca1110cb3df02e122705e0df801f3">dmat4x3</a></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gae2cf7fdac82b788e8f4d4145f6c963f1">dmat4x4</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga88bf1a60f35314a6b3f2c5adc97004cf">dvec2</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0f0fcb7b631cbbac4341badb01d84218">dvec3</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6f62aca8ddbdb3badf9d52885e7dcfb6">dvec4</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_ivec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gae34ec1dcb70458421c150176537dca90">ivec2</a></td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_ivec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8772f4d0808ec3571b0b21c7514ae626">ivec3</a></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_ivec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga4ca78493e6bc3274eb996a783f6336ec">ivec4</a></td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top">typedef mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a></td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac0430f4e1a8747774bcfbd0ea7c7df7b">mat2x2</a></td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga166bc1c922bedbb7f655bd348ff2f97b">mat2x3</a></td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0c9a783f321486534bd3a2fd3701a374">mat2x4</a></td></tr>
68 <tr><td class="memItemLeft" align="right" valign="top">typedef mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6dd3ec98a548755676267e59142911f8">mat3</a></td></tr>
69 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga839dac056fcbc087c6c161eb0d7fbe1b">mat3x2</a></td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf188822f2db83067facc9fa922416ad9">mat3x3</a></td></tr>
71 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga70f8918f1c21ead733c8f089c09d353a">mat3x4</a></td></tr>
72 <tr><td class="memItemLeft" align="right" valign="top">typedef mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gade0eb47c01f79384a6f38017ede17446">mat4</a></td></tr>
73 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2c797007acc18027b65dad6e1f2d7b77">mat4x2</a></td></tr>
74 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga73f97cdfb274c84ac7115b8e03c6b54a">mat4x3</a></td></tr>
75 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga214f3d771188cb5b9ec6b5485ac082dc">mat4x4</a></td></tr>
76 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_uvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga3fae7e520beaa9bca6625b98d782f47e">uvec2</a></td></tr>
77 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_uvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga48a100077cb128b9c790c71ac1d1d7d2">uvec3</a></td></tr>
78 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_uvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gafbb266d616ea71ad5099994980f8651d">uvec4</a></td></tr>
79 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac422c7058a7c9963b55ad70764c62752">vec3</a></td></tr>
80 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8fad5ffc01ba6dea689f2a38bf30bda4">vec4</a></td></tr>
4781 </table>
4882 <hr/><a name="_details"></a><h2>Detailed Description</h2>
49 <p>The core of GLM, which implements exactly and only the GLSL specification to the degree possible. </p>
50 <p>The GLM core consists of <a class="el" href="a00235.html">C++ types that mirror GLSL types</a>, <a class="el" href="a00238.html">C++ functions that mirror the GLSL functions</a>. It also includes <a class="el" href="a00236.html">a set of precision-based types</a> that can be used in the appropriate functions. The C++ types are all based on a basic set of <a class="el" href="a00237.html">template types</a>.</p>
51 <p>The best documentation for GLM Core is the current GLSL specification, <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.10.6.clean.pdf">version 4.1 (pdf file)</a>. There are a few <a class="el" href="a00004.html">differences</a> between GLM core and GLSL. </p>
83 <p>The standard types defined by the specification. </p>
84 <p>These types are all typedefs of more generalized, template types. To see the definiton of these template types, go to <a class="el" href="a00236.html">Template types</a>. </p>
85 <hr/><h2>Typedef Documentation</h2>
86 <a class="anchor" id="ga3bdc45d8289530ec60f8b0afd86dec9d"></a><!-- doxytag: member="glm::bvec2" ref="ga3bdc45d8289530ec60f8b0afd86dec9d" args="" -->
87 <div class="memitem">
88 <div class="memproto">
89 <table class="memname">
90 <tr>
91 <td class="memname">typedef detail::tvec2&lt;bool&gt; bvec2</td>
92 </tr>
93 </table>
94 </div>
95 <div class="memdoc">
96
97 <p>2 components vector of boolean. </p>
98 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
99
100 <p>Definition at line <a class="el" href="a00110_source.html#l00245">245</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
101
102 </div>
103 </div>
104 <a class="anchor" id="gaa6930ec345061c66a5fcb4839bbc23b2"></a><!-- doxytag: member="glm::bvec3" ref="gaa6930ec345061c66a5fcb4839bbc23b2" args="" -->
105 <div class="memitem">
106 <div class="memproto">
107 <table class="memname">
108 <tr>
109 <td class="memname">typedef detail::tvec3&lt;bool&gt; bvec3</td>
110 </tr>
111 </table>
112 </div>
113 <div class="memdoc">
114
115 <p>3 components vector of boolean. </p>
116 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
117
118 <p>Definition at line <a class="el" href="a00110_source.html#l00250">250</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
119
120 </div>
121 </div>
122 <a class="anchor" id="ga3b7e171999130bbe808335a4e41356a0"></a><!-- doxytag: member="glm::bvec4" ref="ga3b7e171999130bbe808335a4e41356a0" args="" -->
123 <div class="memitem">
124 <div class="memproto">
125 <table class="memname">
126 <tr>
127 <td class="memname">typedef detail::tvec4&lt;bool&gt; bvec4</td>
128 </tr>
129 </table>
130 </div>
131 <div class="memdoc">
132
133 <p>4 components vector of boolean. </p>
134 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
135
136 <p>Definition at line <a class="el" href="a00110_source.html#l00255">255</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
137
138 </div>
139 </div>
140 <a class="anchor" id="gac47a6148fdae0fe40858fb357aa9e9c5"></a><!-- doxytag: member="glm::dmat2" ref="gac47a6148fdae0fe40858fb357aa9e9c5" args="" -->
141 <div class="memitem">
142 <div class="memproto">
143 <table class="memname">
144 <tr>
145 <td class="memname">typedef detail::tmat2x2&lt;double&gt; dmat2</td>
146 </tr>
147 </table>
148 </div>
149 <div class="memdoc">
150
151 <p>2 * 2 matrix of double-precision floating-point numbers. </p>
152 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
153
154 <p>Definition at line <a class="el" href="a00110_source.html#l00278">278</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
155
156 </div>
157 </div>
158 <a class="anchor" id="ga154eeba579bb2792509d4f68d7269116"></a><!-- doxytag: member="glm::dmat2x2" ref="ga154eeba579bb2792509d4f68d7269116" args="" -->
159 <div class="memitem">
160 <div class="memproto">
161 <table class="memname">
162 <tr>
163 <td class="memname">typedef detail::tmat2x2&lt;double&gt; dmat2x2</td>
164 </tr>
165 </table>
166 </div>
167 <div class="memdoc">
168
169 <p>2 * 2 matrix of double-precision floating-point numbers. </p>
170 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
171
172 <p>Definition at line <a class="el" href="a00110_source.html#l00293">293</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
173
174 </div>
175 </div>
176 <a class="anchor" id="ga6722002d2b3591b9617696009cb92d7d"></a><!-- doxytag: member="glm::dmat2x3" ref="ga6722002d2b3591b9617696009cb92d7d" args="" -->
177 <div class="memitem">
178 <div class="memproto">
179 <table class="memname">
180 <tr>
181 <td class="memname">typedef detail::tmat2x3&lt;double&gt; dmat2x3</td>
182 </tr>
183 </table>
184 </div>
185 <div class="memdoc">
186
187 <p>2 * 3 matrix of double-precision floating-point numbers. </p>
188 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
189
190 <p>Definition at line <a class="el" href="a00110_source.html#l00298">298</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
191
192 </div>
193 </div>
194 <a class="anchor" id="ga839ae2cf7dd0064e97529dfe10017ad2"></a><!-- doxytag: member="glm::dmat2x4" ref="ga839ae2cf7dd0064e97529dfe10017ad2" args="" -->
195 <div class="memitem">
196 <div class="memproto">
197 <table class="memname">
198 <tr>
199 <td class="memname">typedef detail::tmat2x4&lt;double&gt; dmat2x4</td>
200 </tr>
201 </table>
202 </div>
203 <div class="memdoc">
204
205 <p>2 * 4 matrix of double-precision floating-point numbers. </p>
206 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
207
208 <p>Definition at line <a class="el" href="a00110_source.html#l00303">303</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
209
210 </div>
211 </div>
212 <a class="anchor" id="ga92c12ba0463edf4aa5d6d0e506591cf0"></a><!-- doxytag: member="glm::dmat3" ref="ga92c12ba0463edf4aa5d6d0e506591cf0" args="" -->
213 <div class="memitem">
214 <div class="memproto">
215 <table class="memname">
216 <tr>
217 <td class="memname">typedef detail::tmat3x3&lt;double&gt; dmat3</td>
218 </tr>
219 </table>
220 </div>
221 <div class="memdoc">
222
223 <p>3 * 3 matrix of double-precision floating-point numbers. </p>
224 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
225
226 <p>Definition at line <a class="el" href="a00110_source.html#l00283">283</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
227
228 </div>
229 </div>
230 <a class="anchor" id="ga94c2f5b05e0be254d81b53fdea6602d7"></a><!-- doxytag: member="glm::dmat3x2" ref="ga94c2f5b05e0be254d81b53fdea6602d7" args="" -->
231 <div class="memitem">
232 <div class="memproto">
233 <table class="memname">
234 <tr>
235 <td class="memname">typedef detail::tmat3x2&lt;double&gt; dmat3x2</td>
236 </tr>
237 </table>
238 </div>
239 <div class="memdoc">
240
241 <p>3 * 2 matrix of double-precision floating-point numbers. </p>
242 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
243
244 <p>Definition at line <a class="el" href="a00110_source.html#l00308">308</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
245
246 </div>
247 </div>
248 <a class="anchor" id="gaf72ab1d43dc5d437d2c9ea53ea038e3b"></a><!-- doxytag: member="glm::dmat3x3" ref="gaf72ab1d43dc5d437d2c9ea53ea038e3b" args="" -->
249 <div class="memitem">
250 <div class="memproto">
251 <table class="memname">
252 <tr>
253 <td class="memname">typedef detail::tmat3x3&lt;double&gt; dmat3x3</td>
254 </tr>
255 </table>
256 </div>
257 <div class="memdoc">
258
259 <p>3 * 3 matrix of double-precision floating-point numbers. </p>
260 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
261
262 <p>Definition at line <a class="el" href="a00110_source.html#l00313">313</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
263
264 </div>
265 </div>
266 <a class="anchor" id="ga04f2a951763897578c4c08e61989f1d1"></a><!-- doxytag: member="glm::dmat3x4" ref="ga04f2a951763897578c4c08e61989f1d1" args="" -->
267 <div class="memitem">
268 <div class="memproto">
269 <table class="memname">
270 <tr>
271 <td class="memname">typedef detail::tmat3x4&lt;double&gt; dmat3x4</td>
272 </tr>
273 </table>
274 </div>
275 <div class="memdoc">
276
277 <p>3 * 4 matrix of double-precision floating-point numbers. </p>
278 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
279
280 <p>Definition at line <a class="el" href="a00110_source.html#l00318">318</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
281
282 </div>
283 </div>
284 <a class="anchor" id="ga5db20fe7521b2e5bfa67a3131bdd0623"></a><!-- doxytag: member="glm::dmat4" ref="ga5db20fe7521b2e5bfa67a3131bdd0623" args="" -->
285 <div class="memitem">
286 <div class="memproto">
287 <table class="memname">
288 <tr>
289 <td class="memname">typedef detail::tmat4x4&lt;double&gt; dmat4</td>
290 </tr>
291 </table>
292 </div>
293 <div class="memdoc">
294
295 <p>4 * 4 matrix of double-precision floating-point numbers. </p>
296 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
297
298 <p>Definition at line <a class="el" href="a00110_source.html#l00288">288</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
299
300 </div>
301 </div>
302 <a class="anchor" id="ga1c381a2410bbabe8464254b1ff76173c"></a><!-- doxytag: member="glm::dmat4x2" ref="ga1c381a2410bbabe8464254b1ff76173c" args="" -->
303 <div class="memitem">
304 <div class="memproto">
305 <table class="memname">
306 <tr>
307 <td class="memname">typedef detail::tmat4x2&lt;double&gt; dmat4x2</td>
308 </tr>
309 </table>
310 </div>
311 <div class="memdoc">
312
313 <p>4 * 2 matrix of double-precision floating-point numbers. </p>
314 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
315
316 <p>Definition at line <a class="el" href="a00110_source.html#l00323">323</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
317
318 </div>
319 </div>
320 <a class="anchor" id="ga250ca1110cb3df02e122705e0df801f3"></a><!-- doxytag: member="glm::dmat4x3" ref="ga250ca1110cb3df02e122705e0df801f3" args="" -->
321 <div class="memitem">
322 <div class="memproto">
323 <table class="memname">
324 <tr>
325 <td class="memname">typedef detail::tmat4x3&lt;double&gt; dmat4x3</td>
326 </tr>
327 </table>
328 </div>
329 <div class="memdoc">
330
331 <p>4 * 3 matrix of double-precision floating-point numbers. </p>
332 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
333
334 <p>Definition at line <a class="el" href="a00110_source.html#l00328">328</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
335
336 </div>
337 </div>
338 <a class="anchor" id="gae2cf7fdac82b788e8f4d4145f6c963f1"></a><!-- doxytag: member="glm::dmat4x4" ref="gae2cf7fdac82b788e8f4d4145f6c963f1" args="" -->
339 <div class="memitem">
340 <div class="memproto">
341 <table class="memname">
342 <tr>
343 <td class="memname">typedef detail::tmat4x4&lt;double&gt; dmat4x4</td>
344 </tr>
345 </table>
346 </div>
347 <div class="memdoc">
348
349 <p>4 * 4 matrix of double-precision floating-point numbers. </p>
350 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
351
352 <p>Definition at line <a class="el" href="a00110_source.html#l00333">333</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
353
354 </div>
355 </div>
356 <a class="anchor" id="ga88bf1a60f35314a6b3f2c5adc97004cf"></a><!-- doxytag: member="glm::dvec2" ref="ga88bf1a60f35314a6b3f2c5adc97004cf" args="" -->
357 <div class="memitem">
358 <div class="memproto">
359 <table class="memname">
360 <tr>
361 <td class="memname">typedef detail::tvec2&lt;double&gt; dvec2</td>
362 </tr>
363 </table>
364 </div>
365 <div class="memdoc">
366
367 <p>Vector of 2 double-precision floating-point numbers. </p>
368 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
369
370 <p>Definition at line <a class="el" href="a00110_source.html#l00263">263</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
371
372 </div>
373 </div>
374 <a class="anchor" id="ga0f0fcb7b631cbbac4341badb01d84218"></a><!-- doxytag: member="glm::dvec3" ref="ga0f0fcb7b631cbbac4341badb01d84218" args="" -->
375 <div class="memitem">
376 <div class="memproto">
377 <table class="memname">
378 <tr>
379 <td class="memname">typedef detail::tvec3&lt;double&gt; dvec3</td>
380 </tr>
381 </table>
382 </div>
383 <div class="memdoc">
384
385 <p>Vector of 3 double-precision floating-point numbers. </p>
386 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
387
388 <p>Definition at line <a class="el" href="a00110_source.html#l00268">268</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
389
390 </div>
391 </div>
392 <a class="anchor" id="ga6f62aca8ddbdb3badf9d52885e7dcfb6"></a><!-- doxytag: member="glm::dvec4" ref="ga6f62aca8ddbdb3badf9d52885e7dcfb6" args="" -->
393 <div class="memitem">
394 <div class="memproto">
395 <table class="memname">
396 <tr>
397 <td class="memname">typedef detail::tvec4&lt;double&gt; dvec4</td>
398 </tr>
399 </table>
400 </div>
401 <div class="memdoc">
402
403 <p>Vector of 4 double-precision floating-point numbers. </p>
404 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
405
406 <p>Definition at line <a class="el" href="a00110_source.html#l00273">273</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
407
408 </div>
409 </div>
410 <a class="anchor" id="gae34ec1dcb70458421c150176537dca90"></a><!-- doxytag: member="glm::ivec2" ref="gae34ec1dcb70458421c150176537dca90" args="" -->
411 <div class="memitem">
412 <div class="memproto">
413 <table class="memname">
414 <tr>
415 <td class="memname">typedef precision::mediump_ivec2 ivec2</td>
416 </tr>
417 </table>
418 </div>
419 <div class="memdoc">
420
421 <p>2 components vector of signed integer numbers. </p>
422 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
423
424 <p>Definition at line <a class="el" href="a00110_source.html#l00194">194</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
425
426 </div>
427 </div>
428 <a class="anchor" id="ga8772f4d0808ec3571b0b21c7514ae626"></a><!-- doxytag: member="glm::ivec3" ref="ga8772f4d0808ec3571b0b21c7514ae626" args="" -->
429 <div class="memitem">
430 <div class="memproto">
431 <table class="memname">
432 <tr>
433 <td class="memname">typedef precision::mediump_ivec3 ivec3</td>
434 </tr>
435 </table>
436 </div>
437 <div class="memdoc">
438
439 <p>3 components vector of signed integer numbers. </p>
440 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
441
442 <p>Definition at line <a class="el" href="a00110_source.html#l00199">199</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
443
444 </div>
445 </div>
446 <a class="anchor" id="ga4ca78493e6bc3274eb996a783f6336ec"></a><!-- doxytag: member="glm::ivec4" ref="ga4ca78493e6bc3274eb996a783f6336ec" args="" -->
447 <div class="memitem">
448 <div class="memproto">
449 <table class="memname">
450 <tr>
451 <td class="memname">typedef precision::mediump_ivec4 ivec4</td>
452 </tr>
453 </table>
454 </div>
455 <div class="memdoc">
456
457 <p>4 components vector of signed integer numbers. </p>
458 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
459
460 <p>Definition at line <a class="el" href="a00110_source.html#l00204">204</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
461
462 </div>
463 </div>
464 <a class="anchor" id="ga6e30cfba068ebc3c71fe1f8b3110e450"></a><!-- doxytag: member="glm::mat2" ref="ga6e30cfba068ebc3c71fe1f8b3110e450" args="" -->
465 <div class="memitem">
466 <div class="memproto">
467 <table class="memname">
468 <tr>
469 <td class="memname">typedef mat2x2 mat2</td>
470 </tr>
471 </table>
472 </div>
473 <div class="memdoc">
474
475 <p>2 columns of 2 components matrix of floating-point numbers. </p>
476 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
477
478 <p>Definition at line <a class="el" href="a00110_source.html#l00163">163</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
479
480 </div>
481 </div>
482 <a class="anchor" id="gac0430f4e1a8747774bcfbd0ea7c7df7b"></a><!-- doxytag: member="glm::mat2x2" ref="gac0430f4e1a8747774bcfbd0ea7c7df7b" args="" -->
483 <div class="memitem">
484 <div class="memproto">
485 <table class="memname">
486 <tr>
487 <td class="memname">typedef precision::mediump_mat2x2 mat2x2</td>
488 </tr>
489 </table>
490 </div>
491 <div class="memdoc">
492
493 <p>2 columns of 2 components matrix of floating-point numbers. </p>
494 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
495
496 <p>Definition at line <a class="el" href="a00110_source.html#l00116">116</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
497
498 </div>
499 </div>
500 <a class="anchor" id="ga166bc1c922bedbb7f655bd348ff2f97b"></a><!-- doxytag: member="glm::mat2x3" ref="ga166bc1c922bedbb7f655bd348ff2f97b" args="" -->
501 <div class="memitem">
502 <div class="memproto">
503 <table class="memname">
504 <tr>
505 <td class="memname">typedef precision::mediump_mat2x3 mat2x3</td>
506 </tr>
507 </table>
508 </div>
509 <div class="memdoc">
510
511 <p>2 columns of 3 components matrix of floating-point numbers. </p>
512 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
513
514 <p>Definition at line <a class="el" href="a00110_source.html#l00121">121</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
515
516 </div>
517 </div>
518 <a class="anchor" id="ga0c9a783f321486534bd3a2fd3701a374"></a><!-- doxytag: member="glm::mat2x4" ref="ga0c9a783f321486534bd3a2fd3701a374" args="" -->
519 <div class="memitem">
520 <div class="memproto">
521 <table class="memname">
522 <tr>
523 <td class="memname">typedef precision::mediump_mat2x4 mat2x4</td>
524 </tr>
525 </table>
526 </div>
527 <div class="memdoc">
528
529 <p>2 columns of 4 components matrix of floating-point numbers. </p>
530 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
531
532 <p>Definition at line <a class="el" href="a00110_source.html#l00126">126</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
533
534 </div>
535 </div>
536 <a class="anchor" id="ga6dd3ec98a548755676267e59142911f8"></a><!-- doxytag: member="glm::mat3" ref="ga6dd3ec98a548755676267e59142911f8" args="" -->
537 <div class="memitem">
538 <div class="memproto">
539 <table class="memname">
540 <tr>
541 <td class="memname">typedef mat3x3 mat3</td>
542 </tr>
543 </table>
544 </div>
545 <div class="memdoc">
546
547 <p>3 columns of 3 components matrix of floating-point numbers. </p>
548 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
549
550 <p>Definition at line <a class="el" href="a00110_source.html#l00168">168</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
551
552 </div>
553 </div>
554 <a class="anchor" id="ga839dac056fcbc087c6c161eb0d7fbe1b"></a><!-- doxytag: member="glm::mat3x2" ref="ga839dac056fcbc087c6c161eb0d7fbe1b" args="" -->
555 <div class="memitem">
556 <div class="memproto">
557 <table class="memname">
558 <tr>
559 <td class="memname">typedef precision::mediump_mat3x2 mat3x2</td>
560 </tr>
561 </table>
562 </div>
563 <div class="memdoc">
564
565 <p>3 columns of 2 components matrix of floating-point numbers. </p>
566 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
567
568 <p>Definition at line <a class="el" href="a00110_source.html#l00131">131</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
569
570 </div>
571 </div>
572 <a class="anchor" id="gaf188822f2db83067facc9fa922416ad9"></a><!-- doxytag: member="glm::mat3x3" ref="gaf188822f2db83067facc9fa922416ad9" args="" -->
573 <div class="memitem">
574 <div class="memproto">
575 <table class="memname">
576 <tr>
577 <td class="memname">typedef precision::mediump_mat3x3 mat3x3</td>
578 </tr>
579 </table>
580 </div>
581 <div class="memdoc">
582
583 <p>3 columns of 3 components matrix of floating-point numbers. </p>
584 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
585
586 <p>Definition at line <a class="el" href="a00110_source.html#l00136">136</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
587
588 </div>
589 </div>
590 <a class="anchor" id="ga70f8918f1c21ead733c8f089c09d353a"></a><!-- doxytag: member="glm::mat3x4" ref="ga70f8918f1c21ead733c8f089c09d353a" args="" -->
591 <div class="memitem">
592 <div class="memproto">
593 <table class="memname">
594 <tr>
595 <td class="memname">typedef precision::mediump_mat3x4 mat3x4</td>
596 </tr>
597 </table>
598 </div>
599 <div class="memdoc">
600
601 <p>3 columns of 4 components matrix of floating-point numbers. </p>
602 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
603
604 <p>Definition at line <a class="el" href="a00110_source.html#l00141">141</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
605
606 </div>
607 </div>
608 <a class="anchor" id="gade0eb47c01f79384a6f38017ede17446"></a><!-- doxytag: member="glm::mat4" ref="gade0eb47c01f79384a6f38017ede17446" args="" -->
609 <div class="memitem">
610 <div class="memproto">
611 <table class="memname">
612 <tr>
613 <td class="memname">typedef mat4x4 mat4</td>
614 </tr>
615 </table>
616 </div>
617 <div class="memdoc">
618
619 <p>4 columns of 4 components matrix of floating-point numbers. </p>
620 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
621
622 <p>Definition at line <a class="el" href="a00110_source.html#l00173">173</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
623
624 </div>
625 </div>
626 <a class="anchor" id="ga2c797007acc18027b65dad6e1f2d7b77"></a><!-- doxytag: member="glm::mat4x2" ref="ga2c797007acc18027b65dad6e1f2d7b77" args="" -->
627 <div class="memitem">
628 <div class="memproto">
629 <table class="memname">
630 <tr>
631 <td class="memname">typedef precision::mediump_mat4x2 mat4x2</td>
632 </tr>
633 </table>
634 </div>
635 <div class="memdoc">
636
637 <p>4 columns of 2 components matrix of floating-point numbers. </p>
638 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
639
640 <p>Definition at line <a class="el" href="a00110_source.html#l00146">146</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
641
642 </div>
643 </div>
644 <a class="anchor" id="ga73f97cdfb274c84ac7115b8e03c6b54a"></a><!-- doxytag: member="glm::mat4x3" ref="ga73f97cdfb274c84ac7115b8e03c6b54a" args="" -->
645 <div class="memitem">
646 <div class="memproto">
647 <table class="memname">
648 <tr>
649 <td class="memname">typedef precision::mediump_mat4x3 mat4x3</td>
650 </tr>
651 </table>
652 </div>
653 <div class="memdoc">
654
655 <p>4 columns of 3 components matrix of floating-point numbers. </p>
656 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
657
658 <p>Definition at line <a class="el" href="a00110_source.html#l00151">151</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
659
660 </div>
661 </div>
662 <a class="anchor" id="ga214f3d771188cb5b9ec6b5485ac082dc"></a><!-- doxytag: member="glm::mat4x4" ref="ga214f3d771188cb5b9ec6b5485ac082dc" args="" -->
663 <div class="memitem">
664 <div class="memproto">
665 <table class="memname">
666 <tr>
667 <td class="memname">typedef precision::mediump_mat4x4 mat4x4</td>
668 </tr>
669 </table>
670 </div>
671 <div class="memdoc">
672
673 <p>4 columns of 4 components matrix of floating-point numbers. </p>
674 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
675
676 <p>Definition at line <a class="el" href="a00110_source.html#l00156">156</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
677
678 </div>
679 </div>
680 <a class="anchor" id="ga3fae7e520beaa9bca6625b98d782f47e"></a><!-- doxytag: member="glm::uvec2" ref="ga3fae7e520beaa9bca6625b98d782f47e" args="" -->
681 <div class="memitem">
682 <div class="memproto">
683 <table class="memname">
684 <tr>
685 <td class="memname">typedef precision::mediump_uvec2 uvec2</td>
686 </tr>
687 </table>
688 </div>
689 <div class="memdoc">
690
691 <p>2 components vector of unsigned integer numbers. </p>
692 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
693
694 <p>Definition at line <a class="el" href="a00110_source.html#l00226">226</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
695
696 </div>
697 </div>
698 <a class="anchor" id="ga48a100077cb128b9c790c71ac1d1d7d2"></a><!-- doxytag: member="glm::uvec3" ref="ga48a100077cb128b9c790c71ac1d1d7d2" args="" -->
699 <div class="memitem">
700 <div class="memproto">
701 <table class="memname">
702 <tr>
703 <td class="memname">typedef precision::mediump_uvec3 uvec3</td>
704 </tr>
705 </table>
706 </div>
707 <div class="memdoc">
708
709 <p>3 components vector of unsigned integer numbers. </p>
710 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
711
712 <p>Definition at line <a class="el" href="a00110_source.html#l00231">231</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
713
714 </div>
715 </div>
716 <a class="anchor" id="gafbb266d616ea71ad5099994980f8651d"></a><!-- doxytag: member="glm::uvec4" ref="gafbb266d616ea71ad5099994980f8651d" args="" -->
717 <div class="memitem">
718 <div class="memproto">
719 <table class="memname">
720 <tr>
721 <td class="memname">typedef precision::mediump_uvec4 uvec4</td>
722 </tr>
723 </table>
724 </div>
725 <div class="memdoc">
726
727 <p>4 components vector of unsigned integer numbers. </p>
728 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
729
730 <p>Definition at line <a class="el" href="a00110_source.html#l00236">236</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
731
732 </div>
733 </div>
734 <a class="anchor" id="gac422c7058a7c9963b55ad70764c62752"></a><!-- doxytag: member="glm::vec3" ref="gac422c7058a7c9963b55ad70764c62752" args="" -->
735 <div class="memitem">
736 <div class="memproto">
737 <table class="memname">
738 <tr>
739 <td class="memname">typedef precision::mediump_vec3 vec3</td>
740 </tr>
741 </table>
742 </div>
743 <div class="memdoc">
744
745 <p>3 components vector of floating-point numbers. </p>
746 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
747
748 <p>Definition at line <a class="el" href="a00110_source.html#l00106">106</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
749
750 </div>
751 </div>
752 <a class="anchor" id="ga8fad5ffc01ba6dea689f2a38bf30bda4"></a><!-- doxytag: member="glm::vec4" ref="ga8fad5ffc01ba6dea689f2a38bf30bda4" args="" -->
753 <div class="memitem">
754 <div class="memproto">
755 <table class="memname">
756 <tr>
757 <td class="memname">typedef precision::mediump_vec4 vec4</td>
758 </tr>
759 </table>
760 </div>
761 <div class="memdoc">
762
763 <p>4 components vector of floating-point numbers. </p>
764 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
765
766 <p>Definition at line <a class="el" href="a00110_source.html#l00111">111</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
767
768 </div>
769 </div>
52770 </div>
53771 <hr class="footer"/><address class="footer"><small>Generated by&#160;
54772 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>Types</title>
4 <title>Precision types</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#typedef-members">Typedefs</a> </div>
3333 <div class="headertitle">
34 <h1>Types</h1> </div>
35 <div class="ingroups"><a class="el" href="a00234.html">GLM Core</a></div></div>
34 <h1>Precision types</h1> </div>
35 <div class="ingroups"><a class="el" href="a00233.html">GLM Core</a></div></div>
3636 <div class="contents">
3737
38 <p>The standard types defined by the specification.
38 <p>Non-GLSL types that are used to define precision-based types.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="typedef-members"></a>
4242 Typedefs</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga3bdc45d8289530ec60f8b0afd86dec9d">bvec2</a></td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaa6930ec345061c66a5fcb4839bbc23b2">bvec3</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga3b7e171999130bbe808335a4e41356a0">bvec4</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gac47a6148fdae0fe40858fb357aa9e9c5">dmat2</a></td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga154eeba579bb2792509d4f68d7269116">dmat2x2</a></td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga6722002d2b3591b9617696009cb92d7d">dmat2x3</a></td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga839ae2cf7dd0064e97529dfe10017ad2">dmat2x4</a></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga92c12ba0463edf4aa5d6d0e506591cf0">dmat3</a></td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga94c2f5b05e0be254d81b53fdea6602d7">dmat3x2</a></td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaf72ab1d43dc5d437d2c9ea53ea038e3b">dmat3x3</a></td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga04f2a951763897578c4c08e61989f1d1">dmat3x4</a></td></tr>
54 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga5db20fe7521b2e5bfa67a3131bdd0623">dmat4</a></td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga1c381a2410bbabe8464254b1ff76173c">dmat4x2</a></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga250ca1110cb3df02e122705e0df801f3">dmat4x3</a></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gae2cf7fdac82b788e8f4d4145f6c963f1">dmat4x4</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga88bf1a60f35314a6b3f2c5adc97004cf">dvec2</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga0f0fcb7b631cbbac4341badb01d84218">dvec3</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga6f62aca8ddbdb3badf9d52885e7dcfb6">dvec4</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_ivec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gae34ec1dcb70458421c150176537dca90">ivec2</a></td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_ivec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga8772f4d0808ec3571b0b21c7514ae626">ivec3</a></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_ivec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga4ca78493e6bc3274eb996a783f6336ec">ivec4</a></td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top">typedef mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a></td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gac0430f4e1a8747774bcfbd0ea7c7df7b">mat2x2</a></td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga166bc1c922bedbb7f655bd348ff2f97b">mat2x3</a></td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga0c9a783f321486534bd3a2fd3701a374">mat2x4</a></td></tr>
68 <tr><td class="memItemLeft" align="right" valign="top">typedef mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga6dd3ec98a548755676267e59142911f8">mat3</a></td></tr>
69 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga839dac056fcbc087c6c161eb0d7fbe1b">mat3x2</a></td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaf188822f2db83067facc9fa922416ad9">mat3x3</a></td></tr>
71 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga70f8918f1c21ead733c8f089c09d353a">mat3x4</a></td></tr>
72 <tr><td class="memItemLeft" align="right" valign="top">typedef mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gade0eb47c01f79384a6f38017ede17446">mat4</a></td></tr>
73 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga2c797007acc18027b65dad6e1f2d7b77">mat4x2</a></td></tr>
74 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga73f97cdfb274c84ac7115b8e03c6b54a">mat4x3</a></td></tr>
75 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga214f3d771188cb5b9ec6b5485ac082dc">mat4x4</a></td></tr>
76 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_uvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga3fae7e520beaa9bca6625b98d782f47e">uvec2</a></td></tr>
77 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_uvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga48a100077cb128b9c790c71ac1d1d7d2">uvec3</a></td></tr>
78 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_uvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gafbb266d616ea71ad5099994980f8651d">uvec4</a></td></tr>
79 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gac422c7058a7c9963b55ad70764c62752">vec3</a></td></tr>
80 <tr><td class="memItemLeft" align="right" valign="top">typedef precision::mediump_vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga8fad5ffc01ba6dea689f2a38bf30bda4">vec4</a></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">typedef highp_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">highp_float</a></td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::highp_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2&lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga306173e656477f59bf0164a623780236">highp_ivec2</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3&lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaccca78e0907313665d47af163c17c5bb">highp_ivec3</a></td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4&lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga320e40ad19a7be26cff134cce4f15a51">highp_ivec4</a></td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2<br class="typebreak"/>
49 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaeedb9e4f01fefcd5a47356b476b6890c">highp_mat2</a></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2<br class="typebreak"/>
51 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga9aa0c5dce81439aa15a0d5b5e5006d81">highp_mat2x2</a></td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x3<br class="typebreak"/>
53 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga895ba4ec32bd7cfb0d07572556572069">highp_mat2x3</a></td></tr>
54 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3<br class="typebreak"/>
55 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga95c93f032b4713aff2886a39f96822e1">highp_mat3</a></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3<br class="typebreak"/>
57 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga20aa8e5c6061576079c10e86cd743c8d">highp_mat3x3</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4<br class="typebreak"/>
59 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga6e0882bb7c778ee27596e1cbe70cad1a">highp_mat4</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x2<br class="typebreak"/>
61 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga3178de2c189bfdda4c73d6af8017f5d3">highp_mat4x2</a></td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x3<br class="typebreak"/>
63 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga00d8bf8ebaab7d6647a3b7f73ae324af">highp_mat4x3</a></td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4<br class="typebreak"/>
65 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gadd2ef277f86f6fa29804a22d1eb7d662">highp_mat4x4</a></td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::highp_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a></td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2&lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gad4a5243fc438d0f2efbc22d075b4e399">highp_uvec2</a></td></tr>
68 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3&lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaf4b32075ad193e4f47c8bfc367593d8c">highp_uvec3</a></td></tr>
69 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4&lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga5ad6375e810e3050a6c845b600422b70">highp_uvec4</a></td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2<br class="typebreak"/>
71 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga9b65d7afd0783a02f5b3d1b75d1d872e">highp_vec2</a></td></tr>
72 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3<br class="typebreak"/>
73 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga0d3129f5f6644cb7552f520ff0dfa789">highp_vec3</a></td></tr>
74 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4<br class="typebreak"/>
75 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaaef692a5e2eae7dad32ca2f8ed0d16d8">highp_vec4</a></td></tr>
76 <tr><td class="memItemLeft" align="right" valign="top">typedef lowp_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a></td></tr>
77 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a></td></tr>
78 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga26364654fd75ba6c7f11a65967a7fbee">lowp_ivec2</a></td></tr>
79 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gac246e3a1a470974283d6618ad77fd477">lowp_ivec3</a></td></tr>
80 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gafc7521507e40fbc269149475a725dbbe">lowp_ivec4</a></td></tr>
81 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2<br class="typebreak"/>
82 &lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaee10b4a3cac178528f8e56c90313094a">lowp_mat2</a></td></tr>
83 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2<br class="typebreak"/>
84 &lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga8b49c3aa6665011440c32c281b2032c0">lowp_mat2x2</a></td></tr>
85 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x3<br class="typebreak"/>
86 &lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga0b32355a31b4c14e98f69b43a9077456">lowp_mat2x3</a></td></tr>
87 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3<br class="typebreak"/>
88 &lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga5bbef8a57946dd7a91c9e0260d9edfbf">lowp_mat3</a></td></tr>
89 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3<br class="typebreak"/>
90 &lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga0bb652c1f4401b9b3359ae6b2bf13678">lowp_mat3x3</a></td></tr>
91 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4<br class="typebreak"/>
92 &lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga4954a51c5507e62185d6d82dc39016a5">lowp_mat4</a></td></tr>
93 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x2<br class="typebreak"/>
94 &lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gac88de3260a910584e02b98f087a34502">lowp_mat4x2</a></td></tr>
95 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x3<br class="typebreak"/>
96 &lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga0072cb659f9360a7bb2c3e6646609ad7">lowp_mat4x3</a></td></tr>
97 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4<br class="typebreak"/>
98 &lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaae14374ee642a8d553ce64f17a4597b1">lowp_mat4x4</a></td></tr>
99 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a></td></tr>
100 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2&lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga9cb9b78162fca09f7ce9d08758f8b3c1">lowp_uvec2</a></td></tr>
101 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3&lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaefdce0fe4ed79b26ed2b5f00bbf39075">lowp_uvec3</a></td></tr>
102 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4&lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga3ebda7e36e3948ceea0cbc90061c643d">lowp_uvec4</a></td></tr>
103 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2&lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga4df6c67742cd65d6d0a885b3a539d9ff">lowp_vec2</a></td></tr>
104 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3&lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gab9e39d9db144322c1ad30ab3141084ad">lowp_vec3</a></td></tr>
105 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4&lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga653b0bf7ff2cb590f6e1338682fd0327">lowp_vec4</a></td></tr>
106 <tr><td class="memItemLeft" align="right" valign="top">typedef mediump_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a></td></tr>
107 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a></td></tr>
108 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2<br class="typebreak"/>
109 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga269315792504783f450b829161f2bccf">mediump_ivec2</a></td></tr>
110 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3<br class="typebreak"/>
111 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga1d8ae738ed79d71f8d381f472d366913">mediump_ivec3</a></td></tr>
112 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4<br class="typebreak"/>
113 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga5f624d3f93fa1a197ba767f9b1d6d7aa">mediump_ivec4</a></td></tr>
114 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2<br class="typebreak"/>
115 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga42f1426987103b15613671b323e90e5c">mediump_mat2</a></td></tr>
116 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2<br class="typebreak"/>
117 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaa5970a6f98990c15b7a3be7cc7b79f4f">mediump_mat2x2</a></td></tr>
118 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x3<br class="typebreak"/>
119 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gacceeb5355767eb306c12ea961b31e808">mediump_mat2x3</a></td></tr>
120 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3<br class="typebreak"/>
121 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga0957c911430959270e296b6abf1463c3">mediump_mat3</a></td></tr>
122 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3<br class="typebreak"/>
123 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga76c68d8cad333d1f5ba1b20a40415cda">mediump_mat3x3</a></td></tr>
124 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4<br class="typebreak"/>
125 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gabb71589a7fc80f6ca0c134efb878338d">mediump_mat4</a></td></tr>
126 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x2<br class="typebreak"/>
127 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga31b1d523c1dc83c0ef9cded942950666">mediump_mat4x2</a></td></tr>
128 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x3<br class="typebreak"/>
129 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga236d4c1060c1ce9908d3de61b3d9334e">mediump_mat4x3</a></td></tr>
130 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4<br class="typebreak"/>
131 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gad0e848d34a6838e413a41018228ded41">mediump_mat4x4</a></td></tr>
132 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a></td></tr>
133 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2<br class="typebreak"/>
134 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga5cd4f5f5667de09c7c12df85d138f599">mediump_uvec2</a></td></tr>
135 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3<br class="typebreak"/>
136 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga70d49eff07e7988447c93a83f9f311b6">mediump_uvec3</a></td></tr>
137 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4<br class="typebreak"/>
138 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga4b2bc896ec01198bdc4f9dc896e5f06d">mediump_uvec4</a></td></tr>
139 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2<br class="typebreak"/>
140 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#ga9a8a10fce5852b088dd631b34e942b7d">mediump_vec2</a></td></tr>
141 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3<br class="typebreak"/>
142 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gaf6aa71f085a150f42929a4b77458143e">mediump_vec3</a></td></tr>
143 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4<br class="typebreak"/>
144 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html#gafddaa69a1d46a27e2767b780e0e6b4b0">mediump_vec4</a></td></tr>
81145 </table>
82146 <hr/><a name="_details"></a><h2>Detailed Description</h2>
83 <p>The standard types defined by the specification. </p>
84 <p>These types are all typedefs of more generalized, template types. To see the definiton of these template types, go to <a class="el" href="a00237.html">Template types</a>. </p>
147 <p>Non-GLSL types that are used to define precision-based types. </p>
148 <p>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 <em>do</em> have an effect.</p>
149 <p>C++ has no language equivalent to precision qualifiers. So GLM provides the next-best thing: a number of typedefs of the <a class="el" href="a00236.html">Template types</a> that use a particular precision.</p>
150 <p>None of these types make any guarantees about the actual precision used. </p>
85151 <hr/><h2>Typedef Documentation</h2>
86 <a class="anchor" id="ga3bdc45d8289530ec60f8b0afd86dec9d"></a><!-- doxytag: member="glm::bvec2" ref="ga3bdc45d8289530ec60f8b0afd86dec9d" args="" -->
87 <div class="memitem">
88 <div class="memproto">
89 <table class="memname">
90 <tr>
91 <td class="memname">typedef detail::tvec2&lt;bool&gt; bvec2</td>
92 </tr>
93 </table>
94 </div>
95 <div class="memdoc">
96
97 <p>2 components vector of boolean. </p>
98 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
99
100 <p>Definition at line <a class="el" href="a00110_source.html#l00245">245</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
101
102 </div>
103 </div>
104 <a class="anchor" id="gaa6930ec345061c66a5fcb4839bbc23b2"></a><!-- doxytag: member="glm::bvec3" ref="gaa6930ec345061c66a5fcb4839bbc23b2" args="" -->
105 <div class="memitem">
106 <div class="memproto">
107 <table class="memname">
108 <tr>
109 <td class="memname">typedef detail::tvec3&lt;bool&gt; bvec3</td>
110 </tr>
111 </table>
112 </div>
113 <div class="memdoc">
114
115 <p>3 components vector of boolean. </p>
116 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
117
118 <p>Definition at line <a class="el" href="a00110_source.html#l00250">250</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
119
120 </div>
121 </div>
122 <a class="anchor" id="ga3b7e171999130bbe808335a4e41356a0"></a><!-- doxytag: member="glm::bvec4" ref="ga3b7e171999130bbe808335a4e41356a0" args="" -->
123 <div class="memitem">
124 <div class="memproto">
125 <table class="memname">
126 <tr>
127 <td class="memname">typedef detail::tvec4&lt;bool&gt; bvec4</td>
128 </tr>
129 </table>
130 </div>
131 <div class="memdoc">
132
133 <p>4 components vector of boolean. </p>
134 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
135
136 <p>Definition at line <a class="el" href="a00110_source.html#l00255">255</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
137
138 </div>
139 </div>
140 <a class="anchor" id="gac47a6148fdae0fe40858fb357aa9e9c5"></a><!-- doxytag: member="glm::dmat2" ref="gac47a6148fdae0fe40858fb357aa9e9c5" args="" -->
141 <div class="memitem">
142 <div class="memproto">
143 <table class="memname">
144 <tr>
145 <td class="memname">typedef detail::tmat2x2&lt;double&gt; dmat2</td>
146 </tr>
147 </table>
148 </div>
149 <div class="memdoc">
150
151 <p>2 * 2 matrix of double-precision floating-point numbers. </p>
152 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
153
154 <p>Definition at line <a class="el" href="a00110_source.html#l00278">278</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
155
156 </div>
157 </div>
158 <a class="anchor" id="ga154eeba579bb2792509d4f68d7269116"></a><!-- doxytag: member="glm::dmat2x2" ref="ga154eeba579bb2792509d4f68d7269116" args="" -->
159 <div class="memitem">
160 <div class="memproto">
161 <table class="memname">
162 <tr>
163 <td class="memname">typedef detail::tmat2x2&lt;double&gt; dmat2x2</td>
164 </tr>
165 </table>
166 </div>
167 <div class="memdoc">
168
169 <p>2 * 2 matrix of double-precision floating-point numbers. </p>
170 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
171
172 <p>Definition at line <a class="el" href="a00110_source.html#l00293">293</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
173
174 </div>
175 </div>
176 <a class="anchor" id="ga6722002d2b3591b9617696009cb92d7d"></a><!-- doxytag: member="glm::dmat2x3" ref="ga6722002d2b3591b9617696009cb92d7d" args="" -->
177 <div class="memitem">
178 <div class="memproto">
179 <table class="memname">
180 <tr>
181 <td class="memname">typedef detail::tmat2x3&lt;double&gt; dmat2x3</td>
182 </tr>
183 </table>
184 </div>
185 <div class="memdoc">
186
187 <p>2 * 3 matrix of double-precision floating-point numbers. </p>
188 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
189
190 <p>Definition at line <a class="el" href="a00110_source.html#l00298">298</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
191
192 </div>
193 </div>
194 <a class="anchor" id="ga839ae2cf7dd0064e97529dfe10017ad2"></a><!-- doxytag: member="glm::dmat2x4" ref="ga839ae2cf7dd0064e97529dfe10017ad2" args="" -->
195 <div class="memitem">
196 <div class="memproto">
197 <table class="memname">
198 <tr>
199 <td class="memname">typedef detail::tmat2x4&lt;double&gt; dmat2x4</td>
200 </tr>
201 </table>
202 </div>
203 <div class="memdoc">
204
205 <p>2 * 4 matrix of double-precision floating-point numbers. </p>
206 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
207
208 <p>Definition at line <a class="el" href="a00110_source.html#l00303">303</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
209
210 </div>
211 </div>
212 <a class="anchor" id="ga92c12ba0463edf4aa5d6d0e506591cf0"></a><!-- doxytag: member="glm::dmat3" ref="ga92c12ba0463edf4aa5d6d0e506591cf0" args="" -->
213 <div class="memitem">
214 <div class="memproto">
215 <table class="memname">
216 <tr>
217 <td class="memname">typedef detail::tmat3x3&lt;double&gt; dmat3</td>
218 </tr>
219 </table>
220 </div>
221 <div class="memdoc">
222
223 <p>3 * 3 matrix of double-precision floating-point numbers. </p>
224 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
225
226 <p>Definition at line <a class="el" href="a00110_source.html#l00283">283</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
227
228 </div>
229 </div>
230 <a class="anchor" id="ga94c2f5b05e0be254d81b53fdea6602d7"></a><!-- doxytag: member="glm::dmat3x2" ref="ga94c2f5b05e0be254d81b53fdea6602d7" args="" -->
231 <div class="memitem">
232 <div class="memproto">
233 <table class="memname">
234 <tr>
235 <td class="memname">typedef detail::tmat3x2&lt;double&gt; dmat3x2</td>
236 </tr>
237 </table>
238 </div>
239 <div class="memdoc">
240
241 <p>3 * 2 matrix of double-precision floating-point numbers. </p>
242 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
243
244 <p>Definition at line <a class="el" href="a00110_source.html#l00308">308</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
245
246 </div>
247 </div>
248 <a class="anchor" id="gaf72ab1d43dc5d437d2c9ea53ea038e3b"></a><!-- doxytag: member="glm::dmat3x3" ref="gaf72ab1d43dc5d437d2c9ea53ea038e3b" args="" -->
249 <div class="memitem">
250 <div class="memproto">
251 <table class="memname">
252 <tr>
253 <td class="memname">typedef detail::tmat3x3&lt;double&gt; dmat3x3</td>
254 </tr>
255 </table>
256 </div>
257 <div class="memdoc">
258
259 <p>3 * 3 matrix of double-precision floating-point numbers. </p>
260 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
261
262 <p>Definition at line <a class="el" href="a00110_source.html#l00313">313</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
263
264 </div>
265 </div>
266 <a class="anchor" id="ga04f2a951763897578c4c08e61989f1d1"></a><!-- doxytag: member="glm::dmat3x4" ref="ga04f2a951763897578c4c08e61989f1d1" args="" -->
267 <div class="memitem">
268 <div class="memproto">
269 <table class="memname">
270 <tr>
271 <td class="memname">typedef detail::tmat3x4&lt;double&gt; dmat3x4</td>
272 </tr>
273 </table>
274 </div>
275 <div class="memdoc">
276
277 <p>3 * 4 matrix of double-precision floating-point numbers. </p>
278 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
279
280 <p>Definition at line <a class="el" href="a00110_source.html#l00318">318</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
281
282 </div>
283 </div>
284 <a class="anchor" id="ga5db20fe7521b2e5bfa67a3131bdd0623"></a><!-- doxytag: member="glm::dmat4" ref="ga5db20fe7521b2e5bfa67a3131bdd0623" args="" -->
285 <div class="memitem">
286 <div class="memproto">
287 <table class="memname">
288 <tr>
289 <td class="memname">typedef detail::tmat4x4&lt;double&gt; dmat4</td>
290 </tr>
291 </table>
292 </div>
293 <div class="memdoc">
294
295 <p>4 * 4 matrix of double-precision floating-point numbers. </p>
296 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
297
298 <p>Definition at line <a class="el" href="a00110_source.html#l00288">288</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
299
300 </div>
301 </div>
302 <a class="anchor" id="ga1c381a2410bbabe8464254b1ff76173c"></a><!-- doxytag: member="glm::dmat4x2" ref="ga1c381a2410bbabe8464254b1ff76173c" args="" -->
303 <div class="memitem">
304 <div class="memproto">
305 <table class="memname">
306 <tr>
307 <td class="memname">typedef detail::tmat4x2&lt;double&gt; dmat4x2</td>
308 </tr>
309 </table>
310 </div>
311 <div class="memdoc">
312
313 <p>4 * 2 matrix of double-precision floating-point numbers. </p>
314 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
315
316 <p>Definition at line <a class="el" href="a00110_source.html#l00323">323</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
317
318 </div>
319 </div>
320 <a class="anchor" id="ga250ca1110cb3df02e122705e0df801f3"></a><!-- doxytag: member="glm::dmat4x3" ref="ga250ca1110cb3df02e122705e0df801f3" args="" -->
321 <div class="memitem">
322 <div class="memproto">
323 <table class="memname">
324 <tr>
325 <td class="memname">typedef detail::tmat4x3&lt;double&gt; dmat4x3</td>
326 </tr>
327 </table>
328 </div>
329 <div class="memdoc">
330
331 <p>4 * 3 matrix of double-precision floating-point numbers. </p>
332 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
333
334 <p>Definition at line <a class="el" href="a00110_source.html#l00328">328</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
335
336 </div>
337 </div>
338 <a class="anchor" id="gae2cf7fdac82b788e8f4d4145f6c963f1"></a><!-- doxytag: member="glm::dmat4x4" ref="gae2cf7fdac82b788e8f4d4145f6c963f1" args="" -->
339 <div class="memitem">
340 <div class="memproto">
341 <table class="memname">
342 <tr>
343 <td class="memname">typedef detail::tmat4x4&lt;double&gt; dmat4x4</td>
344 </tr>
345 </table>
346 </div>
347 <div class="memdoc">
348
349 <p>4 * 4 matrix of double-precision floating-point numbers. </p>
350 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
351
352 <p>Definition at line <a class="el" href="a00110_source.html#l00333">333</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
353
354 </div>
355 </div>
356 <a class="anchor" id="ga88bf1a60f35314a6b3f2c5adc97004cf"></a><!-- doxytag: member="glm::dvec2" ref="ga88bf1a60f35314a6b3f2c5adc97004cf" args="" -->
357 <div class="memitem">
358 <div class="memproto">
359 <table class="memname">
360 <tr>
361 <td class="memname">typedef detail::tvec2&lt;double&gt; dvec2</td>
362 </tr>
363 </table>
364 </div>
365 <div class="memdoc">
366
367 <p>Vector of 2 double-precision floating-point numbers. </p>
368 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
369
370 <p>Definition at line <a class="el" href="a00110_source.html#l00263">263</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
371
372 </div>
373 </div>
374 <a class="anchor" id="ga0f0fcb7b631cbbac4341badb01d84218"></a><!-- doxytag: member="glm::dvec3" ref="ga0f0fcb7b631cbbac4341badb01d84218" args="" -->
375 <div class="memitem">
376 <div class="memproto">
377 <table class="memname">
378 <tr>
379 <td class="memname">typedef detail::tvec3&lt;double&gt; dvec3</td>
380 </tr>
381 </table>
382 </div>
383 <div class="memdoc">
384
385 <p>Vector of 3 double-precision floating-point numbers. </p>
386 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
387
388 <p>Definition at line <a class="el" href="a00110_source.html#l00268">268</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
389
390 </div>
391 </div>
392 <a class="anchor" id="ga6f62aca8ddbdb3badf9d52885e7dcfb6"></a><!-- doxytag: member="glm::dvec4" ref="ga6f62aca8ddbdb3badf9d52885e7dcfb6" args="" -->
393 <div class="memitem">
394 <div class="memproto">
395 <table class="memname">
396 <tr>
397 <td class="memname">typedef detail::tvec4&lt;double&gt; dvec4</td>
398 </tr>
399 </table>
400 </div>
401 <div class="memdoc">
402
403 <p>Vector of 4 double-precision floating-point numbers. </p>
404 <p>From GLSL 4.00.8 specification, section 4.1 Basic Types. </p>
405
406 <p>Definition at line <a class="el" href="a00110_source.html#l00273">273</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
407
408 </div>
409 </div>
410 <a class="anchor" id="gae34ec1dcb70458421c150176537dca90"></a><!-- doxytag: member="glm::ivec2" ref="gae34ec1dcb70458421c150176537dca90" args="" -->
411 <div class="memitem">
412 <div class="memproto">
413 <table class="memname">
414 <tr>
415 <td class="memname">typedef precision::mediump_ivec2 ivec2</td>
416 </tr>
417 </table>
418 </div>
419 <div class="memdoc">
420
421 <p>2 components vector of signed integer numbers. </p>
422 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
423
424 <p>Definition at line <a class="el" href="a00110_source.html#l00194">194</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
425
426 </div>
427 </div>
428 <a class="anchor" id="ga8772f4d0808ec3571b0b21c7514ae626"></a><!-- doxytag: member="glm::ivec3" ref="ga8772f4d0808ec3571b0b21c7514ae626" args="" -->
429 <div class="memitem">
430 <div class="memproto">
431 <table class="memname">
432 <tr>
433 <td class="memname">typedef precision::mediump_ivec3 ivec3</td>
434 </tr>
435 </table>
436 </div>
437 <div class="memdoc">
438
439 <p>3 components vector of signed integer numbers. </p>
440 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
441
442 <p>Definition at line <a class="el" href="a00110_source.html#l00199">199</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
443
444 </div>
445 </div>
446 <a class="anchor" id="ga4ca78493e6bc3274eb996a783f6336ec"></a><!-- doxytag: member="glm::ivec4" ref="ga4ca78493e6bc3274eb996a783f6336ec" args="" -->
447 <div class="memitem">
448 <div class="memproto">
449 <table class="memname">
450 <tr>
451 <td class="memname">typedef precision::mediump_ivec4 ivec4</td>
452 </tr>
453 </table>
454 </div>
455 <div class="memdoc">
456
457 <p>4 components vector of signed integer numbers. </p>
458 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
459
460 <p>Definition at line <a class="el" href="a00110_source.html#l00204">204</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
461
462 </div>
463 </div>
464 <a class="anchor" id="ga6e30cfba068ebc3c71fe1f8b3110e450"></a><!-- doxytag: member="glm::mat2" ref="ga6e30cfba068ebc3c71fe1f8b3110e450" args="" -->
465 <div class="memitem">
466 <div class="memproto">
467 <table class="memname">
468 <tr>
469 <td class="memname">typedef mat2x2 mat2</td>
470 </tr>
471 </table>
472 </div>
473 <div class="memdoc">
474
475 <p>2 columns of 2 components matrix of floating-point numbers. </p>
476 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
477
478 <p>Definition at line <a class="el" href="a00110_source.html#l00163">163</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
479
480 </div>
481 </div>
482 <a class="anchor" id="gac0430f4e1a8747774bcfbd0ea7c7df7b"></a><!-- doxytag: member="glm::mat2x2" ref="gac0430f4e1a8747774bcfbd0ea7c7df7b" args="" -->
483 <div class="memitem">
484 <div class="memproto">
485 <table class="memname">
486 <tr>
487 <td class="memname">typedef precision::mediump_mat2x2 mat2x2</td>
488 </tr>
489 </table>
490 </div>
491 <div class="memdoc">
492
493 <p>2 columns of 2 components matrix of floating-point numbers. </p>
494 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
495
496 <p>Definition at line <a class="el" href="a00110_source.html#l00116">116</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
497
498 </div>
499 </div>
500 <a class="anchor" id="ga166bc1c922bedbb7f655bd348ff2f97b"></a><!-- doxytag: member="glm::mat2x3" ref="ga166bc1c922bedbb7f655bd348ff2f97b" args="" -->
501 <div class="memitem">
502 <div class="memproto">
503 <table class="memname">
504 <tr>
505 <td class="memname">typedef precision::mediump_mat2x3 mat2x3</td>
506 </tr>
507 </table>
508 </div>
509 <div class="memdoc">
510
511 <p>2 columns of 3 components matrix of floating-point numbers. </p>
512 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
513
514 <p>Definition at line <a class="el" href="a00110_source.html#l00121">121</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
515
516 </div>
517 </div>
518 <a class="anchor" id="ga0c9a783f321486534bd3a2fd3701a374"></a><!-- doxytag: member="glm::mat2x4" ref="ga0c9a783f321486534bd3a2fd3701a374" args="" -->
519 <div class="memitem">
520 <div class="memproto">
521 <table class="memname">
522 <tr>
523 <td class="memname">typedef precision::mediump_mat2x4 mat2x4</td>
524 </tr>
525 </table>
526 </div>
527 <div class="memdoc">
528
529 <p>2 columns of 4 components matrix of floating-point numbers. </p>
530 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
531
532 <p>Definition at line <a class="el" href="a00110_source.html#l00126">126</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
533
534 </div>
535 </div>
536 <a class="anchor" id="ga6dd3ec98a548755676267e59142911f8"></a><!-- doxytag: member="glm::mat3" ref="ga6dd3ec98a548755676267e59142911f8" args="" -->
537 <div class="memitem">
538 <div class="memproto">
539 <table class="memname">
540 <tr>
541 <td class="memname">typedef mat3x3 mat3</td>
542 </tr>
543 </table>
544 </div>
545 <div class="memdoc">
546
547 <p>3 columns of 3 components matrix of floating-point numbers. </p>
548 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
549
550 <p>Definition at line <a class="el" href="a00110_source.html#l00168">168</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
551
552 </div>
553 </div>
554 <a class="anchor" id="ga839dac056fcbc087c6c161eb0d7fbe1b"></a><!-- doxytag: member="glm::mat3x2" ref="ga839dac056fcbc087c6c161eb0d7fbe1b" args="" -->
555 <div class="memitem">
556 <div class="memproto">
557 <table class="memname">
558 <tr>
559 <td class="memname">typedef precision::mediump_mat3x2 mat3x2</td>
560 </tr>
561 </table>
562 </div>
563 <div class="memdoc">
564
565 <p>3 columns of 2 components matrix of floating-point numbers. </p>
566 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
567
568 <p>Definition at line <a class="el" href="a00110_source.html#l00131">131</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
569
570 </div>
571 </div>
572 <a class="anchor" id="gaf188822f2db83067facc9fa922416ad9"></a><!-- doxytag: member="glm::mat3x3" ref="gaf188822f2db83067facc9fa922416ad9" args="" -->
573 <div class="memitem">
574 <div class="memproto">
575 <table class="memname">
576 <tr>
577 <td class="memname">typedef precision::mediump_mat3x3 mat3x3</td>
578 </tr>
579 </table>
580 </div>
581 <div class="memdoc">
582
583 <p>3 columns of 3 components matrix of floating-point numbers. </p>
584 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
585
586 <p>Definition at line <a class="el" href="a00110_source.html#l00136">136</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
587
588 </div>
589 </div>
590 <a class="anchor" id="ga70f8918f1c21ead733c8f089c09d353a"></a><!-- doxytag: member="glm::mat3x4" ref="ga70f8918f1c21ead733c8f089c09d353a" args="" -->
591 <div class="memitem">
592 <div class="memproto">
593 <table class="memname">
594 <tr>
595 <td class="memname">typedef precision::mediump_mat3x4 mat3x4</td>
596 </tr>
597 </table>
598 </div>
599 <div class="memdoc">
600
601 <p>3 columns of 4 components matrix of floating-point numbers. </p>
602 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
603
604 <p>Definition at line <a class="el" href="a00110_source.html#l00141">141</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
605
606 </div>
607 </div>
608 <a class="anchor" id="gade0eb47c01f79384a6f38017ede17446"></a><!-- doxytag: member="glm::mat4" ref="gade0eb47c01f79384a6f38017ede17446" args="" -->
609 <div class="memitem">
610 <div class="memproto">
611 <table class="memname">
612 <tr>
613 <td class="memname">typedef mat4x4 mat4</td>
614 </tr>
615 </table>
616 </div>
617 <div class="memdoc">
618
619 <p>4 columns of 4 components matrix of floating-point numbers. </p>
620 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
621
622 <p>Definition at line <a class="el" href="a00110_source.html#l00173">173</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
623
624 </div>
625 </div>
626 <a class="anchor" id="ga2c797007acc18027b65dad6e1f2d7b77"></a><!-- doxytag: member="glm::mat4x2" ref="ga2c797007acc18027b65dad6e1f2d7b77" args="" -->
627 <div class="memitem">
628 <div class="memproto">
629 <table class="memname">
630 <tr>
631 <td class="memname">typedef precision::mediump_mat4x2 mat4x2</td>
632 </tr>
633 </table>
634 </div>
635 <div class="memdoc">
636
637 <p>4 columns of 2 components matrix of floating-point numbers. </p>
638 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
639
640 <p>Definition at line <a class="el" href="a00110_source.html#l00146">146</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
641
642 </div>
643 </div>
644 <a class="anchor" id="ga73f97cdfb274c84ac7115b8e03c6b54a"></a><!-- doxytag: member="glm::mat4x3" ref="ga73f97cdfb274c84ac7115b8e03c6b54a" args="" -->
645 <div class="memitem">
646 <div class="memproto">
647 <table class="memname">
648 <tr>
649 <td class="memname">typedef precision::mediump_mat4x3 mat4x3</td>
650 </tr>
651 </table>
652 </div>
653 <div class="memdoc">
654
655 <p>4 columns of 3 components matrix of floating-point numbers. </p>
656 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
657
658 <p>Definition at line <a class="el" href="a00110_source.html#l00151">151</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
659
660 </div>
661 </div>
662 <a class="anchor" id="ga214f3d771188cb5b9ec6b5485ac082dc"></a><!-- doxytag: member="glm::mat4x4" ref="ga214f3d771188cb5b9ec6b5485ac082dc" args="" -->
663 <div class="memitem">
664 <div class="memproto">
665 <table class="memname">
666 <tr>
667 <td class="memname">typedef precision::mediump_mat4x4 mat4x4</td>
668 </tr>
669 </table>
670 </div>
671 <div class="memdoc">
672
673 <p>4 columns of 4 components matrix of floating-point numbers. </p>
674 <p>(From GLSL 1.30.8 specification, section 4.1.6 Matrices) </p>
675
676 <p>Definition at line <a class="el" href="a00110_source.html#l00156">156</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
677
678 </div>
679 </div>
680 <a class="anchor" id="ga3fae7e520beaa9bca6625b98d782f47e"></a><!-- doxytag: member="glm::uvec2" ref="ga3fae7e520beaa9bca6625b98d782f47e" args="" -->
681 <div class="memitem">
682 <div class="memproto">
683 <table class="memname">
684 <tr>
685 <td class="memname">typedef precision::mediump_uvec2 uvec2</td>
686 </tr>
687 </table>
688 </div>
689 <div class="memdoc">
690
691 <p>2 components vector of unsigned integer numbers. </p>
692 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
693
694 <p>Definition at line <a class="el" href="a00110_source.html#l00226">226</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
695
696 </div>
697 </div>
698 <a class="anchor" id="ga48a100077cb128b9c790c71ac1d1d7d2"></a><!-- doxytag: member="glm::uvec3" ref="ga48a100077cb128b9c790c71ac1d1d7d2" args="" -->
699 <div class="memitem">
700 <div class="memproto">
701 <table class="memname">
702 <tr>
703 <td class="memname">typedef precision::mediump_uvec3 uvec3</td>
704 </tr>
705 </table>
706 </div>
707 <div class="memdoc">
708
709 <p>3 components vector of unsigned integer numbers. </p>
710 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
711
712 <p>Definition at line <a class="el" href="a00110_source.html#l00231">231</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
713
714 </div>
715 </div>
716 <a class="anchor" id="gafbb266d616ea71ad5099994980f8651d"></a><!-- doxytag: member="glm::uvec4" ref="gafbb266d616ea71ad5099994980f8651d" args="" -->
717 <div class="memitem">
718 <div class="memproto">
719 <table class="memname">
720 <tr>
721 <td class="memname">typedef precision::mediump_uvec4 uvec4</td>
722 </tr>
723 </table>
724 </div>
725 <div class="memdoc">
726
727 <p>4 components vector of unsigned integer numbers. </p>
728 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
729
730 <p>Definition at line <a class="el" href="a00110_source.html#l00236">236</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
731
732 </div>
733 </div>
734 <a class="anchor" id="gac422c7058a7c9963b55ad70764c62752"></a><!-- doxytag: member="glm::vec3" ref="gac422c7058a7c9963b55ad70764c62752" args="" -->
735 <div class="memitem">
736 <div class="memproto">
737 <table class="memname">
738 <tr>
739 <td class="memname">typedef precision::mediump_vec3 vec3</td>
740 </tr>
741 </table>
742 </div>
743 <div class="memdoc">
744
745 <p>3 components vector of floating-point numbers. </p>
746 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
747
748 <p>Definition at line <a class="el" href="a00110_source.html#l00106">106</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
749
750 </div>
751 </div>
752 <a class="anchor" id="ga8fad5ffc01ba6dea689f2a38bf30bda4"></a><!-- doxytag: member="glm::vec4" ref="ga8fad5ffc01ba6dea689f2a38bf30bda4" args="" -->
753 <div class="memitem">
754 <div class="memproto">
755 <table class="memname">
756 <tr>
757 <td class="memname">typedef precision::mediump_vec4 vec4</td>
758 </tr>
759 </table>
760 </div>
761 <div class="memdoc">
762
763 <p>4 components vector of floating-point numbers. </p>
764 <p>From GLSL 1.30.8 specification, section 4.1.5 Vectors. </p>
765
766 <p>Definition at line <a class="el" href="a00110_source.html#l00111">111</a> of file <a class="el" href="a00110_source.html">type.hpp</a>.</p>
152 <a class="anchor" id="ga6e95694987ba35af6f736638be39626a"></a><!-- doxytag: member="glm::core::type::precision::highp_float" ref="ga6e95694987ba35af6f736638be39626a" args="" -->
153 <div class="memitem">
154 <div class="memproto">
155 <table class="memname">
156 <tr>
157 <td class="memname">typedef highp_float_t highp_float</td>
158 </tr>
159 </table>
160 </div>
161 <div class="memdoc">
162
163 <p>High precision floating-point numbers. </p>
164 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification </p>
165
166 <p>Definition at line <a class="el" href="a00111_source.html#l00054">54</a> of file <a class="el" href="a00111_source.html">type_float.hpp</a>.</p>
167
168 </div>
169 </div>
170 <a class="anchor" id="gaaabe7eb044941ebf308b53a447d692dc"></a><!-- doxytag: member="glm::core::type::precision::highp_int" ref="gaaabe7eb044941ebf308b53a447d692dc" args="" -->
171 <div class="memitem">
172 <div class="memproto">
173 <table class="memname">
174 <tr>
175 <td class="memname">typedef detail::highp_int_t highp_int</td>
176 </tr>
177 </table>
178 </div>
179 <div class="memdoc">
180
181 <p>High precision signed integer. </p>
182 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification. </p>
183
184 <p>Definition at line <a class="el" href="a00114_source.html#l00058">58</a> of file <a class="el" href="a00114_source.html">type_int.hpp</a>.</p>
185
186 </div>
187 </div>
188 <a class="anchor" id="ga306173e656477f59bf0164a623780236"></a><!-- doxytag: member="glm::core::type::precision::highp_ivec2" ref="ga306173e656477f59bf0164a623780236" args="" -->
189 <div class="memitem">
190 <div class="memproto">
191 <table class="memname">
192 <tr>
193 <td class="memname">typedef detail::tvec2&lt;highp_int&gt; highp_ivec2</td>
194 </tr>
195 </table>
196 </div>
197 <div class="memdoc">
198
199 <p>2 components vector of high precision signed integer numbers. </p>
200 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
201
202 <p>Definition at line <a class="el" href="a00130_source.html#l00222">222</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
203
204 </div>
205 </div>
206 <a class="anchor" id="gaccca78e0907313665d47af163c17c5bb"></a><!-- doxytag: member="glm::core::type::precision::highp_ivec3" ref="gaccca78e0907313665d47af163c17c5bb" args="" -->
207 <div class="memitem">
208 <div class="memproto">
209 <table class="memname">
210 <tr>
211 <td class="memname">typedef detail::tvec3&lt;highp_int&gt; highp_ivec3</td>
212 </tr>
213 </table>
214 </div>
215 <div class="memdoc">
216
217 <p>3 components vector of high precision signed integer numbers. </p>
218 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
219
220 <p>Definition at line <a class="el" href="a00131_source.html#l00228">228</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
221
222 </div>
223 </div>
224 <a class="anchor" id="ga320e40ad19a7be26cff134cce4f15a51"></a><!-- doxytag: member="glm::core::type::precision::highp_ivec4" ref="ga320e40ad19a7be26cff134cce4f15a51" args="" -->
225 <div class="memitem">
226 <div class="memproto">
227 <table class="memname">
228 <tr>
229 <td class="memname">typedef detail::tvec4&lt;highp_int&gt; highp_ivec4</td>
230 </tr>
231 </table>
232 </div>
233 <div class="memdoc">
234
235 <p>4 components vector of high precision signed integer numbers. </p>
236 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
237
238 <p>Definition at line <a class="el" href="a00132_source.html#l00241">241</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
239
240 </div>
241 </div>
242 <a class="anchor" id="gaeedb9e4f01fefcd5a47356b476b6890c"></a><!-- doxytag: member="glm::core::type::precision::highp_mat2" ref="gaeedb9e4f01fefcd5a47356b476b6890c" args="" -->
243 <div class="memitem">
244 <div class="memproto">
245 <table class="memname">
246 <tr>
247 <td class="memname">typedef detail::tmat2x2&lt;highp_float&gt; highp_mat2</td>
248 </tr>
249 </table>
250 </div>
251 <div class="memdoc">
252
253 <p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
254 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
255
256 <p>Definition at line <a class="el" href="a00116_source.html#l00252">252</a> of file <a class="el" href="a00116_source.html">type_mat2x2.hpp</a>.</p>
257
258 </div>
259 </div>
260 <a class="anchor" id="ga9aa0c5dce81439aa15a0d5b5e5006d81"></a><!-- doxytag: member="glm::core::type::precision::highp_mat2x2" ref="ga9aa0c5dce81439aa15a0d5b5e5006d81" args="" -->
261 <div class="memitem">
262 <div class="memproto">
263 <table class="memname">
264 <tr>
265 <td class="memname">typedef detail::tmat2x2&lt;highp_float&gt; highp_mat2x2</td>
266 </tr>
267 </table>
268 </div>
269 <div class="memdoc">
270
271 <p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
272 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
273
274 <p>Definition at line <a class="el" href="a00116_source.html#l00270">270</a> of file <a class="el" href="a00116_source.html">type_mat2x2.hpp</a>.</p>
275
276 </div>
277 </div>
278 <a class="anchor" id="ga895ba4ec32bd7cfb0d07572556572069"></a><!-- doxytag: member="glm::core::type::precision::highp_mat2x3" ref="ga895ba4ec32bd7cfb0d07572556572069" args="" -->
279 <div class="memitem">
280 <div class="memproto">
281 <table class="memname">
282 <tr>
283 <td class="memname">typedef detail::tmat2x3&lt;highp_float&gt; highp_mat2x3</td>
284 </tr>
285 </table>
286 </div>
287 <div class="memdoc">
288
289 <p>2 columns of 3 components matrix of high precision floating-point numbers. </p>
290 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
291
292 <p>Definition at line <a class="el" href="a00117_source.html#l00217">217</a> of file <a class="el" href="a00117_source.html">type_mat2x3.hpp</a>.</p>
293
294 </div>
295 </div>
296 <a class="anchor" id="ga95c93f032b4713aff2886a39f96822e1"></a><!-- doxytag: member="glm::core::type::precision::highp_mat3" ref="ga95c93f032b4713aff2886a39f96822e1" args="" -->
297 <div class="memitem">
298 <div class="memproto">
299 <table class="memname">
300 <tr>
301 <td class="memname">typedef detail::tmat3x3&lt;highp_float&gt; highp_mat3</td>
302 </tr>
303 </table>
304 </div>
305 <div class="memdoc">
306
307 <p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
308 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
309
310 <p>Definition at line <a class="el" href="a00120_source.html#l00254">254</a> of file <a class="el" href="a00120_source.html">type_mat3x3.hpp</a>.</p>
311
312 </div>
313 </div>
314 <a class="anchor" id="ga20aa8e5c6061576079c10e86cd743c8d"></a><!-- doxytag: member="glm::core::type::precision::highp_mat3x3" ref="ga20aa8e5c6061576079c10e86cd743c8d" args="" -->
315 <div class="memitem">
316 <div class="memproto">
317 <table class="memname">
318 <tr>
319 <td class="memname">typedef detail::tmat3x3&lt;highp_float&gt; highp_mat3x3</td>
320 </tr>
321 </table>
322 </div>
323 <div class="memdoc">
324
325 <p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
326 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
327
328 <p>Definition at line <a class="el" href="a00120_source.html#l00272">272</a> of file <a class="el" href="a00120_source.html">type_mat3x3.hpp</a>.</p>
329
330 </div>
331 </div>
332 <a class="anchor" id="ga6e0882bb7c778ee27596e1cbe70cad1a"></a><!-- doxytag: member="glm::core::type::precision::highp_mat4" ref="ga6e0882bb7c778ee27596e1cbe70cad1a" args="" -->
333 <div class="memitem">
334 <div class="memproto">
335 <table class="memname">
336 <tr>
337 <td class="memname">typedef detail::tmat4x4&lt;highp_float&gt; highp_mat4</td>
338 </tr>
339 </table>
340 </div>
341 <div class="memdoc">
342
343 <p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
344 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
345
346 <p>Definition at line <a class="el" href="a00124_source.html#l00257">257</a> of file <a class="el" href="a00124_source.html">type_mat4x4.hpp</a>.</p>
347
348 </div>
349 </div>
350 <a class="anchor" id="ga3178de2c189bfdda4c73d6af8017f5d3"></a><!-- doxytag: member="glm::core::type::precision::highp_mat4x2" ref="ga3178de2c189bfdda4c73d6af8017f5d3" args="" -->
351 <div class="memitem">
352 <div class="memproto">
353 <table class="memname">
354 <tr>
355 <td class="memname">typedef detail::tmat4x2&lt;highp_float&gt; highp_mat4x2</td>
356 </tr>
357 </table>
358 </div>
359 <div class="memdoc">
360
361 <p>4 columns of 2 components matrix of high precision floating-point numbers. </p>
362 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
363
364 <p>Definition at line <a class="el" href="a00122_source.html#l00231">231</a> of file <a class="el" href="a00122_source.html">type_mat4x2.hpp</a>.</p>
365
366 </div>
367 </div>
368 <a class="anchor" id="ga00d8bf8ebaab7d6647a3b7f73ae324af"></a><!-- doxytag: member="glm::core::type::precision::highp_mat4x3" ref="ga00d8bf8ebaab7d6647a3b7f73ae324af" args="" -->
369 <div class="memitem">
370 <div class="memproto">
371 <table class="memname">
372 <tr>
373 <td class="memname">typedef detail::tmat4x3&lt;highp_float&gt; highp_mat4x3</td>
374 </tr>
375 </table>
376 </div>
377 <div class="memdoc">
378
379 <p>4 columns of 3 components matrix of high precision floating-point numbers. </p>
380 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
381
382 <p>Definition at line <a class="el" href="a00123_source.html#l00229">229</a> of file <a class="el" href="a00123_source.html">type_mat4x3.hpp</a>.</p>
383
384 </div>
385 </div>
386 <a class="anchor" id="gadd2ef277f86f6fa29804a22d1eb7d662"></a><!-- doxytag: member="glm::core::type::precision::highp_mat4x4" ref="gadd2ef277f86f6fa29804a22d1eb7d662" args="" -->
387 <div class="memitem">
388 <div class="memproto">
389 <table class="memname">
390 <tr>
391 <td class="memname">typedef detail::tmat4x4&lt;highp_float&gt; highp_mat4x4</td>
392 </tr>
393 </table>
394 </div>
395 <div class="memdoc">
396
397 <p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
398 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
399
400 <p>Definition at line <a class="el" href="a00124_source.html#l00275">275</a> of file <a class="el" href="a00124_source.html">type_mat4x4.hpp</a>.</p>
401
402 </div>
403 </div>
404 <a class="anchor" id="ga73e8a694d7fc69143cf25161d18d1dcf"></a><!-- doxytag: member="glm::core::type::precision::highp_uint" ref="ga73e8a694d7fc69143cf25161d18d1dcf" args="" -->
405 <div class="memitem">
406 <div class="memproto">
407 <table class="memname">
408 <tr>
409 <td class="memname">typedef detail::highp_uint_t highp_uint</td>
410 </tr>
411 </table>
412 </div>
413 <div class="memdoc">
414
415 <p>High precision unsigned integer. </p>
416 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification. </p>
417
418 <p>Definition at line <a class="el" href="a00114_source.html#l00074">74</a> of file <a class="el" href="a00114_source.html">type_int.hpp</a>.</p>
419
420 </div>
421 </div>
422 <a class="anchor" id="gad4a5243fc438d0f2efbc22d075b4e399"></a><!-- doxytag: member="glm::core::type::precision::highp_uvec2" ref="gad4a5243fc438d0f2efbc22d075b4e399" args="" -->
423 <div class="memitem">
424 <div class="memproto">
425 <table class="memname">
426 <tr>
427 <td class="memname">typedef detail::tvec2&lt;highp_uint&gt; highp_uvec2</td>
428 </tr>
429 </table>
430 </div>
431 <div class="memdoc">
432
433 <p>2 components vector of high precision unsigned integer numbers. </p>
434 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
435
436 <p>Definition at line <a class="el" href="a00130_source.html#l00240">240</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
437
438 </div>
439 </div>
440 <a class="anchor" id="gaf4b32075ad193e4f47c8bfc367593d8c"></a><!-- doxytag: member="glm::core::type::precision::highp_uvec3" ref="gaf4b32075ad193e4f47c8bfc367593d8c" args="" -->
441 <div class="memitem">
442 <div class="memproto">
443 <table class="memname">
444 <tr>
445 <td class="memname">typedef detail::tvec3&lt;highp_uint&gt; highp_uvec3</td>
446 </tr>
447 </table>
448 </div>
449 <div class="memdoc">
450
451 <p>3 components vector of high precision unsigned integer numbers. </p>
452 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
453
454 <p>Definition at line <a class="el" href="a00131_source.html#l00246">246</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
455
456 </div>
457 </div>
458 <a class="anchor" id="ga5ad6375e810e3050a6c845b600422b70"></a><!-- doxytag: member="glm::core::type::precision::highp_uvec4" ref="ga5ad6375e810e3050a6c845b600422b70" args="" -->
459 <div class="memitem">
460 <div class="memproto">
461 <table class="memname">
462 <tr>
463 <td class="memname">typedef detail::tvec4&lt;highp_uint&gt; highp_uvec4</td>
464 </tr>
465 </table>
466 </div>
467 <div class="memdoc">
468
469 <p>4 components vector of high precision unsigned integer numbers. </p>
470 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
471
472 <p>Definition at line <a class="el" href="a00132_source.html#l00259">259</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
473
474 </div>
475 </div>
476 <a class="anchor" id="ga9b65d7afd0783a02f5b3d1b75d1d872e"></a><!-- doxytag: member="glm::core::type::precision::highp_vec2" ref="ga9b65d7afd0783a02f5b3d1b75d1d872e" args="" -->
477 <div class="memitem">
478 <div class="memproto">
479 <table class="memname">
480 <tr>
481 <td class="memname">typedef detail::tvec2&lt;highp_float&gt; highp_vec2</td>
482 </tr>
483 </table>
484 </div>
485 <div class="memdoc">
486
487 <p>2 components vector of high precision floating-point numbers. </p>
488 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
489
490 <p>Definition at line <a class="el" href="a00130_source.html#l00204">204</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
491
492 </div>
493 </div>
494 <a class="anchor" id="ga0d3129f5f6644cb7552f520ff0dfa789"></a><!-- doxytag: member="glm::core::type::precision::highp_vec3" ref="ga0d3129f5f6644cb7552f520ff0dfa789" args="" -->
495 <div class="memitem">
496 <div class="memproto">
497 <table class="memname">
498 <tr>
499 <td class="memname">typedef detail::tvec3&lt;highp_float&gt; highp_vec3</td>
500 </tr>
501 </table>
502 </div>
503 <div class="memdoc">
504
505 <p>3 components vector of high precision floating-point numbers. </p>
506 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
507
508 <p>Definition at line <a class="el" href="a00131_source.html#l00210">210</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
509
510 </div>
511 </div>
512 <a class="anchor" id="gaaef692a5e2eae7dad32ca2f8ed0d16d8"></a><!-- doxytag: member="glm::core::type::precision::highp_vec4" ref="gaaef692a5e2eae7dad32ca2f8ed0d16d8" args="" -->
513 <div class="memitem">
514 <div class="memproto">
515 <table class="memname">
516 <tr>
517 <td class="memname">typedef detail::tvec4&lt;highp_float&gt; highp_vec4</td>
518 </tr>
519 </table>
520 </div>
521 <div class="memdoc">
522
523 <p>4 components vector of high precision floating-point numbers. </p>
524 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
525
526 <p>Definition at line <a class="el" href="a00132_source.html#l00223">223</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
527
528 </div>
529 </div>
530 <a class="anchor" id="ga358d69e11b1c0f6c7c469e0d39ab7fd1"></a><!-- doxytag: member="glm::core::type::precision::lowp_float" ref="ga358d69e11b1c0f6c7c469e0d39ab7fd1" args="" -->
531 <div class="memitem">
532 <div class="memproto">
533 <table class="memname">
534 <tr>
535 <td class="memname">typedef lowp_float_t lowp_float</td>
536 </tr>
537 </table>
538 </div>
539 <div class="memdoc">
540
541 <p>Low precision floating-point numbers. </p>
542 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification </p>
543
544 <p>Definition at line <a class="el" href="a00111_source.html#l00044">44</a> of file <a class="el" href="a00111_source.html">type_float.hpp</a>.</p>
545
546 </div>
547 </div>
548 <a class="anchor" id="gad0fa1e32e8b3552ed63556eca51c620e"></a><!-- doxytag: member="glm::core::type::precision::lowp_int" ref="gad0fa1e32e8b3552ed63556eca51c620e" args="" -->
549 <div class="memitem">
550 <div class="memproto">
551 <table class="memname">
552 <tr>
553 <td class="memname">typedef detail::lowp_int_t lowp_int</td>
554 </tr>
555 </table>
556 </div>
557 <div class="memdoc">
558
559 <p>Low precision signed integer. </p>
560 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification. </p>
561
562 <p>Definition at line <a class="el" href="a00114_source.html#l00048">48</a> of file <a class="el" href="a00114_source.html">type_int.hpp</a>.</p>
563
564 </div>
565 </div>
566 <a class="anchor" id="ga26364654fd75ba6c7f11a65967a7fbee"></a><!-- doxytag: member="glm::core::type::precision::lowp_ivec2" ref="ga26364654fd75ba6c7f11a65967a7fbee" args="" -->
567 <div class="memitem">
568 <div class="memproto">
569 <table class="memname">
570 <tr>
571 <td class="memname">typedef detail::tvec2&lt;lowp_int&gt; lowp_ivec2</td>
572 </tr>
573 </table>
574 </div>
575 <div class="memdoc">
576
577 <p>2 components vector of low precision signed integer numbers. </p>
578 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
579
580 <p>Definition at line <a class="el" href="a00130_source.html#l00234">234</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
581
582 </div>
583 </div>
584 <a class="anchor" id="gac246e3a1a470974283d6618ad77fd477"></a><!-- doxytag: member="glm::core::type::precision::lowp_ivec3" ref="gac246e3a1a470974283d6618ad77fd477" args="" -->
585 <div class="memitem">
586 <div class="memproto">
587 <table class="memname">
588 <tr>
589 <td class="memname">typedef detail::tvec3&lt;lowp_int&gt; lowp_ivec3</td>
590 </tr>
591 </table>
592 </div>
593 <div class="memdoc">
594
595 <p>3 components vector of low precision signed integer numbers. </p>
596 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
597
598 <p>Definition at line <a class="el" href="a00131_source.html#l00240">240</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
599
600 </div>
601 </div>
602 <a class="anchor" id="gafc7521507e40fbc269149475a725dbbe"></a><!-- doxytag: member="glm::core::type::precision::lowp_ivec4" ref="gafc7521507e40fbc269149475a725dbbe" args="" -->
603 <div class="memitem">
604 <div class="memproto">
605 <table class="memname">
606 <tr>
607 <td class="memname">typedef detail::tvec4&lt;lowp_int&gt; lowp_ivec4</td>
608 </tr>
609 </table>
610 </div>
611 <div class="memdoc">
612
613 <p>4 components vector of low precision signed integer numbers. </p>
614 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
615
616 <p>Definition at line <a class="el" href="a00132_source.html#l00253">253</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
617
618 </div>
619 </div>
620 <a class="anchor" id="gaee10b4a3cac178528f8e56c90313094a"></a><!-- doxytag: member="glm::core::type::precision::lowp_mat2" ref="gaee10b4a3cac178528f8e56c90313094a" args="" -->
621 <div class="memitem">
622 <div class="memproto">
623 <table class="memname">
624 <tr>
625 <td class="memname">typedef detail::tmat2x2&lt;lowp_float&gt; lowp_mat2</td>
626 </tr>
627 </table>
628 </div>
629 <div class="memdoc">
630
631 <p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
632 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
633
634 <p>Definition at line <a class="el" href="a00116_source.html#l00240">240</a> of file <a class="el" href="a00116_source.html">type_mat2x2.hpp</a>.</p>
635
636 </div>
637 </div>
638 <a class="anchor" id="ga8b49c3aa6665011440c32c281b2032c0"></a><!-- doxytag: member="glm::core::type::precision::lowp_mat2x2" ref="ga8b49c3aa6665011440c32c281b2032c0" args="" -->
639 <div class="memitem">
640 <div class="memproto">
641 <table class="memname">
642 <tr>
643 <td class="memname">typedef detail::tmat2x2&lt;lowp_float&gt; lowp_mat2x2</td>
644 </tr>
645 </table>
646 </div>
647 <div class="memdoc">
648
649 <p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
650 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
651
652 <p>Definition at line <a class="el" href="a00116_source.html#l00258">258</a> of file <a class="el" href="a00116_source.html">type_mat2x2.hpp</a>.</p>
653
654 </div>
655 </div>
656 <a class="anchor" id="ga0b32355a31b4c14e98f69b43a9077456"></a><!-- doxytag: member="glm::core::type::precision::lowp_mat2x3" ref="ga0b32355a31b4c14e98f69b43a9077456" args="" -->
657 <div class="memitem">
658 <div class="memproto">
659 <table class="memname">
660 <tr>
661 <td class="memname">typedef detail::tmat2x3&lt;lowp_float&gt; lowp_mat2x3</td>
662 </tr>
663 </table>
664 </div>
665 <div class="memdoc">
666
667 <p>2 columns of 3 components matrix of low precision floating-point numbers. </p>
668 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
669
670 <p>Definition at line <a class="el" href="a00117_source.html#l00207">207</a> of file <a class="el" href="a00117_source.html">type_mat2x3.hpp</a>.</p>
671
672 </div>
673 </div>
674 <a class="anchor" id="ga5bbef8a57946dd7a91c9e0260d9edfbf"></a><!-- doxytag: member="glm::core::type::precision::lowp_mat3" ref="ga5bbef8a57946dd7a91c9e0260d9edfbf" args="" -->
675 <div class="memitem">
676 <div class="memproto">
677 <table class="memname">
678 <tr>
679 <td class="memname">typedef detail::tmat3x3&lt;lowp_float&gt; lowp_mat3</td>
680 </tr>
681 </table>
682 </div>
683 <div class="memdoc">
684
685 <p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
686 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
687
688 <p>Definition at line <a class="el" href="a00120_source.html#l00244">244</a> of file <a class="el" href="a00120_source.html">type_mat3x3.hpp</a>.</p>
689
690 </div>
691 </div>
692 <a class="anchor" id="ga0bb652c1f4401b9b3359ae6b2bf13678"></a><!-- doxytag: member="glm::core::type::precision::lowp_mat3x3" ref="ga0bb652c1f4401b9b3359ae6b2bf13678" args="" -->
693 <div class="memitem">
694 <div class="memproto">
695 <table class="memname">
696 <tr>
697 <td class="memname">typedef detail::tmat3x3&lt;lowp_float&gt; lowp_mat3x3</td>
698 </tr>
699 </table>
700 </div>
701 <div class="memdoc">
702
703 <p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
704 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
705
706 <p>Definition at line <a class="el" href="a00120_source.html#l00260">260</a> of file <a class="el" href="a00120_source.html">type_mat3x3.hpp</a>.</p>
707
708 </div>
709 </div>
710 <a class="anchor" id="ga4954a51c5507e62185d6d82dc39016a5"></a><!-- doxytag: member="glm::core::type::precision::lowp_mat4" ref="ga4954a51c5507e62185d6d82dc39016a5" args="" -->
711 <div class="memitem">
712 <div class="memproto">
713 <table class="memname">
714 <tr>
715 <td class="memname">typedef detail::tmat4x4&lt;lowp_float&gt; lowp_mat4</td>
716 </tr>
717 </table>
718 </div>
719 <div class="memdoc">
720
721 <p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
722 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
723
724 <p>Definition at line <a class="el" href="a00124_source.html#l00245">245</a> of file <a class="el" href="a00124_source.html">type_mat4x4.hpp</a>.</p>
725
726 </div>
727 </div>
728 <a class="anchor" id="gac88de3260a910584e02b98f087a34502"></a><!-- doxytag: member="glm::core::type::precision::lowp_mat4x2" ref="gac88de3260a910584e02b98f087a34502" args="" -->
729 <div class="memitem">
730 <div class="memproto">
731 <table class="memname">
732 <tr>
733 <td class="memname">typedef detail::tmat4x2&lt;lowp_float&gt; lowp_mat4x2</td>
734 </tr>
735 </table>
736 </div>
737 <div class="memdoc">
738
739 <p>4 columns of 2 components matrix of low precision floating-point numbers. </p>
740 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
741
742 <p>Definition at line <a class="el" href="a00122_source.html#l00219">219</a> of file <a class="el" href="a00122_source.html">type_mat4x2.hpp</a>.</p>
743
744 </div>
745 </div>
746 <a class="anchor" id="ga0072cb659f9360a7bb2c3e6646609ad7"></a><!-- doxytag: member="glm::core::type::precision::lowp_mat4x3" ref="ga0072cb659f9360a7bb2c3e6646609ad7" args="" -->
747 <div class="memitem">
748 <div class="memproto">
749 <table class="memname">
750 <tr>
751 <td class="memname">typedef detail::tmat4x3&lt;lowp_float&gt; lowp_mat4x3</td>
752 </tr>
753 </table>
754 </div>
755 <div class="memdoc">
756
757 <p>4 columns of 3 components matrix of low precision floating-point numbers. </p>
758 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
759
760 <p>Definition at line <a class="el" href="a00123_source.html#l00217">217</a> of file <a class="el" href="a00123_source.html">type_mat4x3.hpp</a>.</p>
761
762 </div>
763 </div>
764 <a class="anchor" id="gaae14374ee642a8d553ce64f17a4597b1"></a><!-- doxytag: member="glm::core::type::precision::lowp_mat4x4" ref="gaae14374ee642a8d553ce64f17a4597b1" args="" -->
765 <div class="memitem">
766 <div class="memproto">
767 <table class="memname">
768 <tr>
769 <td class="memname">typedef detail::tmat4x4&lt;lowp_float&gt; lowp_mat4x4</td>
770 </tr>
771 </table>
772 </div>
773 <div class="memdoc">
774
775 <p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
776 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
777
778 <p>Definition at line <a class="el" href="a00124_source.html#l00263">263</a> of file <a class="el" href="a00124_source.html">type_mat4x4.hpp</a>.</p>
779
780 </div>
781 </div>
782 <a class="anchor" id="ga25ebc60727fc8b4a1167665f9ecdca97"></a><!-- doxytag: member="glm::core::type::precision::lowp_uint" ref="ga25ebc60727fc8b4a1167665f9ecdca97" args="" -->
783 <div class="memitem">
784 <div class="memproto">
785 <table class="memname">
786 <tr>
787 <td class="memname">typedef detail::lowp_uint_t lowp_uint</td>
788 </tr>
789 </table>
790 </div>
791 <div class="memdoc">
792
793 <p>Low precision unsigned integer. </p>
794 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification. </p>
795
796 <p>Definition at line <a class="el" href="a00114_source.html#l00064">64</a> of file <a class="el" href="a00114_source.html">type_int.hpp</a>.</p>
797
798 </div>
799 </div>
800 <a class="anchor" id="ga9cb9b78162fca09f7ce9d08758f8b3c1"></a><!-- doxytag: member="glm::core::type::precision::lowp_uvec2" ref="ga9cb9b78162fca09f7ce9d08758f8b3c1" args="" -->
801 <div class="memitem">
802 <div class="memproto">
803 <table class="memname">
804 <tr>
805 <td class="memname">typedef detail::tvec2&lt;lowp_uint&gt; lowp_uvec2</td>
806 </tr>
807 </table>
808 </div>
809 <div class="memdoc">
810
811 <p>2 components vector of low precision unsigned integer numbers. </p>
812 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
813
814 <p>Definition at line <a class="el" href="a00130_source.html#l00252">252</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
815
816 </div>
817 </div>
818 <a class="anchor" id="gaefdce0fe4ed79b26ed2b5f00bbf39075"></a><!-- doxytag: member="glm::core::type::precision::lowp_uvec3" ref="gaefdce0fe4ed79b26ed2b5f00bbf39075" args="" -->
819 <div class="memitem">
820 <div class="memproto">
821 <table class="memname">
822 <tr>
823 <td class="memname">typedef detail::tvec3&lt;lowp_uint&gt; lowp_uvec3</td>
824 </tr>
825 </table>
826 </div>
827 <div class="memdoc">
828
829 <p>3 components vector of low precision unsigned integer numbers. </p>
830 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
831
832 <p>Definition at line <a class="el" href="a00131_source.html#l00258">258</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
833
834 </div>
835 </div>
836 <a class="anchor" id="ga3ebda7e36e3948ceea0cbc90061c643d"></a><!-- doxytag: member="glm::core::type::precision::lowp_uvec4" ref="ga3ebda7e36e3948ceea0cbc90061c643d" args="" -->
837 <div class="memitem">
838 <div class="memproto">
839 <table class="memname">
840 <tr>
841 <td class="memname">typedef detail::tvec4&lt;lowp_uint&gt; lowp_uvec4</td>
842 </tr>
843 </table>
844 </div>
845 <div class="memdoc">
846
847 <p>4 components vector of low precision unsigned integer numbers. </p>
848 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
849
850 <p>Definition at line <a class="el" href="a00132_source.html#l00271">271</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
851
852 </div>
853 </div>
854 <a class="anchor" id="ga4df6c67742cd65d6d0a885b3a539d9ff"></a><!-- doxytag: member="glm::core::type::precision::lowp_vec2" ref="ga4df6c67742cd65d6d0a885b3a539d9ff" args="" -->
855 <div class="memitem">
856 <div class="memproto">
857 <table class="memname">
858 <tr>
859 <td class="memname">typedef detail::tvec2&lt;lowp_float&gt; lowp_vec2</td>
860 </tr>
861 </table>
862 </div>
863 <div class="memdoc">
864
865 <p>2 components vector of low precision floating-point numbers. </p>
866 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
867
868 <p>Definition at line <a class="el" href="a00130_source.html#l00216">216</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
869
870 </div>
871 </div>
872 <a class="anchor" id="gab9e39d9db144322c1ad30ab3141084ad"></a><!-- doxytag: member="glm::core::type::precision::lowp_vec3" ref="gab9e39d9db144322c1ad30ab3141084ad" args="" -->
873 <div class="memitem">
874 <div class="memproto">
875 <table class="memname">
876 <tr>
877 <td class="memname">typedef detail::tvec3&lt;lowp_float&gt; lowp_vec3</td>
878 </tr>
879 </table>
880 </div>
881 <div class="memdoc">
882
883 <p>3 components vector of low precision floating-point numbers. </p>
884 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
885
886 <p>Definition at line <a class="el" href="a00131_source.html#l00222">222</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
887
888 </div>
889 </div>
890 <a class="anchor" id="ga653b0bf7ff2cb590f6e1338682fd0327"></a><!-- doxytag: member="glm::core::type::precision::lowp_vec4" ref="ga653b0bf7ff2cb590f6e1338682fd0327" args="" -->
891 <div class="memitem">
892 <div class="memproto">
893 <table class="memname">
894 <tr>
895 <td class="memname">typedef detail::tvec4&lt;lowp_float&gt; lowp_vec4</td>
896 </tr>
897 </table>
898 </div>
899 <div class="memdoc">
900
901 <p>4 components vector of low precision floating-point numbers. </p>
902 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
903
904 <p>Definition at line <a class="el" href="a00132_source.html#l00235">235</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
905
906 </div>
907 </div>
908 <a class="anchor" id="ga280c68f537f4b1e03a00b23e62573b98"></a><!-- doxytag: member="glm::core::type::precision::mediump_float" ref="ga280c68f537f4b1e03a00b23e62573b98" args="" -->
909 <div class="memitem">
910 <div class="memproto">
911 <table class="memname">
912 <tr>
913 <td class="memname">typedef mediump_float_t mediump_float</td>
914 </tr>
915 </table>
916 </div>
917 <div class="memdoc">
918
919 <p>Medium precision floating-point numbers. </p>
920 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification </p>
921
922 <p>Definition at line <a class="el" href="a00111_source.html#l00049">49</a> of file <a class="el" href="a00111_source.html">type_float.hpp</a>.</p>
923
924 </div>
925 </div>
926 <a class="anchor" id="ga212ef8f883878cb7430228a279a7d866"></a><!-- doxytag: member="glm::core::type::precision::mediump_int" ref="ga212ef8f883878cb7430228a279a7d866" args="" -->
927 <div class="memitem">
928 <div class="memproto">
929 <table class="memname">
930 <tr>
931 <td class="memname">typedef detail::mediump_int_t mediump_int</td>
932 </tr>
933 </table>
934 </div>
935 <div class="memdoc">
936
937 <p>Medium precision signed integer. </p>
938 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification. </p>
939
940 <p>Definition at line <a class="el" href="a00114_source.html#l00053">53</a> of file <a class="el" href="a00114_source.html">type_int.hpp</a>.</p>
941
942 </div>
943 </div>
944 <a class="anchor" id="ga269315792504783f450b829161f2bccf"></a><!-- doxytag: member="glm::core::type::precision::mediump_ivec2" ref="ga269315792504783f450b829161f2bccf" args="" -->
945 <div class="memitem">
946 <div class="memproto">
947 <table class="memname">
948 <tr>
949 <td class="memname">typedef detail::tvec2&lt;mediump_int&gt; mediump_ivec2</td>
950 </tr>
951 </table>
952 </div>
953 <div class="memdoc">
954
955 <p>2 components vector of medium precision signed integer numbers. </p>
956 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
957
958 <p>Definition at line <a class="el" href="a00130_source.html#l00228">228</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
959
960 </div>
961 </div>
962 <a class="anchor" id="ga1d8ae738ed79d71f8d381f472d366913"></a><!-- doxytag: member="glm::core::type::precision::mediump_ivec3" ref="ga1d8ae738ed79d71f8d381f472d366913" args="" -->
963 <div class="memitem">
964 <div class="memproto">
965 <table class="memname">
966 <tr>
967 <td class="memname">typedef detail::tvec3&lt;mediump_int&gt; mediump_ivec3</td>
968 </tr>
969 </table>
970 </div>
971 <div class="memdoc">
972
973 <p>3 components vector of medium precision signed integer numbers. </p>
974 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
975
976 <p>Definition at line <a class="el" href="a00131_source.html#l00234">234</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
977
978 </div>
979 </div>
980 <a class="anchor" id="ga5f624d3f93fa1a197ba767f9b1d6d7aa"></a><!-- doxytag: member="glm::core::type::precision::mediump_ivec4" ref="ga5f624d3f93fa1a197ba767f9b1d6d7aa" args="" -->
981 <div class="memitem">
982 <div class="memproto">
983 <table class="memname">
984 <tr>
985 <td class="memname">typedef detail::tvec4&lt;mediump_int&gt; mediump_ivec4</td>
986 </tr>
987 </table>
988 </div>
989 <div class="memdoc">
990
991 <p>4 components vector of medium precision signed integer numbers. </p>
992 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
993
994 <p>Definition at line <a class="el" href="a00132_source.html#l00247">247</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
995
996 </div>
997 </div>
998 <a class="anchor" id="ga42f1426987103b15613671b323e90e5c"></a><!-- doxytag: member="glm::core::type::precision::mediump_mat2" ref="ga42f1426987103b15613671b323e90e5c" args="" -->
999 <div class="memitem">
1000 <div class="memproto">
1001 <table class="memname">
1002 <tr>
1003 <td class="memname">typedef detail::tmat2x2&lt;mediump_float&gt; mediump_mat2</td>
1004 </tr>
1005 </table>
1006 </div>
1007 <div class="memdoc">
1008
1009 <p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
1010 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
1011
1012 <p>Definition at line <a class="el" href="a00116_source.html#l00246">246</a> of file <a class="el" href="a00116_source.html">type_mat2x2.hpp</a>.</p>
1013
1014 </div>
1015 </div>
1016 <a class="anchor" id="gaa5970a6f98990c15b7a3be7cc7b79f4f"></a><!-- doxytag: member="glm::core::type::precision::mediump_mat2x2" ref="gaa5970a6f98990c15b7a3be7cc7b79f4f" args="" -->
1017 <div class="memitem">
1018 <div class="memproto">
1019 <table class="memname">
1020 <tr>
1021 <td class="memname">typedef detail::tmat2x2&lt;mediump_float&gt; mediump_mat2x2</td>
1022 </tr>
1023 </table>
1024 </div>
1025 <div class="memdoc">
1026
1027 <p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
1028 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
1029
1030 <p>Definition at line <a class="el" href="a00116_source.html#l00264">264</a> of file <a class="el" href="a00116_source.html">type_mat2x2.hpp</a>.</p>
1031
1032 </div>
1033 </div>
1034 <a class="anchor" id="gacceeb5355767eb306c12ea961b31e808"></a><!-- doxytag: member="glm::core::type::precision::mediump_mat2x3" ref="gacceeb5355767eb306c12ea961b31e808" args="" -->
1035 <div class="memitem">
1036 <div class="memproto">
1037 <table class="memname">
1038 <tr>
1039 <td class="memname">typedef detail::tmat2x3&lt;mediump_float&gt; mediump_mat2x3</td>
1040 </tr>
1041 </table>
1042 </div>
1043 <div class="memdoc">
1044
1045 <p>2 columns of 3 components matrix of medium precision floating-point numbers. </p>
1046 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
1047
1048 <p>Definition at line <a class="el" href="a00117_source.html#l00212">212</a> of file <a class="el" href="a00117_source.html">type_mat2x3.hpp</a>.</p>
1049
1050 </div>
1051 </div>
1052 <a class="anchor" id="ga0957c911430959270e296b6abf1463c3"></a><!-- doxytag: member="glm::core::type::precision::mediump_mat3" ref="ga0957c911430959270e296b6abf1463c3" args="" -->
1053 <div class="memitem">
1054 <div class="memproto">
1055 <table class="memname">
1056 <tr>
1057 <td class="memname">typedef detail::tmat3x3&lt;mediump_float&gt; mediump_mat3</td>
1058 </tr>
1059 </table>
1060 </div>
1061 <div class="memdoc">
1062
1063 <p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
1064 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
1065
1066 <p>Definition at line <a class="el" href="a00120_source.html#l00249">249</a> of file <a class="el" href="a00120_source.html">type_mat3x3.hpp</a>.</p>
1067
1068 </div>
1069 </div>
1070 <a class="anchor" id="ga76c68d8cad333d1f5ba1b20a40415cda"></a><!-- doxytag: member="glm::core::type::precision::mediump_mat3x3" ref="ga76c68d8cad333d1f5ba1b20a40415cda" args="" -->
1071 <div class="memitem">
1072 <div class="memproto">
1073 <table class="memname">
1074 <tr>
1075 <td class="memname">typedef detail::tmat3x3&lt;mediump_float&gt; mediump_mat3x3</td>
1076 </tr>
1077 </table>
1078 </div>
1079 <div class="memdoc">
1080
1081 <p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
1082 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
1083
1084 <p>Definition at line <a class="el" href="a00120_source.html#l00266">266</a> of file <a class="el" href="a00120_source.html">type_mat3x3.hpp</a>.</p>
1085
1086 </div>
1087 </div>
1088 <a class="anchor" id="gabb71589a7fc80f6ca0c134efb878338d"></a><!-- doxytag: member="glm::core::type::precision::mediump_mat4" ref="gabb71589a7fc80f6ca0c134efb878338d" args="" -->
1089 <div class="memitem">
1090 <div class="memproto">
1091 <table class="memname">
1092 <tr>
1093 <td class="memname">typedef detail::tmat4x4&lt;mediump_float&gt; mediump_mat4</td>
1094 </tr>
1095 </table>
1096 </div>
1097 <div class="memdoc">
1098
1099 <p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
1100 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
1101
1102 <p>Definition at line <a class="el" href="a00124_source.html#l00251">251</a> of file <a class="el" href="a00124_source.html">type_mat4x4.hpp</a>.</p>
1103
1104 </div>
1105 </div>
1106 <a class="anchor" id="ga31b1d523c1dc83c0ef9cded942950666"></a><!-- doxytag: member="glm::core::type::precision::mediump_mat4x2" ref="ga31b1d523c1dc83c0ef9cded942950666" args="" -->
1107 <div class="memitem">
1108 <div class="memproto">
1109 <table class="memname">
1110 <tr>
1111 <td class="memname">typedef detail::tmat4x2&lt;mediump_float&gt; mediump_mat4x2</td>
1112 </tr>
1113 </table>
1114 </div>
1115 <div class="memdoc">
1116
1117 <p>4 columns of 2 components matrix of medium precision floating-point numbers. </p>
1118 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
1119
1120 <p>Definition at line <a class="el" href="a00122_source.html#l00225">225</a> of file <a class="el" href="a00122_source.html">type_mat4x2.hpp</a>.</p>
1121
1122 </div>
1123 </div>
1124 <a class="anchor" id="ga236d4c1060c1ce9908d3de61b3d9334e"></a><!-- doxytag: member="glm::core::type::precision::mediump_mat4x3" ref="ga236d4c1060c1ce9908d3de61b3d9334e" args="" -->
1125 <div class="memitem">
1126 <div class="memproto">
1127 <table class="memname">
1128 <tr>
1129 <td class="memname">typedef detail::tmat4x3&lt;mediump_float&gt; mediump_mat4x3</td>
1130 </tr>
1131 </table>
1132 </div>
1133 <div class="memdoc">
1134
1135 <p>4 columns of 3 components matrix of medium precision floating-point numbers. </p>
1136 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
1137
1138 <p>Definition at line <a class="el" href="a00123_source.html#l00223">223</a> of file <a class="el" href="a00123_source.html">type_mat4x3.hpp</a>.</p>
1139
1140 </div>
1141 </div>
1142 <a class="anchor" id="gad0e848d34a6838e413a41018228ded41"></a><!-- doxytag: member="glm::core::type::precision::mediump_mat4x4" ref="gad0e848d34a6838e413a41018228ded41" args="" -->
1143 <div class="memitem">
1144 <div class="memproto">
1145 <table class="memname">
1146 <tr>
1147 <td class="memname">typedef detail::tmat4x4&lt;mediump_float&gt; mediump_mat4x4</td>
1148 </tr>
1149 </table>
1150 </div>
1151 <div class="memdoc">
1152
1153 <p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
1154 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers </p>
1155
1156 <p>Definition at line <a class="el" href="a00124_source.html#l00269">269</a> of file <a class="el" href="a00124_source.html">type_mat4x4.hpp</a>.</p>
1157
1158 </div>
1159 </div>
1160 <a class="anchor" id="ga0b7e01c52b9e5bf3369761b79b5f4f8e"></a><!-- doxytag: member="glm::core::type::precision::mediump_uint" ref="ga0b7e01c52b9e5bf3369761b79b5f4f8e" args="" -->
1161 <div class="memitem">
1162 <div class="memproto">
1163 <table class="memname">
1164 <tr>
1165 <td class="memname">typedef detail::mediump_uint_t mediump_uint</td>
1166 </tr>
1167 </table>
1168 </div>
1169 <div class="memdoc">
1170
1171 <p>Medium precision unsigned integer. </p>
1172 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification. </p>
1173
1174 <p>Definition at line <a class="el" href="a00114_source.html#l00069">69</a> of file <a class="el" href="a00114_source.html">type_int.hpp</a>.</p>
1175
1176 </div>
1177 </div>
1178 <a class="anchor" id="ga5cd4f5f5667de09c7c12df85d138f599"></a><!-- doxytag: member="glm::core::type::precision::mediump_uvec2" ref="ga5cd4f5f5667de09c7c12df85d138f599" args="" -->
1179 <div class="memitem">
1180 <div class="memproto">
1181 <table class="memname">
1182 <tr>
1183 <td class="memname">typedef detail::tvec2&lt;mediump_uint&gt; mediump_uvec2</td>
1184 </tr>
1185 </table>
1186 </div>
1187 <div class="memdoc">
1188
1189 <p>2 components vector of medium precision unsigned integer numbers. </p>
1190 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
1191
1192 <p>Definition at line <a class="el" href="a00130_source.html#l00246">246</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
1193
1194 </div>
1195 </div>
1196 <a class="anchor" id="ga70d49eff07e7988447c93a83f9f311b6"></a><!-- doxytag: member="glm::core::type::precision::mediump_uvec3" ref="ga70d49eff07e7988447c93a83f9f311b6" args="" -->
1197 <div class="memitem">
1198 <div class="memproto">
1199 <table class="memname">
1200 <tr>
1201 <td class="memname">typedef detail::tvec3&lt;mediump_uint&gt; mediump_uvec3</td>
1202 </tr>
1203 </table>
1204 </div>
1205 <div class="memdoc">
1206
1207 <p>3 components vector of medium precision unsigned integer numbers. </p>
1208 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
1209
1210 <p>Definition at line <a class="el" href="a00131_source.html#l00252">252</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
1211
1212 </div>
1213 </div>
1214 <a class="anchor" id="ga4b2bc896ec01198bdc4f9dc896e5f06d"></a><!-- doxytag: member="glm::core::type::precision::mediump_uvec4" ref="ga4b2bc896ec01198bdc4f9dc896e5f06d" args="" -->
1215 <div class="memitem">
1216 <div class="memproto">
1217 <table class="memname">
1218 <tr>
1219 <td class="memname">typedef detail::tvec4&lt;mediump_uint&gt; mediump_uvec4</td>
1220 </tr>
1221 </table>
1222 </div>
1223 <div class="memdoc">
1224
1225 <p>4 components vector of medium precision unsigned integer numbers. </p>
1226 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
1227
1228 <p>Definition at line <a class="el" href="a00132_source.html#l00265">265</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
1229
1230 </div>
1231 </div>
1232 <a class="anchor" id="ga9a8a10fce5852b088dd631b34e942b7d"></a><!-- doxytag: member="glm::core::type::precision::mediump_vec2" ref="ga9a8a10fce5852b088dd631b34e942b7d" args="" -->
1233 <div class="memitem">
1234 <div class="memproto">
1235 <table class="memname">
1236 <tr>
1237 <td class="memname">typedef detail::tvec2&lt;mediump_float&gt; mediump_vec2</td>
1238 </tr>
1239 </table>
1240 </div>
1241 <div class="memdoc">
1242
1243 <p>2 components vector of medium precision floating-point numbers. </p>
1244 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
1245
1246 <p>Definition at line <a class="el" href="a00130_source.html#l00210">210</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
1247
1248 </div>
1249 </div>
1250 <a class="anchor" id="gaf6aa71f085a150f42929a4b77458143e"></a><!-- doxytag: member="glm::core::type::precision::mediump_vec3" ref="gaf6aa71f085a150f42929a4b77458143e" args="" -->
1251 <div class="memitem">
1252 <div class="memproto">
1253 <table class="memname">
1254 <tr>
1255 <td class="memname">typedef detail::tvec3&lt;mediump_float&gt; mediump_vec3</td>
1256 </tr>
1257 </table>
1258 </div>
1259 <div class="memdoc">
1260
1261 <p>3 components vector of medium precision floating-point numbers. </p>
1262 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
1263
1264 <p>Definition at line <a class="el" href="a00131_source.html#l00216">216</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
1265
1266 </div>
1267 </div>
1268 <a class="anchor" id="gafddaa69a1d46a27e2767b780e0e6b4b0"></a><!-- doxytag: member="glm::core::type::precision::mediump_vec4" ref="gafddaa69a1d46a27e2767b780e0e6b4b0" args="" -->
1269 <div class="memitem">
1270 <div class="memproto">
1271 <table class="memname">
1272 <tr>
1273 <td class="memname">typedef detail::tvec4&lt;mediump_float&gt; mediump_vec4</td>
1274 </tr>
1275 </table>
1276 </div>
1277 <div class="memdoc">
1278
1279 <p>4 components vector of medium precision floating-point numbers. </p>
1280 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
1281
1282 <p>Definition at line <a class="el" href="a00132_source.html#l00229">229</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
7671283
7681284 </div>
7691285 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>Precision types</title>
4 <title>Template types</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#typedef-members">Typedefs</a> </div>
32 <a href="#nested-classes">Classes</a> </div>
3333 <div class="headertitle">
34 <h1>Precision types</h1> </div>
35 <div class="ingroups"><a class="el" href="a00234.html">GLM Core</a></div></div>
34 <h1>Template types</h1> </div>
35 <div class="ingroups"><a class="el" href="a00233.html">GLM Core</a></div></div>
3636 <div class="contents">
3737
38 <p>Non-GLSL types that are used to define precision-based types.
38 <p>The generic template types used as the basis for the core types.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
41 <tr><td colspan="2"><h2><a name="typedef-members"></a>
42 Typedefs</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">typedef highp_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">highp_float</a></td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::highp_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2&lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga306173e656477f59bf0164a623780236">highp_ivec2</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3&lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gaccca78e0907313665d47af163c17c5bb">highp_ivec3</a></td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4&lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga320e40ad19a7be26cff134cce4f15a51">highp_ivec4</a></td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2<br class="typebreak"/>
49 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga9aa0c5dce81439aa15a0d5b5e5006d81">highp_mat2x2</a></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x3<br class="typebreak"/>
51 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga895ba4ec32bd7cfb0d07572556572069">highp_mat2x3</a></td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3<br class="typebreak"/>
53 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga20aa8e5c6061576079c10e86cd743c8d">highp_mat3x3</a></td></tr>
54 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x2<br class="typebreak"/>
55 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga3178de2c189bfdda4c73d6af8017f5d3">highp_mat4x2</a></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x3<br class="typebreak"/>
57 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga00d8bf8ebaab7d6647a3b7f73ae324af">highp_mat4x3</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4<br class="typebreak"/>
59 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gadd2ef277f86f6fa29804a22d1eb7d662">highp_mat4x4</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::highp_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2&lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gad4a5243fc438d0f2efbc22d075b4e399">highp_uvec2</a></td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3&lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gaf4b32075ad193e4f47c8bfc367593d8c">highp_uvec3</a></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4&lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga5ad6375e810e3050a6c845b600422b70">highp_uvec4</a></td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2<br class="typebreak"/>
65 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga9b65d7afd0783a02f5b3d1b75d1d872e">highp_vec2</a></td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3<br class="typebreak"/>
67 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga0d3129f5f6644cb7552f520ff0dfa789">highp_vec3</a></td></tr>
68 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4<br class="typebreak"/>
69 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gaaef692a5e2eae7dad32ca2f8ed0d16d8">highp_vec4</a></td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top">typedef lowp_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a></td></tr>
71 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a></td></tr>
72 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga26364654fd75ba6c7f11a65967a7fbee">lowp_ivec2</a></td></tr>
73 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gac246e3a1a470974283d6618ad77fd477">lowp_ivec3</a></td></tr>
74 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gafc7521507e40fbc269149475a725dbbe">lowp_ivec4</a></td></tr>
75 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2<br class="typebreak"/>
76 &lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga8b49c3aa6665011440c32c281b2032c0">lowp_mat2x2</a></td></tr>
77 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x3<br class="typebreak"/>
78 &lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga0b32355a31b4c14e98f69b43a9077456">lowp_mat2x3</a></td></tr>
79 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3<br class="typebreak"/>
80 &lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga0bb652c1f4401b9b3359ae6b2bf13678">lowp_mat3x3</a></td></tr>
81 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x2<br class="typebreak"/>
82 &lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gac88de3260a910584e02b98f087a34502">lowp_mat4x2</a></td></tr>
83 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x3<br class="typebreak"/>
84 &lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga0072cb659f9360a7bb2c3e6646609ad7">lowp_mat4x3</a></td></tr>
85 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4<br class="typebreak"/>
86 &lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gaae14374ee642a8d553ce64f17a4597b1">lowp_mat4x4</a></td></tr>
87 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a></td></tr>
88 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2&lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga9cb9b78162fca09f7ce9d08758f8b3c1">lowp_uvec2</a></td></tr>
89 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3&lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gaefdce0fe4ed79b26ed2b5f00bbf39075">lowp_uvec3</a></td></tr>
90 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4&lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga3ebda7e36e3948ceea0cbc90061c643d">lowp_uvec4</a></td></tr>
91 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2&lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga4df6c67742cd65d6d0a885b3a539d9ff">lowp_vec2</a></td></tr>
92 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3&lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gab9e39d9db144322c1ad30ab3141084ad">lowp_vec3</a></td></tr>
93 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4&lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga653b0bf7ff2cb590f6e1338682fd0327">lowp_vec4</a></td></tr>
94 <tr><td class="memItemLeft" align="right" valign="top">typedef mediump_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a></td></tr>
95 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a></td></tr>
96 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2<br class="typebreak"/>
97 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga269315792504783f450b829161f2bccf">mediump_ivec2</a></td></tr>
98 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3<br class="typebreak"/>
99 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga1d8ae738ed79d71f8d381f472d366913">mediump_ivec3</a></td></tr>
100 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4<br class="typebreak"/>
101 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga5f624d3f93fa1a197ba767f9b1d6d7aa">mediump_ivec4</a></td></tr>
102 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2<br class="typebreak"/>
103 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gaa5970a6f98990c15b7a3be7cc7b79f4f">mediump_mat2x2</a></td></tr>
104 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x3<br class="typebreak"/>
105 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gacceeb5355767eb306c12ea961b31e808">mediump_mat2x3</a></td></tr>
106 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3<br class="typebreak"/>
107 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga76c68d8cad333d1f5ba1b20a40415cda">mediump_mat3x3</a></td></tr>
108 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x2<br class="typebreak"/>
109 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga31b1d523c1dc83c0ef9cded942950666">mediump_mat4x2</a></td></tr>
110 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x3<br class="typebreak"/>
111 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga236d4c1060c1ce9908d3de61b3d9334e">mediump_mat4x3</a></td></tr>
112 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4<br class="typebreak"/>
113 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gad0e848d34a6838e413a41018228ded41">mediump_mat4x4</a></td></tr>
114 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a></td></tr>
115 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2<br class="typebreak"/>
116 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga5cd4f5f5667de09c7c12df85d138f599">mediump_uvec2</a></td></tr>
117 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3<br class="typebreak"/>
118 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga70d49eff07e7988447c93a83f9f311b6">mediump_uvec3</a></td></tr>
119 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4<br class="typebreak"/>
120 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga4b2bc896ec01198bdc4f9dc896e5f06d">mediump_uvec4</a></td></tr>
121 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2<br class="typebreak"/>
122 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#ga9a8a10fce5852b088dd631b34e942b7d">mediump_vec2</a></td></tr>
123 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3<br class="typebreak"/>
124 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gaf6aa71f085a150f42929a4b77458143e">mediump_vec3</a></td></tr>
125 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4<br class="typebreak"/>
126 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html#gafddaa69a1d46a27e2767b780e0e6b4b0">mediump_vec4</a></td></tr>
41 <tr><td colspan="2"><h2><a name="nested-classes"></a>
42 Classes</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html">tmat2x2&lt; T &gt;</a></td></tr>
44 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 2 * 2 matrix of floating-point numbers. <a href="a00010.html#_details">More...</a><br/></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html">tmat2x3&lt; T &gt;</a></td></tr>
46 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 2 columns and 3 rows matrix of floating-point numbers. <a href="a00011.html#_details">More...</a><br/></td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html">tmat2x4&lt; T &gt;</a></td></tr>
48 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 2 columns and 4 rows matrix of floating-point numbers. <a href="a00012.html#_details">More...</a><br/></td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html">tmat3x2&lt; T &gt;</a></td></tr>
50 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 3 columns and 2 rows matrix of floating-point numbers. <a href="a00013.html#_details">More...</a><br/></td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html">tmat3x3&lt; T &gt;</a></td></tr>
52 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 3 * 3 matrix of floating-point numbers. <a href="a00014.html#_details">More...</a><br/></td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html">tmat3x4&lt; T &gt;</a></td></tr>
54 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 3 columns and 4 rows matrix of floating-point numbers. <a href="a00015.html#_details">More...</a><br/></td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html">tmat4x2&lt; T &gt;</a></td></tr>
56 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 4 columns and 2 rows matrix of floating-point numbers. <a href="a00016.html#_details">More...</a><br/></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00017.html">tmat4x3&lt; T &gt;</a></td></tr>
58 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 4 columns and 3 rows matrix of floating-point numbers. <a href="a00017.html#_details">More...</a><br/></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html">tmat4x4&lt; T &gt;</a></td></tr>
60 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 4 * 4 matrix of floating-point numbers. <a href="a00018.html#_details">More...</a><br/></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00020.html">tvec2&lt; T &gt;</a></td></tr>
62 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The basic 2D vector type. <a href="a00020.html#_details">More...</a><br/></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html">tvec3&lt; T &gt;</a></td></tr>
64 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic 3D vector type. <a href="a00021.html#_details">More...</a><br/></td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html">tvec4&lt; T &gt;</a></td></tr>
66 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic 4D vector type. <a href="a00022.html#_details">More...</a><br/></td></tr>
12767 </table>
12868 <hr/><a name="_details"></a><h2>Detailed Description</h2>
129 <p>Non-GLSL types that are used to define precision-based types. </p>
130 <p>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 <em>do</em> have an effect.</p>
131 <p>C++ has no language equivalent to precision qualifiers. So GLM provides the next-best thing: a number of typedefs of the <a class="el" href="a00237.html">Template types</a> that use a particular precision.</p>
132 <p>None of these types make any guarantees about the actual precision used. </p>
133 <hr/><h2>Typedef Documentation</h2>
134 <a class="anchor" id="ga6e95694987ba35af6f736638be39626a"></a><!-- doxytag: member="glm::core::type::precision::highp_float" ref="ga6e95694987ba35af6f736638be39626a" args="" -->
135 <div class="memitem">
136 <div class="memproto">
137 <table class="memname">
138 <tr>
139 <td class="memname">typedef highp_float_t highp_float</td>
140 </tr>
141 </table>
142 </div>
143 <div class="memdoc">
144
145 <p>High precision floating-point numbers. </p>
146 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification </p>
147
148 <p>Definition at line <a class="el" href="a00111_source.html#l00054">54</a> of file <a class="el" href="a00111_source.html">type_float.hpp</a>.</p>
149
150 </div>
151 </div>
152 <a class="anchor" id="gaaabe7eb044941ebf308b53a447d692dc"></a><!-- doxytag: member="glm::core::type::precision::highp_int" ref="gaaabe7eb044941ebf308b53a447d692dc" args="" -->
153 <div class="memitem">
154 <div class="memproto">
155 <table class="memname">
156 <tr>
157 <td class="memname">typedef detail::highp_int_t highp_int</td>
158 </tr>
159 </table>
160 </div>
161 <div class="memdoc">
162
163 <p>High precision signed integer. </p>
164 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification. </p>
165
166 <p>Definition at line <a class="el" href="a00114_source.html#l00062">62</a> of file <a class="el" href="a00114_source.html">type_int.hpp</a>.</p>
167
168 </div>
169 </div>
170 <a class="anchor" id="ga306173e656477f59bf0164a623780236"></a><!-- doxytag: member="glm::core::type::precision::highp_ivec2" ref="ga306173e656477f59bf0164a623780236" args="" -->
171 <div class="memitem">
172 <div class="memproto">
173 <table class="memname">
174 <tr>
175 <td class="memname">typedef detail::tvec2&lt;highp_int&gt; highp_ivec2</td>
176 </tr>
177 </table>
178 </div>
179 <div class="memdoc">
180
181 <p>2 components vector of high precision signed integer numbers. </p>
182 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
183
184 <p>Definition at line <a class="el" href="a00130_source.html#l00228">228</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
185
186 </div>
187 </div>
188 <a class="anchor" id="gaccca78e0907313665d47af163c17c5bb"></a><!-- doxytag: member="glm::core::type::precision::highp_ivec3" ref="gaccca78e0907313665d47af163c17c5bb" args="" -->
189 <div class="memitem">
190 <div class="memproto">
191 <table class="memname">
192 <tr>
193 <td class="memname">typedef detail::tvec3&lt;highp_int&gt; highp_ivec3</td>
194 </tr>
195 </table>
196 </div>
197 <div class="memdoc">
198
199 <p>3 components vector of high precision signed integer numbers. </p>
200 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
201
202 <p>Definition at line <a class="el" href="a00131_source.html#l00233">233</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
203
204 </div>
205 </div>
206 <a class="anchor" id="ga320e40ad19a7be26cff134cce4f15a51"></a><!-- doxytag: member="glm::core::type::precision::highp_ivec4" ref="ga320e40ad19a7be26cff134cce4f15a51" args="" -->
207 <div class="memitem">
208 <div class="memproto">
209 <table class="memname">
210 <tr>
211 <td class="memname">typedef detail::tvec4&lt;highp_int&gt; highp_ivec4</td>
212 </tr>
213 </table>
214 </div>
215 <div class="memdoc">
216
217 <p>4 components vector of high precision signed integer numbers. </p>
218 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
219
220 <p>Definition at line <a class="el" href="a00132_source.html#l00249">249</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
221
222 </div>
223 </div>
224 <a class="anchor" id="ga9aa0c5dce81439aa15a0d5b5e5006d81"></a><!-- doxytag: member="glm::core::type::precision::highp_mat2x2" ref="ga9aa0c5dce81439aa15a0d5b5e5006d81" args="" -->
225 <div class="memitem">
226 <div class="memproto">
227 <table class="memname">
228 <tr>
229 <td class="memname">typedef detail::tmat2x2&lt;highp_float&gt; highp_mat2x2</td>
230 </tr>
231 </table>
232 </div>
233 <div class="memdoc">
234
235 <p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
236 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
237
238 <p>Definition at line <a class="el" href="a00116_source.html#l00239">239</a> of file <a class="el" href="a00116_source.html">type_mat2x2.hpp</a>.</p>
239
240 </div>
241 </div>
242 <a class="anchor" id="ga895ba4ec32bd7cfb0d07572556572069"></a><!-- doxytag: member="glm::core::type::precision::highp_mat2x3" ref="ga895ba4ec32bd7cfb0d07572556572069" args="" -->
243 <div class="memitem">
244 <div class="memproto">
245 <table class="memname">
246 <tr>
247 <td class="memname">typedef detail::tmat2x3&lt;highp_float&gt; highp_mat2x3</td>
248 </tr>
249 </table>
250 </div>
251 <div class="memdoc">
252
253 <p>2 columns of 3 components matrix of high precision floating-point numbers. </p>
254 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
255
256 <p>Definition at line <a class="el" href="a00117_source.html#l00206">206</a> of file <a class="el" href="a00117_source.html">type_mat2x3.hpp</a>.</p>
257
258 </div>
259 </div>
260 <a class="anchor" id="ga20aa8e5c6061576079c10e86cd743c8d"></a><!-- doxytag: member="glm::core::type::precision::highp_mat3x3" ref="ga20aa8e5c6061576079c10e86cd743c8d" args="" -->
261 <div class="memitem">
262 <div class="memproto">
263 <table class="memname">
264 <tr>
265 <td class="memname">typedef detail::tmat3x3&lt;highp_float&gt; highp_mat3x3</td>
266 </tr>
267 </table>
268 </div>
269 <div class="memdoc">
270
271 <p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
272 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
273
274 <p>Definition at line <a class="el" href="a00120_source.html#l00238">238</a> of file <a class="el" href="a00120_source.html">type_mat3x3.hpp</a>.</p>
275
276 </div>
277 </div>
278 <a class="anchor" id="ga3178de2c189bfdda4c73d6af8017f5d3"></a><!-- doxytag: member="glm::core::type::precision::highp_mat4x2" ref="ga3178de2c189bfdda4c73d6af8017f5d3" args="" -->
279 <div class="memitem">
280 <div class="memproto">
281 <table class="memname">
282 <tr>
283 <td class="memname">typedef detail::tmat4x2&lt;highp_float&gt; highp_mat4x2</td>
284 </tr>
285 </table>
286 </div>
287 <div class="memdoc">
288
289 <p>4 columns of 2 components matrix of high precision floating-point numbers. </p>
290 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
291
292 <p>Definition at line <a class="el" href="a00122_source.html#l00210">210</a> of file <a class="el" href="a00122_source.html">type_mat4x2.hpp</a>.</p>
293
294 </div>
295 </div>
296 <a class="anchor" id="ga00d8bf8ebaab7d6647a3b7f73ae324af"></a><!-- doxytag: member="glm::core::type::precision::highp_mat4x3" ref="ga00d8bf8ebaab7d6647a3b7f73ae324af" args="" -->
297 <div class="memitem">
298 <div class="memproto">
299 <table class="memname">
300 <tr>
301 <td class="memname">typedef detail::tmat4x3&lt;highp_float&gt; highp_mat4x3</td>
302 </tr>
303 </table>
304 </div>
305 <div class="memdoc">
306
307 <p>4 columns of 3 components matrix of high precision floating-point numbers. </p>
308 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
309
310 <p>Definition at line <a class="el" href="a00123_source.html#l00210">210</a> of file <a class="el" href="a00123_source.html">type_mat4x3.hpp</a>.</p>
311
312 </div>
313 </div>
314 <a class="anchor" id="gadd2ef277f86f6fa29804a22d1eb7d662"></a><!-- doxytag: member="glm::core::type::precision::highp_mat4x4" ref="gadd2ef277f86f6fa29804a22d1eb7d662" args="" -->
315 <div class="memitem">
316 <div class="memproto">
317 <table class="memname">
318 <tr>
319 <td class="memname">typedef detail::tmat4x4&lt;highp_float&gt; highp_mat4x4</td>
320 </tr>
321 </table>
322 </div>
323 <div class="memdoc">
324
325 <p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
326 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
327
328 <p>Definition at line <a class="el" href="a00124_source.html#l00238">238</a> of file <a class="el" href="a00124_source.html">type_mat4x4.hpp</a>.</p>
329
330 </div>
331 </div>
332 <a class="anchor" id="ga73e8a694d7fc69143cf25161d18d1dcf"></a><!-- doxytag: member="glm::core::type::precision::highp_uint" ref="ga73e8a694d7fc69143cf25161d18d1dcf" args="" -->
333 <div class="memitem">
334 <div class="memproto">
335 <table class="memname">
336 <tr>
337 <td class="memname">typedef detail::highp_uint_t highp_uint</td>
338 </tr>
339 </table>
340 </div>
341 <div class="memdoc">
342
343 <p>High precision unsigned integer. </p>
344 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification. </p>
345
346 <p>Definition at line <a class="el" href="a00114_source.html#l00078">78</a> of file <a class="el" href="a00114_source.html">type_int.hpp</a>.</p>
347
348 </div>
349 </div>
350 <a class="anchor" id="gad4a5243fc438d0f2efbc22d075b4e399"></a><!-- doxytag: member="glm::core::type::precision::highp_uvec2" ref="gad4a5243fc438d0f2efbc22d075b4e399" args="" -->
351 <div class="memitem">
352 <div class="memproto">
353 <table class="memname">
354 <tr>
355 <td class="memname">typedef detail::tvec2&lt;highp_uint&gt; highp_uvec2</td>
356 </tr>
357 </table>
358 </div>
359 <div class="memdoc">
360
361 <p>2 components vector of high precision unsigned integer numbers. </p>
362 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
363
364 <p>Definition at line <a class="el" href="a00130_source.html#l00244">244</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
365
366 </div>
367 </div>
368 <a class="anchor" id="gaf4b32075ad193e4f47c8bfc367593d8c"></a><!-- doxytag: member="glm::core::type::precision::highp_uvec3" ref="gaf4b32075ad193e4f47c8bfc367593d8c" args="" -->
369 <div class="memitem">
370 <div class="memproto">
371 <table class="memname">
372 <tr>
373 <td class="memname">typedef detail::tvec3&lt;highp_uint&gt; highp_uvec3</td>
374 </tr>
375 </table>
376 </div>
377 <div class="memdoc">
378
379 <p>3 components vector of high precision unsigned integer numbers. </p>
380 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
381
382 <p>Definition at line <a class="el" href="a00131_source.html#l00249">249</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
383
384 </div>
385 </div>
386 <a class="anchor" id="ga5ad6375e810e3050a6c845b600422b70"></a><!-- doxytag: member="glm::core::type::precision::highp_uvec4" ref="ga5ad6375e810e3050a6c845b600422b70" args="" -->
387 <div class="memitem">
388 <div class="memproto">
389 <table class="memname">
390 <tr>
391 <td class="memname">typedef detail::tvec4&lt;highp_uint&gt; highp_uvec4</td>
392 </tr>
393 </table>
394 </div>
395 <div class="memdoc">
396
397 <p>4 components vector of high precision unsigned integer numbers. </p>
398 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
399
400 <p>Definition at line <a class="el" href="a00132_source.html#l00265">265</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
401
402 </div>
403 </div>
404 <a class="anchor" id="ga9b65d7afd0783a02f5b3d1b75d1d872e"></a><!-- doxytag: member="glm::core::type::precision::highp_vec2" ref="ga9b65d7afd0783a02f5b3d1b75d1d872e" args="" -->
405 <div class="memitem">
406 <div class="memproto">
407 <table class="memname">
408 <tr>
409 <td class="memname">typedef detail::tvec2&lt;highp_float&gt; highp_vec2</td>
410 </tr>
411 </table>
412 </div>
413 <div class="memdoc">
414
415 <p>2 components vector of high precision floating-point numbers. </p>
416 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
417
418 <p>Definition at line <a class="el" href="a00130_source.html#l00212">212</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
419
420 </div>
421 </div>
422 <a class="anchor" id="ga0d3129f5f6644cb7552f520ff0dfa789"></a><!-- doxytag: member="glm::core::type::precision::highp_vec3" ref="ga0d3129f5f6644cb7552f520ff0dfa789" args="" -->
423 <div class="memitem">
424 <div class="memproto">
425 <table class="memname">
426 <tr>
427 <td class="memname">typedef detail::tvec3&lt;highp_float&gt; highp_vec3</td>
428 </tr>
429 </table>
430 </div>
431 <div class="memdoc">
432
433 <p>3 components vector of high precision floating-point numbers. </p>
434 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
435
436 <p>Definition at line <a class="el" href="a00131_source.html#l00217">217</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
437
438 </div>
439 </div>
440 <a class="anchor" id="gaaef692a5e2eae7dad32ca2f8ed0d16d8"></a><!-- doxytag: member="glm::core::type::precision::highp_vec4" ref="gaaef692a5e2eae7dad32ca2f8ed0d16d8" args="" -->
441 <div class="memitem">
442 <div class="memproto">
443 <table class="memname">
444 <tr>
445 <td class="memname">typedef detail::tvec4&lt;highp_float&gt; highp_vec4</td>
446 </tr>
447 </table>
448 </div>
449 <div class="memdoc">
450
451 <p>4 components vector of high precision floating-point numbers. </p>
452 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
453
454 <p>Definition at line <a class="el" href="a00132_source.html#l00233">233</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
455
456 </div>
457 </div>
458 <a class="anchor" id="ga358d69e11b1c0f6c7c469e0d39ab7fd1"></a><!-- doxytag: member="glm::core::type::precision::lowp_float" ref="ga358d69e11b1c0f6c7c469e0d39ab7fd1" args="" -->
459 <div class="memitem">
460 <div class="memproto">
461 <table class="memname">
462 <tr>
463 <td class="memname">typedef lowp_float_t lowp_float</td>
464 </tr>
465 </table>
466 </div>
467 <div class="memdoc">
468
469 <p>Low precision floating-point numbers. </p>
470 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification </p>
471
472 <p>Definition at line <a class="el" href="a00111_source.html#l00044">44</a> of file <a class="el" href="a00111_source.html">type_float.hpp</a>.</p>
473
474 </div>
475 </div>
476 <a class="anchor" id="gad0fa1e32e8b3552ed63556eca51c620e"></a><!-- doxytag: member="glm::core::type::precision::lowp_int" ref="gad0fa1e32e8b3552ed63556eca51c620e" args="" -->
477 <div class="memitem">
478 <div class="memproto">
479 <table class="memname">
480 <tr>
481 <td class="memname">typedef detail::lowp_int_t lowp_int</td>
482 </tr>
483 </table>
484 </div>
485 <div class="memdoc">
486
487 <p>Low precision signed integer. </p>
488 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification. </p>
489
490 <p>Definition at line <a class="el" href="a00114_source.html#l00052">52</a> of file <a class="el" href="a00114_source.html">type_int.hpp</a>.</p>
491
492 </div>
493 </div>
494 <a class="anchor" id="ga26364654fd75ba6c7f11a65967a7fbee"></a><!-- doxytag: member="glm::core::type::precision::lowp_ivec2" ref="ga26364654fd75ba6c7f11a65967a7fbee" args="" -->
495 <div class="memitem">
496 <div class="memproto">
497 <table class="memname">
498 <tr>
499 <td class="memname">typedef detail::tvec2&lt;lowp_int&gt; lowp_ivec2</td>
500 </tr>
501 </table>
502 </div>
503 <div class="memdoc">
504
505 <p>2 components vector of low precision signed integer numbers. </p>
506 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
507
508 <p>Definition at line <a class="el" href="a00130_source.html#l00238">238</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
509
510 </div>
511 </div>
512 <a class="anchor" id="gac246e3a1a470974283d6618ad77fd477"></a><!-- doxytag: member="glm::core::type::precision::lowp_ivec3" ref="gac246e3a1a470974283d6618ad77fd477" args="" -->
513 <div class="memitem">
514 <div class="memproto">
515 <table class="memname">
516 <tr>
517 <td class="memname">typedef detail::tvec3&lt;lowp_int&gt; lowp_ivec3</td>
518 </tr>
519 </table>
520 </div>
521 <div class="memdoc">
522
523 <p>3 components vector of low precision signed integer numbers. </p>
524 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
525
526 <p>Definition at line <a class="el" href="a00131_source.html#l00243">243</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
527
528 </div>
529 </div>
530 <a class="anchor" id="gafc7521507e40fbc269149475a725dbbe"></a><!-- doxytag: member="glm::core::type::precision::lowp_ivec4" ref="gafc7521507e40fbc269149475a725dbbe" args="" -->
531 <div class="memitem">
532 <div class="memproto">
533 <table class="memname">
534 <tr>
535 <td class="memname">typedef detail::tvec4&lt;lowp_int&gt; lowp_ivec4</td>
536 </tr>
537 </table>
538 </div>
539 <div class="memdoc">
540
541 <p>4 components vector of low precision signed integer numbers. </p>
542 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
543
544 <p>Definition at line <a class="el" href="a00132_source.html#l00259">259</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
545
546 </div>
547 </div>
548 <a class="anchor" id="ga8b49c3aa6665011440c32c281b2032c0"></a><!-- doxytag: member="glm::core::type::precision::lowp_mat2x2" ref="ga8b49c3aa6665011440c32c281b2032c0" args="" -->
549 <div class="memitem">
550 <div class="memproto">
551 <table class="memname">
552 <tr>
553 <td class="memname">typedef detail::tmat2x2&lt;lowp_float&gt; lowp_mat2x2</td>
554 </tr>
555 </table>
556 </div>
557 <div class="memdoc">
558
559 <p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
560 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
561
562 <p>Definition at line <a class="el" href="a00116_source.html#l00229">229</a> of file <a class="el" href="a00116_source.html">type_mat2x2.hpp</a>.</p>
563
564 </div>
565 </div>
566 <a class="anchor" id="ga0b32355a31b4c14e98f69b43a9077456"></a><!-- doxytag: member="glm::core::type::precision::lowp_mat2x3" ref="ga0b32355a31b4c14e98f69b43a9077456" args="" -->
567 <div class="memitem">
568 <div class="memproto">
569 <table class="memname">
570 <tr>
571 <td class="memname">typedef detail::tmat2x3&lt;lowp_float&gt; lowp_mat2x3</td>
572 </tr>
573 </table>
574 </div>
575 <div class="memdoc">
576
577 <p>2 columns of 3 components matrix of low precision floating-point numbers. </p>
578 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
579
580 <p>Definition at line <a class="el" href="a00117_source.html#l00196">196</a> of file <a class="el" href="a00117_source.html">type_mat2x3.hpp</a>.</p>
581
582 </div>
583 </div>
584 <a class="anchor" id="ga0bb652c1f4401b9b3359ae6b2bf13678"></a><!-- doxytag: member="glm::core::type::precision::lowp_mat3x3" ref="ga0bb652c1f4401b9b3359ae6b2bf13678" args="" -->
585 <div class="memitem">
586 <div class="memproto">
587 <table class="memname">
588 <tr>
589 <td class="memname">typedef detail::tmat3x3&lt;lowp_float&gt; lowp_mat3x3</td>
590 </tr>
591 </table>
592 </div>
593 <div class="memdoc">
594
595 <p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
596 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
597
598 <p>Definition at line <a class="el" href="a00120_source.html#l00228">228</a> of file <a class="el" href="a00120_source.html">type_mat3x3.hpp</a>.</p>
599
600 </div>
601 </div>
602 <a class="anchor" id="gac88de3260a910584e02b98f087a34502"></a><!-- doxytag: member="glm::core::type::precision::lowp_mat4x2" ref="gac88de3260a910584e02b98f087a34502" args="" -->
603 <div class="memitem">
604 <div class="memproto">
605 <table class="memname">
606 <tr>
607 <td class="memname">typedef detail::tmat4x2&lt;lowp_float&gt; lowp_mat4x2</td>
608 </tr>
609 </table>
610 </div>
611 <div class="memdoc">
612
613 <p>4 columns of 2 components matrix of low precision floating-point numbers. </p>
614 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
615
616 <p>Definition at line <a class="el" href="a00122_source.html#l00200">200</a> of file <a class="el" href="a00122_source.html">type_mat4x2.hpp</a>.</p>
617
618 </div>
619 </div>
620 <a class="anchor" id="ga0072cb659f9360a7bb2c3e6646609ad7"></a><!-- doxytag: member="glm::core::type::precision::lowp_mat4x3" ref="ga0072cb659f9360a7bb2c3e6646609ad7" args="" -->
621 <div class="memitem">
622 <div class="memproto">
623 <table class="memname">
624 <tr>
625 <td class="memname">typedef detail::tmat4x3&lt;lowp_float&gt; lowp_mat4x3</td>
626 </tr>
627 </table>
628 </div>
629 <div class="memdoc">
630
631 <p>4 columns of 3 components matrix of low precision floating-point numbers. </p>
632 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
633
634 <p>Definition at line <a class="el" href="a00123_source.html#l00200">200</a> of file <a class="el" href="a00123_source.html">type_mat4x3.hpp</a>.</p>
635
636 </div>
637 </div>
638 <a class="anchor" id="gaae14374ee642a8d553ce64f17a4597b1"></a><!-- doxytag: member="glm::core::type::precision::lowp_mat4x4" ref="gaae14374ee642a8d553ce64f17a4597b1" args="" -->
639 <div class="memitem">
640 <div class="memproto">
641 <table class="memname">
642 <tr>
643 <td class="memname">typedef detail::tmat4x4&lt;lowp_float&gt; lowp_mat4x4</td>
644 </tr>
645 </table>
646 </div>
647 <div class="memdoc">
648
649 <p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
650 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
651
652 <p>Definition at line <a class="el" href="a00124_source.html#l00228">228</a> of file <a class="el" href="a00124_source.html">type_mat4x4.hpp</a>.</p>
653
654 </div>
655 </div>
656 <a class="anchor" id="ga25ebc60727fc8b4a1167665f9ecdca97"></a><!-- doxytag: member="glm::core::type::precision::lowp_uint" ref="ga25ebc60727fc8b4a1167665f9ecdca97" args="" -->
657 <div class="memitem">
658 <div class="memproto">
659 <table class="memname">
660 <tr>
661 <td class="memname">typedef detail::lowp_uint_t lowp_uint</td>
662 </tr>
663 </table>
664 </div>
665 <div class="memdoc">
666
667 <p>Low precision unsigned integer. </p>
668 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification. </p>
669
670 <p>Definition at line <a class="el" href="a00114_source.html#l00068">68</a> of file <a class="el" href="a00114_source.html">type_int.hpp</a>.</p>
671
672 </div>
673 </div>
674 <a class="anchor" id="ga9cb9b78162fca09f7ce9d08758f8b3c1"></a><!-- doxytag: member="glm::core::type::precision::lowp_uvec2" ref="ga9cb9b78162fca09f7ce9d08758f8b3c1" args="" -->
675 <div class="memitem">
676 <div class="memproto">
677 <table class="memname">
678 <tr>
679 <td class="memname">typedef detail::tvec2&lt;lowp_uint&gt; lowp_uvec2</td>
680 </tr>
681 </table>
682 </div>
683 <div class="memdoc">
684
685 <p>2 components vector of low precision unsigned integer numbers. </p>
686 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
687
688 <p>Definition at line <a class="el" href="a00130_source.html#l00254">254</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
689
690 </div>
691 </div>
692 <a class="anchor" id="gaefdce0fe4ed79b26ed2b5f00bbf39075"></a><!-- doxytag: member="glm::core::type::precision::lowp_uvec3" ref="gaefdce0fe4ed79b26ed2b5f00bbf39075" args="" -->
693 <div class="memitem">
694 <div class="memproto">
695 <table class="memname">
696 <tr>
697 <td class="memname">typedef detail::tvec3&lt;lowp_uint&gt; lowp_uvec3</td>
698 </tr>
699 </table>
700 </div>
701 <div class="memdoc">
702
703 <p>3 components vector of low precision unsigned integer numbers. </p>
704 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
705
706 <p>Definition at line <a class="el" href="a00131_source.html#l00259">259</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
707
708 </div>
709 </div>
710 <a class="anchor" id="ga3ebda7e36e3948ceea0cbc90061c643d"></a><!-- doxytag: member="glm::core::type::precision::lowp_uvec4" ref="ga3ebda7e36e3948ceea0cbc90061c643d" args="" -->
711 <div class="memitem">
712 <div class="memproto">
713 <table class="memname">
714 <tr>
715 <td class="memname">typedef detail::tvec4&lt;lowp_uint&gt; lowp_uvec4</td>
716 </tr>
717 </table>
718 </div>
719 <div class="memdoc">
720
721 <p>4 components vector of low precision unsigned integer numbers. </p>
722 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
723
724 <p>Definition at line <a class="el" href="a00132_source.html#l00275">275</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
725
726 </div>
727 </div>
728 <a class="anchor" id="ga4df6c67742cd65d6d0a885b3a539d9ff"></a><!-- doxytag: member="glm::core::type::precision::lowp_vec2" ref="ga4df6c67742cd65d6d0a885b3a539d9ff" args="" -->
729 <div class="memitem">
730 <div class="memproto">
731 <table class="memname">
732 <tr>
733 <td class="memname">typedef detail::tvec2&lt;lowp_float&gt; lowp_vec2</td>
734 </tr>
735 </table>
736 </div>
737 <div class="memdoc">
738
739 <p>2 components vector of low precision floating-point numbers. </p>
740 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
741
742 <p>Definition at line <a class="el" href="a00130_source.html#l00222">222</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
743
744 </div>
745 </div>
746 <a class="anchor" id="gab9e39d9db144322c1ad30ab3141084ad"></a><!-- doxytag: member="glm::core::type::precision::lowp_vec3" ref="gab9e39d9db144322c1ad30ab3141084ad" args="" -->
747 <div class="memitem">
748 <div class="memproto">
749 <table class="memname">
750 <tr>
751 <td class="memname">typedef detail::tvec3&lt;lowp_float&gt; lowp_vec3</td>
752 </tr>
753 </table>
754 </div>
755 <div class="memdoc">
756
757 <p>3 components vector of low precision floating-point numbers. </p>
758 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
759
760 <p>Definition at line <a class="el" href="a00131_source.html#l00227">227</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
761
762 </div>
763 </div>
764 <a class="anchor" id="ga653b0bf7ff2cb590f6e1338682fd0327"></a><!-- doxytag: member="glm::core::type::precision::lowp_vec4" ref="ga653b0bf7ff2cb590f6e1338682fd0327" args="" -->
765 <div class="memitem">
766 <div class="memproto">
767 <table class="memname">
768 <tr>
769 <td class="memname">typedef detail::tvec4&lt;lowp_float&gt; lowp_vec4</td>
770 </tr>
771 </table>
772 </div>
773 <div class="memdoc">
774
775 <p>4 components vector of low precision floating-point numbers. </p>
776 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
777
778 <p>Definition at line <a class="el" href="a00132_source.html#l00243">243</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
779
780 </div>
781 </div>
782 <a class="anchor" id="ga280c68f537f4b1e03a00b23e62573b98"></a><!-- doxytag: member="glm::core::type::precision::mediump_float" ref="ga280c68f537f4b1e03a00b23e62573b98" args="" -->
783 <div class="memitem">
784 <div class="memproto">
785 <table class="memname">
786 <tr>
787 <td class="memname">typedef mediump_float_t mediump_float</td>
788 </tr>
789 </table>
790 </div>
791 <div class="memdoc">
792
793 <p>Medium precision floating-point numbers. </p>
794 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification </p>
795
796 <p>Definition at line <a class="el" href="a00111_source.html#l00049">49</a> of file <a class="el" href="a00111_source.html">type_float.hpp</a>.</p>
797
798 </div>
799 </div>
800 <a class="anchor" id="ga212ef8f883878cb7430228a279a7d866"></a><!-- doxytag: member="glm::core::type::precision::mediump_int" ref="ga212ef8f883878cb7430228a279a7d866" args="" -->
801 <div class="memitem">
802 <div class="memproto">
803 <table class="memname">
804 <tr>
805 <td class="memname">typedef detail::mediump_int_t mediump_int</td>
806 </tr>
807 </table>
808 </div>
809 <div class="memdoc">
810
811 <p>Medium precision signed integer. </p>
812 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification. </p>
813
814 <p>Definition at line <a class="el" href="a00114_source.html#l00057">57</a> of file <a class="el" href="a00114_source.html">type_int.hpp</a>.</p>
815
816 </div>
817 </div>
818 <a class="anchor" id="ga269315792504783f450b829161f2bccf"></a><!-- doxytag: member="glm::core::type::precision::mediump_ivec2" ref="ga269315792504783f450b829161f2bccf" args="" -->
819 <div class="memitem">
820 <div class="memproto">
821 <table class="memname">
822 <tr>
823 <td class="memname">typedef detail::tvec2&lt;mediump_int&gt; mediump_ivec2</td>
824 </tr>
825 </table>
826 </div>
827 <div class="memdoc">
828
829 <p>2 components vector of medium precision signed integer numbers. </p>
830 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
831
832 <p>Definition at line <a class="el" href="a00130_source.html#l00233">233</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
833
834 </div>
835 </div>
836 <a class="anchor" id="ga1d8ae738ed79d71f8d381f472d366913"></a><!-- doxytag: member="glm::core::type::precision::mediump_ivec3" ref="ga1d8ae738ed79d71f8d381f472d366913" args="" -->
837 <div class="memitem">
838 <div class="memproto">
839 <table class="memname">
840 <tr>
841 <td class="memname">typedef detail::tvec3&lt;mediump_int&gt; mediump_ivec3</td>
842 </tr>
843 </table>
844 </div>
845 <div class="memdoc">
846
847 <p>3 components vector of medium precision signed integer numbers. </p>
848 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
849
850 <p>Definition at line <a class="el" href="a00131_source.html#l00238">238</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
851
852 </div>
853 </div>
854 <a class="anchor" id="ga5f624d3f93fa1a197ba767f9b1d6d7aa"></a><!-- doxytag: member="glm::core::type::precision::mediump_ivec4" ref="ga5f624d3f93fa1a197ba767f9b1d6d7aa" args="" -->
855 <div class="memitem">
856 <div class="memproto">
857 <table class="memname">
858 <tr>
859 <td class="memname">typedef detail::tvec4&lt;mediump_int&gt; mediump_ivec4</td>
860 </tr>
861 </table>
862 </div>
863 <div class="memdoc">
864
865 <p>4 components vector of medium precision signed integer numbers. </p>
866 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
867
868 <p>Definition at line <a class="el" href="a00132_source.html#l00254">254</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
869
870 </div>
871 </div>
872 <a class="anchor" id="gaa5970a6f98990c15b7a3be7cc7b79f4f"></a><!-- doxytag: member="glm::core::type::precision::mediump_mat2x2" ref="gaa5970a6f98990c15b7a3be7cc7b79f4f" args="" -->
873 <div class="memitem">
874 <div class="memproto">
875 <table class="memname">
876 <tr>
877 <td class="memname">typedef detail::tmat2x2&lt;mediump_float&gt; mediump_mat2x2</td>
878 </tr>
879 </table>
880 </div>
881 <div class="memdoc">
882
883 <p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
884 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
885
886 <p>Definition at line <a class="el" href="a00116_source.html#l00234">234</a> of file <a class="el" href="a00116_source.html">type_mat2x2.hpp</a>.</p>
887
888 </div>
889 </div>
890 <a class="anchor" id="gacceeb5355767eb306c12ea961b31e808"></a><!-- doxytag: member="glm::core::type::precision::mediump_mat2x3" ref="gacceeb5355767eb306c12ea961b31e808" args="" -->
891 <div class="memitem">
892 <div class="memproto">
893 <table class="memname">
894 <tr>
895 <td class="memname">typedef detail::tmat2x3&lt;mediump_float&gt; mediump_mat2x3</td>
896 </tr>
897 </table>
898 </div>
899 <div class="memdoc">
900
901 <p>2 columns of 3 components matrix of medium precision floating-point numbers. </p>
902 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
903
904 <p>Definition at line <a class="el" href="a00117_source.html#l00201">201</a> of file <a class="el" href="a00117_source.html">type_mat2x3.hpp</a>.</p>
905
906 </div>
907 </div>
908 <a class="anchor" id="ga76c68d8cad333d1f5ba1b20a40415cda"></a><!-- doxytag: member="glm::core::type::precision::mediump_mat3x3" ref="ga76c68d8cad333d1f5ba1b20a40415cda" args="" -->
909 <div class="memitem">
910 <div class="memproto">
911 <table class="memname">
912 <tr>
913 <td class="memname">typedef detail::tmat3x3&lt;mediump_float&gt; mediump_mat3x3</td>
914 </tr>
915 </table>
916 </div>
917 <div class="memdoc">
918
919 <p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
920 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
921
922 <p>Definition at line <a class="el" href="a00120_source.html#l00233">233</a> of file <a class="el" href="a00120_source.html">type_mat3x3.hpp</a>.</p>
923
924 </div>
925 </div>
926 <a class="anchor" id="ga31b1d523c1dc83c0ef9cded942950666"></a><!-- doxytag: member="glm::core::type::precision::mediump_mat4x2" ref="ga31b1d523c1dc83c0ef9cded942950666" args="" -->
927 <div class="memitem">
928 <div class="memproto">
929 <table class="memname">
930 <tr>
931 <td class="memname">typedef detail::tmat4x2&lt;mediump_float&gt; mediump_mat4x2</td>
932 </tr>
933 </table>
934 </div>
935 <div class="memdoc">
936
937 <p>4 columns of 2 components matrix of medium precision floating-point numbers. </p>
938 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
939
940 <p>Definition at line <a class="el" href="a00122_source.html#l00205">205</a> of file <a class="el" href="a00122_source.html">type_mat4x2.hpp</a>.</p>
941
942 </div>
943 </div>
944 <a class="anchor" id="ga236d4c1060c1ce9908d3de61b3d9334e"></a><!-- doxytag: member="glm::core::type::precision::mediump_mat4x3" ref="ga236d4c1060c1ce9908d3de61b3d9334e" args="" -->
945 <div class="memitem">
946 <div class="memproto">
947 <table class="memname">
948 <tr>
949 <td class="memname">typedef detail::tmat4x3&lt;mediump_float&gt; mediump_mat4x3</td>
950 </tr>
951 </table>
952 </div>
953 <div class="memdoc">
954
955 <p>4 columns of 3 components matrix of medium precision floating-point numbers. </p>
956 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
957
958 <p>Definition at line <a class="el" href="a00123_source.html#l00205">205</a> of file <a class="el" href="a00123_source.html">type_mat4x3.hpp</a>.</p>
959
960 </div>
961 </div>
962 <a class="anchor" id="gad0e848d34a6838e413a41018228ded41"></a><!-- doxytag: member="glm::core::type::precision::mediump_mat4x4" ref="gad0e848d34a6838e413a41018228ded41" args="" -->
963 <div class="memitem">
964 <div class="memproto">
965 <table class="memname">
966 <tr>
967 <td class="memname">typedef detail::tmat4x4&lt;mediump_float&gt; mediump_mat4x4</td>
968 </tr>
969 </table>
970 </div>
971 <div class="memdoc">
972
973 <p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
974 <p>There is no guarantee on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) </p>
975
976 <p>Definition at line <a class="el" href="a00124_source.html#l00233">233</a> of file <a class="el" href="a00124_source.html">type_mat4x4.hpp</a>.</p>
977
978 </div>
979 </div>
980 <a class="anchor" id="ga0b7e01c52b9e5bf3369761b79b5f4f8e"></a><!-- doxytag: member="glm::core::type::precision::mediump_uint" ref="ga0b7e01c52b9e5bf3369761b79b5f4f8e" args="" -->
981 <div class="memitem">
982 <div class="memproto">
983 <table class="memname">
984 <tr>
985 <td class="memname">typedef detail::mediump_uint_t mediump_uint</td>
986 </tr>
987 </table>
988 </div>
989 <div class="memdoc">
990
991 <p>Medium precision unsigned integer. </p>
992 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification. </p>
993
994 <p>Definition at line <a class="el" href="a00114_source.html#l00073">73</a> of file <a class="el" href="a00114_source.html">type_int.hpp</a>.</p>
995
996 </div>
997 </div>
998 <a class="anchor" id="ga5cd4f5f5667de09c7c12df85d138f599"></a><!-- doxytag: member="glm::core::type::precision::mediump_uvec2" ref="ga5cd4f5f5667de09c7c12df85d138f599" args="" -->
999 <div class="memitem">
1000 <div class="memproto">
1001 <table class="memname">
1002 <tr>
1003 <td class="memname">typedef detail::tvec2&lt;mediump_uint&gt; mediump_uvec2</td>
1004 </tr>
1005 </table>
1006 </div>
1007 <div class="memdoc">
1008
1009 <p>2 components vector of medium precision unsigned integer numbers. </p>
1010 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
1011
1012 <p>Definition at line <a class="el" href="a00130_source.html#l00249">249</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
1013
1014 </div>
1015 </div>
1016 <a class="anchor" id="ga70d49eff07e7988447c93a83f9f311b6"></a><!-- doxytag: member="glm::core::type::precision::mediump_uvec3" ref="ga70d49eff07e7988447c93a83f9f311b6" args="" -->
1017 <div class="memitem">
1018 <div class="memproto">
1019 <table class="memname">
1020 <tr>
1021 <td class="memname">typedef detail::tvec3&lt;mediump_uint&gt; mediump_uvec3</td>
1022 </tr>
1023 </table>
1024 </div>
1025 <div class="memdoc">
1026
1027 <p>3 components vector of medium precision unsigned integer numbers. </p>
1028 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
1029
1030 <p>Definition at line <a class="el" href="a00131_source.html#l00254">254</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
1031
1032 </div>
1033 </div>
1034 <a class="anchor" id="ga4b2bc896ec01198bdc4f9dc896e5f06d"></a><!-- doxytag: member="glm::core::type::precision::mediump_uvec4" ref="ga4b2bc896ec01198bdc4f9dc896e5f06d" args="" -->
1035 <div class="memitem">
1036 <div class="memproto">
1037 <table class="memname">
1038 <tr>
1039 <td class="memname">typedef detail::tvec4&lt;mediump_uint&gt; mediump_uvec4</td>
1040 </tr>
1041 </table>
1042 </div>
1043 <div class="memdoc">
1044
1045 <p>4 components vector of medium precision unsigned integer numbers. </p>
1046 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. </p>
1047
1048 <p>Definition at line <a class="el" href="a00132_source.html#l00270">270</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
1049
1050 </div>
1051 </div>
1052 <a class="anchor" id="ga9a8a10fce5852b088dd631b34e942b7d"></a><!-- doxytag: member="glm::core::type::precision::mediump_vec2" ref="ga9a8a10fce5852b088dd631b34e942b7d" args="" -->
1053 <div class="memitem">
1054 <div class="memproto">
1055 <table class="memname">
1056 <tr>
1057 <td class="memname">typedef detail::tvec2&lt;mediump_float&gt; mediump_vec2</td>
1058 </tr>
1059 </table>
1060 </div>
1061 <div class="memdoc">
1062
1063 <p>2 components vector of medium precision floating-point numbers. </p>
1064 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
1065
1066 <p>Definition at line <a class="el" href="a00130_source.html#l00217">217</a> of file <a class="el" href="a00130_source.html">type_vec2.hpp</a>.</p>
1067
1068 </div>
1069 </div>
1070 <a class="anchor" id="gaf6aa71f085a150f42929a4b77458143e"></a><!-- doxytag: member="glm::core::type::precision::mediump_vec3" ref="gaf6aa71f085a150f42929a4b77458143e" args="" -->
1071 <div class="memitem">
1072 <div class="memproto">
1073 <table class="memname">
1074 <tr>
1075 <td class="memname">typedef detail::tvec3&lt;mediump_float&gt; mediump_vec3</td>
1076 </tr>
1077 </table>
1078 </div>
1079 <div class="memdoc">
1080
1081 <p>3 components vector of medium precision floating-point numbers. </p>
1082 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
1083
1084 <p>Definition at line <a class="el" href="a00131_source.html#l00222">222</a> of file <a class="el" href="a00131_source.html">type_vec3.hpp</a>.</p>
1085
1086 </div>
1087 </div>
1088 <a class="anchor" id="gafddaa69a1d46a27e2767b780e0e6b4b0"></a><!-- doxytag: member="glm::core::type::precision::mediump_vec4" ref="gafddaa69a1d46a27e2767b780e0e6b4b0" args="" -->
1089 <div class="memitem">
1090 <div class="memproto">
1091 <table class="memname">
1092 <tr>
1093 <td class="memname">typedef detail::tvec4&lt;mediump_float&gt; mediump_vec4</td>
1094 </tr>
1095 </table>
1096 </div>
1097 <div class="memdoc">
1098
1099 <p>4 components vector of medium precision floating-point numbers. </p>
1100 <p>There is no guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. </p>
1101
1102 <p>Definition at line <a class="el" href="a00132_source.html#l00238">238</a> of file <a class="el" href="a00132_source.html">type_vec4.hpp</a>.</p>
1103
1104 </div>
1105 </div>
69 <p>The generic template types used as the basis for the core types. </p>
70 <p>These types are all templates used to define the actual <a class="el" href="a00234.html">Types</a>. These templetes are implementation details of GLM types and should not be used explicitly. </p>
110671 </div>
110772 <hr class="footer"/><address class="footer"><small>Generated by&#160;
110873 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>Template types</title>
4 <title>Functions</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#nested-classes">Classes</a> </div>
32 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>Template types</h1> </div>
35 <div class="ingroups"><a class="el" href="a00234.html">GLM Core</a></div></div>
34 <h1>Functions</h1> </div>
35 <div class="ingroups"><a class="el" href="a00233.html">GLM Core</a></div></div>
3636 <div class="contents">
3737
38 <p>The generic template types used as the basis for the core types.
38 <p>The functions defined by the specification.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
41 <tr><td colspan="2"><h2><a name="nested-classes"></a>
42 Classes</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html">tmat2x2&lt; T &gt;</a></td></tr>
44 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 2 * 2 matrix of floating-point numbers. <a href="a00010.html#_details">More...</a><br/></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html">tmat2x3&lt; T &gt;</a></td></tr>
46 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 2 columns and 3 rows matrix of floating-point numbers. <a href="a00011.html#_details">More...</a><br/></td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html">tmat2x4&lt; T &gt;</a></td></tr>
48 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 2 columns and 4 rows matrix of floating-point numbers. <a href="a00012.html#_details">More...</a><br/></td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html">tmat3x2&lt; T &gt;</a></td></tr>
50 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 3 columns and 2 rows matrix of floating-point numbers. <a href="a00013.html#_details">More...</a><br/></td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html">tmat3x3&lt; T &gt;</a></td></tr>
52 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 3 * 3 matrix of floating-point numbers. <a href="a00014.html#_details">More...</a><br/></td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html">tmat3x4&lt; T &gt;</a></td></tr>
54 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 3 columns and 4 rows matrix of floating-point numbers. <a href="a00015.html#_details">More...</a><br/></td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html">tmat4x2&lt; T &gt;</a></td></tr>
56 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 4 columns and 2 rows matrix of floating-point numbers. <a href="a00016.html#_details">More...</a><br/></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00017.html">tmat4x3&lt; T &gt;</a></td></tr>
58 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 4 columns and 3 rows matrix of floating-point numbers. <a href="a00017.html#_details">More...</a><br/></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html">tmat4x4&lt; T &gt;</a></td></tr>
60 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for 4 * 4 matrix of floating-point numbers. <a href="a00018.html#_details">More...</a><br/></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00020.html">tvec2&lt; T &gt;</a></td></tr>
62 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The basic 2D vector type. <a href="a00020.html#_details">More...</a><br/></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html">tvec3&lt; T &gt;</a></td></tr>
64 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic 3D vector type. <a href="a00021.html#_details">More...</a><br/></td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html">tvec4&lt; T &gt;</a></td></tr>
66 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic 4D vector type. <a href="a00022.html#_details">More...</a><br/></td></tr>
41 <tr><td colspan="2"><h2><a name="func-members"></a>
42 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga52a4b4cbe6d47f94d06ee1efd95786e6">acos</a> (genType const &amp;x)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga7c8d8ac539a43da0d41e656a38262ff0">acosh</a> (genType const &amp;x)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga3c625e34fc99b33829c28c6d580df7e2">asin</a> (genType const &amp;x)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga7ba20fc7c7b3eeef601e73b130e63db5">asinh</a> (genType const &amp;x)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga32dbceedb2910e519860a225ae7f7450">atan</a> (genType const &amp;y, genType const &amp;x)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga3abfab80cac8e26d4efda9949586ded6">atan</a> (genType const &amp;y_over_x)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga4d896caf7b1a8e5b5e3b29394e8c0ecd">atanh</a> (genType const &amp;x)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga29cfb04fafbaa1939955f11fef28ff38">bitCount</a> (C&lt; T &gt; const &amp;Value)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga3b4804e700ade895189ea8bde142c822">bitfieldExtract</a> (genIUType const &amp;Value, int const &amp;Offset, int const &amp;Bits)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga90d0bc8e79f637da58b8fad2fc8f3275">bitfieldInsert</a> (genIUType const &amp;Base, genIUType const &amp;Insert, int const &amp;Offset, int const &amp;Bits)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga68bdb2c3debc414d5567935b4cbca62f">bitfieldReverse</a> (genIUType const &amp;value)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga4fbc8481a95bcc1c0c6931a34449b9a8">cos</a> (genType const &amp;angle)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga2cfdbcd7a269a114cbb4f19dcf1e3f8b">cosh</a> (genType const &amp;angle)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga63272179a066d755953bcfbe38666257">cross</a> (detail::tvec3&lt; T &gt; const &amp;x, detail::tvec3&lt; T &gt; const &amp;y)</td></tr>
71 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga2dc092f93e998e01c1cfdaef817ca926">degrees</a> (genType const &amp;radians)</td></tr>
73 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
74 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga0159ae2542b5bba80743694122247c15">determinant</a> (detail::tmat2x2&lt; T &gt; const &amp;m)</td></tr>
75 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
76 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gaadf033715cbf1171a599aa7ac7f633be">determinant</a> (detail::tmat3x3&lt; T &gt; const &amp;m)</td></tr>
77 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
78 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga4a33b6d96bedaa0cf250c1ef152a41a3">determinant</a> (detail::tmat4x4&lt; T &gt; const &amp;m)</td></tr>
79 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
80 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gaa7cb6dbe9b8224c25345f1fd6fc09e77">distance</a> (genType const &amp;p0, genType const &amp;p1)</td></tr>
81 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
82 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga38e1f1538ac0fedc9d6ac14910105421">dot</a> (genType const &amp;x, genType const &amp;y)</td></tr>
83 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
84 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gac96b81360552e233031fd06390576ebf">exp</a> (genType const &amp;x)</td></tr>
85 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
86 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga79adbdfa6f2e6ce59816c9b0bd1aebe3">exp2</a> (genType const &amp;x)</td></tr>
87 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
88 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gad591e8f7b1a5e311d3439dda2bb82aea">faceforward</a> (genType const &amp;N, genType const &amp;I, genType const &amp;Nref)</td></tr>
89 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
90 <tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga9890456d065156a3c3c9786b14638486">findLSB</a> (C&lt; T &gt; const &amp;Value)</td></tr>
91 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
92 <tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga0f50b6fe121f170c3725a8abb53ff077">findMSB</a> (C&lt; T &gt; const &amp;Value)</td></tr>
93 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIType &gt; </td></tr>
94 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gac01a66145ce9472afb6a3bee837c0bd6">imulExtended</a> (genIType const &amp;x, genIType const &amp;y, genIType &amp;msb, genIType &amp;lsb)</td></tr>
95 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
96 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga21de0684ba52d03625b43eac0c2b866a">inverse</a> (detail::tmat2x2&lt; T &gt; const &amp;m)</td></tr>
97 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
98 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gaa1bce3aab32b8949beb8160f72f1b631">inverse</a> (detail::tmat3x3&lt; T &gt; const &amp;m)</td></tr>
99 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
100 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gad5b3f7a92c8243ec53aa0704b979856b">inverse</a> (detail::tmat4x4&lt; T &gt; const &amp;m)</td></tr>
101 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
102 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gadce520af7df2c97aea9f689ad620fabe">inversesqrt</a> (genType const &amp;x)</td></tr>
103 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
104 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga10ee9a1d18c6da61cab61d8637d23847">length</a> (genType const &amp;x)</td></tr>
105 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
106 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga50b7859bfe87c2f075fe7a04e4c68cc3">log</a> (genType const &amp;x)</td></tr>
107 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
108 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga956c24e59912196d4b3714789e57c077">log2</a> (genType const &amp;x)</td></tr>
109 <tr><td class="memTemplParams" colspan="2">template&lt;typename matType &gt; </td></tr>
110 <tr><td class="memTemplItemLeft" align="right" valign="top">matType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gad27896f9d5be202b8d39552eeb352c87">matrixCompMult</a> (matType const &amp;x, matType const &amp;y)</td></tr>
111 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
112 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga9a5b6e92c055c5d401b2a7c56b4b8da3">noise1</a> (genType const &amp;x)</td></tr>
113 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
114 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; typename <br class="typebreak"/>
115 genType::value_type &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gaad98694033fa19168b99205f5ab33a0e">noise2</a> (genType const &amp;x)</td></tr>
116 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
117 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; typename <br class="typebreak"/>
118 genType::value_type &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga8759756672debb0894c0bb18f5add8a6">noise3</a> (genType const &amp;x)</td></tr>
119 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
120 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; typename <br class="typebreak"/>
121 genType::value_type &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gac744c79c4ab6cffafbd197fc5276e62d">noise4</a> (genType const &amp;x)</td></tr>
122 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
123 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga07ff16965f11fa17122ac874ed492276">normalize</a> (genType const &amp;x)</td></tr>
124 <tr><td class="memTemplParams" colspan="2">template&lt;typename vecType , typename matType &gt; </td></tr>
125 <tr><td class="memTemplItemLeft" align="right" valign="top">matType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga04b83f76e97124e8e91d923dd7ba326c">outerProduct</a> (vecType const &amp;c, vecType const &amp;r)</td></tr>
126 <tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html#ga816867ca2fdb1bfb5d80d7a4f18a9e97">packDouble2x32</a> (detail::tvec2&lt; detail::uint32 &gt; const &amp;v)</td></tr>
127 <tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html#ga3f82e6b12495d9751eee53facba475da">packSnorm4x8</a> (detail::tvec4&lt; detail::float32 &gt; const &amp;v)</td></tr>
128 <tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html#ga7fc17302ae69881bb792842d472e7a30">packUnorm2x16</a> (detail::tvec2&lt; detail::float32 &gt; const &amp;v)</td></tr>
129 <tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html#gaf440e4e6c6be271327c5e2538e9c8b5f">packUnorm4x8</a> (detail::tvec4&lt; detail::float32 &gt; const &amp;v)</td></tr>
130 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
131 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga8eb76dfbf0fed3397c0327915279f06f">pow</a> (genType const &amp;x, genType const &amp;y)</td></tr>
132 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
133 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga40251a4a07049e7fdcbf155c3cc6d32a">radians</a> (genType const &amp;degrees)</td></tr>
134 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
135 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga2863d2331eb3752a5a17244c604c1d07">reflect</a> (genType const &amp;I, genType const &amp;N)</td></tr>
136 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
137 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga895392ad98499a450e2cc8579d76a84d">refract</a> (genType const &amp;I, genType const &amp;N, typename genType::value_type const &amp;eta)</td></tr>
138 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
139 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gad246389321f46f7cb1cc422f9fd64cf4">sin</a> (genType const &amp;angle)</td></tr>
140 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
141 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga13a63bc67a160b1614ba3681f57fe480">sinh</a> (genType const &amp;angle)</td></tr>
142 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
143 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga29d9d4ccbca8f2168ac6534fbb65cbad">sqrt</a> (genType const &amp;x)</td></tr>
144 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
145 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga1a556079a4fee8b5e12fcfe7551f6931">tan</a> (genType const &amp;angle)</td></tr>
146 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
147 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gad93de1d635832bf722eb78a088bfbaa6">tanh</a> (genType const &amp;angle)</td></tr>
148 <tr><td class="memTemplParams" colspan="2">template&lt;typename matType &gt; </td></tr>
149 <tr><td class="memTemplItemLeft" align="right" valign="top">matType::transpose_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga8b1a22512f73b0176ad062d3d480e906">transpose</a> (matType const &amp;x)</td></tr>
150 <tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
151 <tr><td class="memTemplItemLeft" align="right" valign="top">genUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga8d63fd56743cc93286f09742baed4002">uaddCarry</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;carry)</td></tr>
152 <tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
153 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gad9b60d1c7e161b78682b7f8b071e213e">umulExtended</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;msb, genUType &amp;lsb)</td></tr>
154 <tr><td class="memItemLeft" align="right" valign="top">detail::tvec2&lt; detail::uint32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html#ga4e80ba8eaef0b878ecb43053a4df9ff7">unpackDouble2x32</a> (double const &amp;v)</td></tr>
155 <tr><td class="memItemLeft" align="right" valign="top">detail::tvec4&lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html#ga03dafa00be8359e3a028aed81ae6007e">unpackSnorm4x8</a> (detail::uint32 const &amp;p)</td></tr>
156 <tr><td class="memItemLeft" align="right" valign="top">detail::tvec2&lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html#gab3745178db4024212c4d7cb3df9a6f39">unpackUnorm2x16</a> (detail::uint32 const &amp;p)</td></tr>
157 <tr><td class="memItemLeft" align="right" valign="top">detail::tvec4&lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html#ga11630d2b293d96452c412639ec3c942e">unpackUnorm4x8</a> (detail::uint32 const &amp;p)</td></tr>
158 <tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
159 <tr><td class="memTemplItemLeft" align="right" valign="top">genUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga5ea2ea51e7cf73056069ce7583d61560">usubBorrow</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;borrow)</td></tr>
67160 </table>
68161 <hr/><a name="_details"></a><h2>Detailed Description</h2>
69 <p>The generic template types used as the basis for the core types. </p>
70 <p>These types are all templates used to define the actual <a class="el" href="a00235.html">Types</a>. These templetes are implementation details of GLM types and should not be used explicitly. </p>
162 <p>The functions defined by the specification. </p>
163 <p>&lt; Define all geometric functions from Section 8.4 of GLSL 1.30.8 specification. Included in glm namespace. </p>
164 <hr/><h2>Function Documentation</h2>
165 <a class="anchor" id="ga52a4b4cbe6d47f94d06ee1efd95786e6"></a><!-- doxytag: member="glm::core::function::trigonometric::acos" ref="ga52a4b4cbe6d47f94d06ee1efd95786e6" args="(genType const &amp;x)" -->
166 <div class="memitem">
167 <div class="memproto">
168 <table class="memname">
169 <tr>
170 <td class="memname">genType glm::core::function::trigonometric::acos </td>
171 <td>(</td>
172 <td class="paramtype">genType const &amp;&#160;</td>
173 <td class="paramname"><em>x</em></td><td>)</td>
174 <td></td>
175 </tr>
176 </table>
177 </div>
178 <div class="memdoc">
179
180 <p>Arc cosine. </p>
181 <p>Returns an angle whose sine is x. The range of values returned by this function is [0, PI]. Results are undefined if |x| &gt; 1. </p>
182 <ul>
183 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/acos.xml">GLSL acos man page</a> </li>
184 <li>GLSL 1.30.08 specification, section 8.1 </li>
185 </ul>
186
187 </div>
188 </div>
189 <a class="anchor" id="ga7c8d8ac539a43da0d41e656a38262ff0"></a><!-- doxytag: member="glm::core::function::trigonometric::acosh" ref="ga7c8d8ac539a43da0d41e656a38262ff0" args="(genType const &amp;x)" -->
190 <div class="memitem">
191 <div class="memproto">
192 <table class="memname">
193 <tr>
194 <td class="memname">genType glm::core::function::trigonometric::acosh </td>
195 <td>(</td>
196 <td class="paramtype">genType const &amp;&#160;</td>
197 <td class="paramname"><em>x</em></td><td>)</td>
198 <td></td>
199 </tr>
200 </table>
201 </div>
202 <div class="memdoc">
203
204 <p>Arc hyperbolic cosine; returns the non-negative inverse of cosh. </p>
205 <p>Results are undefined if x &lt; 1. </p>
206 <ul>
207 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/acosh.xml">GLSL acosh man page</a> </li>
208 <li>GLSL 1.30.08 specification, section 8.1 </li>
209 </ul>
210
211 </div>
212 </div>
213 <a class="anchor" id="ga3c625e34fc99b33829c28c6d580df7e2"></a><!-- doxytag: member="glm::core::function::trigonometric::asin" ref="ga3c625e34fc99b33829c28c6d580df7e2" args="(genType const &amp;x)" -->
214 <div class="memitem">
215 <div class="memproto">
216 <table class="memname">
217 <tr>
218 <td class="memname">genType glm::core::function::trigonometric::asin </td>
219 <td>(</td>
220 <td class="paramtype">genType const &amp;&#160;</td>
221 <td class="paramname"><em>x</em></td><td>)</td>
222 <td></td>
223 </tr>
224 </table>
225 </div>
226 <div class="memdoc">
227
228 <p>Arc sine. </p>
229 <p>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| &gt; 1. </p>
230 <ul>
231 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/asin.xml">GLSL asin man page</a> </li>
232 <li>GLSL 1.30.08 specification, section 8.1 </li>
233 </ul>
234
235 </div>
236 </div>
237 <a class="anchor" id="ga7ba20fc7c7b3eeef601e73b130e63db5"></a><!-- doxytag: member="glm::core::function::trigonometric::asinh" ref="ga7ba20fc7c7b3eeef601e73b130e63db5" args="(genType const &amp;x)" -->
238 <div class="memitem">
239 <div class="memproto">
240 <table class="memname">
241 <tr>
242 <td class="memname">genType glm::core::function::trigonometric::asinh </td>
243 <td>(</td>
244 <td class="paramtype">genType const &amp;&#160;</td>
245 <td class="paramname"><em>x</em></td><td>)</td>
246 <td></td>
247 </tr>
248 </table>
249 </div>
250 <div class="memdoc">
251
252 <p>Arc hyperbolic sine; returns the inverse of sinh. </p>
253 <ul>
254 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/asinh.xml">GLSL asinh man page</a> </li>
255 <li>GLSL 1.30.08 specification, section 8.1 </li>
256 </ul>
257
258 </div>
259 </div>
260 <a class="anchor" id="ga32dbceedb2910e519860a225ae7f7450"></a><!-- doxytag: member="glm::core::function::trigonometric::atan" ref="ga32dbceedb2910e519860a225ae7f7450" args="(genType const &amp;y, genType const &amp;x)" -->
261 <div class="memitem">
262 <div class="memproto">
263 <table class="memname">
264 <tr>
265 <td class="memname">genType glm::core::function::trigonometric::atan </td>
266 <td>(</td>
267 <td class="paramtype">genType const &amp;&#160;</td>
268 <td class="paramname"><em>y</em>, </td>
269 </tr>
270 <tr>
271 <td class="paramkey"></td>
272 <td></td>
273 <td class="paramtype">genType const &amp;&#160;</td>
274 <td class="paramname"><em>x</em>&#160;</td>
275 </tr>
276 <tr>
277 <td></td>
278 <td>)</td>
279 <td></td><td></td>
280 </tr>
281 </table>
282 </div>
283 <div class="memdoc">
284
285 <p>Arc tangent. </p>
286 <p>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. </p>
287 <ul>
288 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atan.xml">GLSL atan man page</a> </li>
289 <li>GLSL 1.30.08 specification, section 8.1 </li>
290 </ul>
291
292 <p>Referenced by <a class="el" href="a00032_source.html#l00051">glm::gtx::compatibility::atan2()</a>.</p>
293
294 </div>
295 </div>
296 <a class="anchor" id="ga3abfab80cac8e26d4efda9949586ded6"></a><!-- doxytag: member="glm::core::function::trigonometric::atan" ref="ga3abfab80cac8e26d4efda9949586ded6" args="(genType const &amp;y_over_x)" -->
297 <div class="memitem">
298 <div class="memproto">
299 <table class="memname">
300 <tr>
301 <td class="memname">genType glm::core::function::trigonometric::atan </td>
302 <td>(</td>
303 <td class="paramtype">genType const &amp;&#160;</td>
304 <td class="paramname"><em>y_over_x</em></td><td>)</td>
305 <td></td>
306 </tr>
307 </table>
308 </div>
309 <div class="memdoc">
310
311 <p>Arc tangent. </p>
312 <p>Returns an angle whose tangent is y_over_x. The range of values returned by this function is [-PI/2, PI/2]. </p>
313 <ul>
314 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atan.xml">GLSL atan man page</a> </li>
315 <li>GLSL 1.30.08 specification, section 8.1 </li>
316 </ul>
317
318 </div>
319 </div>
320 <a class="anchor" id="ga4d896caf7b1a8e5b5e3b29394e8c0ecd"></a><!-- doxytag: member="glm::core::function::trigonometric::atanh" ref="ga4d896caf7b1a8e5b5e3b29394e8c0ecd" args="(genType const &amp;x)" -->
321 <div class="memitem">
322 <div class="memproto">
323 <table class="memname">
324 <tr>
325 <td class="memname">genType glm::core::function::trigonometric::atanh </td>
326 <td>(</td>
327 <td class="paramtype">genType const &amp;&#160;</td>
328 <td class="paramname"><em>x</em></td><td>)</td>
329 <td></td>
330 </tr>
331 </table>
332 </div>
333 <div class="memdoc">
334
335 <p>Arc hyperbolic tangent; returns the inverse of tanh. </p>
336 <p>Results are undefined if abs(x) &gt;= 1. </p>
337 <ul>
338 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atanh.xml">GLSL atanh man page</a> </li>
339 <li>GLSL 1.30.08 specification, section 8.1 </li>
340 </ul>
341
342 </div>
343 </div>
344 <a class="anchor" id="ga29cfb04fafbaa1939955f11fef28ff38"></a><!-- doxytag: member="glm::core::function::integer::bitCount" ref="ga29cfb04fafbaa1939955f11fef28ff38" args="(C&lt; T &gt; const &amp;Value)" -->
345 <div class="memitem">
346 <div class="memproto">
347 <table class="memname">
348 <tr>
349 <td class="memname">C&lt;T&gt;::signed_type glm::core::function::integer::bitCount </td>
350 <td>(</td>
351 <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
352 <td class="paramname"><em>Value</em></td><td>)</td>
353 <td></td>
354 </tr>
355 </table>
356 </div>
357 <div class="memdoc">
358
359 <p>Returns the number of bits set to 1 in the binary representation of value. </p>
360 <ul>
361 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitCount.xml">GLSL bitCount man page</a> </li>
362 <li>GLSL 4.00.08 specification, section 8.8 </li>
363 </ul>
364
365 </div>
366 </div>
367 <a class="anchor" id="ga3b4804e700ade895189ea8bde142c822"></a><!-- doxytag: member="glm::core::function::integer::bitfieldExtract" ref="ga3b4804e700ade895189ea8bde142c822" args="(genIUType const &amp;Value, int const &amp;Offset, int const &amp;Bits)" -->
368 <div class="memitem">
369 <div class="memproto">
370 <table class="memname">
371 <tr>
372 <td class="memname">genIUType glm::core::function::integer::bitfieldExtract </td>
373 <td>(</td>
374 <td class="paramtype">genIUType const &amp;&#160;</td>
375 <td class="paramname"><em>Value</em>, </td>
376 </tr>
377 <tr>
378 <td class="paramkey"></td>
379 <td></td>
380 <td class="paramtype">int const &amp;&#160;</td>
381 <td class="paramname"><em>Offset</em>, </td>
382 </tr>
383 <tr>
384 <td class="paramkey"></td>
385 <td></td>
386 <td class="paramtype">int const &amp;&#160;</td>
387 <td class="paramname"><em>Bits</em>&#160;</td>
388 </tr>
389 <tr>
390 <td></td>
391 <td>)</td>
392 <td></td><td></td>
393 </tr>
394 </table>
395 </div>
396 <div class="memdoc">
397
398 <p>Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of the result. </p>
399 <p>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.</p>
400 <p>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. </p>
401 <ul>
402 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldExtract.xml">GLSL bitfieldExtract man page</a> </li>
403 <li>GLSL 4.00.08 specification, section 8.8 </li>
404 </ul>
405
406 </div>
407 </div>
408 <a class="anchor" id="ga90d0bc8e79f637da58b8fad2fc8f3275"></a><!-- doxytag: member="glm::core::function::integer::bitfieldInsert" ref="ga90d0bc8e79f637da58b8fad2fc8f3275" args="(genIUType const &amp;Base, genIUType const &amp;Insert, int const &amp;Offset, int const &amp;Bits)" -->
409 <div class="memitem">
410 <div class="memproto">
411 <table class="memname">
412 <tr>
413 <td class="memname">genIUType glm::core::function::integer::bitfieldInsert </td>
414 <td>(</td>
415 <td class="paramtype">genIUType const &amp;&#160;</td>
416 <td class="paramname"><em>Base</em>, </td>
417 </tr>
418 <tr>
419 <td class="paramkey"></td>
420 <td></td>
421 <td class="paramtype">genIUType const &amp;&#160;</td>
422 <td class="paramname"><em>Insert</em>, </td>
423 </tr>
424 <tr>
425 <td class="paramkey"></td>
426 <td></td>
427 <td class="paramtype">int const &amp;&#160;</td>
428 <td class="paramname"><em>Offset</em>, </td>
429 </tr>
430 <tr>
431 <td class="paramkey"></td>
432 <td></td>
433 <td class="paramtype">int const &amp;&#160;</td>
434 <td class="paramname"><em>Bits</em>&#160;</td>
435 </tr>
436 <tr>
437 <td></td>
438 <td>)</td>
439 <td></td><td></td>
440 </tr>
441 </table>
442 </div>
443 <div class="memdoc">
444
445 <p>Returns the insertion the bits least-significant bits of insert into base. </p>
446 <p>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. </p>
447 <ul>
448 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldInsert.xml">GLSL bitfieldInsert man page</a> </li>
449 <li>GLSL 4.00.08 specification, section 8.8 </li>
450 </ul>
451
452 </div>
453 </div>
454 <a class="anchor" id="ga68bdb2c3debc414d5567935b4cbca62f"></a><!-- doxytag: member="glm::core::function::integer::bitfieldReverse" ref="ga68bdb2c3debc414d5567935b4cbca62f" args="(genIUType const &amp;value)" -->
455 <div class="memitem">
456 <div class="memproto">
457 <table class="memname">
458 <tr>
459 <td class="memname">genIUType glm::core::function::integer::bitfieldReverse </td>
460 <td>(</td>
461 <td class="paramtype">genIUType const &amp;&#160;</td>
462 <td class="paramname"><em>value</em></td><td>)</td>
463 <td></td>
464 </tr>
465 </table>
466 </div>
467 <div class="memdoc">
468
469 <p>Returns the reversal of the bits of value. </p>
470 <p>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. </p>
471 <ul>
472 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldReverse.xml">GLSL bitfieldReverse man page</a> </li>
473 <li>GLSL 4.00.08 specification, section 8.8 </li>
474 </ul>
475
476 </div>
477 </div>
478 <a class="anchor" id="ga4fbc8481a95bcc1c0c6931a34449b9a8"></a><!-- doxytag: member="glm::core::function::trigonometric::cos" ref="ga4fbc8481a95bcc1c0c6931a34449b9a8" args="(genType const &amp;angle)" -->
479 <div class="memitem">
480 <div class="memproto">
481 <table class="memname">
482 <tr>
483 <td class="memname">genType glm::core::function::trigonometric::cos </td>
484 <td>(</td>
485 <td class="paramtype">genType const &amp;&#160;</td>
486 <td class="paramname"><em>angle</em></td><td>)</td>
487 <td></td>
488 </tr>
489 </table>
490 </div>
491 <div class="memdoc">
492
493 <p>The standard trigonometric cosine function. </p>
494 <p>The values returned by this function will range from [-1, 1]. </p>
495 <ul>
496 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cos.xml">GLSL cos man page</a> </li>
497 <li>GLSL 1.30.08 specification, section 8.1 </li>
498 </ul>
499
500 </div>
501 </div>
502 <a class="anchor" id="ga2cfdbcd7a269a114cbb4f19dcf1e3f8b"></a><!-- doxytag: member="glm::core::function::trigonometric::cosh" ref="ga2cfdbcd7a269a114cbb4f19dcf1e3f8b" args="(genType const &amp;angle)" -->
503 <div class="memitem">
504 <div class="memproto">
505 <table class="memname">
506 <tr>
507 <td class="memname">genType glm::core::function::trigonometric::cosh </td>
508 <td>(</td>
509 <td class="paramtype">genType const &amp;&#160;</td>
510 <td class="paramname"><em>angle</em></td><td>)</td>
511 <td></td>
512 </tr>
513 </table>
514 </div>
515 <div class="memdoc">
516
517 <p>Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. </p>
518 <ul>
519 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cosh.xml">GLSL cosh man page</a> </li>
520 <li>GLSL 1.30.08 specification, section 8.1 </li>
521 </ul>
522
523 </div>
524 </div>
525 <a class="anchor" id="ga63272179a066d755953bcfbe38666257"></a><!-- doxytag: member="glm::core::function::geometric::cross" ref="ga63272179a066d755953bcfbe38666257" args="(detail::tvec3&lt; T &gt; const &amp;x, detail::tvec3&lt; T &gt; const &amp;y)" -->
526 <div class="memitem">
527 <div class="memproto">
528 <table class="memname">
529 <tr>
530 <td class="memname">detail::tvec3&lt;T&gt; glm::core::function::geometric::cross </td>
531 <td>(</td>
532 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
533 <td class="paramname"><em>x</em>, </td>
534 </tr>
535 <tr>
536 <td class="paramkey"></td>
537 <td></td>
538 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
539 <td class="paramname"><em>y</em>&#160;</td>
540 </tr>
541 <tr>
542 <td></td>
543 <td>)</td>
544 <td></td><td></td>
545 </tr>
546 </table>
547 </div>
548 <div class="memdoc">
549
550 <p>Returns the cross product of x and y. </p>
551 <ul>
552 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cross.xml">GLSL cross man page</a> </li>
553 <li>GLSL 1.30.08 specification, section 8.4 </li>
554 </ul>
555
556 </div>
557 </div>
558 <a class="anchor" id="ga2dc092f93e998e01c1cfdaef817ca926"></a><!-- doxytag: member="glm::core::function::trigonometric::degrees" ref="ga2dc092f93e998e01c1cfdaef817ca926" args="(genType const &amp;radians)" -->
559 <div class="memitem">
560 <div class="memproto">
561 <table class="memname">
562 <tr>
563 <td class="memname">genType glm::core::function::trigonometric::degrees </td>
564 <td>(</td>
565 <td class="paramtype">genType const &amp;&#160;</td>
566 <td class="paramname"><em>radians</em></td><td>)</td>
567 <td></td>
568 </tr>
569 </table>
570 </div>
571 <div class="memdoc">
572
573 <p>Converts radians to degrees and returns the result. </p>
574 <ul>
575 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/degrees.xml">GLSL degrees man page</a> </li>
576 <li>GLSL 1.30.08 specification, section 8.1 </li>
577 </ul>
578
579 </div>
580 </div>
581 <a class="anchor" id="ga0159ae2542b5bba80743694122247c15"></a><!-- doxytag: member="glm::core::function::matrix::determinant" ref="ga0159ae2542b5bba80743694122247c15" args="(detail::tmat2x2&lt; T &gt; const &amp;m)" -->
582 <div class="memitem">
583 <div class="memproto">
584 <table class="memname">
585 <tr>
586 <td class="memname">detail::tmat2x2&lt;T&gt;::value_type glm::core::function::matrix::determinant </td>
587 <td>(</td>
588 <td class="paramtype">detail::tmat2x2&lt; T &gt; const &amp;&#160;</td>
589 <td class="paramname"><em>m</em></td><td>)</td>
590 <td></td>
591 </tr>
592 </table>
593 </div>
594 <div class="memdoc">
595
596 <p>Return the determinant of a mat2 matrix. </p>
597 <ul>
598 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/determinant.xml">GLSL determinant man page</a> </li>
599 <li>GLSL 1.30.08 specification, section 8.5 </li>
600 </ul>
601
602 </div>
603 </div>
604 <a class="anchor" id="gaadf033715cbf1171a599aa7ac7f633be"></a><!-- doxytag: member="glm::core::function::matrix::determinant" ref="gaadf033715cbf1171a599aa7ac7f633be" args="(detail::tmat3x3&lt; T &gt; const &amp;m)" -->
605 <div class="memitem">
606 <div class="memproto">
607 <table class="memname">
608 <tr>
609 <td class="memname">detail::tmat3x3&lt;T&gt;::value_type glm::core::function::matrix::determinant </td>
610 <td>(</td>
611 <td class="paramtype">detail::tmat3x3&lt; T &gt; const &amp;&#160;</td>
612 <td class="paramname"><em>m</em></td><td>)</td>
613 <td></td>
614 </tr>
615 </table>
616 </div>
617 <div class="memdoc">
618
619 <p>Return the determinant of a mat3 matrix. </p>
620 <ul>
621 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/determinant.xml">GLSL determinant man page</a> </li>
622 <li>GLSL 1.30.08 specification, section 8.5 </li>
623 </ul>
624
625 </div>
626 </div>
627 <a class="anchor" id="ga4a33b6d96bedaa0cf250c1ef152a41a3"></a><!-- doxytag: member="glm::core::function::matrix::determinant" ref="ga4a33b6d96bedaa0cf250c1ef152a41a3" args="(detail::tmat4x4&lt; T &gt; const &amp;m)" -->
628 <div class="memitem">
629 <div class="memproto">
630 <table class="memname">
631 <tr>
632 <td class="memname">detail::tmat4x4&lt;T&gt;::value_type glm::core::function::matrix::determinant </td>
633 <td>(</td>
634 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
635 <td class="paramname"><em>m</em></td><td>)</td>
636 <td></td>
637 </tr>
638 </table>
639 </div>
640 <div class="memdoc">
641
642 <p>Return the determinant of a mat4 matrix. </p>
643 <ul>
644 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/determinant.xml">GLSL determinant man page</a> </li>
645 <li>GLSL 1.30.08 specification, section 8.5 </li>
646 </ul>
647
648 </div>
649 </div>
650 <a class="anchor" id="gaa7cb6dbe9b8224c25345f1fd6fc09e77"></a><!-- doxytag: member="glm::core::function::geometric::distance" ref="gaa7cb6dbe9b8224c25345f1fd6fc09e77" args="(genType const &amp;p0, genType const &amp;p1)" -->
651 <div class="memitem">
652 <div class="memproto">
653 <table class="memname">
654 <tr>
655 <td class="memname">genType::value_type glm::core::function::geometric::distance </td>
656 <td>(</td>
657 <td class="paramtype">genType const &amp;&#160;</td>
658 <td class="paramname"><em>p0</em>, </td>
659 </tr>
660 <tr>
661 <td class="paramkey"></td>
662 <td></td>
663 <td class="paramtype">genType const &amp;&#160;</td>
664 <td class="paramname"><em>p1</em>&#160;</td>
665 </tr>
666 <tr>
667 <td></td>
668 <td>)</td>
669 <td></td><td></td>
670 </tr>
671 </table>
672 </div>
673 <div class="memdoc">
674
675 <p>Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). </p>
676 <ul>
677 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/distance.xml">GLSL distance man page</a> </li>
678 <li>GLSL 1.30.08 specification, section 8.4 </li>
679 </ul>
680
681 </div>
682 </div>
683 <a class="anchor" id="ga38e1f1538ac0fedc9d6ac14910105421"></a><!-- doxytag: member="glm::core::function::geometric::dot" ref="ga38e1f1538ac0fedc9d6ac14910105421" args="(genType const &amp;x, genType const &amp;y)" -->
684 <div class="memitem">
685 <div class="memproto">
686 <table class="memname">
687 <tr>
688 <td class="memname">genType::value_type glm::core::function::geometric::dot </td>
689 <td>(</td>
690 <td class="paramtype">genType const &amp;&#160;</td>
691 <td class="paramname"><em>x</em>, </td>
692 </tr>
693 <tr>
694 <td class="paramkey"></td>
695 <td></td>
696 <td class="paramtype">genType const &amp;&#160;</td>
697 <td class="paramname"><em>y</em>&#160;</td>
698 </tr>
699 <tr>
700 <td></td>
701 <td>)</td>
702 <td></td><td></td>
703 </tr>
704 </table>
705 </div>
706 <div class="memdoc">
707
708 <p>Returns the dot product of x and y, i.e., result = x * y. </p>
709 <ul>
710 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/dot.xml">GLSL dot man page</a> </li>
711 <li>GLSL 1.30.08 specification, section 8.4 </li>
712 </ul>
713
714 </div>
715 </div>
716 <a class="anchor" id="gac96b81360552e233031fd06390576ebf"></a><!-- doxytag: member="glm::core::function::exponential::exp" ref="gac96b81360552e233031fd06390576ebf" args="(genType const &amp;x)" -->
717 <div class="memitem">
718 <div class="memproto">
719 <table class="memname">
720 <tr>
721 <td class="memname">genType glm::core::function::exponential::exp </td>
722 <td>(</td>
723 <td class="paramtype">genType const &amp;&#160;</td>
724 <td class="paramname"><em>x</em></td><td>)</td>
725 <td></td>
726 </tr>
727 </table>
728 </div>
729 <div class="memdoc">
730
731 <p>Returns the natural exponentiation of x, i.e., e^x. </p>
732 <ul>
733 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/exp.xml">GLSL exp man page</a> </li>
734 <li>GLSL 1.30.08 specification, section 8.2 </li>
735 </ul>
736
737 </div>
738 </div>
739 <a class="anchor" id="ga79adbdfa6f2e6ce59816c9b0bd1aebe3"></a><!-- doxytag: member="glm::core::function::exponential::exp2" ref="ga79adbdfa6f2e6ce59816c9b0bd1aebe3" args="(genType const &amp;x)" -->
740 <div class="memitem">
741 <div class="memproto">
742 <table class="memname">
743 <tr>
744 <td class="memname">genType glm::core::function::exponential::exp2 </td>
745 <td>(</td>
746 <td class="paramtype">genType const &amp;&#160;</td>
747 <td class="paramname"><em>x</em></td><td>)</td>
748 <td></td>
749 </tr>
750 </table>
751 </div>
752 <div class="memdoc">
753
754 <p>Returns 2 raised to the x power. </p>
755 <ul>
756 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/exp2.xml">GLSL exp2 man page</a> </li>
757 <li>GLSL 1.30.08 specification, section 8.2 </li>
758 </ul>
759
760 </div>
761 </div>
762 <a class="anchor" id="gad591e8f7b1a5e311d3439dda2bb82aea"></a><!-- doxytag: member="glm::core::function::geometric::faceforward" ref="gad591e8f7b1a5e311d3439dda2bb82aea" args="(genType const &amp;N, genType const &amp;I, genType const &amp;Nref)" -->
763 <div class="memitem">
764 <div class="memproto">
765 <table class="memname">
766 <tr>
767 <td class="memname">genType glm::core::function::geometric::faceforward </td>
768 <td>(</td>
769 <td class="paramtype">genType const &amp;&#160;</td>
770 <td class="paramname"><em>N</em>, </td>
771 </tr>
772 <tr>
773 <td class="paramkey"></td>
774 <td></td>
775 <td class="paramtype">genType const &amp;&#160;</td>
776 <td class="paramname"><em>I</em>, </td>
777 </tr>
778 <tr>
779 <td class="paramkey"></td>
780 <td></td>
781 <td class="paramtype">genType const &amp;&#160;</td>
782 <td class="paramname"><em>Nref</em>&#160;</td>
783 </tr>
784 <tr>
785 <td></td>
786 <td>)</td>
787 <td></td><td></td>
788 </tr>
789 </table>
790 </div>
791 <div class="memdoc">
792
793 <p>If dot(Nref, I) &lt; 0.0, return N, otherwise, return -N. </p>
794 <ul>
795 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/faceforward.xml">GLSL faceforward man page</a> </li>
796 <li>GLSL 1.30.08 specification, section 8.4 </li>
797 </ul>
798
799 </div>
800 </div>
801 <a class="anchor" id="ga9890456d065156a3c3c9786b14638486"></a><!-- doxytag: member="glm::core::function::integer::findLSB" ref="ga9890456d065156a3c3c9786b14638486" args="(C&lt; T &gt; const &amp;Value)" -->
802 <div class="memitem">
803 <div class="memproto">
804 <table class="memname">
805 <tr>
806 <td class="memname">C&lt;T&gt;::signed_type glm::core::function::integer::findLSB </td>
807 <td>(</td>
808 <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
809 <td class="paramname"><em>Value</em></td><td>)</td>
810 <td></td>
811 </tr>
812 </table>
813 </div>
814 <div class="memdoc">
815
816 <p>Returns the bit number of the least significant bit set to 1 in the binary representation of value. </p>
817 <p>If value is zero, -1 will be returned. </p>
818 <ul>
819 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findLSB.xml">GLSL findLSB man page</a> </li>
820 <li>GLSL 4.00.08 specification, section 8.8 </li>
821 </ul>
822
823 </div>
824 </div>
825 <a class="anchor" id="ga0f50b6fe121f170c3725a8abb53ff077"></a><!-- doxytag: member="glm::core::function::integer::findMSB" ref="ga0f50b6fe121f170c3725a8abb53ff077" args="(C&lt; T &gt; const &amp;Value)" -->
826 <div class="memitem">
827 <div class="memproto">
828 <table class="memname">
829 <tr>
830 <td class="memname">C&lt;T&gt;::signed_type glm::core::function::integer::findMSB </td>
831 <td>(</td>
832 <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
833 <td class="paramname"><em>Value</em></td><td>)</td>
834 <td></td>
835 </tr>
836 </table>
837 </div>
838 <div class="memdoc">
839
840 <p>Returns the bit number of the most significant bit in the binary representation of value. </p>
841 <p>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. </p>
842 <ul>
843 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findMSB.xml">GLSL findMSB man page</a> </li>
844 <li>GLSL 4.00.08 specification, section 8.8 </li>
845 </ul>
846
847 </div>
848 </div>
849 <a class="anchor" id="gac01a66145ce9472afb6a3bee837c0bd6"></a><!-- doxytag: member="glm::core::function::integer::imulExtended" ref="gac01a66145ce9472afb6a3bee837c0bd6" args="(genIType const &amp;x, genIType const &amp;y, genIType &amp;msb, genIType &amp;lsb)" -->
850 <div class="memitem">
851 <div class="memproto">
852 <table class="memname">
853 <tr>
854 <td class="memname">void glm::core::function::integer::imulExtended </td>
855 <td>(</td>
856 <td class="paramtype">genIType const &amp;&#160;</td>
857 <td class="paramname"><em>x</em>, </td>
858 </tr>
859 <tr>
860 <td class="paramkey"></td>
861 <td></td>
862 <td class="paramtype">genIType const &amp;&#160;</td>
863 <td class="paramname"><em>y</em>, </td>
864 </tr>
865 <tr>
866 <td class="paramkey"></td>
867 <td></td>
868 <td class="paramtype">genIType &amp;&#160;</td>
869 <td class="paramname"><em>msb</em>, </td>
870 </tr>
871 <tr>
872 <td class="paramkey"></td>
873 <td></td>
874 <td class="paramtype">genIType &amp;&#160;</td>
875 <td class="paramname"><em>lsb</em>&#160;</td>
876 </tr>
877 <tr>
878 <td></td>
879 <td>)</td>
880 <td></td><td></td>
881 </tr>
882 </table>
883 </div>
884 <div class="memdoc">
885
886 <p>Multiplies 32-bit integers x and y, producing a 64-bit result. </p>
887 <p>The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb. </p>
888 <ul>
889 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/imulExtended.xml">GLSL imulExtended man page</a> </li>
890 <li>GLSL 4.00.08 specification, section 8.8 </li>
891 </ul>
892
893 </div>
894 </div>
895 <a class="anchor" id="ga21de0684ba52d03625b43eac0c2b866a"></a><!-- doxytag: member="glm::core::function::matrix::inverse" ref="ga21de0684ba52d03625b43eac0c2b866a" args="(detail::tmat2x2&lt; T &gt; const &amp;m)" -->
896 <div class="memitem">
897 <div class="memproto">
898 <table class="memname">
899 <tr>
900 <td class="memname">detail::tmat2x2&lt;T&gt; glm::core::function::matrix::inverse </td>
901 <td>(</td>
902 <td class="paramtype">detail::tmat2x2&lt; T &gt; const &amp;&#160;</td>
903 <td class="paramname"><em>m</em></td><td>)</td>
904 <td></td>
905 </tr>
906 </table>
907 </div>
908 <div class="memdoc">
909
910 <p>Return the inverse of a mat2 matrix. </p>
911 <ul>
912 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inverse.xml">GLSL inverse man page</a> </li>
913 <li>GLSL 1.40.07 specification, section 8.5 </li>
914 </ul>
915
916 </div>
917 </div>
918 <a class="anchor" id="gaa1bce3aab32b8949beb8160f72f1b631"></a><!-- doxytag: member="glm::core::function::matrix::inverse" ref="gaa1bce3aab32b8949beb8160f72f1b631" args="(detail::tmat3x3&lt; T &gt; const &amp;m)" -->
919 <div class="memitem">
920 <div class="memproto">
921 <table class="memname">
922 <tr>
923 <td class="memname">detail::tmat3x3&lt;T&gt; glm::core::function::matrix::inverse </td>
924 <td>(</td>
925 <td class="paramtype">detail::tmat3x3&lt; T &gt; const &amp;&#160;</td>
926 <td class="paramname"><em>m</em></td><td>)</td>
927 <td></td>
928 </tr>
929 </table>
930 </div>
931 <div class="memdoc">
932
933 <p>Return the inverse of a mat3 matrix. </p>
934 <ul>
935 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inverse.xml">GLSL inverse man page</a> </li>
936 <li>GLSL 1.40.07 specification, section 8.5 </li>
937 </ul>
938
939 </div>
940 </div>
941 <a class="anchor" id="gad5b3f7a92c8243ec53aa0704b979856b"></a><!-- doxytag: member="glm::core::function::matrix::inverse" ref="gad5b3f7a92c8243ec53aa0704b979856b" args="(detail::tmat4x4&lt; T &gt; const &amp;m)" -->
942 <div class="memitem">
943 <div class="memproto">
944 <table class="memname">
945 <tr>
946 <td class="memname">detail::tmat4x4&lt;T&gt; glm::core::function::matrix::inverse </td>
947 <td>(</td>
948 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
949 <td class="paramname"><em>m</em></td><td>)</td>
950 <td></td>
951 </tr>
952 </table>
953 </div>
954 <div class="memdoc">
955
956 <p>Return the inverse of a mat4 matrix. </p>
957 <ul>
958 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inverse.xml">GLSL inverse man page</a> </li>
959 <li>GLSL 1.40.07 specification, section 8.5 </li>
960 </ul>
961
962 </div>
963 </div>
964 <a class="anchor" id="gadce520af7df2c97aea9f689ad620fabe"></a><!-- doxytag: member="glm::core::function::exponential::inversesqrt" ref="gadce520af7df2c97aea9f689ad620fabe" args="(genType const &amp;x)" -->
965 <div class="memitem">
966 <div class="memproto">
967 <table class="memname">
968 <tr>
969 <td class="memname">genType glm::core::function::exponential::inversesqrt </td>
970 <td>(</td>
971 <td class="paramtype">genType const &amp;&#160;</td>
972 <td class="paramname"><em>x</em></td><td>)</td>
973 <td></td>
974 </tr>
975 </table>
976 </div>
977 <div class="memdoc">
978
979 <p>Returns the reciprocal of the positive square root of x. </p>
980 <ul>
981 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inversesqrt.xml">GLSL inversesqrt man page</a> </li>
982 <li>GLSL 1.30.08 specification, section 8.2 </li>
983 </ul>
984
985 </div>
986 </div>
987 <a class="anchor" id="ga10ee9a1d18c6da61cab61d8637d23847"></a><!-- doxytag: member="glm::core::function::geometric::length" ref="ga10ee9a1d18c6da61cab61d8637d23847" args="(genType const &amp;x)" -->
988 <div class="memitem">
989 <div class="memproto">
990 <table class="memname">
991 <tr>
992 <td class="memname">genType::value_type glm::core::function::geometric::length </td>
993 <td>(</td>
994 <td class="paramtype">genType const &amp;&#160;</td>
995 <td class="paramname"><em>x</em></td><td>)</td>
996 <td></td>
997 </tr>
998 </table>
999 </div>
1000 <div class="memdoc">
1001
1002 <p>Returns the length of x, i.e., sqrt(x * x). </p>
1003 <ul>
1004 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/length.xml">GLSL length man page</a> </li>
1005 <li>GLSL 1.30.08 specification, section 8.4 </li>
1006 </ul>
1007
1008 </div>
1009 </div>
1010 <a class="anchor" id="ga50b7859bfe87c2f075fe7a04e4c68cc3"></a><!-- doxytag: member="glm::core::function::exponential::log" ref="ga50b7859bfe87c2f075fe7a04e4c68cc3" args="(genType const &amp;x)" -->
1011 <div class="memitem">
1012 <div class="memproto">
1013 <table class="memname">
1014 <tr>
1015 <td class="memname">genType glm::core::function::exponential::log </td>
1016 <td>(</td>
1017 <td class="paramtype">genType const &amp;&#160;</td>
1018 <td class="paramname"><em>x</em></td><td>)</td>
1019 <td></td>
1020 </tr>
1021 </table>
1022 </div>
1023 <div class="memdoc">
1024
1025 <p>Returns the natural logarithm of x, i.e., returns the value y which satisfies the equation x = e^y. </p>
1026 <p>Results are undefined if x &lt;= 0. </p>
1027 <ul>
1028 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/log.xml">GLSL log man page</a> </li>
1029 <li>GLSL 1.30.08 specification, section 8.2 </li>
1030 </ul>
1031
1032 </div>
1033 </div>
1034 <a class="anchor" id="ga956c24e59912196d4b3714789e57c077"></a><!-- doxytag: member="glm::core::function::exponential::log2" ref="ga956c24e59912196d4b3714789e57c077" args="(genType const &amp;x)" -->
1035 <div class="memitem">
1036 <div class="memproto">
1037 <table class="memname">
1038 <tr>
1039 <td class="memname">genType glm::core::function::exponential::log2 </td>
1040 <td>(</td>
1041 <td class="paramtype">genType const &amp;&#160;</td>
1042 <td class="paramname"><em>x</em></td><td>)</td>
1043 <td></td>
1044 </tr>
1045 </table>
1046 </div>
1047 <div class="memdoc">
1048
1049 <p>Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y. </p>
1050 <ul>
1051 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/log2.xml">GLSL log2 man page</a> </li>
1052 <li>GLSL 1.30.08 specification, section 8.2 </li>
1053 </ul>
1054
1055 </div>
1056 </div>
1057 <a class="anchor" id="gad27896f9d5be202b8d39552eeb352c87"></a><!-- doxytag: member="glm::core::function::matrix::matrixCompMult" ref="gad27896f9d5be202b8d39552eeb352c87" args="(matType const &amp;x, matType const &amp;y)" -->
1058 <div class="memitem">
1059 <div class="memproto">
1060 <table class="memname">
1061 <tr>
1062 <td class="memname">matType glm::core::function::matrix::matrixCompMult </td>
1063 <td>(</td>
1064 <td class="paramtype">matType const &amp;&#160;</td>
1065 <td class="paramname"><em>x</em>, </td>
1066 </tr>
1067 <tr>
1068 <td class="paramkey"></td>
1069 <td></td>
1070 <td class="paramtype">matType const &amp;&#160;</td>
1071 <td class="paramname"><em>y</em>&#160;</td>
1072 </tr>
1073 <tr>
1074 <td></td>
1075 <td>)</td>
1076 <td></td><td></td>
1077 </tr>
1078 </table>
1079 </div>
1080 <div class="memdoc">
1081
1082 <p>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]. </p>
1083 <ul>
1084 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/matrixCompMult.xml">GLSL matrixCompMult man page</a> </li>
1085 <li>GLSL 1.30.08 specification, section 8.5 </li>
1086 </ul>
1087
1088 </div>
1089 </div>
1090 <a class="anchor" id="ga9a5b6e92c055c5d401b2a7c56b4b8da3"></a><!-- doxytag: member="glm::core::function::noise::noise1" ref="ga9a5b6e92c055c5d401b2a7c56b4b8da3" args="(genType const &amp;x)" -->
1091 <div class="memitem">
1092 <div class="memproto">
1093 <table class="memname">
1094 <tr>
1095 <td class="memname">genType::value_type glm::core::function::noise::noise1 </td>
1096 <td>(</td>
1097 <td class="paramtype">genType const &amp;&#160;</td>
1098 <td class="paramname"><em>x</em></td><td>)</td>
1099 <td></td>
1100 </tr>
1101 </table>
1102 </div>
1103 <div class="memdoc">
1104
1105 <p>Returns a 1D noise value based on the input value x. </p>
1106 <ul>
1107 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/noise1.xml">GLSL noise1 man page</a> </li>
1108 <li>GLSL 1.30.08 specification, section 8.9 </li>
1109 </ul>
1110
1111 </div>
1112 </div>
1113 <a class="anchor" id="gaad98694033fa19168b99205f5ab33a0e"></a><!-- doxytag: member="glm::core::function::noise::noise2" ref="gaad98694033fa19168b99205f5ab33a0e" args="(genType const &amp;x)" -->
1114 <div class="memitem">
1115 <div class="memproto">
1116 <table class="memname">
1117 <tr>
1118 <td class="memname">detail::tvec2&lt;typename genType::value_type&gt; glm::core::function::noise::noise2 </td>
1119 <td>(</td>
1120 <td class="paramtype">genType const &amp;&#160;</td>
1121 <td class="paramname"><em>x</em></td><td>)</td>
1122 <td></td>
1123 </tr>
1124 </table>
1125 </div>
1126 <div class="memdoc">
1127
1128 <p>Returns a 2D noise value based on the input value x. </p>
1129 <ul>
1130 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/noise2.xml">GLSL noise2 man page</a> </li>
1131 <li>GLSL 1.30.08 specification, section 8.9 </li>
1132 </ul>
1133
1134 </div>
1135 </div>
1136 <a class="anchor" id="ga8759756672debb0894c0bb18f5add8a6"></a><!-- doxytag: member="glm::core::function::noise::noise3" ref="ga8759756672debb0894c0bb18f5add8a6" args="(genType const &amp;x)" -->
1137 <div class="memitem">
1138 <div class="memproto">
1139 <table class="memname">
1140 <tr>
1141 <td class="memname">detail::tvec3&lt;typename genType::value_type&gt; glm::core::function::noise::noise3 </td>
1142 <td>(</td>
1143 <td class="paramtype">genType const &amp;&#160;</td>
1144 <td class="paramname"><em>x</em></td><td>)</td>
1145 <td></td>
1146 </tr>
1147 </table>
1148 </div>
1149 <div class="memdoc">
1150
1151 <p>Returns a 3D noise value based on the input value x. </p>
1152 <ul>
1153 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/noise3.xml">GLSL noise3 man page</a> </li>
1154 <li>GLSL 1.30.08 specification, section 8.9 </li>
1155 </ul>
1156
1157 </div>
1158 </div>
1159 <a class="anchor" id="gac744c79c4ab6cffafbd197fc5276e62d"></a><!-- doxytag: member="glm::core::function::noise::noise4" ref="gac744c79c4ab6cffafbd197fc5276e62d" args="(genType const &amp;x)" -->
1160 <div class="memitem">
1161 <div class="memproto">
1162 <table class="memname">
1163 <tr>
1164 <td class="memname">detail::tvec4&lt;typename genType::value_type&gt; glm::core::function::noise::noise4 </td>
1165 <td>(</td>
1166 <td class="paramtype">genType const &amp;&#160;</td>
1167 <td class="paramname"><em>x</em></td><td>)</td>
1168 <td></td>
1169 </tr>
1170 </table>
1171 </div>
1172 <div class="memdoc">
1173
1174 <p>Returns a 4D noise value based on the input value x. </p>
1175 <ul>
1176 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/noise4.xml">GLSL noise4 man page</a> </li>
1177 <li>GLSL 1.30.08 specification, section 8.9 </li>
1178 </ul>
1179
1180 </div>
1181 </div>
1182 <a class="anchor" id="ga07ff16965f11fa17122ac874ed492276"></a><!-- doxytag: member="glm::core::function::geometric::normalize" ref="ga07ff16965f11fa17122ac874ed492276" args="(genType const &amp;x)" -->
1183 <div class="memitem">
1184 <div class="memproto">
1185 <table class="memname">
1186 <tr>
1187 <td class="memname">genType glm::core::function::geometric::normalize </td>
1188 <td>(</td>
1189 <td class="paramtype">genType const &amp;&#160;</td>
1190 <td class="paramname"><em>x</em></td><td>)</td>
1191 <td></td>
1192 </tr>
1193 </table>
1194 </div>
1195 <div class="memdoc">
1196
1197 <p>Returns a vector in the same direction as x but with length of 1. </p>
1198 <ul>
1199 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/normalize.xml">GLSL normalize man page</a> </li>
1200 <li>GLSL 1.30.08 specification, section 8.4 </li>
1201 </ul>
1202
1203 </div>
1204 </div>
1205 <a class="anchor" id="ga04b83f76e97124e8e91d923dd7ba326c"></a><!-- doxytag: member="glm::core::function::matrix::outerProduct" ref="ga04b83f76e97124e8e91d923dd7ba326c" args="(vecType const &amp;c, vecType const &amp;r)" -->
1206 <div class="memitem">
1207 <div class="memproto">
1208 <table class="memname">
1209 <tr>
1210 <td class="memname">matType glm::core::function::matrix::outerProduct </td>
1211 <td>(</td>
1212 <td class="paramtype">vecType const &amp;&#160;</td>
1213 <td class="paramname"><em>c</em>, </td>
1214 </tr>
1215 <tr>
1216 <td class="paramkey"></td>
1217 <td></td>
1218 <td class="paramtype">vecType const &amp;&#160;</td>
1219 <td class="paramname"><em>r</em>&#160;</td>
1220 </tr>
1221 <tr>
1222 <td></td>
1223 <td>)</td>
1224 <td></td><td></td>
1225 </tr>
1226 </table>
1227 </div>
1228 <div class="memdoc">
1229
1230 <p>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. </p>
1231 <ul>
1232 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/outerProduct.xml">GLSL outerProduct man page</a> </li>
1233 <li>GLSL 1.30.08 specification, section 8.5 </li>
1234 </ul>
1235
1236 </div>
1237 </div>
1238 <a class="anchor" id="ga816867ca2fdb1bfb5d80d7a4f18a9e97"></a><!-- doxytag: member="glm::core::function::packing::packDouble2x32" ref="ga816867ca2fdb1bfb5d80d7a4f18a9e97" args="(detail::tvec2&lt; detail::uint32 &gt; const &amp;v)" -->
1239 <div class="memitem">
1240 <div class="memproto">
1241 <table class="memname">
1242 <tr>
1243 <td class="memname">double glm::core::function::packing::packDouble2x32 </td>
1244 <td>(</td>
1245 <td class="paramtype">detail::tvec2&lt; detail::uint32 &gt; const &amp;&#160;</td>
1246 <td class="paramname"><em>v</em></td><td>)</td>
1247 <td></td>
1248 </tr>
1249 </table>
1250 </div>
1251 <div class="memdoc">
1252
1253 <p>Returns a double-precision value obtained by packing the components of v into a 64-bit value. </p>
1254 <p>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.</p>
1255 <ul>
1256 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packDouble2x32.xml">GLSL packDouble2x32 man page</a> </li>
1257 <li>GLSL 4.00.08 specification, section 8.4 </li>
1258 </ul>
1259
1260 </div>
1261 </div>
1262 <a class="anchor" id="ga3f82e6b12495d9751eee53facba475da"></a><!-- doxytag: member="glm::core::function::packing::packSnorm4x8" ref="ga3f82e6b12495d9751eee53facba475da" args="(detail::tvec4&lt; detail::float32 &gt; const &amp;v)" -->
1263 <div class="memitem">
1264 <div class="memproto">
1265 <table class="memname">
1266 <tr>
1267 <td class="memname">detail::uint32 glm::core::function::packing::packSnorm4x8 </td>
1268 <td>(</td>
1269 <td class="paramtype">detail::tvec4&lt; detail::float32 &gt; const &amp;&#160;</td>
1270 <td class="paramname"><em>v</em></td><td>)</td>
1271 <td></td>
1272 </tr>
1273 </table>
1274 </div>
1275 <div class="memdoc">
1276
1277 <p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
1278 <p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
1279 <p>The conversion for component c of v to fixed point is done as follows: packSnorm4x8: round(clamp(c, -1, +1) * 127.0)</p>
1280 <p>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.</p>
1281 <ul>
1282 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </li>
1283 <li>GLSL 4.00.08 specification, section 8.4 </li>
1284 </ul>
1285
1286 </div>
1287 </div>
1288 <a class="anchor" id="ga7fc17302ae69881bb792842d472e7a30"></a><!-- doxytag: member="glm::core::function::packing::packUnorm2x16" ref="ga7fc17302ae69881bb792842d472e7a30" args="(detail::tvec2&lt; detail::float32 &gt; const &amp;v)" -->
1289 <div class="memitem">
1290 <div class="memproto">
1291 <table class="memname">
1292 <tr>
1293 <td class="memname">detail::uint32 glm::core::function::packing::packUnorm2x16 </td>
1294 <td>(</td>
1295 <td class="paramtype">detail::tvec2&lt; detail::float32 &gt; const &amp;&#160;</td>
1296 <td class="paramname"><em>v</em></td><td>)</td>
1297 <td></td>
1298 </tr>
1299 </table>
1300 </div>
1301 <div class="memdoc">
1302
1303 <p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
1304 <p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
1305 <p>The conversion for component c of v to fixed point is done as follows: packUnorm2x16: round(clamp(c, 0, +1) * 65535.0)</p>
1306 <p>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.</p>
1307 <ul>
1308 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm2x16.xml">GLSL packUnorm2x16 man page</a> </li>
1309 <li>GLSL 4.00.08 specification, section 8.4 </li>
1310 </ul>
1311
1312 </div>
1313 </div>
1314 <a class="anchor" id="gaf440e4e6c6be271327c5e2538e9c8b5f"></a><!-- doxytag: member="glm::core::function::packing::packUnorm4x8" ref="gaf440e4e6c6be271327c5e2538e9c8b5f" args="(detail::tvec4&lt; detail::float32 &gt; const &amp;v)" -->
1315 <div class="memitem">
1316 <div class="memproto">
1317 <table class="memname">
1318 <tr>
1319 <td class="memname">detail::uint32 glm::core::function::packing::packUnorm4x8 </td>
1320 <td>(</td>
1321 <td class="paramtype">detail::tvec4&lt; detail::float32 &gt; const &amp;&#160;</td>
1322 <td class="paramname"><em>v</em></td><td>)</td>
1323 <td></td>
1324 </tr>
1325 </table>
1326 </div>
1327 <div class="memdoc">
1328
1329 <p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
1330 <p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
1331 <p>The conversion for component c of v to fixed point is done as follows: packUnorm4x8: round(clamp(c, 0, +1) * 255.0)</p>
1332 <p>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.</p>
1333 <ul>
1334 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </li>
1335 <li>GLSL 4.00.08 specification, section 8.4 </li>
1336 </ul>
1337
1338 </div>
1339 </div>
1340 <a class="anchor" id="ga8eb76dfbf0fed3397c0327915279f06f"></a><!-- doxytag: member="glm::core::function::exponential::pow" ref="ga8eb76dfbf0fed3397c0327915279f06f" args="(genType const &amp;x, genType const &amp;y)" -->
1341 <div class="memitem">
1342 <div class="memproto">
1343 <table class="memname">
1344 <tr>
1345 <td class="memname">genType glm::core::function::exponential::pow </td>
1346 <td>(</td>
1347 <td class="paramtype">genType const &amp;&#160;</td>
1348 <td class="paramname"><em>x</em>, </td>
1349 </tr>
1350 <tr>
1351 <td class="paramkey"></td>
1352 <td></td>
1353 <td class="paramtype">genType const &amp;&#160;</td>
1354 <td class="paramname"><em>y</em>&#160;</td>
1355 </tr>
1356 <tr>
1357 <td></td>
1358 <td>)</td>
1359 <td></td><td></td>
1360 </tr>
1361 </table>
1362 </div>
1363 <div class="memdoc">
1364
1365 <p>Returns x raised to the y power. </p>
1366 <ul>
1367 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/pow.xml">GLSL pow man page</a> </li>
1368 <li>GLSL 1.30.08 specification, section 8.2 </li>
1369 </ul>
1370
1371 </div>
1372 </div>
1373 <a class="anchor" id="ga40251a4a07049e7fdcbf155c3cc6d32a"></a><!-- doxytag: member="glm::core::function::trigonometric::radians" ref="ga40251a4a07049e7fdcbf155c3cc6d32a" args="(genType const &amp;degrees)" -->
1374 <div class="memitem">
1375 <div class="memproto">
1376 <table class="memname">
1377 <tr>
1378 <td class="memname">genType glm::core::function::trigonometric::radians </td>
1379 <td>(</td>
1380 <td class="paramtype">genType const &amp;&#160;</td>
1381 <td class="paramname"><em>degrees</em></td><td>)</td>
1382 <td></td>
1383 </tr>
1384 </table>
1385 </div>
1386 <div class="memdoc">
1387
1388 <p>Converts degrees to radians and returns the result. </p>
1389 <ul>
1390 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/radians.xml">GLSL radians man page</a> </li>
1391 <li>GLSL 1.30.08 specification, section 8.1 </li>
1392 </ul>
1393
1394 </div>
1395 </div>
1396 <a class="anchor" id="ga2863d2331eb3752a5a17244c604c1d07"></a><!-- doxytag: member="glm::core::function::geometric::reflect" ref="ga2863d2331eb3752a5a17244c604c1d07" args="(genType const &amp;I, genType const &amp;N)" -->
1397 <div class="memitem">
1398 <div class="memproto">
1399 <table class="memname">
1400 <tr>
1401 <td class="memname">genType glm::core::function::geometric::reflect </td>
1402 <td>(</td>
1403 <td class="paramtype">genType const &amp;&#160;</td>
1404 <td class="paramname"><em>I</em>, </td>
1405 </tr>
1406 <tr>
1407 <td class="paramkey"></td>
1408 <td></td>
1409 <td class="paramtype">genType const &amp;&#160;</td>
1410 <td class="paramname"><em>N</em>&#160;</td>
1411 </tr>
1412 <tr>
1413 <td></td>
1414 <td>)</td>
1415 <td></td><td></td>
1416 </tr>
1417 </table>
1418 </div>
1419 <div class="memdoc">
1420
1421 <p>For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N. </p>
1422 <ul>
1423 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/reflect.xml">GLSL reflect man page</a> </li>
1424 <li>GLSL 1.30.08 specification, section 8.4 </li>
1425 </ul>
1426
1427 </div>
1428 </div>
1429 <a class="anchor" id="ga895392ad98499a450e2cc8579d76a84d"></a><!-- doxytag: member="glm::core::function::geometric::refract" ref="ga895392ad98499a450e2cc8579d76a84d" args="(genType const &amp;I, genType const &amp;N, typename genType::value_type const &amp;eta)" -->
1430 <div class="memitem">
1431 <div class="memproto">
1432 <table class="memname">
1433 <tr>
1434 <td class="memname">genType glm::core::function::geometric::refract </td>
1435 <td>(</td>
1436 <td class="paramtype">genType const &amp;&#160;</td>
1437 <td class="paramname"><em>I</em>, </td>
1438 </tr>
1439 <tr>
1440 <td class="paramkey"></td>
1441 <td></td>
1442 <td class="paramtype">genType const &amp;&#160;</td>
1443 <td class="paramname"><em>N</em>, </td>
1444 </tr>
1445 <tr>
1446 <td class="paramkey"></td>
1447 <td></td>
1448 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
1449 <td class="paramname"><em>eta</em>&#160;</td>
1450 </tr>
1451 <tr>
1452 <td></td>
1453 <td>)</td>
1454 <td></td><td></td>
1455 </tr>
1456 </table>
1457 </div>
1458 <div class="memdoc">
1459
1460 <p>For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector. </p>
1461 <ul>
1462 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/refract.xml">GLSL refract man page</a> </li>
1463 <li>GLSL 1.30.08 specification, section 8.4 </li>
1464 </ul>
1465
1466 </div>
1467 </div>
1468 <a class="anchor" id="gad246389321f46f7cb1cc422f9fd64cf4"></a><!-- doxytag: member="glm::core::function::trigonometric::sin" ref="gad246389321f46f7cb1cc422f9fd64cf4" args="(genType const &amp;angle)" -->
1469 <div class="memitem">
1470 <div class="memproto">
1471 <table class="memname">
1472 <tr>
1473 <td class="memname">genType glm::core::function::trigonometric::sin </td>
1474 <td>(</td>
1475 <td class="paramtype">genType const &amp;&#160;</td>
1476 <td class="paramname"><em>angle</em></td><td>)</td>
1477 <td></td>
1478 </tr>
1479 </table>
1480 </div>
1481 <div class="memdoc">
1482
1483 <p>The standard trigonometric sine function. </p>
1484 <p>The values returned by this function will range from [-1, 1]. </p>
1485 <ul>
1486 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sin.xml">GLSL sin man page</a> </li>
1487 <li>GLSL 1.30.08 specification, section 8.1 </li>
1488 </ul>
1489
1490 </div>
1491 </div>
1492 <a class="anchor" id="ga13a63bc67a160b1614ba3681f57fe480"></a><!-- doxytag: member="glm::core::function::trigonometric::sinh" ref="ga13a63bc67a160b1614ba3681f57fe480" args="(genType const &amp;angle)" -->
1493 <div class="memitem">
1494 <div class="memproto">
1495 <table class="memname">
1496 <tr>
1497 <td class="memname">genType glm::core::function::trigonometric::sinh </td>
1498 <td>(</td>
1499 <td class="paramtype">genType const &amp;&#160;</td>
1500 <td class="paramname"><em>angle</em></td><td>)</td>
1501 <td></td>
1502 </tr>
1503 </table>
1504 </div>
1505 <div class="memdoc">
1506
1507 <p>Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. </p>
1508 <ul>
1509 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sinh.xml">GLSL sinh man page</a> </li>
1510 <li>GLSL 1.30.08 specification, section 8.1 </li>
1511 </ul>
1512
1513 </div>
1514 </div>
1515 <a class="anchor" id="ga29d9d4ccbca8f2168ac6534fbb65cbad"></a><!-- doxytag: member="glm::core::function::exponential::sqrt" ref="ga29d9d4ccbca8f2168ac6534fbb65cbad" args="(genType const &amp;x)" -->
1516 <div class="memitem">
1517 <div class="memproto">
1518 <table class="memname">
1519 <tr>
1520 <td class="memname">genType glm::core::function::exponential::sqrt </td>
1521 <td>(</td>
1522 <td class="paramtype">genType const &amp;&#160;</td>
1523 <td class="paramname"><em>x</em></td><td>)</td>
1524 <td></td>
1525 </tr>
1526 </table>
1527 </div>
1528 <div class="memdoc">
1529
1530 <p>Returns the positive square root of x. </p>
1531 <ul>
1532 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sqrt.xml">GLSL sqrt man page</a> </li>
1533 <li>GLSL 1.30.08 specification, section 8.2 </li>
1534 </ul>
1535
1536 </div>
1537 </div>
1538 <a class="anchor" id="ga1a556079a4fee8b5e12fcfe7551f6931"></a><!-- doxytag: member="glm::core::function::trigonometric::tan" ref="ga1a556079a4fee8b5e12fcfe7551f6931" args="(genType const &amp;angle)" -->
1539 <div class="memitem">
1540 <div class="memproto">
1541 <table class="memname">
1542 <tr>
1543 <td class="memname">genType glm::core::function::trigonometric::tan </td>
1544 <td>(</td>
1545 <td class="paramtype">genType const &amp;&#160;</td>
1546 <td class="paramname"><em>angle</em></td><td>)</td>
1547 <td></td>
1548 </tr>
1549 </table>
1550 </div>
1551 <div class="memdoc">
1552
1553 <p>The standard trigonometric tangent function. </p>
1554 <ul>
1555 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/tan.xml">GLSL tan man page</a> </li>
1556 <li>GLSL 1.30.08 specification, section 8.1 </li>
1557 </ul>
1558
1559 </div>
1560 </div>
1561 <a class="anchor" id="gad93de1d635832bf722eb78a088bfbaa6"></a><!-- doxytag: member="glm::core::function::trigonometric::tanh" ref="gad93de1d635832bf722eb78a088bfbaa6" args="(genType const &amp;angle)" -->
1562 <div class="memitem">
1563 <div class="memproto">
1564 <table class="memname">
1565 <tr>
1566 <td class="memname">genType glm::core::function::trigonometric::tanh </td>
1567 <td>(</td>
1568 <td class="paramtype">genType const &amp;&#160;</td>
1569 <td class="paramname"><em>angle</em></td><td>)</td>
1570 <td></td>
1571 </tr>
1572 </table>
1573 </div>
1574 <div class="memdoc">
1575
1576 <p>Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) </p>
1577 <ul>
1578 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/tanh.xml">GLSL tanh man page</a> </li>
1579 <li>GLSL 1.30.08 specification, section 8.1 </li>
1580 </ul>
1581
1582 </div>
1583 </div>
1584 <a class="anchor" id="ga8b1a22512f73b0176ad062d3d480e906"></a><!-- doxytag: member="glm::core::function::matrix::transpose" ref="ga8b1a22512f73b0176ad062d3d480e906" args="(matType const &amp;x)" -->
1585 <div class="memitem">
1586 <div class="memproto">
1587 <table class="memname">
1588 <tr>
1589 <td class="memname">matType::transpose_type glm::core::function::matrix::transpose </td>
1590 <td>(</td>
1591 <td class="paramtype">matType const &amp;&#160;</td>
1592 <td class="paramname"><em>x</em></td><td>)</td>
1593 <td></td>
1594 </tr>
1595 </table>
1596 </div>
1597 <div class="memdoc">
1598
1599 <p>Returns the transposed matrix of x. </p>
1600 <ul>
1601 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/transpose.xml">GLSL transpose man page</a> </li>
1602 <li>GLSL 1.30.08 specification, section 8.5 </li>
1603 </ul>
1604
1605 </div>
1606 </div>
1607 <a class="anchor" id="ga8d63fd56743cc93286f09742baed4002"></a><!-- doxytag: member="glm::core::function::integer::uaddCarry" ref="ga8d63fd56743cc93286f09742baed4002" args="(genUType const &amp;x, genUType const &amp;y, genUType &amp;carry)" -->
1608 <div class="memitem">
1609 <div class="memproto">
1610 <table class="memname">
1611 <tr>
1612 <td class="memname">genUType glm::core::function::integer::uaddCarry </td>
1613 <td>(</td>
1614 <td class="paramtype">genUType const &amp;&#160;</td>
1615 <td class="paramname"><em>x</em>, </td>
1616 </tr>
1617 <tr>
1618 <td class="paramkey"></td>
1619 <td></td>
1620 <td class="paramtype">genUType const &amp;&#160;</td>
1621 <td class="paramname"><em>y</em>, </td>
1622 </tr>
1623 <tr>
1624 <td class="paramkey"></td>
1625 <td></td>
1626 <td class="paramtype">genUType &amp;&#160;</td>
1627 <td class="paramname"><em>carry</em>&#160;</td>
1628 </tr>
1629 <tr>
1630 <td></td>
1631 <td>)</td>
1632 <td></td><td></td>
1633 </tr>
1634 </table>
1635 </div>
1636 <div class="memdoc">
1637
1638 <p>Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32). </p>
1639 <p>The value carry is set to 0 if the sum was less than pow(2, 32), or to 1 otherwise. </p>
1640 <ul>
1641 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/uaddCarry.xml">GLSL uaddCarry man page</a> </li>
1642 <li>GLSL 4.00.08 specification, section 8.8 </li>
1643 </ul>
1644
1645 </div>
1646 </div>
1647 <a class="anchor" id="gad9b60d1c7e161b78682b7f8b071e213e"></a><!-- doxytag: member="glm::core::function::integer::umulExtended" ref="gad9b60d1c7e161b78682b7f8b071e213e" args="(genUType const &amp;x, genUType const &amp;y, genUType &amp;msb, genUType &amp;lsb)" -->
1648 <div class="memitem">
1649 <div class="memproto">
1650 <table class="memname">
1651 <tr>
1652 <td class="memname">void glm::core::function::integer::umulExtended </td>
1653 <td>(</td>
1654 <td class="paramtype">genUType const &amp;&#160;</td>
1655 <td class="paramname"><em>x</em>, </td>
1656 </tr>
1657 <tr>
1658 <td class="paramkey"></td>
1659 <td></td>
1660 <td class="paramtype">genUType const &amp;&#160;</td>
1661 <td class="paramname"><em>y</em>, </td>
1662 </tr>
1663 <tr>
1664 <td class="paramkey"></td>
1665 <td></td>
1666 <td class="paramtype">genUType &amp;&#160;</td>
1667 <td class="paramname"><em>msb</em>, </td>
1668 </tr>
1669 <tr>
1670 <td class="paramkey"></td>
1671 <td></td>
1672 <td class="paramtype">genUType &amp;&#160;</td>
1673 <td class="paramname"><em>lsb</em>&#160;</td>
1674 </tr>
1675 <tr>
1676 <td></td>
1677 <td>)</td>
1678 <td></td><td></td>
1679 </tr>
1680 </table>
1681 </div>
1682 <div class="memdoc">
1683
1684 <p>Multiplies 32-bit integers x and y, producing a 64-bit result. </p>
1685 <p>The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb. </p>
1686 <ul>
1687 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/umulExtended.xml">GLSL umulExtended man page</a> </li>
1688 <li>GLSL 4.00.08 specification, section 8.8 </li>
1689 </ul>
1690
1691 </div>
1692 </div>
1693 <a class="anchor" id="ga4e80ba8eaef0b878ecb43053a4df9ff7"></a><!-- doxytag: member="glm::core::function::packing::unpackDouble2x32" ref="ga4e80ba8eaef0b878ecb43053a4df9ff7" args="(double const &amp;v)" -->
1694 <div class="memitem">
1695 <div class="memproto">
1696 <table class="memname">
1697 <tr>
1698 <td class="memname">detail::tvec2&lt;detail::uint32&gt; glm::core::function::packing::unpackDouble2x32 </td>
1699 <td>(</td>
1700 <td class="paramtype">double const &amp;&#160;</td>
1701 <td class="paramname"><em>v</em></td><td>)</td>
1702 <td></td>
1703 </tr>
1704 </table>
1705 </div>
1706 <div class="memdoc">
1707
1708 <p>Returns a two-component unsigned integer vector representation of v. </p>
1709 <p>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.</p>
1710 <ul>
1711 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackDouble2x32.xml">GLSL unpackDouble2x32 man page</a> </li>
1712 <li>GLSL 4.00.08 specification, section 8.4 </li>
1713 </ul>
1714
1715 </div>
1716 </div>
1717 <a class="anchor" id="ga03dafa00be8359e3a028aed81ae6007e"></a><!-- doxytag: member="glm::core::function::packing::unpackSnorm4x8" ref="ga03dafa00be8359e3a028aed81ae6007e" args="(detail::uint32 const &amp;p)" -->
1718 <div class="memitem">
1719 <div class="memproto">
1720 <table class="memname">
1721 <tr>
1722 <td class="memname">detail::tvec4&lt;detail::float32&gt; glm::core::function::packing::unpackSnorm4x8 </td>
1723 <td>(</td>
1724 <td class="paramtype">detail::uint32 const &amp;&#160;</td>
1725 <td class="paramname"><em>p</em></td><td>)</td>
1726 <td></td>
1727 </tr>
1728 </table>
1729 </div>
1730 <div class="memdoc">
1731
1732 <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. </p>
1733 <p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
1734 <p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x8: clamp(f / 127.0, -1, +1)</p>
1735 <p>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.</p>
1736 <ul>
1737 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm4x8.xml">GLSL unpackSnorm4x8 man page</a> </li>
1738 <li>GLSL 4.00.08 specification, section 8.4 </li>
1739 </ul>
1740
1741 </div>
1742 </div>
1743 <a class="anchor" id="gab3745178db4024212c4d7cb3df9a6f39"></a><!-- doxytag: member="glm::core::function::packing::unpackUnorm2x16" ref="gab3745178db4024212c4d7cb3df9a6f39" args="(detail::uint32 const &amp;p)" -->
1744 <div class="memitem">
1745 <div class="memproto">
1746 <table class="memname">
1747 <tr>
1748 <td class="memname">detail::tvec2&lt;detail::float32&gt; glm::core::function::packing::unpackUnorm2x16 </td>
1749 <td>(</td>
1750 <td class="paramtype">detail::uint32 const &amp;&#160;</td>
1751 <td class="paramname"><em>p</em></td><td>)</td>
1752 <td></td>
1753 </tr>
1754 </table>
1755 </div>
1756 <div class="memdoc">
1757
1758 <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. </p>
1759 <p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
1760 <p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm2x16: f / 65535.0</p>
1761 <p>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.</p>
1762 <ul>
1763 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm2x16.xml">GLSL unpackUnorm2x16 man page</a> </li>
1764 <li>GLSL 4.00.08 specification, section 8.4 </li>
1765 </ul>
1766
1767 </div>
1768 </div>
1769 <a class="anchor" id="ga11630d2b293d96452c412639ec3c942e"></a><!-- doxytag: member="glm::core::function::packing::unpackUnorm4x8" ref="ga11630d2b293d96452c412639ec3c942e" args="(detail::uint32 const &amp;p)" -->
1770 <div class="memitem">
1771 <div class="memproto">
1772 <table class="memname">
1773 <tr>
1774 <td class="memname">detail::tvec4&lt;detail::float32&gt; glm::core::function::packing::unpackUnorm4x8 </td>
1775 <td>(</td>
1776 <td class="paramtype">detail::uint32 const &amp;&#160;</td>
1777 <td class="paramname"><em>p</em></td><td>)</td>
1778 <td></td>
1779 </tr>
1780 </table>
1781 </div>
1782 <div class="memdoc">
1783
1784 <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. </p>
1785 <p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
1786 <p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0</p>
1787 <p>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.</p>
1788 <ul>
1789 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm4x8.xml">GLSL unpackUnorm4x8 man page</a> </li>
1790 <li>GLSL 4.00.08 specification, section 8.4 </li>
1791 </ul>
1792
1793 </div>
1794 </div>
1795 <a class="anchor" id="ga5ea2ea51e7cf73056069ce7583d61560"></a><!-- doxytag: member="glm::core::function::integer::usubBorrow" ref="ga5ea2ea51e7cf73056069ce7583d61560" args="(genUType const &amp;x, genUType const &amp;y, genUType &amp;borrow)" -->
1796 <div class="memitem">
1797 <div class="memproto">
1798 <table class="memname">
1799 <tr>
1800 <td class="memname">genUType glm::core::function::integer::usubBorrow </td>
1801 <td>(</td>
1802 <td class="paramtype">genUType const &amp;&#160;</td>
1803 <td class="paramname"><em>x</em>, </td>
1804 </tr>
1805 <tr>
1806 <td class="paramkey"></td>
1807 <td></td>
1808 <td class="paramtype">genUType const &amp;&#160;</td>
1809 <td class="paramname"><em>y</em>, </td>
1810 </tr>
1811 <tr>
1812 <td class="paramkey"></td>
1813 <td></td>
1814 <td class="paramtype">genUType &amp;&#160;</td>
1815 <td class="paramname"><em>borrow</em>&#160;</td>
1816 </tr>
1817 <tr>
1818 <td></td>
1819 <td>)</td>
1820 <td></td><td></td>
1821 </tr>
1822 </table>
1823 </div>
1824 <div class="memdoc">
1825
1826 <p>Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise. </p>
1827 <p>The value borrow is set to 0 if x &gt;= y, or to 1 otherwise. </p>
1828 <ul>
1829 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/usubBorrow.xml">GLSL usubBorrow man page</a> </li>
1830 <li>GLSL 4.00.08 specification, section 8.8 </li>
1831 </ul>
1832
1833 </div>
1834 </div>
711835 </div>
721836 <hr class="footer"/><address class="footer"><small>Generated by&#160;
731837 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>Functions</title>
4 <title>GTC Extensions (Stable)</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#func-members">Functions</a> </div>
32 <a href="#groups">Modules</a> </div>
3333 <div class="headertitle">
34 <h1>Functions</h1> </div>
35 <div class="ingroups"><a class="el" href="a00234.html">GLM Core</a></div></div>
34 <h1>GTC Extensions (Stable)</h1> </div>
35 </div>
3636 <div class="contents">
3737
38 <p>The functions defined by the specification.
38 <p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
41 <tr><td colspan="2"><h2><a name="func-members"></a>
42 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genFIType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genFIType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga5206aa60ce61ad1d7d1b53d5028c7a2a">abs</a> (genFIType const &amp;x)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga52a4b4cbe6d47f94d06ee1efd95786e6">acos</a> (genType const &amp;x)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga7c8d8ac539a43da0d41e656a38262ff0">acosh</a> (genType const &amp;x)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;template&lt; typename &gt; class vecType&gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga07b92e9e7077f06fe26e417f320b0f0c">all</a> (vecType&lt; bool &gt; const &amp;v)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;template&lt; typename &gt; class vecType&gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaa478a7966a4e6550bf0ee58ea8271074">any</a> (vecType&lt; bool &gt; const &amp;v)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga3c625e34fc99b33829c28c6d580df7e2">asin</a> (genType const &amp;x)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga7ba20fc7c7b3eeef601e73b130e63db5">asinh</a> (genType const &amp;x)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga32dbceedb2910e519860a225ae7f7450">atan</a> (genType const &amp;y, genType const &amp;x)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga3abfab80cac8e26d4efda9949586ded6">atan</a> (genType const &amp;y_over_x)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga4d896caf7b1a8e5b5e3b29394e8c0ecd">atanh</a> (genType const &amp;x)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga29cfb04fafbaa1939955f11fef28ff38">bitCount</a> (C&lt; T &gt; const &amp;Value)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga3b4804e700ade895189ea8bde142c822">bitfieldExtract</a> (genIUType const &amp;Value, int const &amp;Offset, int const &amp;Bits)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga90d0bc8e79f637da58b8fad2fc8f3275">bitfieldInsert</a> (genIUType const &amp;Base, genIUType const &amp;Insert, int const &amp;Offset, int const &amp;Bits)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga68bdb2c3debc414d5567935b4cbca62f">bitfieldReverse</a> (genIUType const &amp;value)</td></tr>
71 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga828376ee58b02d80d91eee97c50323f8">ceil</a> (genType const &amp;x)</td></tr>
73 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
74 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga8d9331a9bd3aa06e1d10eb7fa0dbb9e5">clamp</a> (genType const &amp;x, genType const &amp;minVal, genType const &amp;maxVal)</td></tr>
75 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
76 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga4fbc8481a95bcc1c0c6931a34449b9a8">cos</a> (genType const &amp;angle)</td></tr>
77 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
78 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga2cfdbcd7a269a114cbb4f19dcf1e3f8b">cosh</a> (genType const &amp;angle)</td></tr>
79 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
80 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga63272179a066d755953bcfbe38666257">cross</a> (detail::tvec3&lt; T &gt; const &amp;x, detail::tvec3&lt; T &gt; const &amp;y)</td></tr>
81 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
82 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga2dc092f93e998e01c1cfdaef817ca926">degrees</a> (genType const &amp;radians)</td></tr>
83 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
84 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga0159ae2542b5bba80743694122247c15">determinant</a> (detail::tmat2x2&lt; T &gt; const &amp;m)</td></tr>
85 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
86 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaadf033715cbf1171a599aa7ac7f633be">determinant</a> (detail::tmat3x3&lt; T &gt; const &amp;m)</td></tr>
87 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
88 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga4a33b6d96bedaa0cf250c1ef152a41a3">determinant</a> (detail::tmat4x4&lt; T &gt; const &amp;m)</td></tr>
89 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
90 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaa7cb6dbe9b8224c25345f1fd6fc09e77">distance</a> (genType const &amp;p0, genType const &amp;p1)</td></tr>
91 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
92 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga38e1f1538ac0fedc9d6ac14910105421">dot</a> (genType const &amp;x, genType const &amp;y)</td></tr>
93 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
94 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; T &gt;<br class="typebreak"/>
95 ::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga811015178de53f628610f2036946fbb9">equal</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
96 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
97 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gac96b81360552e233031fd06390576ebf">exp</a> (genType const &amp;x)</td></tr>
98 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
99 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga79adbdfa6f2e6ce59816c9b0bd1aebe3">exp2</a> (genType const &amp;x)</td></tr>
100 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
101 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gad591e8f7b1a5e311d3439dda2bb82aea">faceforward</a> (genType const &amp;N, genType const &amp;I, genType const &amp;Nref)</td></tr>
102 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
103 <tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga9890456d065156a3c3c9786b14638486">findLSB</a> (C&lt; T &gt; const &amp;Value)</td></tr>
104 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
105 <tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga0f50b6fe121f170c3725a8abb53ff077">findMSB</a> (C&lt; T &gt; const &amp;Value)</td></tr>
106 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
107 <tr><td class="memTemplItemLeft" align="right" valign="top">genIType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga2508259e7d3093603f4c6d3c132a704c">floatBitsToInt</a> (genType const &amp;value)</td></tr>
108 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genUType &gt; </td></tr>
109 <tr><td class="memTemplItemLeft" align="right" valign="top">genUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga17f59f3a2dd5b93e32ff1057be188681">floatBitsToUint</a> (genType const &amp;value)</td></tr>
110 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
111 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga4206a98e812c2bd4801e4d299c83f6c7">floor</a> (genType const &amp;x)</td></tr>
112 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
113 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gad0278428ad872e7be378c3b2ad66b0ba">fma</a> (genType const &amp;a, genType const &amp;b, genType const &amp;c)</td></tr>
114 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
115 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga67dda5fd839bc489827be9e225847a45">fract</a> (genType const &amp;x)</td></tr>
116 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
117 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga51135c18fa3b70b67478e546258caa64">frexp</a> (genType const &amp;x, genIType &amp;exp)</td></tr>
118 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
119 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; T &gt;<br class="typebreak"/>
120 ::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaef35061292f337c0d788f43a3b1a26c0">greaterThan</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
121 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
122 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; T &gt;<br class="typebreak"/>
123 ::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga39aa8024d619850c81a685a4905177df">greaterThanEqual</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
124 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIType &gt; </td></tr>
125 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gac01a66145ce9472afb6a3bee837c0bd6">imulExtended</a> (genIType const &amp;x, genIType const &amp;y, genIType &amp;msb, genIType &amp;lsb)</td></tr>
126 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
127 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga3b76eab7091983e936c894b1976e90be">intBitsToFloat</a> (genIType const &amp;value)</td></tr>
128 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
129 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaa1bce3aab32b8949beb8160f72f1b631">inverse</a> (detail::tmat3x3&lt; T &gt; const &amp;m)</td></tr>
130 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
131 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gad5b3f7a92c8243ec53aa0704b979856b">inverse</a> (detail::tmat4x4&lt; T &gt; const &amp;m)</td></tr>
132 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
133 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga21de0684ba52d03625b43eac0c2b866a">inverse</a> (detail::tmat2x2&lt; T &gt; const &amp;m)</td></tr>
134 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
135 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gadce520af7df2c97aea9f689ad620fabe">inversesqrt</a> (genType const &amp;x)</td></tr>
136 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
137 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga7194c89cf656614f231e11c46d906465">isinf</a> (genType const &amp;x)</td></tr>
138 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
139 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga873db92807cc955cf98030c94a342d5a">isnan</a> (genType const &amp;x)</td></tr>
140 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
141 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaa99c16ada9e61cca03a8a00938a3c330">ldexp</a> (genType const &amp;x, genIType const &amp;exp)</td></tr>
142 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
143 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga10ee9a1d18c6da61cab61d8637d23847">length</a> (genType const &amp;x)</td></tr>
144 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
145 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; T &gt;<br class="typebreak"/>
146 ::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga54e5b894f79b9c1b8f6d28fe6f986e80">lessThan</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
147 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
148 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; T &gt;<br class="typebreak"/>
149 ::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga190db45f1b40202ee0716751448b119d">lessThanEqual</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
150 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
151 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga50b7859bfe87c2f075fe7a04e4c68cc3">log</a> (genType const &amp;x)</td></tr>
152 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
153 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga956c24e59912196d4b3714789e57c077">log2</a> (genType const &amp;x)</td></tr>
154 <tr><td class="memTemplParams" colspan="2">template&lt;typename matType &gt; </td></tr>
155 <tr><td class="memTemplItemLeft" align="right" valign="top">matType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gad27896f9d5be202b8d39552eeb352c87">matrixCompMult</a> (matType const &amp;x, matType const &amp;y)</td></tr>
156 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
157 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga33a594380eeb7ac803c747298563d084">max</a> (genType const &amp;x, genType const &amp;y)</td></tr>
158 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
159 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gacbc721d96bff24d97ed7989d35f27067">min</a> (genType const &amp;x, genType const &amp;y)</td></tr>
160 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
161 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga11288dc43a2a1833766728a3eb81ac63">mix</a> (genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;a)</td></tr>
162 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
163 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga73fa91f6041b135083b0dea6e88c7aba">mod</a> (genType const &amp;x, genType const &amp;y)</td></tr>
164 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
165 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gacf6e2a9cb28a36f92338e82f3bf5755e">mod</a> (genType const &amp;x, typename genType::value_type const &amp;y)</td></tr>
166 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
167 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga3f3cec79cc1542950cd4cddb7ab67584">modf</a> (genType const &amp;x, genType &amp;i)</td></tr>
168 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
169 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga9a5b6e92c055c5d401b2a7c56b4b8da3">noise1</a> (genType const &amp;x)</td></tr>
170 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
171 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; typename <br class="typebreak"/>
172 genType::value_type &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaad98694033fa19168b99205f5ab33a0e">noise2</a> (genType const &amp;x)</td></tr>
173 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
174 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; typename <br class="typebreak"/>
175 genType::value_type &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga8759756672debb0894c0bb18f5add8a6">noise3</a> (genType const &amp;x)</td></tr>
176 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
177 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; typename <br class="typebreak"/>
178 genType::value_type &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gac744c79c4ab6cffafbd197fc5276e62d">noise4</a> (genType const &amp;x)</td></tr>
179 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
180 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga07ff16965f11fa17122ac874ed492276">normalize</a> (genType const &amp;x)</td></tr>
181 <tr><td class="memTemplParams" colspan="2">template&lt;template&lt; typename &gt; class vecType&gt; </td></tr>
182 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gadb3248006580ee79ebb1d358bce25ca0">not_</a> (vecType&lt; bool &gt; const &amp;v)</td></tr>
183 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
184 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vecType&lt; T &gt;<br class="typebreak"/>
185 ::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga62979ef5be1ad914f866074b900abdcd">notEqual</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
186 <tr><td class="memTemplParams" colspan="2">template&lt;typename vecType , typename matType &gt; </td></tr>
187 <tr><td class="memTemplItemLeft" align="right" valign="top">matType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga04b83f76e97124e8e91d923dd7ba326c">outerProduct</a> (vecType const &amp;c, vecType const &amp;r)</td></tr>
188 <tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga816867ca2fdb1bfb5d80d7a4f18a9e97">packDouble2x32</a> (detail::tvec2&lt; detail::uint32 &gt; const &amp;v)</td></tr>
189 <tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3f82e6b12495d9751eee53facba475da">packSnorm4x8</a> (detail::tvec4&lt; detail::float32 &gt; const &amp;v)</td></tr>
190 <tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7fc17302ae69881bb792842d472e7a30">packUnorm2x16</a> (detail::tvec2&lt; detail::float32 &gt; const &amp;v)</td></tr>
191 <tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf440e4e6c6be271327c5e2538e9c8b5f">packUnorm4x8</a> (detail::tvec4&lt; detail::float32 &gt; const &amp;v)</td></tr>
192 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
193 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga8eb76dfbf0fed3397c0327915279f06f">pow</a> (genType const &amp;x, genType const &amp;y)</td></tr>
194 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
195 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga40251a4a07049e7fdcbf155c3cc6d32a">radians</a> (genType const &amp;degrees)</td></tr>
196 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
197 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga2863d2331eb3752a5a17244c604c1d07">reflect</a> (genType const &amp;I, genType const &amp;N)</td></tr>
198 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
199 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga895392ad98499a450e2cc8579d76a84d">refract</a> (genType const &amp;I, genType const &amp;N, typename genType::value_type const &amp;eta)</td></tr>
200 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
201 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaa4cb0836cd9457ac6cedd3366333b16f">round</a> (genType const &amp;x)</td></tr>
202 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
203 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga656ce625ba1dc1d137bfc7cc7b2ab50b">roundEven</a> (genType const &amp;x)</td></tr>
204 <tr><td class="memTemplParams" colspan="2">template&lt;typename genFIType &gt; </td></tr>
205 <tr><td class="memTemplItemLeft" align="right" valign="top">genFIType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga992a45e46af5dc123e688808d1bae48f">sign</a> (genFIType const &amp;x)</td></tr>
206 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
207 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gad246389321f46f7cb1cc422f9fd64cf4">sin</a> (genType const &amp;angle)</td></tr>
208 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
209 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga13a63bc67a160b1614ba3681f57fe480">sinh</a> (genType const &amp;angle)</td></tr>
210 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
211 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaec459c912160fa6d9c18acd52976bb4d">smoothstep</a> (genType const &amp;edge0, genType const &amp;edge1, genType const &amp;x)</td></tr>
212 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
213 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga29d9d4ccbca8f2168ac6534fbb65cbad">sqrt</a> (genType const &amp;x)</td></tr>
214 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
215 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaf1c0aac0585f62db8db44e407478c434">step</a> (genType const &amp;edge, genType const &amp;x)</td></tr>
216 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
217 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga1a556079a4fee8b5e12fcfe7551f6931">tan</a> (genType const &amp;angle)</td></tr>
218 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
219 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gad93de1d635832bf722eb78a088bfbaa6">tanh</a> (genType const &amp;angle)</td></tr>
220 <tr><td class="memTemplParams" colspan="2">template&lt;typename matType &gt; </td></tr>
221 <tr><td class="memTemplItemLeft" align="right" valign="top">matType::transpose_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga8b1a22512f73b0176ad062d3d480e906">transpose</a> (matType const &amp;x)</td></tr>
222 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
223 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga2303d814e83b34ee2d5f34fcff7fa275">trunc</a> (genType const &amp;x)</td></tr>
224 <tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
225 <tr><td class="memTemplItemLeft" align="right" valign="top">genUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga8d63fd56743cc93286f09742baed4002">uaddCarry</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;carry)</td></tr>
226 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genUType &gt; </td></tr>
227 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga1a38039b00f182b6b22e909ea5a87bab">uintBitsToFloat</a> (genUType const &amp;value)</td></tr>
228 <tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
229 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gad9b60d1c7e161b78682b7f8b071e213e">umulExtended</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;msb, genUType &amp;lsb)</td></tr>
230 <tr><td class="memItemLeft" align="right" valign="top">detail::tvec2&lt; detail::uint32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga4e80ba8eaef0b878ecb43053a4df9ff7">unpackDouble2x32</a> (double const &amp;v)</td></tr>
231 <tr><td class="memItemLeft" align="right" valign="top">detail::tvec4&lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga03dafa00be8359e3a028aed81ae6007e">unpackSnorm4x8</a> (detail::uint32 const &amp;p)</td></tr>
232 <tr><td class="memItemLeft" align="right" valign="top">detail::tvec2&lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab3745178db4024212c4d7cb3df9a6f39">unpackUnorm2x16</a> (detail::uint32 const &amp;p)</td></tr>
233 <tr><td class="memItemLeft" align="right" valign="top">detail::tvec4&lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga11630d2b293d96452c412639ec3c942e">unpackUnorm4x8</a> (detail::uint32 const &amp;p)</td></tr>
234 <tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
235 <tr><td class="memTemplItemLeft" align="right" valign="top">genUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga5ea2ea51e7cf73056069ce7583d61560">usubBorrow</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;borrow)</td></tr>
41 <tr><td colspan="2"><h2><a name="groups"></a>
42 Modules</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html">GLM_GTC_half_float: Half-precision floating-point based types and functions.</a></td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html">GLM_GTC_matrix_access: Access matrix rows and columns.</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html">GLM_GTC_matrix_integer: Integer matrix types.</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html">GLM_GTC_matrix_inverse: Additional matrix inverse function</a></td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00243.html">GLM_GTC_matrix_transform: Matrix transform functions.</a></td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00244.html">GLM_GTC_quaternion: Quaternion types and functions</a></td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html">GLM_GTC_type_precision: Vector and matrix types with defined precisions.</a></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html">GLM_GTC_type_ptr: Memory layout access.</a></td></tr>
23651 </table>
23752 <hr/><a name="_details"></a><h2>Detailed Description</h2>
238 <p>The functions defined by the specification. </p>
239 <hr/><h2>Function Documentation</h2>
240 <a class="anchor" id="ga5206aa60ce61ad1d7d1b53d5028c7a2a"></a><!-- doxytag: member="glm::core::function::common::abs" ref="ga5206aa60ce61ad1d7d1b53d5028c7a2a" args="(genFIType const &amp;x)" -->
241 <div class="memitem">
242 <div class="memproto">
243 <table class="memname">
244 <tr>
245 <td class="memname">genFIType glm::core::function::common::abs </td>
246 <td>(</td>
247 <td class="paramtype">genFIType const &amp;&#160;</td>
248 <td class="paramname"><em>x</em></td><td>)</td>
249 <td></td>
250 </tr>
251 </table>
252 </div>
253 <div class="memdoc">
254
255 <p>Returns x if x &gt;= 0; otherwise, it returns -x. </p>
256 <ul>
257 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/abs.xml">GLSL abs man page</a> </li>
258 <li>GLSL 1.30.08 specification, section 8.3 </li>
259 </ul>
260
261 </div>
262 </div>
263 <a class="anchor" id="ga52a4b4cbe6d47f94d06ee1efd95786e6"></a><!-- doxytag: member="glm::core::function::trigonometric::acos" ref="ga52a4b4cbe6d47f94d06ee1efd95786e6" args="(genType const &amp;x)" -->
264 <div class="memitem">
265 <div class="memproto">
266 <table class="memname">
267 <tr>
268 <td class="memname">genType glm::core::function::trigonometric::acos </td>
269 <td>(</td>
270 <td class="paramtype">genType const &amp;&#160;</td>
271 <td class="paramname"><em>x</em></td><td>)</td>
272 <td></td>
273 </tr>
274 </table>
275 </div>
276 <div class="memdoc">
277
278 <p>Arc cosine. </p>
279 <p>Returns an angle whose sine is x. The range of values returned by this function is [0, PI]. Results are undefined if |x| &gt; 1. </p>
280 <ul>
281 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/acos.xml">GLSL acos man page</a> </li>
282 <li>GLSL 1.30.08 specification, section 8.1 </li>
283 </ul>
284
285 </div>
286 </div>
287 <a class="anchor" id="ga7c8d8ac539a43da0d41e656a38262ff0"></a><!-- doxytag: member="glm::core::function::trigonometric::acosh" ref="ga7c8d8ac539a43da0d41e656a38262ff0" args="(genType const &amp;x)" -->
288 <div class="memitem">
289 <div class="memproto">
290 <table class="memname">
291 <tr>
292 <td class="memname">genType glm::core::function::trigonometric::acosh </td>
293 <td>(</td>
294 <td class="paramtype">genType const &amp;&#160;</td>
295 <td class="paramname"><em>x</em></td><td>)</td>
296 <td></td>
297 </tr>
298 </table>
299 </div>
300 <div class="memdoc">
301
302 <p>Arc hyperbolic cosine; returns the non-negative inverse of cosh. </p>
303 <p>Results are undefined if x &lt; 1. </p>
304 <ul>
305 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/acosh.xml">GLSL acosh man page</a> </li>
306 <li>GLSL 1.30.08 specification, section 8.1 </li>
307 </ul>
308
309 </div>
310 </div>
311 <a class="anchor" id="ga07b92e9e7077f06fe26e417f320b0f0c"></a><!-- doxytag: member="glm::core::function::vector_relational::all" ref="ga07b92e9e7077f06fe26e417f320b0f0c" args="(vecType&lt; bool &gt; const &amp;v)" -->
312 <div class="memitem">
313 <div class="memproto">
314 <table class="memname">
315 <tr>
316 <td class="memname">GLM_FUNC_QUALIFIER bool glm::core::function::vector_relational::all </td>
317 <td>(</td>
318 <td class="paramtype">vecType&lt; bool &gt; const &amp;&#160;</td>
319 <td class="paramname"><em>v</em></td><td>)</td>
320 <td></td>
321 </tr>
322 </table>
323 </div>
324 <div class="memdoc">
325
326 <p>Returns true if all components of x are true. </p>
327 <ul>
328 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/all.xml">GLSL all man page</a> </li>
329 <li>GLSL 1.30.08 specification, section 8.6 </li>
330 </ul>
331
332 <p>Definition at line <a class="el" href="a00051_source.html#l00181">181</a> of file <a class="el" href="a00051_source.html">func_vector_relational.hpp</a>.</p>
333
334 </div>
335 </div>
336 <a class="anchor" id="gaa478a7966a4e6550bf0ee58ea8271074"></a><!-- doxytag: member="glm::core::function::vector_relational::any" ref="gaa478a7966a4e6550bf0ee58ea8271074" args="(vecType&lt; bool &gt; const &amp;v)" -->
337 <div class="memitem">
338 <div class="memproto">
339 <table class="memname">
340 <tr>
341 <td class="memname">GLM_FUNC_QUALIFIER bool glm::core::function::vector_relational::any </td>
342 <td>(</td>
343 <td class="paramtype">vecType&lt; bool &gt; const &amp;&#160;</td>
344 <td class="paramname"><em>v</em></td><td>)</td>
345 <td></td>
346 </tr>
347 </table>
348 </div>
349 <div class="memdoc">
350
351 <p>Returns true if any component of x is true. </p>
352 <ul>
353 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/any.xml">GLSL any man page</a> </li>
354 <li>GLSL 1.30.08 specification, section 8.6 </li>
355 </ul>
356
357 <p>Definition at line <a class="el" href="a00051_source.html#l00165">165</a> of file <a class="el" href="a00051_source.html">func_vector_relational.hpp</a>.</p>
358
359 </div>
360 </div>
361 <a class="anchor" id="ga3c625e34fc99b33829c28c6d580df7e2"></a><!-- doxytag: member="glm::core::function::trigonometric::asin" ref="ga3c625e34fc99b33829c28c6d580df7e2" args="(genType const &amp;x)" -->
362 <div class="memitem">
363 <div class="memproto">
364 <table class="memname">
365 <tr>
366 <td class="memname">genType glm::core::function::trigonometric::asin </td>
367 <td>(</td>
368 <td class="paramtype">genType const &amp;&#160;</td>
369 <td class="paramname"><em>x</em></td><td>)</td>
370 <td></td>
371 </tr>
372 </table>
373 </div>
374 <div class="memdoc">
375
376 <p>Arc sine. </p>
377 <p>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| &gt; 1. </p>
378 <ul>
379 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/asin.xml">GLSL asin man page</a> </li>
380 <li>GLSL 1.30.08 specification, section 8.1 </li>
381 </ul>
382
383 </div>
384 </div>
385 <a class="anchor" id="ga7ba20fc7c7b3eeef601e73b130e63db5"></a><!-- doxytag: member="glm::core::function::trigonometric::asinh" ref="ga7ba20fc7c7b3eeef601e73b130e63db5" args="(genType const &amp;x)" -->
386 <div class="memitem">
387 <div class="memproto">
388 <table class="memname">
389 <tr>
390 <td class="memname">genType glm::core::function::trigonometric::asinh </td>
391 <td>(</td>
392 <td class="paramtype">genType const &amp;&#160;</td>
393 <td class="paramname"><em>x</em></td><td>)</td>
394 <td></td>
395 </tr>
396 </table>
397 </div>
398 <div class="memdoc">
399
400 <p>Arc hyperbolic sine; returns the inverse of sinh. </p>
401 <ul>
402 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/asinh.xml">GLSL asinh man page</a> </li>
403 <li>GLSL 1.30.08 specification, section 8.1 </li>
404 </ul>
405
406 </div>
407 </div>
408 <a class="anchor" id="ga32dbceedb2910e519860a225ae7f7450"></a><!-- doxytag: member="glm::core::function::trigonometric::atan" ref="ga32dbceedb2910e519860a225ae7f7450" args="(genType const &amp;y, genType const &amp;x)" -->
409 <div class="memitem">
410 <div class="memproto">
411 <table class="memname">
412 <tr>
413 <td class="memname">genType glm::core::function::trigonometric::atan </td>
414 <td>(</td>
415 <td class="paramtype">genType const &amp;&#160;</td>
416 <td class="paramname"><em>y</em>, </td>
417 </tr>
418 <tr>
419 <td class="paramkey"></td>
420 <td></td>
421 <td class="paramtype">genType const &amp;&#160;</td>
422 <td class="paramname"><em>x</em>&#160;</td>
423 </tr>
424 <tr>
425 <td></td>
426 <td>)</td>
427 <td></td><td></td>
428 </tr>
429 </table>
430 </div>
431 <div class="memdoc">
432
433 <p>Arc tangent. </p>
434 <p>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. </p>
435 <ul>
436 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atan.xml">GLSL atan man page</a> </li>
437 <li>GLSL 1.30.08 specification, section 8.1 </li>
438 </ul>
439
440 <p>Referenced by <a class="el" href="a00032_source.html#l00057">glm::gtx::compatibility::atan2()</a>.</p>
441
442 </div>
443 </div>
444 <a class="anchor" id="ga3abfab80cac8e26d4efda9949586ded6"></a><!-- doxytag: member="glm::core::function::trigonometric::atan" ref="ga3abfab80cac8e26d4efda9949586ded6" args="(genType const &amp;y_over_x)" -->
445 <div class="memitem">
446 <div class="memproto">
447 <table class="memname">
448 <tr>
449 <td class="memname">genType glm::core::function::trigonometric::atan </td>
450 <td>(</td>
451 <td class="paramtype">genType const &amp;&#160;</td>
452 <td class="paramname"><em>y_over_x</em></td><td>)</td>
453 <td></td>
454 </tr>
455 </table>
456 </div>
457 <div class="memdoc">
458
459 <p>Arc tangent. </p>
460 <p>Returns an angle whose tangent is y_over_x. The range of values returned by this function is [-PI/2, PI/2]. </p>
461 <ul>
462 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atan.xml">GLSL atan man page</a> </li>
463 <li>GLSL 1.30.08 specification, section 8.1 </li>
464 </ul>
465
466 </div>
467 </div>
468 <a class="anchor" id="ga4d896caf7b1a8e5b5e3b29394e8c0ecd"></a><!-- doxytag: member="glm::core::function::trigonometric::atanh" ref="ga4d896caf7b1a8e5b5e3b29394e8c0ecd" args="(genType const &amp;x)" -->
469 <div class="memitem">
470 <div class="memproto">
471 <table class="memname">
472 <tr>
473 <td class="memname">genType glm::core::function::trigonometric::atanh </td>
474 <td>(</td>
475 <td class="paramtype">genType const &amp;&#160;</td>
476 <td class="paramname"><em>x</em></td><td>)</td>
477 <td></td>
478 </tr>
479 </table>
480 </div>
481 <div class="memdoc">
482
483 <p>Arc hyperbolic tangent; returns the inverse of tanh. </p>
484 <p>Results are undefined if abs(x) &gt;= 1. </p>
485 <ul>
486 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atanh.xml">GLSL atanh man page</a> </li>
487 <li>GLSL 1.30.08 specification, section 8.1 </li>
488 </ul>
489
490 </div>
491 </div>
492 <a class="anchor" id="ga29cfb04fafbaa1939955f11fef28ff38"></a><!-- doxytag: member="glm::core::function::integer::bitCount" ref="ga29cfb04fafbaa1939955f11fef28ff38" args="(C&lt; T &gt; const &amp;Value)" -->
493 <div class="memitem">
494 <div class="memproto">
495 <table class="memname">
496 <tr>
497 <td class="memname">C&lt;T&gt;::signed_type glm::core::function::integer::bitCount </td>
498 <td>(</td>
499 <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
500 <td class="paramname"><em>Value</em></td><td>)</td>
501 <td></td>
502 </tr>
503 </table>
504 </div>
505 <div class="memdoc">
506
507 <p>Returns the number of bits set to 1 in the binary representation of value. </p>
508 <ul>
509 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitCount.xml">GLSL bitCount man page</a> </li>
510 <li>GLSL 4.00.08 specification, section 8.8 </li>
511 </ul>
512
513 </div>
514 </div>
515 <a class="anchor" id="ga3b4804e700ade895189ea8bde142c822"></a><!-- doxytag: member="glm::core::function::integer::bitfieldExtract" ref="ga3b4804e700ade895189ea8bde142c822" args="(genIUType const &amp;Value, int const &amp;Offset, int const &amp;Bits)" -->
516 <div class="memitem">
517 <div class="memproto">
518 <table class="memname">
519 <tr>
520 <td class="memname">genIUType glm::core::function::integer::bitfieldExtract </td>
521 <td>(</td>
522 <td class="paramtype">genIUType const &amp;&#160;</td>
523 <td class="paramname"><em>Value</em>, </td>
524 </tr>
525 <tr>
526 <td class="paramkey"></td>
527 <td></td>
528 <td class="paramtype">int const &amp;&#160;</td>
529 <td class="paramname"><em>Offset</em>, </td>
530 </tr>
531 <tr>
532 <td class="paramkey"></td>
533 <td></td>
534 <td class="paramtype">int const &amp;&#160;</td>
535 <td class="paramname"><em>Bits</em>&#160;</td>
536 </tr>
537 <tr>
538 <td></td>
539 <td>)</td>
540 <td></td><td></td>
541 </tr>
542 </table>
543 </div>
544 <div class="memdoc">
545
546 <p>Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of the result. </p>
547 <p>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.</p>
548 <p>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. </p>
549 <ul>
550 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldExtract.xml">GLSL bitfieldExtract man page</a> </li>
551 <li>GLSL 4.00.08 specification, section 8.8 </li>
552 </ul>
553
554 </div>
555 </div>
556 <a class="anchor" id="ga90d0bc8e79f637da58b8fad2fc8f3275"></a><!-- doxytag: member="glm::core::function::integer::bitfieldInsert" ref="ga90d0bc8e79f637da58b8fad2fc8f3275" args="(genIUType const &amp;Base, genIUType const &amp;Insert, int const &amp;Offset, int const &amp;Bits)" -->
557 <div class="memitem">
558 <div class="memproto">
559 <table class="memname">
560 <tr>
561 <td class="memname">genIUType glm::core::function::integer::bitfieldInsert </td>
562 <td>(</td>
563 <td class="paramtype">genIUType const &amp;&#160;</td>
564 <td class="paramname"><em>Base</em>, </td>
565 </tr>
566 <tr>
567 <td class="paramkey"></td>
568 <td></td>
569 <td class="paramtype">genIUType const &amp;&#160;</td>
570 <td class="paramname"><em>Insert</em>, </td>
571 </tr>
572 <tr>
573 <td class="paramkey"></td>
574 <td></td>
575 <td class="paramtype">int const &amp;&#160;</td>
576 <td class="paramname"><em>Offset</em>, </td>
577 </tr>
578 <tr>
579 <td class="paramkey"></td>
580 <td></td>
581 <td class="paramtype">int const &amp;&#160;</td>
582 <td class="paramname"><em>Bits</em>&#160;</td>
583 </tr>
584 <tr>
585 <td></td>
586 <td>)</td>
587 <td></td><td></td>
588 </tr>
589 </table>
590 </div>
591 <div class="memdoc">
592
593 <p>Returns the insertion the bits least-significant bits of insert into base. </p>
594 <p>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. </p>
595 <ul>
596 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldInsert.xml">GLSL bitfieldInsert man page</a> </li>
597 <li>GLSL 4.00.08 specification, section 8.8 </li>
598 </ul>
599
600 </div>
601 </div>
602 <a class="anchor" id="ga68bdb2c3debc414d5567935b4cbca62f"></a><!-- doxytag: member="glm::core::function::integer::bitfieldReverse" ref="ga68bdb2c3debc414d5567935b4cbca62f" args="(genIUType const &amp;value)" -->
603 <div class="memitem">
604 <div class="memproto">
605 <table class="memname">
606 <tr>
607 <td class="memname">genIUType glm::core::function::integer::bitfieldReverse </td>
608 <td>(</td>
609 <td class="paramtype">genIUType const &amp;&#160;</td>
610 <td class="paramname"><em>value</em></td><td>)</td>
611 <td></td>
612 </tr>
613 </table>
614 </div>
615 <div class="memdoc">
616
617 <p>Returns the reversal of the bits of value. </p>
618 <p>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. </p>
619 <ul>
620 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldReverse.xml">GLSL bitfieldReverse man page</a> </li>
621 <li>GLSL 4.00.08 specification, section 8.8 </li>
622 </ul>
623
624 </div>
625 </div>
626 <a class="anchor" id="ga828376ee58b02d80d91eee97c50323f8"></a><!-- doxytag: member="glm::core::function::common::ceil" ref="ga828376ee58b02d80d91eee97c50323f8" args="(genType const &amp;x)" -->
627 <div class="memitem">
628 <div class="memproto">
629 <table class="memname">
630 <tr>
631 <td class="memname">genType glm::core::function::common::ceil </td>
632 <td>(</td>
633 <td class="paramtype">genType const &amp;&#160;</td>
634 <td class="paramname"><em>x</em></td><td>)</td>
635 <td></td>
636 </tr>
637 </table>
638 </div>
639 <div class="memdoc">
640
641 <p>Returns a value equal to the nearest integer that is greater than or equal to x. </p>
642 <ul>
643 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/ceil.xml">GLSL ceil man page</a> </li>
644 <li>GLSL 1.30.08 specification, section 8.3 </li>
645 </ul>
646
647 </div>
648 </div>
649 <a class="anchor" id="ga8d9331a9bd3aa06e1d10eb7fa0dbb9e5"></a><!-- doxytag: member="glm::core::function::common::clamp" ref="ga8d9331a9bd3aa06e1d10eb7fa0dbb9e5" args="(genType const &amp;x, genType const &amp;minVal, genType const &amp;maxVal)" -->
650 <div class="memitem">
651 <div class="memproto">
652 <table class="memname">
653 <tr>
654 <td class="memname">genType glm::core::function::common::clamp </td>
655 <td>(</td>
656 <td class="paramtype">genType const &amp;&#160;</td>
657 <td class="paramname"><em>x</em>, </td>
658 </tr>
659 <tr>
660 <td class="paramkey"></td>
661 <td></td>
662 <td class="paramtype">genType const &amp;&#160;</td>
663 <td class="paramname"><em>minVal</em>, </td>
664 </tr>
665 <tr>
666 <td class="paramkey"></td>
667 <td></td>
668 <td class="paramtype">genType const &amp;&#160;</td>
669 <td class="paramname"><em>maxVal</em>&#160;</td>
670 </tr>
671 <tr>
672 <td></td>
673 <td>)</td>
674 <td></td><td></td>
675 </tr>
676 </table>
677 </div>
678 <div class="memdoc">
679
680 <p>Returns min(max(x, minVal), maxVal) for each component in x. </p>
681 <p>using the floating-point values minVal and maxVal. </p>
682 <ul>
683 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/clamp.xml">GLSL clamp man page</a> </li>
684 <li>GLSL 1.30.08 specification, section 8.3 </li>
685 </ul>
686
687 <p>Referenced by <a class="el" href="a00032_source.html#l00052">glm::gtx::compatibility::saturate()</a>.</p>
688
689 </div>
690 </div>
691 <a class="anchor" id="ga4fbc8481a95bcc1c0c6931a34449b9a8"></a><!-- doxytag: member="glm::core::function::trigonometric::cos" ref="ga4fbc8481a95bcc1c0c6931a34449b9a8" args="(genType const &amp;angle)" -->
692 <div class="memitem">
693 <div class="memproto">
694 <table class="memname">
695 <tr>
696 <td class="memname">genType glm::core::function::trigonometric::cos </td>
697 <td>(</td>
698 <td class="paramtype">genType const &amp;&#160;</td>
699 <td class="paramname"><em>angle</em></td><td>)</td>
700 <td></td>
701 </tr>
702 </table>
703 </div>
704 <div class="memdoc">
705
706 <p>The standard trigonometric cosine function. </p>
707 <p>The values returned by this function will range from [-1, 1]. </p>
708 <ul>
709 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cos.xml">GLSL cos man page</a> </li>
710 <li>GLSL 1.30.08 specification, section 8.1 </li>
711 </ul>
712
713 </div>
714 </div>
715 <a class="anchor" id="ga2cfdbcd7a269a114cbb4f19dcf1e3f8b"></a><!-- doxytag: member="glm::core::function::trigonometric::cosh" ref="ga2cfdbcd7a269a114cbb4f19dcf1e3f8b" args="(genType const &amp;angle)" -->
716 <div class="memitem">
717 <div class="memproto">
718 <table class="memname">
719 <tr>
720 <td class="memname">genType glm::core::function::trigonometric::cosh </td>
721 <td>(</td>
722 <td class="paramtype">genType const &amp;&#160;</td>
723 <td class="paramname"><em>angle</em></td><td>)</td>
724 <td></td>
725 </tr>
726 </table>
727 </div>
728 <div class="memdoc">
729
730 <p>Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. </p>
731 <ul>
732 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cosh.xml">GLSL cosh man page</a> </li>
733 <li>GLSL 1.30.08 specification, section 8.1 </li>
734 </ul>
735
736 </div>
737 </div>
738 <a class="anchor" id="ga63272179a066d755953bcfbe38666257"></a><!-- doxytag: member="glm::core::function::geometric::cross" ref="ga63272179a066d755953bcfbe38666257" args="(detail::tvec3&lt; T &gt; const &amp;x, detail::tvec3&lt; T &gt; const &amp;y)" -->
739 <div class="memitem">
740 <div class="memproto">
741 <table class="memname">
742 <tr>
743 <td class="memname">detail::tvec3&lt;T&gt; glm::core::function::geometric::cross </td>
744 <td>(</td>
745 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
746 <td class="paramname"><em>x</em>, </td>
747 </tr>
748 <tr>
749 <td class="paramkey"></td>
750 <td></td>
751 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
752 <td class="paramname"><em>y</em>&#160;</td>
753 </tr>
754 <tr>
755 <td></td>
756 <td>)</td>
757 <td></td><td></td>
758 </tr>
759 </table>
760 </div>
761 <div class="memdoc">
762
763 <p>Returns the cross product of x and y. </p>
764 <ul>
765 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cross.xml">GLSL cross man page</a> </li>
766 <li>GLSL 1.30.08 specification, section 8.4 </li>
767 </ul>
768
769 </div>
770 </div>
771 <a class="anchor" id="ga2dc092f93e998e01c1cfdaef817ca926"></a><!-- doxytag: member="glm::core::function::trigonometric::degrees" ref="ga2dc092f93e998e01c1cfdaef817ca926" args="(genType const &amp;radians)" -->
772 <div class="memitem">
773 <div class="memproto">
774 <table class="memname">
775 <tr>
776 <td class="memname">genType glm::core::function::trigonometric::degrees </td>
777 <td>(</td>
778 <td class="paramtype">genType const &amp;&#160;</td>
779 <td class="paramname"><em>radians</em></td><td>)</td>
780 <td></td>
781 </tr>
782 </table>
783 </div>
784 <div class="memdoc">
785
786 <p>Converts radians to degrees and returns the result. </p>
787 <ul>
788 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/degrees.xml">GLSL degrees man page</a> </li>
789 <li>GLSL 1.30.08 specification, section 8.1 </li>
790 </ul>
791
792 </div>
793 </div>
794 <a class="anchor" id="ga0159ae2542b5bba80743694122247c15"></a><!-- doxytag: member="glm::core::function::matrix::determinant" ref="ga0159ae2542b5bba80743694122247c15" args="(detail::tmat2x2&lt; T &gt; const &amp;m)" -->
795 <div class="memitem">
796 <div class="memproto">
797 <table class="memname">
798 <tr>
799 <td class="memname">detail::tmat2x2&lt;T&gt;::value_type glm::core::function::matrix::determinant </td>
800 <td>(</td>
801 <td class="paramtype">detail::tmat2x2&lt; T &gt; const &amp;&#160;</td>
802 <td class="paramname"><em>m</em></td><td>)</td>
803 <td></td>
804 </tr>
805 </table>
806 </div>
807 <div class="memdoc">
808
809 <p>Return the determinant of a mat2 matrix. </p>
810 <ul>
811 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/determinant.xml">GLSL determinant man page</a> </li>
812 <li>GLSL 1.30.08 specification, section 8.5 </li>
813 </ul>
814
815 </div>
816 </div>
817 <a class="anchor" id="gaadf033715cbf1171a599aa7ac7f633be"></a><!-- doxytag: member="glm::core::function::matrix::determinant" ref="gaadf033715cbf1171a599aa7ac7f633be" args="(detail::tmat3x3&lt; T &gt; const &amp;m)" -->
818 <div class="memitem">
819 <div class="memproto">
820 <table class="memname">
821 <tr>
822 <td class="memname">detail::tmat3x3&lt;T&gt;::value_type glm::core::function::matrix::determinant </td>
823 <td>(</td>
824 <td class="paramtype">detail::tmat3x3&lt; T &gt; const &amp;&#160;</td>
825 <td class="paramname"><em>m</em></td><td>)</td>
826 <td></td>
827 </tr>
828 </table>
829 </div>
830 <div class="memdoc">
831
832 <p>Return the determinant of a mat3 matrix. </p>
833 <ul>
834 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/determinant.xml">GLSL determinant man page</a> </li>
835 <li>GLSL 1.30.08 specification, section 8.5 </li>
836 </ul>
837
838 </div>
839 </div>
840 <a class="anchor" id="ga4a33b6d96bedaa0cf250c1ef152a41a3"></a><!-- doxytag: member="glm::core::function::matrix::determinant" ref="ga4a33b6d96bedaa0cf250c1ef152a41a3" args="(detail::tmat4x4&lt; T &gt; const &amp;m)" -->
841 <div class="memitem">
842 <div class="memproto">
843 <table class="memname">
844 <tr>
845 <td class="memname">detail::tmat4x4&lt;T&gt;::value_type glm::core::function::matrix::determinant </td>
846 <td>(</td>
847 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
848 <td class="paramname"><em>m</em></td><td>)</td>
849 <td></td>
850 </tr>
851 </table>
852 </div>
853 <div class="memdoc">
854
855 <p>Return the determinant of a mat4 matrix. </p>
856 <ul>
857 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/determinant.xml">GLSL determinant man page</a> </li>
858 <li>GLSL 1.30.08 specification, section 8.5 </li>
859 </ul>
860
861 </div>
862 </div>
863 <a class="anchor" id="gaa7cb6dbe9b8224c25345f1fd6fc09e77"></a><!-- doxytag: member="glm::core::function::geometric::distance" ref="gaa7cb6dbe9b8224c25345f1fd6fc09e77" args="(genType const &amp;p0, genType const &amp;p1)" -->
864 <div class="memitem">
865 <div class="memproto">
866 <table class="memname">
867 <tr>
868 <td class="memname">genType::value_type glm::core::function::geometric::distance </td>
869 <td>(</td>
870 <td class="paramtype">genType const &amp;&#160;</td>
871 <td class="paramname"><em>p0</em>, </td>
872 </tr>
873 <tr>
874 <td class="paramkey"></td>
875 <td></td>
876 <td class="paramtype">genType const &amp;&#160;</td>
877 <td class="paramname"><em>p1</em>&#160;</td>
878 </tr>
879 <tr>
880 <td></td>
881 <td>)</td>
882 <td></td><td></td>
883 </tr>
884 </table>
885 </div>
886 <div class="memdoc">
887
888 <p>Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). </p>
889 <ul>
890 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/distance.xml">GLSL distance man page</a> </li>
891 <li>GLSL 1.30.08 specification, section 8.4 </li>
892 </ul>
893
894 </div>
895 </div>
896 <a class="anchor" id="ga38e1f1538ac0fedc9d6ac14910105421"></a><!-- doxytag: member="glm::core::function::geometric::dot" ref="ga38e1f1538ac0fedc9d6ac14910105421" args="(genType const &amp;x, genType const &amp;y)" -->
897 <div class="memitem">
898 <div class="memproto">
899 <table class="memname">
900 <tr>
901 <td class="memname">genType::value_type glm::core::function::geometric::dot </td>
902 <td>(</td>
903 <td class="paramtype">genType const &amp;&#160;</td>
904 <td class="paramname"><em>x</em>, </td>
905 </tr>
906 <tr>
907 <td class="paramkey"></td>
908 <td></td>
909 <td class="paramtype">genType const &amp;&#160;</td>
910 <td class="paramname"><em>y</em>&#160;</td>
911 </tr>
912 <tr>
913 <td></td>
914 <td>)</td>
915 <td></td><td></td>
916 </tr>
917 </table>
918 </div>
919 <div class="memdoc">
920
921 <p>Returns the dot product of x and y, i.e., result = x * y. </p>
922 <ul>
923 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/dot.xml">GLSL dot man page</a> </li>
924 <li>GLSL 1.30.08 specification, section 8.4 </li>
925 </ul>
926
927 </div>
928 </div>
929 <a class="anchor" id="ga811015178de53f628610f2036946fbb9"></a><!-- doxytag: member="glm::core::function::vector_relational::equal" ref="ga811015178de53f628610f2036946fbb9" args="(vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)" -->
930 <div class="memitem">
931 <div class="memproto">
932 <table class="memname">
933 <tr>
934 <td class="memname">GLM_FUNC_QUALIFIER vecType&lt;T&gt;::bool_type glm::core::function::vector_relational::equal </td>
935 <td>(</td>
936 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
937 <td class="paramname"><em>x</em>, </td>
938 </tr>
939 <tr>
940 <td class="paramkey"></td>
941 <td></td>
942 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
943 <td class="paramname"><em>y</em>&#160;</td>
944 </tr>
945 <tr>
946 <td></td>
947 <td>)</td>
948 <td></td><td></td>
949 </tr>
950 </table>
951 </div>
952 <div class="memdoc">
953
954 <p>Returns the component-wise comparison of result x == y. </p>
955 <ul>
956 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/equal.xml">GLSL equal man page</a> </li>
957 <li>GLSL 1.30.08 specification, section 8.6 </li>
958 </ul>
959
960 <p>Definition at line <a class="el" href="a00051_source.html#l00126">126</a> of file <a class="el" href="a00051_source.html">func_vector_relational.hpp</a>.</p>
961
962 </div>
963 </div>
964 <a class="anchor" id="gac96b81360552e233031fd06390576ebf"></a><!-- doxytag: member="glm::core::function::exponential::exp" ref="gac96b81360552e233031fd06390576ebf" args="(genType const &amp;x)" -->
965 <div class="memitem">
966 <div class="memproto">
967 <table class="memname">
968 <tr>
969 <td class="memname">genType glm::core::function::exponential::exp </td>
970 <td>(</td>
971 <td class="paramtype">genType const &amp;&#160;</td>
972 <td class="paramname"><em>x</em></td><td>)</td>
973 <td></td>
974 </tr>
975 </table>
976 </div>
977 <div class="memdoc">
978
979 <p>Returns the natural exponentiation of x, i.e., e^x. </p>
980 <ul>
981 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/exp.xml">GLSL exp man page</a> </li>
982 <li>GLSL 1.30.08 specification, section 8.2 </li>
983 </ul>
984
985 </div>
986 </div>
987 <a class="anchor" id="ga79adbdfa6f2e6ce59816c9b0bd1aebe3"></a><!-- doxytag: member="glm::core::function::exponential::exp2" ref="ga79adbdfa6f2e6ce59816c9b0bd1aebe3" args="(genType const &amp;x)" -->
988 <div class="memitem">
989 <div class="memproto">
990 <table class="memname">
991 <tr>
992 <td class="memname">genType glm::core::function::exponential::exp2 </td>
993 <td>(</td>
994 <td class="paramtype">genType const &amp;&#160;</td>
995 <td class="paramname"><em>x</em></td><td>)</td>
996 <td></td>
997 </tr>
998 </table>
999 </div>
1000 <div class="memdoc">
1001
1002 <p>Returns 2 raised to the x power. </p>
1003 <ul>
1004 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/exp2.xml">GLSL exp2 man page</a> </li>
1005 <li>GLSL 1.30.08 specification, section 8.2 </li>
1006 </ul>
1007
1008 </div>
1009 </div>
1010 <a class="anchor" id="gad591e8f7b1a5e311d3439dda2bb82aea"></a><!-- doxytag: member="glm::core::function::geometric::faceforward" ref="gad591e8f7b1a5e311d3439dda2bb82aea" args="(genType const &amp;N, genType const &amp;I, genType const &amp;Nref)" -->
1011 <div class="memitem">
1012 <div class="memproto">
1013 <table class="memname">
1014 <tr>
1015 <td class="memname">genType glm::core::function::geometric::faceforward </td>
1016 <td>(</td>
1017 <td class="paramtype">genType const &amp;&#160;</td>
1018 <td class="paramname"><em>N</em>, </td>
1019 </tr>
1020 <tr>
1021 <td class="paramkey"></td>
1022 <td></td>
1023 <td class="paramtype">genType const &amp;&#160;</td>
1024 <td class="paramname"><em>I</em>, </td>
1025 </tr>
1026 <tr>
1027 <td class="paramkey"></td>
1028 <td></td>
1029 <td class="paramtype">genType const &amp;&#160;</td>
1030 <td class="paramname"><em>Nref</em>&#160;</td>
1031 </tr>
1032 <tr>
1033 <td></td>
1034 <td>)</td>
1035 <td></td><td></td>
1036 </tr>
1037 </table>
1038 </div>
1039 <div class="memdoc">
1040
1041 <p>If dot(Nref, I) &lt; 0.0, return N, otherwise, return -N. </p>
1042 <ul>
1043 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/faceforward.xml">GLSL faceforward man page</a> </li>
1044 <li>GLSL 1.30.08 specification, section 8.4 </li>
1045 </ul>
1046
1047 </div>
1048 </div>
1049 <a class="anchor" id="ga9890456d065156a3c3c9786b14638486"></a><!-- doxytag: member="glm::core::function::integer::findLSB" ref="ga9890456d065156a3c3c9786b14638486" args="(C&lt; T &gt; const &amp;Value)" -->
1050 <div class="memitem">
1051 <div class="memproto">
1052 <table class="memname">
1053 <tr>
1054 <td class="memname">C&lt;T&gt;::signed_type glm::core::function::integer::findLSB </td>
1055 <td>(</td>
1056 <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
1057 <td class="paramname"><em>Value</em></td><td>)</td>
1058 <td></td>
1059 </tr>
1060 </table>
1061 </div>
1062 <div class="memdoc">
1063
1064 <p>Returns the bit number of the least significant bit set to 1 in the binary representation of value. </p>
1065 <p>If value is zero, -1 will be returned. </p>
1066 <ul>
1067 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findLSB.xml">GLSL findLSB man page</a> </li>
1068 <li>GLSL 4.00.08 specification, section 8.8 </li>
1069 </ul>
1070
1071 </div>
1072 </div>
1073 <a class="anchor" id="ga0f50b6fe121f170c3725a8abb53ff077"></a><!-- doxytag: member="glm::core::function::integer::findMSB" ref="ga0f50b6fe121f170c3725a8abb53ff077" args="(C&lt; T &gt; const &amp;Value)" -->
1074 <div class="memitem">
1075 <div class="memproto">
1076 <table class="memname">
1077 <tr>
1078 <td class="memname">C&lt;T&gt;::signed_type glm::core::function::integer::findMSB </td>
1079 <td>(</td>
1080 <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
1081 <td class="paramname"><em>Value</em></td><td>)</td>
1082 <td></td>
1083 </tr>
1084 </table>
1085 </div>
1086 <div class="memdoc">
1087
1088 <p>Returns the bit number of the most significant bit in the binary representation of value. </p>
1089 <p>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. </p>
1090 <ul>
1091 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findMSB.xml">GLSL findMSB man page</a> </li>
1092 <li>GLSL 4.00.08 specification, section 8.8 </li>
1093 </ul>
1094
1095 </div>
1096 </div>
1097 <a class="anchor" id="ga2508259e7d3093603f4c6d3c132a704c"></a><!-- doxytag: member="glm::core::function::common::floatBitsToInt" ref="ga2508259e7d3093603f4c6d3c132a704c" args="(genType const &amp;value)" -->
1098 <div class="memitem">
1099 <div class="memproto">
1100 <table class="memname">
1101 <tr>
1102 <td class="memname">genIType glm::core::function::common::floatBitsToInt </td>
1103 <td>(</td>
1104 <td class="paramtype">genType const &amp;&#160;</td>
1105 <td class="paramname"><em>value</em></td><td>)</td>
1106 <td></td>
1107 </tr>
1108 </table>
1109 </div>
1110 <div class="memdoc">
1111
1112 <p>Returns a signed integer value representing the encoding of a floating-point value. </p>
1113 <p>The floatingpoint value's bit-level representation is preserved. </p>
1114 <ul>
1115 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToInt.xml">GLSL floatBitsToInt man page</a> </li>
1116 <li>GLSL 4.00.08 specification, section 8.3 </li>
1117 </ul>
1118
1119 </div>
1120 </div>
1121 <a class="anchor" id="ga17f59f3a2dd5b93e32ff1057be188681"></a><!-- doxytag: member="glm::core::function::common::floatBitsToUint" ref="ga17f59f3a2dd5b93e32ff1057be188681" args="(genType const &amp;value)" -->
1122 <div class="memitem">
1123 <div class="memproto">
1124 <table class="memname">
1125 <tr>
1126 <td class="memname">genUType glm::core::function::common::floatBitsToUint </td>
1127 <td>(</td>
1128 <td class="paramtype">genType const &amp;&#160;</td>
1129 <td class="paramname"><em>value</em></td><td>)</td>
1130 <td></td>
1131 </tr>
1132 </table>
1133 </div>
1134 <div class="memdoc">
1135
1136 <p>Returns a unsigned integer value representing the encoding of a floating-point value. </p>
1137 <p>The floatingpoint value's bit-level representation is preserved. </p>
1138 <ul>
1139 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToUint.xml">GLSL floatBitsToUint man page</a> </li>
1140 <li>GLSL 4.00.08 specification, section 8.3 </li>
1141 </ul>
1142
1143 </div>
1144 </div>
1145 <a class="anchor" id="ga4206a98e812c2bd4801e4d299c83f6c7"></a><!-- doxytag: member="glm::core::function::common::floor" ref="ga4206a98e812c2bd4801e4d299c83f6c7" args="(genType const &amp;x)" -->
1146 <div class="memitem">
1147 <div class="memproto">
1148 <table class="memname">
1149 <tr>
1150 <td class="memname">genType glm::core::function::common::floor </td>
1151 <td>(</td>
1152 <td class="paramtype">genType const &amp;&#160;</td>
1153 <td class="paramname"><em>x</em></td><td>)</td>
1154 <td></td>
1155 </tr>
1156 </table>
1157 </div>
1158 <div class="memdoc">
1159
1160 <p>Returns a value equal to the nearest integer that is less then or equal to x. </p>
1161 <ul>
1162 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floor.xml">GLSL floor man page</a> </li>
1163 <li>GLSL 1.30.08 specification, section 8.3 </li>
1164 </ul>
1165
1166 </div>
1167 </div>
1168 <a class="anchor" id="gad0278428ad872e7be378c3b2ad66b0ba"></a><!-- doxytag: member="glm::core::function::common::fma" ref="gad0278428ad872e7be378c3b2ad66b0ba" args="(genType const &amp;a, genType const &amp;b, genType const &amp;c)" -->
1169 <div class="memitem">
1170 <div class="memproto">
1171 <table class="memname">
1172 <tr>
1173 <td class="memname">genType glm::core::function::common::fma </td>
1174 <td>(</td>
1175 <td class="paramtype">genType const &amp;&#160;</td>
1176 <td class="paramname"><em>a</em>, </td>
1177 </tr>
1178 <tr>
1179 <td class="paramkey"></td>
1180 <td></td>
1181 <td class="paramtype">genType const &amp;&#160;</td>
1182 <td class="paramname"><em>b</em>, </td>
1183 </tr>
1184 <tr>
1185 <td class="paramkey"></td>
1186 <td></td>
1187 <td class="paramtype">genType const &amp;&#160;</td>
1188 <td class="paramname"><em>c</em>&#160;</td>
1189 </tr>
1190 <tr>
1191 <td></td>
1192 <td>)</td>
1193 <td></td><td></td>
1194 </tr>
1195 </table>
1196 </div>
1197 <div class="memdoc">
1198
1199 <p>Computes and returns a * b + c. </p>
1200 <ul>
1201 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/fma.xml">GLSL fma man page</a> </li>
1202 <li>GLSL 4.00.08 specification, section 8.3 </li>
1203 </ul>
1204
1205 </div>
1206 </div>
1207 <a class="anchor" id="ga67dda5fd839bc489827be9e225847a45"></a><!-- doxytag: member="glm::core::function::common::fract" ref="ga67dda5fd839bc489827be9e225847a45" args="(genType const &amp;x)" -->
1208 <div class="memitem">
1209 <div class="memproto">
1210 <table class="memname">
1211 <tr>
1212 <td class="memname">genType glm::core::function::common::fract </td>
1213 <td>(</td>
1214 <td class="paramtype">genType const &amp;&#160;</td>
1215 <td class="paramname"><em>x</em></td><td>)</td>
1216 <td></td>
1217 </tr>
1218 </table>
1219 </div>
1220 <div class="memdoc">
1221
1222 <p>Return x - floor(x). </p>
1223 <ul>
1224 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/fract.xml">GLSL fract man page</a> </li>
1225 <li>GLSL 1.30.08 specification, section 8.3 </li>
1226 </ul>
1227
1228 </div>
1229 </div>
1230 <a class="anchor" id="ga51135c18fa3b70b67478e546258caa64"></a><!-- doxytag: member="glm::core::function::common::frexp" ref="ga51135c18fa3b70b67478e546258caa64" args="(genType const &amp;x, genIType &amp;exp)" -->
1231 <div class="memitem">
1232 <div class="memproto">
1233 <table class="memname">
1234 <tr>
1235 <td class="memname">genType glm::core::function::common::frexp </td>
1236 <td>(</td>
1237 <td class="paramtype">genType const &amp;&#160;</td>
1238 <td class="paramname"><em>x</em>, </td>
1239 </tr>
1240 <tr>
1241 <td class="paramkey"></td>
1242 <td></td>
1243 <td class="paramtype">genIType &amp;&#160;</td>
1244 <td class="paramname"><em>exp</em>&#160;</td>
1245 </tr>
1246 <tr>
1247 <td></td>
1248 <td>)</td>
1249 <td></td><td></td>
1250 </tr>
1251 </table>
1252 </div>
1253 <div class="memdoc">
1254
1255 <p>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) </p>
1256 <p>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.</p>
1257 <ul>
1258 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/frexp.xml">GLSL frexp man page</a> </li>
1259 <li>GLSL 4.00.08 specification, section 8.3 </li>
1260 </ul>
1261
1262 </div>
1263 </div>
1264 <a class="anchor" id="gaef35061292f337c0d788f43a3b1a26c0"></a><!-- doxytag: member="glm::core::function::vector_relational::greaterThan" ref="gaef35061292f337c0d788f43a3b1a26c0" args="(vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)" -->
1265 <div class="memitem">
1266 <div class="memproto">
1267 <table class="memname">
1268 <tr>
1269 <td class="memname">GLM_FUNC_QUALIFIER vecType&lt;T&gt;::bool_type glm::core::function::vector_relational::greaterThan </td>
1270 <td>(</td>
1271 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
1272 <td class="paramname"><em>x</em>, </td>
1273 </tr>
1274 <tr>
1275 <td class="paramkey"></td>
1276 <td></td>
1277 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
1278 <td class="paramname"><em>y</em>&#160;</td>
1279 </tr>
1280 <tr>
1281 <td></td>
1282 <td>)</td>
1283 <td></td><td></td>
1284 </tr>
1285 </table>
1286 </div>
1287 <div class="memdoc">
1288
1289 <p>Returns the component-wise comparison of result x &gt; y. </p>
1290 <ul>
1291 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/greaterThan.xml">GLSL greaterThan man page</a> </li>
1292 <li>GLSL 1.30.08 specification, section 8.6 </li>
1293 </ul>
1294
1295 <p>Definition at line <a class="el" href="a00051_source.html#l00082">82</a> of file <a class="el" href="a00051_source.html">func_vector_relational.hpp</a>.</p>
1296
1297 </div>
1298 </div>
1299 <a class="anchor" id="ga39aa8024d619850c81a685a4905177df"></a><!-- doxytag: member="glm::core::function::vector_relational::greaterThanEqual" ref="ga39aa8024d619850c81a685a4905177df" args="(vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)" -->
1300 <div class="memitem">
1301 <div class="memproto">
1302 <table class="memname">
1303 <tr>
1304 <td class="memname">GLM_FUNC_QUALIFIER vecType&lt;T&gt;::bool_type glm::core::function::vector_relational::greaterThanEqual </td>
1305 <td>(</td>
1306 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
1307 <td class="paramname"><em>x</em>, </td>
1308 </tr>
1309 <tr>
1310 <td class="paramkey"></td>
1311 <td></td>
1312 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
1313 <td class="paramname"><em>y</em>&#160;</td>
1314 </tr>
1315 <tr>
1316 <td></td>
1317 <td>)</td>
1318 <td></td><td></td>
1319 </tr>
1320 </table>
1321 </div>
1322 <div class="memdoc">
1323
1324 <p>Returns the component-wise comparison of result x &gt;= y. </p>
1325 <ul>
1326 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/greaterThanEqual.xml">GLSL greaterThanEqual man page</a> </li>
1327 <li>GLSL 1.30.08 specification, section 8.6 </li>
1328 </ul>
1329
1330 <p>Definition at line <a class="el" href="a00051_source.html#l00104">104</a> of file <a class="el" href="a00051_source.html">func_vector_relational.hpp</a>.</p>
1331
1332 </div>
1333 </div>
1334 <a class="anchor" id="gac01a66145ce9472afb6a3bee837c0bd6"></a><!-- doxytag: member="glm::core::function::integer::imulExtended" ref="gac01a66145ce9472afb6a3bee837c0bd6" args="(genIType const &amp;x, genIType const &amp;y, genIType &amp;msb, genIType &amp;lsb)" -->
1335 <div class="memitem">
1336 <div class="memproto">
1337 <table class="memname">
1338 <tr>
1339 <td class="memname">void glm::core::function::integer::imulExtended </td>
1340 <td>(</td>
1341 <td class="paramtype">genIType const &amp;&#160;</td>
1342 <td class="paramname"><em>x</em>, </td>
1343 </tr>
1344 <tr>
1345 <td class="paramkey"></td>
1346 <td></td>
1347 <td class="paramtype">genIType const &amp;&#160;</td>
1348 <td class="paramname"><em>y</em>, </td>
1349 </tr>
1350 <tr>
1351 <td class="paramkey"></td>
1352 <td></td>
1353 <td class="paramtype">genIType &amp;&#160;</td>
1354 <td class="paramname"><em>msb</em>, </td>
1355 </tr>
1356 <tr>
1357 <td class="paramkey"></td>
1358 <td></td>
1359 <td class="paramtype">genIType &amp;&#160;</td>
1360 <td class="paramname"><em>lsb</em>&#160;</td>
1361 </tr>
1362 <tr>
1363 <td></td>
1364 <td>)</td>
1365 <td></td><td></td>
1366 </tr>
1367 </table>
1368 </div>
1369 <div class="memdoc">
1370
1371 <p>Multiplies 32-bit integers x and y, producing a 64-bit result. </p>
1372 <p>The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb. </p>
1373 <ul>
1374 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/imulExtended.xml">GLSL imulExtended man page</a> </li>
1375 <li>GLSL 4.00.08 specification, section 8.8 </li>
1376 </ul>
1377
1378 </div>
1379 </div>
1380 <a class="anchor" id="ga3b76eab7091983e936c894b1976e90be"></a><!-- doxytag: member="glm::core::function::common::intBitsToFloat" ref="ga3b76eab7091983e936c894b1976e90be" args="(genIType const &amp;value)" -->
1381 <div class="memitem">
1382 <div class="memproto">
1383 <table class="memname">
1384 <tr>
1385 <td class="memname">genType glm::core::function::common::intBitsToFloat </td>
1386 <td>(</td>
1387 <td class="paramtype">genIType const &amp;&#160;</td>
1388 <td class="paramname"><em>value</em></td><td>)</td>
1389 <td></td>
1390 </tr>
1391 </table>
1392 </div>
1393 <div class="memdoc">
1394
1395 <p>Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. </p>
1396 <p>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. </p>
1397 <ul>
1398 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/intBitsToFloat.xml">GLSL intBitsToFloat man page</a> </li>
1399 <li>GLSL 4.00.08 specification, section 8.3 </li>
1400 </ul>
1401
1402 </div>
1403 </div>
1404 <a class="anchor" id="gaa1bce3aab32b8949beb8160f72f1b631"></a><!-- doxytag: member="glm::core::function::matrix::inverse" ref="gaa1bce3aab32b8949beb8160f72f1b631" args="(detail::tmat3x3&lt; T &gt; const &amp;m)" -->
1405 <div class="memitem">
1406 <div class="memproto">
1407 <table class="memname">
1408 <tr>
1409 <td class="memname">detail::tmat3x3&lt;T&gt; glm::core::function::matrix::inverse </td>
1410 <td>(</td>
1411 <td class="paramtype">detail::tmat3x3&lt; T &gt; const &amp;&#160;</td>
1412 <td class="paramname"><em>m</em></td><td>)</td>
1413 <td></td>
1414 </tr>
1415 </table>
1416 </div>
1417 <div class="memdoc">
1418
1419 <p>Return the inverse of a mat3 matrix. </p>
1420 <ul>
1421 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inverse.xml">GLSL inverse man page</a> </li>
1422 <li>GLSL 1.40.07 specification, section 8.5 </li>
1423 </ul>
1424
1425 </div>
1426 </div>
1427 <a class="anchor" id="gad5b3f7a92c8243ec53aa0704b979856b"></a><!-- doxytag: member="glm::core::function::matrix::inverse" ref="gad5b3f7a92c8243ec53aa0704b979856b" args="(detail::tmat4x4&lt; T &gt; const &amp;m)" -->
1428 <div class="memitem">
1429 <div class="memproto">
1430 <table class="memname">
1431 <tr>
1432 <td class="memname">detail::tmat4x4&lt;T&gt; glm::core::function::matrix::inverse </td>
1433 <td>(</td>
1434 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
1435 <td class="paramname"><em>m</em></td><td>)</td>
1436 <td></td>
1437 </tr>
1438 </table>
1439 </div>
1440 <div class="memdoc">
1441
1442 <p>Return the inverse of a mat4 matrix. </p>
1443 <ul>
1444 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inverse.xml">GLSL inverse man page</a> </li>
1445 <li>GLSL 1.40.07 specification, section 8.5 </li>
1446 </ul>
1447
1448 </div>
1449 </div>
1450 <a class="anchor" id="ga21de0684ba52d03625b43eac0c2b866a"></a><!-- doxytag: member="glm::core::function::matrix::inverse" ref="ga21de0684ba52d03625b43eac0c2b866a" args="(detail::tmat2x2&lt; T &gt; const &amp;m)" -->
1451 <div class="memitem">
1452 <div class="memproto">
1453 <table class="memname">
1454 <tr>
1455 <td class="memname">detail::tmat2x2&lt;T&gt; glm::core::function::matrix::inverse </td>
1456 <td>(</td>
1457 <td class="paramtype">detail::tmat2x2&lt; T &gt; const &amp;&#160;</td>
1458 <td class="paramname"><em>m</em></td><td>)</td>
1459 <td></td>
1460 </tr>
1461 </table>
1462 </div>
1463 <div class="memdoc">
1464
1465 <p>Return the inverse of a mat2 matrix. </p>
1466 <ul>
1467 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inverse.xml">GLSL inverse man page</a> </li>
1468 <li>GLSL 1.40.07 specification, section 8.5 </li>
1469 </ul>
1470
1471 </div>
1472 </div>
1473 <a class="anchor" id="gadce520af7df2c97aea9f689ad620fabe"></a><!-- doxytag: member="glm::core::function::exponential::inversesqrt" ref="gadce520af7df2c97aea9f689ad620fabe" args="(genType const &amp;x)" -->
1474 <div class="memitem">
1475 <div class="memproto">
1476 <table class="memname">
1477 <tr>
1478 <td class="memname">genType glm::core::function::exponential::inversesqrt </td>
1479 <td>(</td>
1480 <td class="paramtype">genType const &amp;&#160;</td>
1481 <td class="paramname"><em>x</em></td><td>)</td>
1482 <td></td>
1483 </tr>
1484 </table>
1485 </div>
1486 <div class="memdoc">
1487
1488 <p>Returns the reciprocal of the positive square root of x. </p>
1489 <ul>
1490 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inversesqrt.xml">GLSL inversesqrt man page</a> </li>
1491 <li>GLSL 1.30.08 specification, section 8.2 </li>
1492 </ul>
1493
1494 </div>
1495 </div>
1496 <a class="anchor" id="ga7194c89cf656614f231e11c46d906465"></a><!-- doxytag: member="glm::core::function::common::isinf" ref="ga7194c89cf656614f231e11c46d906465" args="(genType const &amp;x)" -->
1497 <div class="memitem">
1498 <div class="memproto">
1499 <table class="memname">
1500 <tr>
1501 <td class="memname">genType::bool_type glm::core::function::common::isinf </td>
1502 <td>(</td>
1503 <td class="paramtype">genType const &amp;&#160;</td>
1504 <td class="paramname"><em>x</em></td><td>)</td>
1505 <td></td>
1506 </tr>
1507 </table>
1508 </div>
1509 <div class="memdoc">
1510
1511 <p>Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. </p>
1512 <p>Returns false otherwise, including for implementations with no infinity representations. </p>
1513 <ul>
1514 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isinf.xml">GLSL isinf man page</a> </li>
1515 <li>GLSL 1.30.08 specification, section 8.3 </li>
1516 </ul>
1517
1518 </div>
1519 </div>
1520 <a class="anchor" id="ga873db92807cc955cf98030c94a342d5a"></a><!-- doxytag: member="glm::core::function::common::isnan" ref="ga873db92807cc955cf98030c94a342d5a" args="(genType const &amp;x)" -->
1521 <div class="memitem">
1522 <div class="memproto">
1523 <table class="memname">
1524 <tr>
1525 <td class="memname">genType::bool_type glm::core::function::common::isnan </td>
1526 <td>(</td>
1527 <td class="paramtype">genType const &amp;&#160;</td>
1528 <td class="paramname"><em>x</em></td><td>)</td>
1529 <td></td>
1530 </tr>
1531 </table>
1532 </div>
1533 <div class="memdoc">
1534
1535 <p>Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. </p>
1536 <p>Returns false otherwise, including for implementations with no NaN representations. </p>
1537 <ul>
1538 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isnan.xml">GLSL isnan man page</a> </li>
1539 <li>GLSL 1.30.08 specification, section 8.3 </li>
1540 </ul>
1541
1542 </div>
1543 </div>
1544 <a class="anchor" id="gaa99c16ada9e61cca03a8a00938a3c330"></a><!-- doxytag: member="glm::core::function::common::ldexp" ref="gaa99c16ada9e61cca03a8a00938a3c330" args="(genType const &amp;x, genIType const &amp;exp)" -->
1545 <div class="memitem">
1546 <div class="memproto">
1547 <table class="memname">
1548 <tr>
1549 <td class="memname">genType glm::core::function::common::ldexp </td>
1550 <td>(</td>
1551 <td class="paramtype">genType const &amp;&#160;</td>
1552 <td class="paramname"><em>x</em>, </td>
1553 </tr>
1554 <tr>
1555 <td class="paramkey"></td>
1556 <td></td>
1557 <td class="paramtype">genIType const &amp;&#160;</td>
1558 <td class="paramname"><em>exp</em>&#160;</td>
1559 </tr>
1560 <tr>
1561 <td></td>
1562 <td>)</td>
1563 <td></td><td></td>
1564 </tr>
1565 </table>
1566 </div>
1567 <div class="memdoc">
1568
1569 <p>Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent) </p>
1570 <p>If this product is too large to be represented in the floating-point type, the result is undefined.</p>
1571 <ul>
1572 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/ldexp.xml">GLSL ldexp man page</a>; </li>
1573 <li>GLSL 4.00.08 specification, section 8.3 </li>
1574 </ul>
1575
1576 </div>
1577 </div>
1578 <a class="anchor" id="ga10ee9a1d18c6da61cab61d8637d23847"></a><!-- doxytag: member="glm::core::function::geometric::length" ref="ga10ee9a1d18c6da61cab61d8637d23847" args="(genType const &amp;x)" -->
1579 <div class="memitem">
1580 <div class="memproto">
1581 <table class="memname">
1582 <tr>
1583 <td class="memname">genType::value_type glm::core::function::geometric::length </td>
1584 <td>(</td>
1585 <td class="paramtype">genType const &amp;&#160;</td>
1586 <td class="paramname"><em>x</em></td><td>)</td>
1587 <td></td>
1588 </tr>
1589 </table>
1590 </div>
1591 <div class="memdoc">
1592
1593 <p>Returns the length of x, i.e., sqrt(x * x). </p>
1594 <ul>
1595 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/length.xml">GLSL length man page</a> </li>
1596 <li>GLSL 1.30.08 specification, section 8.4 </li>
1597 </ul>
1598
1599 </div>
1600 </div>
1601 <a class="anchor" id="ga54e5b894f79b9c1b8f6d28fe6f986e80"></a><!-- doxytag: member="glm::core::function::vector_relational::lessThan" ref="ga54e5b894f79b9c1b8f6d28fe6f986e80" args="(vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)" -->
1602 <div class="memitem">
1603 <div class="memproto">
1604 <table class="memname">
1605 <tr>
1606 <td class="memname">GLM_FUNC_QUALIFIER vecType&lt;T&gt;::bool_type glm::core::function::vector_relational::lessThan </td>
1607 <td>(</td>
1608 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
1609 <td class="paramname"><em>x</em>, </td>
1610 </tr>
1611 <tr>
1612 <td class="paramkey"></td>
1613 <td></td>
1614 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
1615 <td class="paramname"><em>y</em>&#160;</td>
1616 </tr>
1617 <tr>
1618 <td></td>
1619 <td>)</td>
1620 <td></td><td></td>
1621 </tr>
1622 </table>
1623 </div>
1624 <div class="memdoc">
1625
1626 <p>Returns the component-wise comparison result of x &lt; y. </p>
1627 <ul>
1628 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/lessThan.xml">GLSL lessThan man page</a> </li>
1629 <li>GLSL 1.30.08 specification, section 8.6 </li>
1630 </ul>
1631
1632 <p>Definition at line <a class="el" href="a00051_source.html#l00037">37</a> of file <a class="el" href="a00051_source.html">func_vector_relational.hpp</a>.</p>
1633
1634 </div>
1635 </div>
1636 <a class="anchor" id="ga190db45f1b40202ee0716751448b119d"></a><!-- doxytag: member="glm::core::function::vector_relational::lessThanEqual" ref="ga190db45f1b40202ee0716751448b119d" args="(vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)" -->
1637 <div class="memitem">
1638 <div class="memproto">
1639 <table class="memname">
1640 <tr>
1641 <td class="memname">GLM_FUNC_QUALIFIER vecType&lt;T&gt;::bool_type glm::core::function::vector_relational::lessThanEqual </td>
1642 <td>(</td>
1643 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
1644 <td class="paramname"><em>x</em>, </td>
1645 </tr>
1646 <tr>
1647 <td class="paramkey"></td>
1648 <td></td>
1649 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
1650 <td class="paramname"><em>y</em>&#160;</td>
1651 </tr>
1652 <tr>
1653 <td></td>
1654 <td>)</td>
1655 <td></td><td></td>
1656 </tr>
1657 </table>
1658 </div>
1659 <div class="memdoc">
1660
1661 <p>Returns the component-wise comparison of result x &lt;= y. </p>
1662 <ul>
1663 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/lessThanEqual.xml">GLSL lessThanEqual man page</a> </li>
1664 <li>GLSL 1.30.08 specification, section 8.6 </li>
1665 </ul>
1666
1667 <p>Definition at line <a class="el" href="a00051_source.html#l00060">60</a> of file <a class="el" href="a00051_source.html">func_vector_relational.hpp</a>.</p>
1668
1669 </div>
1670 </div>
1671 <a class="anchor" id="ga50b7859bfe87c2f075fe7a04e4c68cc3"></a><!-- doxytag: member="glm::core::function::exponential::log" ref="ga50b7859bfe87c2f075fe7a04e4c68cc3" args="(genType const &amp;x)" -->
1672 <div class="memitem">
1673 <div class="memproto">
1674 <table class="memname">
1675 <tr>
1676 <td class="memname">genType glm::core::function::exponential::log </td>
1677 <td>(</td>
1678 <td class="paramtype">genType const &amp;&#160;</td>
1679 <td class="paramname"><em>x</em></td><td>)</td>
1680 <td></td>
1681 </tr>
1682 </table>
1683 </div>
1684 <div class="memdoc">
1685
1686 <p>Returns the natural logarithm of x, i.e., returns the value y which satisfies the equation x = e^y. </p>
1687 <p>Results are undefined if x &lt;= 0. </p>
1688 <ul>
1689 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/log.xml">GLSL log man page</a> </li>
1690 <li>GLSL 1.30.08 specification, section 8.2 </li>
1691 </ul>
1692
1693 </div>
1694 </div>
1695 <a class="anchor" id="ga956c24e59912196d4b3714789e57c077"></a><!-- doxytag: member="glm::core::function::exponential::log2" ref="ga956c24e59912196d4b3714789e57c077" args="(genType const &amp;x)" -->
1696 <div class="memitem">
1697 <div class="memproto">
1698 <table class="memname">
1699 <tr>
1700 <td class="memname">genType glm::core::function::exponential::log2 </td>
1701 <td>(</td>
1702 <td class="paramtype">genType const &amp;&#160;</td>
1703 <td class="paramname"><em>x</em></td><td>)</td>
1704 <td></td>
1705 </tr>
1706 </table>
1707 </div>
1708 <div class="memdoc">
1709
1710 <p>Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y. </p>
1711 <ul>
1712 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/log2.xml">GLSL log2 man page</a> </li>
1713 <li>GLSL 1.30.08 specification, section 8.2 </li>
1714 </ul>
1715
1716 </div>
1717 </div>
1718 <a class="anchor" id="gad27896f9d5be202b8d39552eeb352c87"></a><!-- doxytag: member="glm::core::function::matrix::matrixCompMult" ref="gad27896f9d5be202b8d39552eeb352c87" args="(matType const &amp;x, matType const &amp;y)" -->
1719 <div class="memitem">
1720 <div class="memproto">
1721 <table class="memname">
1722 <tr>
1723 <td class="memname">matType glm::core::function::matrix::matrixCompMult </td>
1724 <td>(</td>
1725 <td class="paramtype">matType const &amp;&#160;</td>
1726 <td class="paramname"><em>x</em>, </td>
1727 </tr>
1728 <tr>
1729 <td class="paramkey"></td>
1730 <td></td>
1731 <td class="paramtype">matType const &amp;&#160;</td>
1732 <td class="paramname"><em>y</em>&#160;</td>
1733 </tr>
1734 <tr>
1735 <td></td>
1736 <td>)</td>
1737 <td></td><td></td>
1738 </tr>
1739 </table>
1740 </div>
1741 <div class="memdoc">
1742
1743 <p>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]. </p>
1744 <ul>
1745 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/matrixCompMult.xml">GLSL matrixCompMult man page</a> </li>
1746 <li>GLSL 1.30.08 specification, section 8.5 </li>
1747 </ul>
1748
1749 </div>
1750 </div>
1751 <a class="anchor" id="ga33a594380eeb7ac803c747298563d084"></a><!-- doxytag: member="glm::core::function::common::max" ref="ga33a594380eeb7ac803c747298563d084" args="(genType const &amp;x, genType const &amp;y)" -->
1752 <div class="memitem">
1753 <div class="memproto">
1754 <table class="memname">
1755 <tr>
1756 <td class="memname">genType glm::core::function::common::max </td>
1757 <td>(</td>
1758 <td class="paramtype">genType const &amp;&#160;</td>
1759 <td class="paramname"><em>x</em>, </td>
1760 </tr>
1761 <tr>
1762 <td class="paramkey"></td>
1763 <td></td>
1764 <td class="paramtype">genType const &amp;&#160;</td>
1765 <td class="paramname"><em>y</em>&#160;</td>
1766 </tr>
1767 <tr>
1768 <td></td>
1769 <td>)</td>
1770 <td></td><td></td>
1771 </tr>
1772 </table>
1773 </div>
1774 <div class="memdoc">
1775
1776 <p>Returns y if x &lt; y; otherwise, it returns x. </p>
1777 <ul>
1778 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/max.xml">GLSL max man page</a> </li>
1779 <li>GLSL 1.30.08 specification, section 8.3 </li>
1780 </ul>
1781
1782 </div>
1783 </div>
1784 <a class="anchor" id="gacbc721d96bff24d97ed7989d35f27067"></a><!-- doxytag: member="glm::core::function::common::min" ref="gacbc721d96bff24d97ed7989d35f27067" args="(genType const &amp;x, genType const &amp;y)" -->
1785 <div class="memitem">
1786 <div class="memproto">
1787 <table class="memname">
1788 <tr>
1789 <td class="memname">genType glm::core::function::common::min </td>
1790 <td>(</td>
1791 <td class="paramtype">genType const &amp;&#160;</td>
1792 <td class="paramname"><em>x</em>, </td>
1793 </tr>
1794 <tr>
1795 <td class="paramkey"></td>
1796 <td></td>
1797 <td class="paramtype">genType const &amp;&#160;</td>
1798 <td class="paramname"><em>y</em>&#160;</td>
1799 </tr>
1800 <tr>
1801 <td></td>
1802 <td>)</td>
1803 <td></td><td></td>
1804 </tr>
1805 </table>
1806 </div>
1807 <div class="memdoc">
1808
1809 <p>Returns y if y &lt; x; otherwise, it returns x. </p>
1810 <ul>
1811 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/min.xml">GLSL min man page</a> </li>
1812 <li>GLSL 1.30.08 specification, section 8.3 </li>
1813 </ul>
1814
1815 </div>
1816 </div>
1817 <a class="anchor" id="ga11288dc43a2a1833766728a3eb81ac63"></a><!-- doxytag: member="glm::core::function::common::mix" ref="ga11288dc43a2a1833766728a3eb81ac63" args="(genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;a)" -->
1818 <div class="memitem">
1819 <div class="memproto">
1820 <table class="memname">
1821 <tr>
1822 <td class="memname">genTypeT glm::core::function::common::mix </td>
1823 <td>(</td>
1824 <td class="paramtype">genTypeT const &amp;&#160;</td>
1825 <td class="paramname"><em>x</em>, </td>
1826 </tr>
1827 <tr>
1828 <td class="paramkey"></td>
1829 <td></td>
1830 <td class="paramtype">genTypeT const &amp;&#160;</td>
1831 <td class="paramname"><em>y</em>, </td>
1832 </tr>
1833 <tr>
1834 <td class="paramkey"></td>
1835 <td></td>
1836 <td class="paramtype">genTypeU const &amp;&#160;</td>
1837 <td class="paramname"><em>a</em>&#160;</td>
1838 </tr>
1839 <tr>
1840 <td></td>
1841 <td>)</td>
1842 <td></td><td></td>
1843 </tr>
1844 </table>
1845 </div>
1846 <div class="memdoc">
1847 <dl class="return"><dt><b>Returns:</b></dt><dd>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].</dd>
1848 <dd>
1849 If genTypeU is a boolean scalar or vector: Selects which vector each returned component comes from. For a component of a 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. <ul>
1850 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mix.xml">GLSL mix man page</a> </li>
1851 <li>GLSL 1.30.08 specification, section 8.3 </li>
1852 </ul>
1853 </dd></dl>
1854 <dl><dt><b>Parameters:</b></dt><dd>
1855 <table class="params">
1856 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Floating point scalar or vector. </td></tr>
1857 <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Floating point scalar or vector. </td></tr>
1858 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Floating point or boolean scalar or vector. </td></tr>
1859 </table>
1860 </dd>
1861 </dl>
1862
1863 <p>Referenced by <a class="el" href="a00032_source.html#l00044">glm::gtx::compatibility::lerp()</a>.</p>
1864
1865 </div>
1866 </div>
1867 <a class="anchor" id="ga73fa91f6041b135083b0dea6e88c7aba"></a><!-- doxytag: member="glm::core::function::common::mod" ref="ga73fa91f6041b135083b0dea6e88c7aba" args="(genType const &amp;x, genType const &amp;y)" -->
1868 <div class="memitem">
1869 <div class="memproto">
1870 <table class="memname">
1871 <tr>
1872 <td class="memname">genType glm::core::function::common::mod </td>
1873 <td>(</td>
1874 <td class="paramtype">genType const &amp;&#160;</td>
1875 <td class="paramname"><em>x</em>, </td>
1876 </tr>
1877 <tr>
1878 <td class="paramkey"></td>
1879 <td></td>
1880 <td class="paramtype">genType const &amp;&#160;</td>
1881 <td class="paramname"><em>y</em>&#160;</td>
1882 </tr>
1883 <tr>
1884 <td></td>
1885 <td>)</td>
1886 <td></td><td></td>
1887 </tr>
1888 </table>
1889 </div>
1890 <div class="memdoc">
1891
1892 <p>Modulus. </p>
1893 <p>Returns x - y * floor(x / y) for each component in x using the floating point value y. </p>
1894 <ul>
1895 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </li>
1896 <li>GLSL 1.30.08 specification, section 8.3 </li>
1897 </ul>
1898
1899 </div>
1900 </div>
1901 <a class="anchor" id="gacf6e2a9cb28a36f92338e82f3bf5755e"></a><!-- doxytag: member="glm::core::function::common::mod" ref="gacf6e2a9cb28a36f92338e82f3bf5755e" args="(genType const &amp;x, typename genType::value_type const &amp;y)" -->
1902 <div class="memitem">
1903 <div class="memproto">
1904 <table class="memname">
1905 <tr>
1906 <td class="memname">genType glm::core::function::common::mod </td>
1907 <td>(</td>
1908 <td class="paramtype">genType const &amp;&#160;</td>
1909 <td class="paramname"><em>x</em>, </td>
1910 </tr>
1911 <tr>
1912 <td class="paramkey"></td>
1913 <td></td>
1914 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
1915 <td class="paramname"><em>y</em>&#160;</td>
1916 </tr>
1917 <tr>
1918 <td></td>
1919 <td>)</td>
1920 <td></td><td></td>
1921 </tr>
1922 </table>
1923 </div>
1924 <div class="memdoc">
1925
1926 <p>Modulus. </p>
1927 <p>Returns x - y * floor(x / y) for each component in x using the floating point value y. </p>
1928 <ul>
1929 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </li>
1930 <li>GLSL 1.30.08 specification, section 8.3 </li>
1931 </ul>
1932
1933 </div>
1934 </div>
1935 <a class="anchor" id="ga3f3cec79cc1542950cd4cddb7ab67584"></a><!-- doxytag: member="glm::core::function::common::modf" ref="ga3f3cec79cc1542950cd4cddb7ab67584" args="(genType const &amp;x, genType &amp;i)" -->
1936 <div class="memitem">
1937 <div class="memproto">
1938 <table class="memname">
1939 <tr>
1940 <td class="memname">genType glm::core::function::common::modf </td>
1941 <td>(</td>
1942 <td class="paramtype">genType const &amp;&#160;</td>
1943 <td class="paramname"><em>x</em>, </td>
1944 </tr>
1945 <tr>
1946 <td class="paramkey"></td>
1947 <td></td>
1948 <td class="paramtype">genType &amp;&#160;</td>
1949 <td class="paramname"><em>i</em>&#160;</td>
1950 </tr>
1951 <tr>
1952 <td></td>
1953 <td>)</td>
1954 <td></td><td></td>
1955 </tr>
1956 </table>
1957 </div>
1958 <div class="memdoc">
1959
1960 <p>Returns the fractional part of x and sets i to the integer part (as a whole number floating point value). </p>
1961 <p>Both the return value and the output parameter will have the same sign as x. </p>
1962 <ul>
1963 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/modf.xml">GLSL modf man page</a> </li>
1964 <li>GLSL 1.30.08 specification, section 8.3 </li>
1965 </ul>
1966
1967 </div>
1968 </div>
1969 <a class="anchor" id="ga9a5b6e92c055c5d401b2a7c56b4b8da3"></a><!-- doxytag: member="glm::core::function::noise::noise1" ref="ga9a5b6e92c055c5d401b2a7c56b4b8da3" args="(genType const &amp;x)" -->
1970 <div class="memitem">
1971 <div class="memproto">
1972 <table class="memname">
1973 <tr>
1974 <td class="memname">genType::value_type glm::core::function::noise::noise1 </td>
1975 <td>(</td>
1976 <td class="paramtype">genType const &amp;&#160;</td>
1977 <td class="paramname"><em>x</em></td><td>)</td>
1978 <td></td>
1979 </tr>
1980 </table>
1981 </div>
1982 <div class="memdoc">
1983
1984 <p>Returns a 1D noise value based on the input value x. </p>
1985 <ul>
1986 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/noise1.xml">GLSL noise1 man page</a> </li>
1987 <li>GLSL 1.30.08 specification, section 8.9 </li>
1988 </ul>
1989
1990 </div>
1991 </div>
1992 <a class="anchor" id="gaad98694033fa19168b99205f5ab33a0e"></a><!-- doxytag: member="glm::core::function::noise::noise2" ref="gaad98694033fa19168b99205f5ab33a0e" args="(genType const &amp;x)" -->
1993 <div class="memitem">
1994 <div class="memproto">
1995 <table class="memname">
1996 <tr>
1997 <td class="memname">detail::tvec2&lt;typename genType::value_type&gt; glm::core::function::noise::noise2 </td>
1998 <td>(</td>
1999 <td class="paramtype">genType const &amp;&#160;</td>
2000 <td class="paramname"><em>x</em></td><td>)</td>
2001 <td></td>
2002 </tr>
2003 </table>
2004 </div>
2005 <div class="memdoc">
2006
2007 <p>Returns a 2D noise value based on the input value x. </p>
2008 <ul>
2009 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/noise2.xml">GLSL noise2 man page</a> </li>
2010 <li>GLSL 1.30.08 specification, section 8.9 </li>
2011 </ul>
2012
2013 </div>
2014 </div>
2015 <a class="anchor" id="ga8759756672debb0894c0bb18f5add8a6"></a><!-- doxytag: member="glm::core::function::noise::noise3" ref="ga8759756672debb0894c0bb18f5add8a6" args="(genType const &amp;x)" -->
2016 <div class="memitem">
2017 <div class="memproto">
2018 <table class="memname">
2019 <tr>
2020 <td class="memname">detail::tvec3&lt;typename genType::value_type&gt; glm::core::function::noise::noise3 </td>
2021 <td>(</td>
2022 <td class="paramtype">genType const &amp;&#160;</td>
2023 <td class="paramname"><em>x</em></td><td>)</td>
2024 <td></td>
2025 </tr>
2026 </table>
2027 </div>
2028 <div class="memdoc">
2029
2030 <p>Returns a 3D noise value based on the input value x. </p>
2031 <ul>
2032 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/noise3.xml">GLSL noise3 man page</a> </li>
2033 <li>GLSL 1.30.08 specification, section 8.9 </li>
2034 </ul>
2035
2036 </div>
2037 </div>
2038 <a class="anchor" id="gac744c79c4ab6cffafbd197fc5276e62d"></a><!-- doxytag: member="glm::core::function::noise::noise4" ref="gac744c79c4ab6cffafbd197fc5276e62d" args="(genType const &amp;x)" -->
2039 <div class="memitem">
2040 <div class="memproto">
2041 <table class="memname">
2042 <tr>
2043 <td class="memname">detail::tvec4&lt;typename genType::value_type&gt; glm::core::function::noise::noise4 </td>
2044 <td>(</td>
2045 <td class="paramtype">genType const &amp;&#160;</td>
2046 <td class="paramname"><em>x</em></td><td>)</td>
2047 <td></td>
2048 </tr>
2049 </table>
2050 </div>
2051 <div class="memdoc">
2052
2053 <p>Returns a 4D noise value based on the input value x. </p>
2054 <ul>
2055 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/noise4.xml">GLSL noise4 man page</a> </li>
2056 <li>GLSL 1.30.08 specification, section 8.9 </li>
2057 </ul>
2058
2059 </div>
2060 </div>
2061 <a class="anchor" id="ga07ff16965f11fa17122ac874ed492276"></a><!-- doxytag: member="glm::core::function::geometric::normalize" ref="ga07ff16965f11fa17122ac874ed492276" args="(genType const &amp;x)" -->
2062 <div class="memitem">
2063 <div class="memproto">
2064 <table class="memname">
2065 <tr>
2066 <td class="memname">genType glm::core::function::geometric::normalize </td>
2067 <td>(</td>
2068 <td class="paramtype">genType const &amp;&#160;</td>
2069 <td class="paramname"><em>x</em></td><td>)</td>
2070 <td></td>
2071 </tr>
2072 </table>
2073 </div>
2074 <div class="memdoc">
2075
2076 <p>Returns a vector in the same direction as x but with length of 1. </p>
2077 <ul>
2078 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/normalize.xml">GLSL normalize man page</a> </li>
2079 <li>GLSL 1.30.08 specification, section 8.4 </li>
2080 </ul>
2081
2082 </div>
2083 </div>
2084 <a class="anchor" id="gadb3248006580ee79ebb1d358bce25ca0"></a><!-- doxytag: member="glm::core::function::vector_relational::not_" ref="gadb3248006580ee79ebb1d358bce25ca0" args="(vecType&lt; bool &gt; const &amp;v)" -->
2085 <div class="memitem">
2086 <div class="memproto">
2087 <table class="memname">
2088 <tr>
2089 <td class="memname">GLM_FUNC_QUALIFIER vecType&lt;bool&gt; glm::core::function::vector_relational::not_ </td>
2090 <td>(</td>
2091 <td class="paramtype">vecType&lt; bool &gt; const &amp;&#160;</td>
2092 <td class="paramname"><em>v</em></td><td>)</td>
2093 <td></td>
2094 </tr>
2095 </table>
2096 </div>
2097 <div class="memdoc">
2098
2099 <p>Returns the component-wise logical complement of x. </p>
2100 <p>/!\ Because of language incompatibilities between C++ and GLSL, GLM defines the function not but not_ instead.</p>
2101 <ul>
2102 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/not.xml">GLSL not man page</a> </li>
2103 <li>GLSL 1.30.08 specification, section 8.6 </li>
2104 </ul>
2105
2106 <p>Definition at line <a class="el" href="a00051_source.html#l00198">198</a> of file <a class="el" href="a00051_source.html">func_vector_relational.hpp</a>.</p>
2107
2108 </div>
2109 </div>
2110 <a class="anchor" id="ga62979ef5be1ad914f866074b900abdcd"></a><!-- doxytag: member="glm::core::function::vector_relational::notEqual" ref="ga62979ef5be1ad914f866074b900abdcd" args="(vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)" -->
2111 <div class="memitem">
2112 <div class="memproto">
2113 <table class="memname">
2114 <tr>
2115 <td class="memname">GLM_FUNC_QUALIFIER vecType&lt;T&gt;::bool_type glm::core::function::vector_relational::notEqual </td>
2116 <td>(</td>
2117 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
2118 <td class="paramname"><em>x</em>, </td>
2119 </tr>
2120 <tr>
2121 <td class="paramkey"></td>
2122 <td></td>
2123 <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
2124 <td class="paramname"><em>y</em>&#160;</td>
2125 </tr>
2126 <tr>
2127 <td></td>
2128 <td>)</td>
2129 <td></td><td></td>
2130 </tr>
2131 </table>
2132 </div>
2133 <div class="memdoc">
2134
2135 <p>Returns the component-wise comparison of result x != y. </p>
2136 <ul>
2137 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/notEqual.xml">GLSL notEqual man page</a> </li>
2138 <li>GLSL 1.30.08 specification, section 8.6 </li>
2139 </ul>
2140
2141 <p>Definition at line <a class="el" href="a00051_source.html#l00146">146</a> of file <a class="el" href="a00051_source.html">func_vector_relational.hpp</a>.</p>
2142
2143 </div>
2144 </div>
2145 <a class="anchor" id="ga04b83f76e97124e8e91d923dd7ba326c"></a><!-- doxytag: member="glm::core::function::matrix::outerProduct" ref="ga04b83f76e97124e8e91d923dd7ba326c" args="(vecType const &amp;c, vecType const &amp;r)" -->
2146 <div class="memitem">
2147 <div class="memproto">
2148 <table class="memname">
2149 <tr>
2150 <td class="memname">matType glm::core::function::matrix::outerProduct </td>
2151 <td>(</td>
2152 <td class="paramtype">vecType const &amp;&#160;</td>
2153 <td class="paramname"><em>c</em>, </td>
2154 </tr>
2155 <tr>
2156 <td class="paramkey"></td>
2157 <td></td>
2158 <td class="paramtype">vecType const &amp;&#160;</td>
2159 <td class="paramname"><em>r</em>&#160;</td>
2160 </tr>
2161 <tr>
2162 <td></td>
2163 <td>)</td>
2164 <td></td><td></td>
2165 </tr>
2166 </table>
2167 </div>
2168 <div class="memdoc">
2169
2170 <p>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. </p>
2171 <ul>
2172 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/outerProduct.xml">GLSL outerProduct man page</a> </li>
2173 <li>GLSL 1.30.08 specification, section 8.5 </li>
2174 </ul>
2175
2176 </div>
2177 </div>
2178 <a class="anchor" id="ga816867ca2fdb1bfb5d80d7a4f18a9e97"></a><!-- doxytag: member="glm::core::function::packing::packDouble2x32" ref="ga816867ca2fdb1bfb5d80d7a4f18a9e97" args="(detail::tvec2&lt; detail::uint32 &gt; const &amp;v)" -->
2179 <div class="memitem">
2180 <div class="memproto">
2181 <table class="memname">
2182 <tr>
2183 <td class="memname">double glm::core::function::packing::packDouble2x32 </td>
2184 <td>(</td>
2185 <td class="paramtype">detail::tvec2&lt; detail::uint32 &gt; const &amp;&#160;</td>
2186 <td class="paramname"><em>v</em></td><td>)</td>
2187 <td></td>
2188 </tr>
2189 </table>
2190 </div>
2191 <div class="memdoc">
2192
2193 <p>Returns a double-precision value obtained by packing the components of v into a 64-bit value. </p>
2194 <p>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.</p>
2195 <ul>
2196 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packDouble2x32.xml">GLSL packDouble2x32 man page</a> </li>
2197 <li>GLSL 4.00.08 specification, section 8.4 </li>
2198 </ul>
2199
2200 </div>
2201 </div>
2202 <a class="anchor" id="ga3f82e6b12495d9751eee53facba475da"></a><!-- doxytag: member="glm::core::function::packing::packSnorm4x8" ref="ga3f82e6b12495d9751eee53facba475da" args="(detail::tvec4&lt; detail::float32 &gt; const &amp;v)" -->
2203 <div class="memitem">
2204 <div class="memproto">
2205 <table class="memname">
2206 <tr>
2207 <td class="memname">detail::uint32 glm::core::function::packing::packSnorm4x8 </td>
2208 <td>(</td>
2209 <td class="paramtype">detail::tvec4&lt; detail::float32 &gt; const &amp;&#160;</td>
2210 <td class="paramname"><em>v</em></td><td>)</td>
2211 <td></td>
2212 </tr>
2213 </table>
2214 </div>
2215 <div class="memdoc">
2216
2217 <p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
2218 <p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
2219 <p>The conversion for component c of v to fixed point is done as follows: packSnorm4x8: round(clamp(c, -1, +1) * 127.0)</p>
2220 <p>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.</p>
2221 <ul>
2222 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </li>
2223 <li>GLSL 4.00.08 specification, section 8.4 </li>
2224 </ul>
2225
2226 </div>
2227 </div>
2228 <a class="anchor" id="ga7fc17302ae69881bb792842d472e7a30"></a><!-- doxytag: member="glm::core::function::packing::packUnorm2x16" ref="ga7fc17302ae69881bb792842d472e7a30" args="(detail::tvec2&lt; detail::float32 &gt; const &amp;v)" -->
2229 <div class="memitem">
2230 <div class="memproto">
2231 <table class="memname">
2232 <tr>
2233 <td class="memname">detail::uint32 glm::core::function::packing::packUnorm2x16 </td>
2234 <td>(</td>
2235 <td class="paramtype">detail::tvec2&lt; detail::float32 &gt; const &amp;&#160;</td>
2236 <td class="paramname"><em>v</em></td><td>)</td>
2237 <td></td>
2238 </tr>
2239 </table>
2240 </div>
2241 <div class="memdoc">
2242
2243 <p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
2244 <p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
2245 <p>The conversion for component c of v to fixed point is done as follows: packUnorm2x16: round(clamp(c, 0, +1) * 65535.0)</p>
2246 <p>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.</p>
2247 <ul>
2248 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm2x16.xml">GLSL packUnorm2x16 man page</a> </li>
2249 <li>GLSL 4.00.08 specification, section 8.4 </li>
2250 </ul>
2251
2252 </div>
2253 </div>
2254 <a class="anchor" id="gaf440e4e6c6be271327c5e2538e9c8b5f"></a><!-- doxytag: member="glm::core::function::packing::packUnorm4x8" ref="gaf440e4e6c6be271327c5e2538e9c8b5f" args="(detail::tvec4&lt; detail::float32 &gt; const &amp;v)" -->
2255 <div class="memitem">
2256 <div class="memproto">
2257 <table class="memname">
2258 <tr>
2259 <td class="memname">detail::uint32 glm::core::function::packing::packUnorm4x8 </td>
2260 <td>(</td>
2261 <td class="paramtype">detail::tvec4&lt; detail::float32 &gt; const &amp;&#160;</td>
2262 <td class="paramname"><em>v</em></td><td>)</td>
2263 <td></td>
2264 </tr>
2265 </table>
2266 </div>
2267 <div class="memdoc">
2268
2269 <p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
2270 <p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
2271 <p>The conversion for component c of v to fixed point is done as follows: packUnorm4x8: round(clamp(c, 0, +1) * 255.0)</p>
2272 <p>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.</p>
2273 <ul>
2274 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </li>
2275 <li>GLSL 4.00.08 specification, section 8.4 </li>
2276 </ul>
2277
2278 </div>
2279 </div>
2280 <a class="anchor" id="ga8eb76dfbf0fed3397c0327915279f06f"></a><!-- doxytag: member="glm::core::function::exponential::pow" ref="ga8eb76dfbf0fed3397c0327915279f06f" args="(genType const &amp;x, genType const &amp;y)" -->
2281 <div class="memitem">
2282 <div class="memproto">
2283 <table class="memname">
2284 <tr>
2285 <td class="memname">genType glm::core::function::exponential::pow </td>
2286 <td>(</td>
2287 <td class="paramtype">genType const &amp;&#160;</td>
2288 <td class="paramname"><em>x</em>, </td>
2289 </tr>
2290 <tr>
2291 <td class="paramkey"></td>
2292 <td></td>
2293 <td class="paramtype">genType const &amp;&#160;</td>
2294 <td class="paramname"><em>y</em>&#160;</td>
2295 </tr>
2296 <tr>
2297 <td></td>
2298 <td>)</td>
2299 <td></td><td></td>
2300 </tr>
2301 </table>
2302 </div>
2303 <div class="memdoc">
2304
2305 <p>Returns x raised to the y power. </p>
2306 <ul>
2307 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/pow.xml">GLSL pow man page</a> </li>
2308 <li>GLSL 1.30.08 specification, section 8.2 </li>
2309 </ul>
2310
2311 </div>
2312 </div>
2313 <a class="anchor" id="ga40251a4a07049e7fdcbf155c3cc6d32a"></a><!-- doxytag: member="glm::core::function::trigonometric::radians" ref="ga40251a4a07049e7fdcbf155c3cc6d32a" args="(genType const &amp;degrees)" -->
2314 <div class="memitem">
2315 <div class="memproto">
2316 <table class="memname">
2317 <tr>
2318 <td class="memname">genType glm::core::function::trigonometric::radians </td>
2319 <td>(</td>
2320 <td class="paramtype">genType const &amp;&#160;</td>
2321 <td class="paramname"><em>degrees</em></td><td>)</td>
2322 <td></td>
2323 </tr>
2324 </table>
2325 </div>
2326 <div class="memdoc">
2327
2328 <p>Converts degrees to radians and returns the result. </p>
2329 <ul>
2330 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/radians.xml">GLSL radians man page</a> </li>
2331 <li>GLSL 1.30.08 specification, section 8.1 </li>
2332 </ul>
2333
2334 </div>
2335 </div>
2336 <a class="anchor" id="ga2863d2331eb3752a5a17244c604c1d07"></a><!-- doxytag: member="glm::core::function::geometric::reflect" ref="ga2863d2331eb3752a5a17244c604c1d07" args="(genType const &amp;I, genType const &amp;N)" -->
2337 <div class="memitem">
2338 <div class="memproto">
2339 <table class="memname">
2340 <tr>
2341 <td class="memname">genType glm::core::function::geometric::reflect </td>
2342 <td>(</td>
2343 <td class="paramtype">genType const &amp;&#160;</td>
2344 <td class="paramname"><em>I</em>, </td>
2345 </tr>
2346 <tr>
2347 <td class="paramkey"></td>
2348 <td></td>
2349 <td class="paramtype">genType const &amp;&#160;</td>
2350 <td class="paramname"><em>N</em>&#160;</td>
2351 </tr>
2352 <tr>
2353 <td></td>
2354 <td>)</td>
2355 <td></td><td></td>
2356 </tr>
2357 </table>
2358 </div>
2359 <div class="memdoc">
2360
2361 <p>For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N. </p>
2362 <ul>
2363 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/reflect.xml">GLSL reflect man page</a> </li>
2364 <li>GLSL 1.30.08 specification, section 8.4 </li>
2365 </ul>
2366
2367 </div>
2368 </div>
2369 <a class="anchor" id="ga895392ad98499a450e2cc8579d76a84d"></a><!-- doxytag: member="glm::core::function::geometric::refract" ref="ga895392ad98499a450e2cc8579d76a84d" args="(genType const &amp;I, genType const &amp;N, typename genType::value_type const &amp;eta)" -->
2370 <div class="memitem">
2371 <div class="memproto">
2372 <table class="memname">
2373 <tr>
2374 <td class="memname">genType glm::core::function::geometric::refract </td>
2375 <td>(</td>
2376 <td class="paramtype">genType const &amp;&#160;</td>
2377 <td class="paramname"><em>I</em>, </td>
2378 </tr>
2379 <tr>
2380 <td class="paramkey"></td>
2381 <td></td>
2382 <td class="paramtype">genType const &amp;&#160;</td>
2383 <td class="paramname"><em>N</em>, </td>
2384 </tr>
2385 <tr>
2386 <td class="paramkey"></td>
2387 <td></td>
2388 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
2389 <td class="paramname"><em>eta</em>&#160;</td>
2390 </tr>
2391 <tr>
2392 <td></td>
2393 <td>)</td>
2394 <td></td><td></td>
2395 </tr>
2396 </table>
2397 </div>
2398 <div class="memdoc">
2399
2400 <p>For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector. </p>
2401 <ul>
2402 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/refract.xml">GLSL refract man page</a> </li>
2403 <li>GLSL 1.30.08 specification, section 8.4 </li>
2404 </ul>
2405
2406 </div>
2407 </div>
2408 <a class="anchor" id="gaa4cb0836cd9457ac6cedd3366333b16f"></a><!-- doxytag: member="glm::core::function::common::round" ref="gaa4cb0836cd9457ac6cedd3366333b16f" args="(genType const &amp;x)" -->
2409 <div class="memitem">
2410 <div class="memproto">
2411 <table class="memname">
2412 <tr>
2413 <td class="memname">genType glm::core::function::common::round </td>
2414 <td>(</td>
2415 <td class="paramtype">genType const &amp;&#160;</td>
2416 <td class="paramname"><em>x</em></td><td>)</td>
2417 <td></td>
2418 </tr>
2419 </table>
2420 </div>
2421 <div class="memdoc">
2422
2423 <p>Returns a value equal to the nearest integer to x. </p>
2424 <p>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. </p>
2425 <ul>
2426 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/round.xml">GLSL round man page</a> </li>
2427 <li>GLSL 1.30.08 specification, section 8.3 </li>
2428 </ul>
2429
2430 </div>
2431 </div>
2432 <a class="anchor" id="ga656ce625ba1dc1d137bfc7cc7b2ab50b"></a><!-- doxytag: member="glm::core::function::common::roundEven" ref="ga656ce625ba1dc1d137bfc7cc7b2ab50b" args="(genType const &amp;x)" -->
2433 <div class="memitem">
2434 <div class="memproto">
2435 <table class="memname">
2436 <tr>
2437 <td class="memname">genType glm::core::function::common::roundEven </td>
2438 <td>(</td>
2439 <td class="paramtype">genType const &amp;&#160;</td>
2440 <td class="paramname"><em>x</em></td><td>)</td>
2441 <td></td>
2442 </tr>
2443 </table>
2444 </div>
2445 <div class="memdoc">
2446
2447 <p>Returns a value equal to the nearest integer to x. </p>
2448 <p>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.) </p>
2449 <ul>
2450 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/roundEven.xml">GLSL roundEven man page</a> </li>
2451 <li>GLSL 1.30.08 specification, section 8.3 </li>
2452 </ul>
2453
2454 </div>
2455 </div>
2456 <a class="anchor" id="ga992a45e46af5dc123e688808d1bae48f"></a><!-- doxytag: member="glm::core::function::common::sign" ref="ga992a45e46af5dc123e688808d1bae48f" args="(genFIType const &amp;x)" -->
2457 <div class="memitem">
2458 <div class="memproto">
2459 <table class="memname">
2460 <tr>
2461 <td class="memname">genFIType glm::core::function::common::sign </td>
2462 <td>(</td>
2463 <td class="paramtype">genFIType const &amp;&#160;</td>
2464 <td class="paramname"><em>x</em></td><td>)</td>
2465 <td></td>
2466 </tr>
2467 </table>
2468 </div>
2469 <div class="memdoc">
2470
2471 <p>Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0. </p>
2472 <ul>
2473 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sign.xml">GLSL sign man page</a> </li>
2474 <li>GLSL 1.30.08 specification, section 8.3 </li>
2475 </ul>
2476
2477 </div>
2478 </div>
2479 <a class="anchor" id="gad246389321f46f7cb1cc422f9fd64cf4"></a><!-- doxytag: member="glm::core::function::trigonometric::sin" ref="gad246389321f46f7cb1cc422f9fd64cf4" args="(genType const &amp;angle)" -->
2480 <div class="memitem">
2481 <div class="memproto">
2482 <table class="memname">
2483 <tr>
2484 <td class="memname">genType glm::core::function::trigonometric::sin </td>
2485 <td>(</td>
2486 <td class="paramtype">genType const &amp;&#160;</td>
2487 <td class="paramname"><em>angle</em></td><td>)</td>
2488 <td></td>
2489 </tr>
2490 </table>
2491 </div>
2492 <div class="memdoc">
2493
2494 <p>The standard trigonometric sine function. </p>
2495 <p>The values returned by this function will range from [-1, 1]. </p>
2496 <ul>
2497 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sin.xml">GLSL sin man page</a> </li>
2498 <li>GLSL 1.30.08 specification, section 8.1 </li>
2499 </ul>
2500
2501 </div>
2502 </div>
2503 <a class="anchor" id="ga13a63bc67a160b1614ba3681f57fe480"></a><!-- doxytag: member="glm::core::function::trigonometric::sinh" ref="ga13a63bc67a160b1614ba3681f57fe480" args="(genType const &amp;angle)" -->
2504 <div class="memitem">
2505 <div class="memproto">
2506 <table class="memname">
2507 <tr>
2508 <td class="memname">genType glm::core::function::trigonometric::sinh </td>
2509 <td>(</td>
2510 <td class="paramtype">genType const &amp;&#160;</td>
2511 <td class="paramname"><em>angle</em></td><td>)</td>
2512 <td></td>
2513 </tr>
2514 </table>
2515 </div>
2516 <div class="memdoc">
2517
2518 <p>Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. </p>
2519 <ul>
2520 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sinh.xml">GLSL sinh man page</a> </li>
2521 <li>GLSL 1.30.08 specification, section 8.1 </li>
2522 </ul>
2523
2524 </div>
2525 </div>
2526 <a class="anchor" id="gaec459c912160fa6d9c18acd52976bb4d"></a><!-- doxytag: member="glm::core::function::common::smoothstep" ref="gaec459c912160fa6d9c18acd52976bb4d" args="(genType const &amp;edge0, genType const &amp;edge1, genType const &amp;x)" -->
2527 <div class="memitem">
2528 <div class="memproto">
2529 <table class="memname">
2530 <tr>
2531 <td class="memname">genType glm::core::function::common::smoothstep </td>
2532 <td>(</td>
2533 <td class="paramtype">genType const &amp;&#160;</td>
2534 <td class="paramname"><em>edge0</em>, </td>
2535 </tr>
2536 <tr>
2537 <td class="paramkey"></td>
2538 <td></td>
2539 <td class="paramtype">genType const &amp;&#160;</td>
2540 <td class="paramname"><em>edge1</em>, </td>
2541 </tr>
2542 <tr>
2543 <td class="paramkey"></td>
2544 <td></td>
2545 <td class="paramtype">genType const &amp;&#160;</td>
2546 <td class="paramname"><em>x</em>&#160;</td>
2547 </tr>
2548 <tr>
2549 <td></td>
2550 <td>)</td>
2551 <td></td><td></td>
2552 </tr>
2553 </table>
2554 </div>
2555 <div class="memdoc">
2556
2557 <p>Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 &lt; x &lt; edge1. </p>
2558 <p>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 &gt;= edge1. </p>
2559 <ul>
2560 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/smoothstep.xml">GLSL smoothstep man page</a> </li>
2561 <li>GLSL 1.30.08 specification, section 8.3 </li>
2562 </ul>
2563
2564 </div>
2565 </div>
2566 <a class="anchor" id="ga29d9d4ccbca8f2168ac6534fbb65cbad"></a><!-- doxytag: member="glm::core::function::exponential::sqrt" ref="ga29d9d4ccbca8f2168ac6534fbb65cbad" args="(genType const &amp;x)" -->
2567 <div class="memitem">
2568 <div class="memproto">
2569 <table class="memname">
2570 <tr>
2571 <td class="memname">genType glm::core::function::exponential::sqrt </td>
2572 <td>(</td>
2573 <td class="paramtype">genType const &amp;&#160;</td>
2574 <td class="paramname"><em>x</em></td><td>)</td>
2575 <td></td>
2576 </tr>
2577 </table>
2578 </div>
2579 <div class="memdoc">
2580
2581 <p>Returns the positive square root of x. </p>
2582 <ul>
2583 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sqrt.xml">GLSL sqrt man page</a> </li>
2584 <li>GLSL 1.30.08 specification, section 8.2 </li>
2585 </ul>
2586
2587 </div>
2588 </div>
2589 <a class="anchor" id="gaf1c0aac0585f62db8db44e407478c434"></a><!-- doxytag: member="glm::core::function::common::step" ref="gaf1c0aac0585f62db8db44e407478c434" args="(genType const &amp;edge, genType const &amp;x)" -->
2590 <div class="memitem">
2591 <div class="memproto">
2592 <table class="memname">
2593 <tr>
2594 <td class="memname">genType glm::core::function::common::step </td>
2595 <td>(</td>
2596 <td class="paramtype">genType const &amp;&#160;</td>
2597 <td class="paramname"><em>edge</em>, </td>
2598 </tr>
2599 <tr>
2600 <td class="paramkey"></td>
2601 <td></td>
2602 <td class="paramtype">genType const &amp;&#160;</td>
2603 <td class="paramname"><em>x</em>&#160;</td>
2604 </tr>
2605 <tr>
2606 <td></td>
2607 <td>)</td>
2608 <td></td><td></td>
2609 </tr>
2610 </table>
2611 </div>
2612 <div class="memdoc">
2613
2614 <p>Returns 0.0 if x &lt; edge, otherwise it returns 1.0. </p>
2615 <ul>
2616 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/step.xml">GLSL step man page</a> </li>
2617 <li>GLSL 1.30.08 specification, section 8.3 </li>
2618 </ul>
2619
2620 </div>
2621 </div>
2622 <a class="anchor" id="ga1a556079a4fee8b5e12fcfe7551f6931"></a><!-- doxytag: member="glm::core::function::trigonometric::tan" ref="ga1a556079a4fee8b5e12fcfe7551f6931" args="(genType const &amp;angle)" -->
2623 <div class="memitem">
2624 <div class="memproto">
2625 <table class="memname">
2626 <tr>
2627 <td class="memname">genType glm::core::function::trigonometric::tan </td>
2628 <td>(</td>
2629 <td class="paramtype">genType const &amp;&#160;</td>
2630 <td class="paramname"><em>angle</em></td><td>)</td>
2631 <td></td>
2632 </tr>
2633 </table>
2634 </div>
2635 <div class="memdoc">
2636
2637 <p>The standard trigonometric tangent function. </p>
2638 <ul>
2639 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/tan.xml">GLSL tan man page</a> </li>
2640 <li>GLSL 1.30.08 specification, section 8.1 </li>
2641 </ul>
2642
2643 </div>
2644 </div>
2645 <a class="anchor" id="gad93de1d635832bf722eb78a088bfbaa6"></a><!-- doxytag: member="glm::core::function::trigonometric::tanh" ref="gad93de1d635832bf722eb78a088bfbaa6" args="(genType const &amp;angle)" -->
2646 <div class="memitem">
2647 <div class="memproto">
2648 <table class="memname">
2649 <tr>
2650 <td class="memname">genType glm::core::function::trigonometric::tanh </td>
2651 <td>(</td>
2652 <td class="paramtype">genType const &amp;&#160;</td>
2653 <td class="paramname"><em>angle</em></td><td>)</td>
2654 <td></td>
2655 </tr>
2656 </table>
2657 </div>
2658 <div class="memdoc">
2659
2660 <p>Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) </p>
2661 <ul>
2662 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/tanh.xml">GLSL tanh man page</a> </li>
2663 <li>GLSL 1.30.08 specification, section 8.1 </li>
2664 </ul>
2665
2666 </div>
2667 </div>
2668 <a class="anchor" id="ga8b1a22512f73b0176ad062d3d480e906"></a><!-- doxytag: member="glm::core::function::matrix::transpose" ref="ga8b1a22512f73b0176ad062d3d480e906" args="(matType const &amp;x)" -->
2669 <div class="memitem">
2670 <div class="memproto">
2671 <table class="memname">
2672 <tr>
2673 <td class="memname">matType::transpose_type glm::core::function::matrix::transpose </td>
2674 <td>(</td>
2675 <td class="paramtype">matType const &amp;&#160;</td>
2676 <td class="paramname"><em>x</em></td><td>)</td>
2677 <td></td>
2678 </tr>
2679 </table>
2680 </div>
2681 <div class="memdoc">
2682
2683 <p>Returns the transposed matrix of x. </p>
2684 <ul>
2685 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/transpose.xml">GLSL transpose man page</a> </li>
2686 <li>GLSL 1.30.08 specification, section 8.5 </li>
2687 </ul>
2688
2689 </div>
2690 </div>
2691 <a class="anchor" id="ga2303d814e83b34ee2d5f34fcff7fa275"></a><!-- doxytag: member="glm::core::function::common::trunc" ref="ga2303d814e83b34ee2d5f34fcff7fa275" args="(genType const &amp;x)" -->
2692 <div class="memitem">
2693 <div class="memproto">
2694 <table class="memname">
2695 <tr>
2696 <td class="memname">genType glm::core::function::common::trunc </td>
2697 <td>(</td>
2698 <td class="paramtype">genType const &amp;&#160;</td>
2699 <td class="paramname"><em>x</em></td><td>)</td>
2700 <td></td>
2701 </tr>
2702 </table>
2703 </div>
2704 <div class="memdoc">
2705
2706 <p>Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x. </p>
2707 <ul>
2708 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/trunc.xml">GLSL trunc man page</a> </li>
2709 <li>GLSL 1.30.08 specification, section 8.3 </li>
2710 </ul>
2711
2712 </div>
2713 </div>
2714 <a class="anchor" id="ga8d63fd56743cc93286f09742baed4002"></a><!-- doxytag: member="glm::core::function::integer::uaddCarry" ref="ga8d63fd56743cc93286f09742baed4002" args="(genUType const &amp;x, genUType const &amp;y, genUType &amp;carry)" -->
2715 <div class="memitem">
2716 <div class="memproto">
2717 <table class="memname">
2718 <tr>
2719 <td class="memname">genUType glm::core::function::integer::uaddCarry </td>
2720 <td>(</td>
2721 <td class="paramtype">genUType const &amp;&#160;</td>
2722 <td class="paramname"><em>x</em>, </td>
2723 </tr>
2724 <tr>
2725 <td class="paramkey"></td>
2726 <td></td>
2727 <td class="paramtype">genUType const &amp;&#160;</td>
2728 <td class="paramname"><em>y</em>, </td>
2729 </tr>
2730 <tr>
2731 <td class="paramkey"></td>
2732 <td></td>
2733 <td class="paramtype">genUType &amp;&#160;</td>
2734 <td class="paramname"><em>carry</em>&#160;</td>
2735 </tr>
2736 <tr>
2737 <td></td>
2738 <td>)</td>
2739 <td></td><td></td>
2740 </tr>
2741 </table>
2742 </div>
2743 <div class="memdoc">
2744
2745 <p>Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32). </p>
2746 <p>The value carry is set to 0 if the sum was less than pow(2, 32), or to 1 otherwise. </p>
2747 <ul>
2748 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/uaddCarry.xml">GLSL uaddCarry man page</a> </li>
2749 <li>GLSL 4.00.08 specification, section 8.8 </li>
2750 </ul>
2751
2752 </div>
2753 </div>
2754 <a class="anchor" id="ga1a38039b00f182b6b22e909ea5a87bab"></a><!-- doxytag: member="glm::core::function::common::uintBitsToFloat" ref="ga1a38039b00f182b6b22e909ea5a87bab" args="(genUType const &amp;value)" -->
2755 <div class="memitem">
2756 <div class="memproto">
2757 <table class="memname">
2758 <tr>
2759 <td class="memname">genType glm::core::function::common::uintBitsToFloat </td>
2760 <td>(</td>
2761 <td class="paramtype">genUType const &amp;&#160;</td>
2762 <td class="paramname"><em>value</em></td><td>)</td>
2763 <td></td>
2764 </tr>
2765 </table>
2766 </div>
2767 <div class="memdoc">
2768
2769 <p>Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. </p>
2770 <p>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.</p>
2771 <ul>
2772 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/uintBitsToFloat.xml">GLSL uintBitsToFloat man page</a> </li>
2773 <li>GLSL 4.00.08 specification, section 8.3 </li>
2774 </ul>
2775
2776 </div>
2777 </div>
2778 <a class="anchor" id="gad9b60d1c7e161b78682b7f8b071e213e"></a><!-- doxytag: member="glm::core::function::integer::umulExtended" ref="gad9b60d1c7e161b78682b7f8b071e213e" args="(genUType const &amp;x, genUType const &amp;y, genUType &amp;msb, genUType &amp;lsb)" -->
2779 <div class="memitem">
2780 <div class="memproto">
2781 <table class="memname">
2782 <tr>
2783 <td class="memname">void glm::core::function::integer::umulExtended </td>
2784 <td>(</td>
2785 <td class="paramtype">genUType const &amp;&#160;</td>
2786 <td class="paramname"><em>x</em>, </td>
2787 </tr>
2788 <tr>
2789 <td class="paramkey"></td>
2790 <td></td>
2791 <td class="paramtype">genUType const &amp;&#160;</td>
2792 <td class="paramname"><em>y</em>, </td>
2793 </tr>
2794 <tr>
2795 <td class="paramkey"></td>
2796 <td></td>
2797 <td class="paramtype">genUType &amp;&#160;</td>
2798 <td class="paramname"><em>msb</em>, </td>
2799 </tr>
2800 <tr>
2801 <td class="paramkey"></td>
2802 <td></td>
2803 <td class="paramtype">genUType &amp;&#160;</td>
2804 <td class="paramname"><em>lsb</em>&#160;</td>
2805 </tr>
2806 <tr>
2807 <td></td>
2808 <td>)</td>
2809 <td></td><td></td>
2810 </tr>
2811 </table>
2812 </div>
2813 <div class="memdoc">
2814
2815 <p>Multiplies 32-bit integers x and y, producing a 64-bit result. </p>
2816 <p>The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb. </p>
2817 <ul>
2818 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/umulExtended.xml">GLSL umulExtended man page</a> </li>
2819 <li>GLSL 4.00.08 specification, section 8.8 </li>
2820 </ul>
2821
2822 </div>
2823 </div>
2824 <a class="anchor" id="ga4e80ba8eaef0b878ecb43053a4df9ff7"></a><!-- doxytag: member="glm::core::function::packing::unpackDouble2x32" ref="ga4e80ba8eaef0b878ecb43053a4df9ff7" args="(double const &amp;v)" -->
2825 <div class="memitem">
2826 <div class="memproto">
2827 <table class="memname">
2828 <tr>
2829 <td class="memname">detail::tvec2&lt;detail::uint32&gt; glm::core::function::packing::unpackDouble2x32 </td>
2830 <td>(</td>
2831 <td class="paramtype">double const &amp;&#160;</td>
2832 <td class="paramname"><em>v</em></td><td>)</td>
2833 <td></td>
2834 </tr>
2835 </table>
2836 </div>
2837 <div class="memdoc">
2838
2839 <p>Returns a two-component unsigned integer vector representation of v. </p>
2840 <p>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.</p>
2841 <ul>
2842 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackDouble2x32.xml">GLSL unpackDouble2x32 man page</a> </li>
2843 <li>GLSL 4.00.08 specification, section 8.4 </li>
2844 </ul>
2845
2846 </div>
2847 </div>
2848 <a class="anchor" id="ga03dafa00be8359e3a028aed81ae6007e"></a><!-- doxytag: member="glm::core::function::packing::unpackSnorm4x8" ref="ga03dafa00be8359e3a028aed81ae6007e" args="(detail::uint32 const &amp;p)" -->
2849 <div class="memitem">
2850 <div class="memproto">
2851 <table class="memname">
2852 <tr>
2853 <td class="memname">detail::tvec4&lt;detail::float32&gt; glm::core::function::packing::unpackSnorm4x8 </td>
2854 <td>(</td>
2855 <td class="paramtype">detail::uint32 const &amp;&#160;</td>
2856 <td class="paramname"><em>p</em></td><td>)</td>
2857 <td></td>
2858 </tr>
2859 </table>
2860 </div>
2861 <div class="memdoc">
2862
2863 <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. </p>
2864 <p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
2865 <p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x8: clamp(f / 127.0, -1, +1)</p>
2866 <p>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.</p>
2867 <ul>
2868 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm4x8.xml">GLSL unpackSnorm4x8 man page</a> </li>
2869 <li>GLSL 4.00.08 specification, section 8.4 </li>
2870 </ul>
2871
2872 </div>
2873 </div>
2874 <a class="anchor" id="gab3745178db4024212c4d7cb3df9a6f39"></a><!-- doxytag: member="glm::core::function::packing::unpackUnorm2x16" ref="gab3745178db4024212c4d7cb3df9a6f39" args="(detail::uint32 const &amp;p)" -->
2875 <div class="memitem">
2876 <div class="memproto">
2877 <table class="memname">
2878 <tr>
2879 <td class="memname">detail::tvec2&lt;detail::float32&gt; glm::core::function::packing::unpackUnorm2x16 </td>
2880 <td>(</td>
2881 <td class="paramtype">detail::uint32 const &amp;&#160;</td>
2882 <td class="paramname"><em>p</em></td><td>)</td>
2883 <td></td>
2884 </tr>
2885 </table>
2886 </div>
2887 <div class="memdoc">
2888
2889 <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. </p>
2890 <p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
2891 <p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm2x16: f / 65535.0</p>
2892 <p>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.</p>
2893 <ul>
2894 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm2x16.xml">GLSL unpackUnorm2x16 man page</a> </li>
2895 <li>GLSL 4.00.08 specification, section 8.4 </li>
2896 </ul>
2897
2898 </div>
2899 </div>
2900 <a class="anchor" id="ga11630d2b293d96452c412639ec3c942e"></a><!-- doxytag: member="glm::core::function::packing::unpackUnorm4x8" ref="ga11630d2b293d96452c412639ec3c942e" args="(detail::uint32 const &amp;p)" -->
2901 <div class="memitem">
2902 <div class="memproto">
2903 <table class="memname">
2904 <tr>
2905 <td class="memname">detail::tvec4&lt;detail::float32&gt; glm::core::function::packing::unpackUnorm4x8 </td>
2906 <td>(</td>
2907 <td class="paramtype">detail::uint32 const &amp;&#160;</td>
2908 <td class="paramname"><em>p</em></td><td>)</td>
2909 <td></td>
2910 </tr>
2911 </table>
2912 </div>
2913 <div class="memdoc">
2914
2915 <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. </p>
2916 <p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
2917 <p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0</p>
2918 <p>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.</p>
2919 <ul>
2920 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm4x8.xml">GLSL unpackUnorm4x8 man page</a> </li>
2921 <li>GLSL 4.00.08 specification, section 8.4 </li>
2922 </ul>
2923
2924 </div>
2925 </div>
2926 <a class="anchor" id="ga5ea2ea51e7cf73056069ce7583d61560"></a><!-- doxytag: member="glm::core::function::integer::usubBorrow" ref="ga5ea2ea51e7cf73056069ce7583d61560" args="(genUType const &amp;x, genUType const &amp;y, genUType &amp;borrow)" -->
2927 <div class="memitem">
2928 <div class="memproto">
2929 <table class="memname">
2930 <tr>
2931 <td class="memname">genUType glm::core::function::integer::usubBorrow </td>
2932 <td>(</td>
2933 <td class="paramtype">genUType const &amp;&#160;</td>
2934 <td class="paramname"><em>x</em>, </td>
2935 </tr>
2936 <tr>
2937 <td class="paramkey"></td>
2938 <td></td>
2939 <td class="paramtype">genUType const &amp;&#160;</td>
2940 <td class="paramname"><em>y</em>, </td>
2941 </tr>
2942 <tr>
2943 <td class="paramkey"></td>
2944 <td></td>
2945 <td class="paramtype">genUType &amp;&#160;</td>
2946 <td class="paramname"><em>borrow</em>&#160;</td>
2947 </tr>
2948 <tr>
2949 <td></td>
2950 <td>)</td>
2951 <td></td><td></td>
2952 </tr>
2953 </table>
2954 </div>
2955 <div class="memdoc">
2956
2957 <p>Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise. </p>
2958 <p>The value borrow is set to 0 if x &gt;= y, or to 1 otherwise. </p>
2959 <ul>
2960 <li><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/usubBorrow.xml">GLSL usubBorrow man page</a> </li>
2961 <li>GLSL 4.00.08 specification, section 8.8 </li>
2962 </ul>
2963
2964 </div>
2965 </div>
53 <p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program. </p>
54 <p>GTC extensions aim to be stable.</p>
55 <p>Even if it's highly unrecommended, it's possible to include all the extensions at once by including &lt;<a class="el" href="a00037_source.html">glm/ext.hpp</a>&gt;. Otherwise, each extension needs to be included a specific file. </p>
296656 </div>
296757 <hr class="footer"/><address class="footer"><small>Generated by&#160;
296858 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GTC Extensions (Stable)</title>
4 <title>GLM_GTC_half_float: Half-precision floating-point based types and functions.</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#groups">Modules</a> </div>
32 <a href="#nested-classes">Classes</a> &#124;
33 <a href="#typedef-members">Typedefs</a> </div>
3334 <div class="headertitle">
34 <h1>GTC Extensions (Stable)</h1> </div>
35 </div>
35 <h1>GLM_GTC_half_float: Half-precision floating-point based types and functions.</h1> </div>
36 <div class="ingroups"><a class="el" href="a00238.html">GTC Extensions (Stable)</a></div></div>
3637 <div class="contents">
37
38 <p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program.
39 <a href="#_details">More...</a></p>
4038 <table class="memberdecls">
41 <tr><td colspan="2"><h2><a name="groups"></a>
42 Modules</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html">GLM_GTC_half_float: Half-precision floating-point based types and functions.</a></td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html">GLM_GTC_matrix_access: Access matrix rows and columns.</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html">GLM_GTC_matrix_integer: Integer matrix types.</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00243.html">GLM_GTC_matrix_inverse: Additional matrix inverse function</a></td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00244.html">GLM_GTC_matrix_transform: Matrix transform functions.</a></td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html">GLM_GTC_quaternion: Quaternion types and functions</a></td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html">GLM_GTC_type_precision: Vector and matrix types with defined precisions.</a></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00247.html">GLM_GTC_type_ptr: Memory layout access.</a></td></tr>
39 <tr><td colspan="2"><h2><a name="nested-classes"></a>
40 Classes</h2></td></tr>
41 <tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00009.html">thalf</a></td></tr>
42 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">16-bit floating point type. <a href="a00009.html#_details">More...</a><br/></td></tr>
43 <tr><td colspan="2"><h2><a name="typedef-members"></a>
44 Typedefs</h2></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::thalf&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga256188598ace9135605a8ac8fc158654">half</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2<br class="typebreak"/>
47 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga784f92f5a36fd8e23a69119eb6a80eb8">hmat2</a></td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2<br class="typebreak"/>
49 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#gaef5a99a975d1df44e43f3662d84d24e2">hmat2x2</a></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x3<br class="typebreak"/>
51 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga55c96491b1d2508504b7fad8f31fdd47">hmat2x3</a></td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x4<br class="typebreak"/>
53 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga43a7d1bfd8945398effa19eb66ce304a">hmat2x4</a></td></tr>
54 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3<br class="typebreak"/>
55 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga97a57670730ece7f6b904d6dcce5bd7a">hmat3</a></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x2<br class="typebreak"/>
57 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#gaf89371358a1d90a224c72795d25a4f3e">hmat3x2</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3<br class="typebreak"/>
59 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga3b23962a795f1f157242859c1a35dec0">hmat3x3</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x4<br class="typebreak"/>
61 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga8eeb3d8c00910f5497117d1749b6550f">hmat3x4</a></td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4<br class="typebreak"/>
63 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#gaffa8b541819e978ede6129703be94285">hmat4</a></td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x2<br class="typebreak"/>
65 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga370098417bb96d7796b11a4611bf67ac">hmat4x2</a></td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x3<br class="typebreak"/>
67 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga8248b190b2f9a4ff3f2aadf865f72b84">hmat4x3</a></td></tr>
68 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4<br class="typebreak"/>
69 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga66a4356be6f3c7a1e5cb944657917002">hmat4x4</a></td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2<br class="typebreak"/>
71 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a">hvec2</a></td></tr>
72 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3<br class="typebreak"/>
73 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#gab708ed615526a03ec26e3b614bea2b7b">hvec3</a></td></tr>
74 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4<br class="typebreak"/>
75 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html#ga912913b034fea8952fcfc129a633c667">hvec4</a></td></tr>
5176 </table>
5277 <hr/><a name="_details"></a><h2>Detailed Description</h2>
53 <p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program. </p>
54 <p>GTC extensions aim to be stable.</p>
55 <p>Even if it's highly unrecommended, it's possible to include all the extensions at once by including &lt;<a class="el" href="a00037_source.html">glm/ext.hpp</a>&gt;. Otherwise, each extension needs to be included a specific file. </p>
78 <p>Defines the half-precision floating-point type, along with various typedefs for vectors and matrices. &lt;<a class="el" href="a00056_source.html">glm/gtc/half_float.hpp</a>&gt; need to be included to use these functionalities. </p>
79 <hr/><h2>Typedef Documentation</h2>
80 <a class="anchor" id="ga256188598ace9135605a8ac8fc158654"></a><!-- doxytag: member="glm::gtc::half_float::half" ref="ga256188598ace9135605a8ac8fc158654" args="" -->
81 <div class="memitem">
82 <div class="memproto">
83 <table class="memname">
84 <tr>
85 <td class="memname">typedef detail::thalf half</td>
86 </tr>
87 </table>
88 </div>
89 <div class="memdoc">
90
91 <p>Type for half-precision floating-point numbers. </p>
92 <p>From GLM_GTC_half_float extension. </p>
93
94 <p>Definition at line <a class="el" href="a00056_source.html#l00329">329</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
95
96 </div>
97 </div>
98 <a class="anchor" id="ga784f92f5a36fd8e23a69119eb6a80eb8"></a><!-- doxytag: member="glm::gtc::half_float::hmat2" ref="ga784f92f5a36fd8e23a69119eb6a80eb8" args="" -->
99 <div class="memitem">
100 <div class="memproto">
101 <table class="memname">
102 <tr>
103 <td class="memname">typedef detail::tmat2x2&lt;detail::thalf&gt; hmat2</td>
104 </tr>
105 </table>
106 </div>
107 <div class="memdoc">
108
109 <p>2 * 2 matrix of half-precision floating-point numbers. </p>
110 <p>From GLM_GTC_half_float extension. </p>
111
112 <p>Definition at line <a class="el" href="a00056_source.html#l00345">345</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
113
114 </div>
115 </div>
116 <a class="anchor" id="gaef5a99a975d1df44e43f3662d84d24e2"></a><!-- doxytag: member="glm::gtc::half_float::hmat2x2" ref="gaef5a99a975d1df44e43f3662d84d24e2" args="" -->
117 <div class="memitem">
118 <div class="memproto">
119 <table class="memname">
120 <tr>
121 <td class="memname">typedef detail::tmat2x2&lt;detail::thalf&gt; hmat2x2</td>
122 </tr>
123 </table>
124 </div>
125 <div class="memdoc">
126
127 <p>2 * 2 matrix of half-precision floating-point numbers. </p>
128 <p>From GLM_GTC_half_float extension. </p>
129
130 <p>Definition at line <a class="el" href="a00056_source.html#l00357">357</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
131
132 </div>
133 </div>
134 <a class="anchor" id="ga55c96491b1d2508504b7fad8f31fdd47"></a><!-- doxytag: member="glm::gtc::half_float::hmat2x3" ref="ga55c96491b1d2508504b7fad8f31fdd47" args="" -->
135 <div class="memitem">
136 <div class="memproto">
137 <table class="memname">
138 <tr>
139 <td class="memname">typedef detail::tmat2x3&lt;detail::thalf&gt; hmat2x3</td>
140 </tr>
141 </table>
142 </div>
143 <div class="memdoc">
144
145 <p>2 * 3 matrix of half-precision floating-point numbers. </p>
146 <p>From GLM_GTC_half_float extension. </p>
147
148 <p>Definition at line <a class="el" href="a00056_source.html#l00361">361</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
149
150 </div>
151 </div>
152 <a class="anchor" id="ga43a7d1bfd8945398effa19eb66ce304a"></a><!-- doxytag: member="glm::gtc::half_float::hmat2x4" ref="ga43a7d1bfd8945398effa19eb66ce304a" args="" -->
153 <div class="memitem">
154 <div class="memproto">
155 <table class="memname">
156 <tr>
157 <td class="memname">typedef detail::tmat2x4&lt;detail::thalf&gt; hmat2x4</td>
158 </tr>
159 </table>
160 </div>
161 <div class="memdoc">
162
163 <p>2 * 4 matrix of half-precision floating-point numbers. </p>
164 <p>From GLM_GTC_half_float extension. </p>
165
166 <p>Definition at line <a class="el" href="a00056_source.html#l00365">365</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
167
168 </div>
169 </div>
170 <a class="anchor" id="ga97a57670730ece7f6b904d6dcce5bd7a"></a><!-- doxytag: member="glm::gtc::half_float::hmat3" ref="ga97a57670730ece7f6b904d6dcce5bd7a" args="" -->
171 <div class="memitem">
172 <div class="memproto">
173 <table class="memname">
174 <tr>
175 <td class="memname">typedef detail::tmat3x3&lt;detail::thalf&gt; hmat3</td>
176 </tr>
177 </table>
178 </div>
179 <div class="memdoc">
180
181 <p>3 * 3 matrix of half-precision floating-point numbers. </p>
182 <p>From GLM_GTC_half_float extension. </p>
183
184 <p>Definition at line <a class="el" href="a00056_source.html#l00349">349</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
185
186 </div>
187 </div>
188 <a class="anchor" id="gaf89371358a1d90a224c72795d25a4f3e"></a><!-- doxytag: member="glm::gtc::half_float::hmat3x2" ref="gaf89371358a1d90a224c72795d25a4f3e" args="" -->
189 <div class="memitem">
190 <div class="memproto">
191 <table class="memname">
192 <tr>
193 <td class="memname">typedef detail::tmat3x2&lt;detail::thalf&gt; hmat3x2</td>
194 </tr>
195 </table>
196 </div>
197 <div class="memdoc">
198
199 <p>3 * 2 matrix of half-precision floating-point numbers. </p>
200 <p>From GLM_GTC_half_float extension. </p>
201
202 <p>Definition at line <a class="el" href="a00056_source.html#l00369">369</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
203
204 </div>
205 </div>
206 <a class="anchor" id="ga3b23962a795f1f157242859c1a35dec0"></a><!-- doxytag: member="glm::gtc::half_float::hmat3x3" ref="ga3b23962a795f1f157242859c1a35dec0" args="" -->
207 <div class="memitem">
208 <div class="memproto">
209 <table class="memname">
210 <tr>
211 <td class="memname">typedef detail::tmat3x3&lt;detail::thalf&gt; hmat3x3</td>
212 </tr>
213 </table>
214 </div>
215 <div class="memdoc">
216
217 <p>3 * 3 matrix of half-precision floating-point numbers. </p>
218 <p>From GLM_GTC_half_float extension. </p>
219
220 <p>Definition at line <a class="el" href="a00056_source.html#l00373">373</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
221
222 </div>
223 </div>
224 <a class="anchor" id="ga8eeb3d8c00910f5497117d1749b6550f"></a><!-- doxytag: member="glm::gtc::half_float::hmat3x4" ref="ga8eeb3d8c00910f5497117d1749b6550f" args="" -->
225 <div class="memitem">
226 <div class="memproto">
227 <table class="memname">
228 <tr>
229 <td class="memname">typedef detail::tmat3x4&lt;detail::thalf&gt; hmat3x4</td>
230 </tr>
231 </table>
232 </div>
233 <div class="memdoc">
234
235 <p>3 * 4 matrix of half-precision floating-point numbers. </p>
236 <p>From GLM_GTC_half_float extension. </p>
237
238 <p>Definition at line <a class="el" href="a00056_source.html#l00377">377</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
239
240 </div>
241 </div>
242 <a class="anchor" id="gaffa8b541819e978ede6129703be94285"></a><!-- doxytag: member="glm::gtc::half_float::hmat4" ref="gaffa8b541819e978ede6129703be94285" args="" -->
243 <div class="memitem">
244 <div class="memproto">
245 <table class="memname">
246 <tr>
247 <td class="memname">typedef detail::tmat4x4&lt;detail::thalf&gt; hmat4</td>
248 </tr>
249 </table>
250 </div>
251 <div class="memdoc">
252
253 <p>4 * 4 matrix of half-precision floating-point numbers. </p>
254 <p>From GLM_GTC_half_float extension. </p>
255
256 <p>Definition at line <a class="el" href="a00056_source.html#l00353">353</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
257
258 </div>
259 </div>
260 <a class="anchor" id="ga370098417bb96d7796b11a4611bf67ac"></a><!-- doxytag: member="glm::gtc::half_float::hmat4x2" ref="ga370098417bb96d7796b11a4611bf67ac" args="" -->
261 <div class="memitem">
262 <div class="memproto">
263 <table class="memname">
264 <tr>
265 <td class="memname">typedef detail::tmat4x2&lt;detail::thalf&gt; hmat4x2</td>
266 </tr>
267 </table>
268 </div>
269 <div class="memdoc">
270
271 <p>4 * 2 matrix of half-precision floating-point numbers. </p>
272 <p>From GLM_GTC_half_float extension. </p>
273
274 <p>Definition at line <a class="el" href="a00056_source.html#l00381">381</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
275
276 </div>
277 </div>
278 <a class="anchor" id="ga8248b190b2f9a4ff3f2aadf865f72b84"></a><!-- doxytag: member="glm::gtc::half_float::hmat4x3" ref="ga8248b190b2f9a4ff3f2aadf865f72b84" args="" -->
279 <div class="memitem">
280 <div class="memproto">
281 <table class="memname">
282 <tr>
283 <td class="memname">typedef detail::tmat4x3&lt;detail::thalf&gt; hmat4x3</td>
284 </tr>
285 </table>
286 </div>
287 <div class="memdoc">
288
289 <p>4 * 3 matrix of half-precision floating-point numbers. </p>
290 <p>From GLM_GTC_half_float extension. </p>
291
292 <p>Definition at line <a class="el" href="a00056_source.html#l00385">385</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
293
294 </div>
295 </div>
296 <a class="anchor" id="ga66a4356be6f3c7a1e5cb944657917002"></a><!-- doxytag: member="glm::gtc::half_float::hmat4x4" ref="ga66a4356be6f3c7a1e5cb944657917002" args="" -->
297 <div class="memitem">
298 <div class="memproto">
299 <table class="memname">
300 <tr>
301 <td class="memname">typedef detail::tmat4x4&lt;detail::thalf&gt; hmat4x4</td>
302 </tr>
303 </table>
304 </div>
305 <div class="memdoc">
306
307 <p>4 * 4 matrix of half-precision floating-point numbers. </p>
308 <p>From GLM_GTC_half_float extension. </p>
309
310 <p>Definition at line <a class="el" href="a00056_source.html#l00389">389</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
311
312 </div>
313 </div>
314 <a class="anchor" id="ga2cd0b3fe113dc1aa2ee750a85f77c50a"></a><!-- doxytag: member="glm::gtc::half_float::hvec2" ref="ga2cd0b3fe113dc1aa2ee750a85f77c50a" args="" -->
315 <div class="memitem">
316 <div class="memproto">
317 <table class="memname">
318 <tr>
319 <td class="memname">typedef detail::tvec2&lt;detail::thalf&gt; hvec2</td>
320 </tr>
321 </table>
322 </div>
323 <div class="memdoc">
324
325 <p>Vector of 2 half-precision floating-point numbers. </p>
326 <p>From GLM_GTC_half_float extension. </p>
327
328 <p>Definition at line <a class="el" href="a00056_source.html#l00333">333</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
329
330 </div>
331 </div>
332 <a class="anchor" id="gab708ed615526a03ec26e3b614bea2b7b"></a><!-- doxytag: member="glm::gtc::half_float::hvec3" ref="gab708ed615526a03ec26e3b614bea2b7b" args="" -->
333 <div class="memitem">
334 <div class="memproto">
335 <table class="memname">
336 <tr>
337 <td class="memname">typedef detail::tvec3&lt;detail::thalf&gt; hvec3</td>
338 </tr>
339 </table>
340 </div>
341 <div class="memdoc">
342
343 <p>Vector of 3 half-precision floating-point numbers. </p>
344 <p>From GLM_GTC_half_float extension. </p>
345
346 <p>Definition at line <a class="el" href="a00056_source.html#l00337">337</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
347
348 </div>
349 </div>
350 <a class="anchor" id="ga912913b034fea8952fcfc129a633c667"></a><!-- doxytag: member="glm::gtc::half_float::hvec4" ref="ga912913b034fea8952fcfc129a633c667" args="" -->
351 <div class="memitem">
352 <div class="memproto">
353 <table class="memname">
354 <tr>
355 <td class="memname">typedef detail::tvec4&lt;detail::thalf&gt; hvec4</td>
356 </tr>
357 </table>
358 </div>
359 <div class="memdoc">
360
361 <p>Vector of 4 half-precision floating-point numbers. </p>
362 <p>From GLM_GTC_half_float extension. </p>
363
364 <p>Definition at line <a class="el" href="a00056_source.html#l00341">341</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
365
366 </div>
367 </div>
56368 </div>
57369 <hr class="footer"/><address class="footer"><small>Generated by&#160;
58370 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTC_half_float: Half-precision floating-point based types and functions.</title>
4 <title>GLM_GTC_matrix_access: Access matrix rows and columns.</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#nested-classes">Classes</a> &#124;
33 <a href="#typedef-members">Typedefs</a> </div>
32 <a href="#func-members">Functions</a> </div>
3433 <div class="headertitle">
35 <h1>GLM_GTC_half_float: Half-precision floating-point based types and functions.</h1> </div>
36 <div class="ingroups"><a class="el" href="a00239.html">GTC Extensions (Stable)</a></div></div>
34 <h1>GLM_GTC_matrix_access: Access matrix rows and columns.</h1> </div>
35 <div class="ingroups"><a class="el" href="a00238.html">GTC Extensions (Stable)</a></div></div>
3736 <div class="contents">
3837 <table class="memberdecls">
39 <tr><td colspan="2"><h2><a name="nested-classes"></a>
40 Classes</h2></td></tr>
41 <tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00009.html">thalf</a></td></tr>
42 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">16-bit floating point type. <a href="a00009.html#_details">More...</a><br/></td></tr>
43 <tr><td colspan="2"><h2><a name="typedef-members"></a>
44 Typedefs</h2></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::thalf&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#ga256188598ace9135605a8ac8fc158654">half</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2<br class="typebreak"/>
47 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#ga784f92f5a36fd8e23a69119eb6a80eb8">hmat2</a></td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3<br class="typebreak"/>
49 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#ga97a57670730ece7f6b904d6dcce5bd7a">hmat3</a></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4<br class="typebreak"/>
51 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#gaffa8b541819e978ede6129703be94285">hmat4</a></td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2<br class="typebreak"/>
53 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a">hvec2</a></td></tr>
54 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3<br class="typebreak"/>
55 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#gab708ed615526a03ec26e3b614bea2b7b">hvec3</a></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4<br class="typebreak"/>
57 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#ga912913b034fea8952fcfc129a633c667">hvec4</a></td></tr>
38 <tr><td colspan="2"><h2><a name="func-members"></a>
39 Functions</h2></td></tr>
40 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
41 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::col_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga0e92f78abad525682684b0c262bbffe4">column</a> (genType const &amp;m, int index)</td></tr>
42 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
43 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga30e1966ba22897cd09f156690c8f94a1">column</a> (genType const &amp;m, int index, typename genType::col_type const &amp;x)</td></tr>
44 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
45 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::row_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe">row</a> (genType const &amp;m, int index)</td></tr>
46 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
47 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#gab6684183e0e91181c960ce21efe1ce67">row</a> (genType const &amp;m, int index, typename genType::row_type const &amp;x)</td></tr>
5848 </table>
5949 <hr/><a name="_details"></a><h2>Detailed Description</h2>
60 <p>Defines the half-precision floating-point type, along with various typedefs for vectors and matrices. &lt;<a class="el" href="a00056_source.html">glm/gtc/half_float.hpp</a>&gt; need to be included to use these functionalities. </p>
61 <hr/><h2>Typedef Documentation</h2>
62 <a class="anchor" id="ga256188598ace9135605a8ac8fc158654"></a><!-- doxytag: member="glm::gtc::half_float::half" ref="ga256188598ace9135605a8ac8fc158654" args="" -->
50 <p>Defines functions to access rows or columns of a matrix easily. &lt;<a class="el" href="a00071_source.html">glm/gtc/matrix_access.hpp</a>&gt; need to be included to use these functionalities. </p>
51 <hr/><h2>Function Documentation</h2>
52 <a class="anchor" id="ga0e92f78abad525682684b0c262bbffe4"></a><!-- doxytag: member="glm::gtc::matrix_access::column" ref="ga0e92f78abad525682684b0c262bbffe4" args="(genType const &amp;m, int index)" -->
6353 <div class="memitem">
6454 <div class="memproto">
6555 <table class="memname">
6656 <tr>
67 <td class="memname">typedef detail::thalf half</td>
57 <td class="memname">genType::col_type glm::gtc::matrix_access::column </td>
58 <td>(</td>
59 <td class="paramtype">genType const &amp;&#160;</td>
60 <td class="paramname"><em>m</em>, </td>
61 </tr>
62 <tr>
63 <td class="paramkey"></td>
64 <td></td>
65 <td class="paramtype">int&#160;</td>
66 <td class="paramname"><em>index</em>&#160;</td>
67 </tr>
68 <tr>
69 <td></td>
70 <td>)</td>
71 <td></td><td></td>
6872 </tr>
6973 </table>
7074 </div>
7175 <div class="memdoc">
7276
73 <p>Type for half-precision floating-point numbers. </p>
74 <p>From GLM_GTC_half_float extension. </p>
75
76 <p>Definition at line <a class="el" href="a00056_source.html#l00334">334</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
77 <p>Get a specific column of a matrix. </p>
78 <p>From GLM_GTC_matrix_access extension. </p>
7779
7880 </div>
7981 </div>
80 <a class="anchor" id="ga784f92f5a36fd8e23a69119eb6a80eb8"></a><!-- doxytag: member="glm::gtc::half_float::hmat2" ref="ga784f92f5a36fd8e23a69119eb6a80eb8" args="" -->
82 <a class="anchor" id="ga30e1966ba22897cd09f156690c8f94a1"></a><!-- doxytag: member="glm::gtc::matrix_access::column" ref="ga30e1966ba22897cd09f156690c8f94a1" args="(genType const &amp;m, int index, typename genType::col_type const &amp;x)" -->
8183 <div class="memitem">
8284 <div class="memproto">
8385 <table class="memname">
8486 <tr>
85 <td class="memname">typedef detail::tmat2x2&lt;detail::thalf&gt; hmat2</td>
87 <td class="memname">genType glm::gtc::matrix_access::column </td>
88 <td>(</td>
89 <td class="paramtype">genType const &amp;&#160;</td>
90 <td class="paramname"><em>m</em>, </td>
91 </tr>
92 <tr>
93 <td class="paramkey"></td>
94 <td></td>
95 <td class="paramtype">int&#160;</td>
96 <td class="paramname"><em>index</em>, </td>
97 </tr>
98 <tr>
99 <td class="paramkey"></td>
100 <td></td>
101 <td class="paramtype">typename genType::col_type const &amp;&#160;</td>
102 <td class="paramname"><em>x</em>&#160;</td>
103 </tr>
104 <tr>
105 <td></td>
106 <td>)</td>
107 <td></td><td></td>
86108 </tr>
87109 </table>
88110 </div>
89111 <div class="memdoc">
90112
91 <p>2 * 2 matrix of half-precision floating-point numbers. </p>
92 <p>From GLM_GTC_half_float extension. </p>
93
94 <p>Definition at line <a class="el" href="a00056_source.html#l00350">350</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
113 <p>Set a specific column to a matrix. </p>
114 <p>From GLM_GTC_matrix_access extension. </p>
95115
96116 </div>
97117 </div>
98 <a class="anchor" id="ga97a57670730ece7f6b904d6dcce5bd7a"></a><!-- doxytag: member="glm::gtc::half_float::hmat3" ref="ga97a57670730ece7f6b904d6dcce5bd7a" args="" -->
118 <a class="anchor" id="ga35d133d689062739c8dad60b7e399bbe"></a><!-- doxytag: member="glm::gtc::matrix_access::row" ref="ga35d133d689062739c8dad60b7e399bbe" args="(genType const &amp;m, int index)" -->
99119 <div class="memitem">
100120 <div class="memproto">
101121 <table class="memname">
102122 <tr>
103 <td class="memname">typedef detail::tmat3x3&lt;detail::thalf&gt; hmat3</td>
123 <td class="memname">genType::row_type glm::gtc::matrix_access::row </td>
124 <td>(</td>
125 <td class="paramtype">genType const &amp;&#160;</td>
126 <td class="paramname"><em>m</em>, </td>
127 </tr>
128 <tr>
129 <td class="paramkey"></td>
130 <td></td>
131 <td class="paramtype">int&#160;</td>
132 <td class="paramname"><em>index</em>&#160;</td>
133 </tr>
134 <tr>
135 <td></td>
136 <td>)</td>
137 <td></td><td></td>
104138 </tr>
105139 </table>
106140 </div>
107141 <div class="memdoc">
108142
109 <p>3 * 3 matrix of half-precision floating-point numbers. </p>
110 <p>From GLM_GTC_half_float extension. </p>
111
112 <p>Definition at line <a class="el" href="a00056_source.html#l00354">354</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
143 <p>Get a specific row of a matrix. </p>
144 <p>From GLM_GTC_matrix_access extension. </p>
113145
114146 </div>
115147 </div>
116 <a class="anchor" id="gaffa8b541819e978ede6129703be94285"></a><!-- doxytag: member="glm::gtc::half_float::hmat4" ref="gaffa8b541819e978ede6129703be94285" args="" -->
148 <a class="anchor" id="gab6684183e0e91181c960ce21efe1ce67"></a><!-- doxytag: member="glm::gtc::matrix_access::row" ref="gab6684183e0e91181c960ce21efe1ce67" args="(genType const &amp;m, int index, typename genType::row_type const &amp;x)" -->
117149 <div class="memitem">
118150 <div class="memproto">
119151 <table class="memname">
120152 <tr>
121 <td class="memname">typedef detail::tmat4x4&lt;detail::thalf&gt; hmat4</td>
153 <td class="memname">genType glm::gtc::matrix_access::row </td>
154 <td>(</td>
155 <td class="paramtype">genType const &amp;&#160;</td>
156 <td class="paramname"><em>m</em>, </td>
157 </tr>
158 <tr>
159 <td class="paramkey"></td>
160 <td></td>
161 <td class="paramtype">int&#160;</td>
162 <td class="paramname"><em>index</em>, </td>
163 </tr>
164 <tr>
165 <td class="paramkey"></td>
166 <td></td>
167 <td class="paramtype">typename genType::row_type const &amp;&#160;</td>
168 <td class="paramname"><em>x</em>&#160;</td>
169 </tr>
170 <tr>
171 <td></td>
172 <td>)</td>
173 <td></td><td></td>
122174 </tr>
123175 </table>
124176 </div>
125177 <div class="memdoc">
126178
127 <p>4 * 4 matrix of half-precision floating-point numbers. </p>
128 <p>From GLM_GTC_half_float extension. </p>
129
130 <p>Definition at line <a class="el" href="a00056_source.html#l00358">358</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
131
132 </div>
133 </div>
134 <a class="anchor" id="ga2cd0b3fe113dc1aa2ee750a85f77c50a"></a><!-- doxytag: member="glm::gtc::half_float::hvec2" ref="ga2cd0b3fe113dc1aa2ee750a85f77c50a" args="" -->
135 <div class="memitem">
136 <div class="memproto">
137 <table class="memname">
138 <tr>
139 <td class="memname">typedef detail::tvec2&lt;detail::thalf&gt; hvec2</td>
140 </tr>
141 </table>
142 </div>
143 <div class="memdoc">
144
145 <p>Vector of 2 half-precision floating-point numbers. </p>
146 <p>From GLM_GTC_half_float extension. </p>
147
148 <p>Definition at line <a class="el" href="a00056_source.html#l00338">338</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
149
150 </div>
151 </div>
152 <a class="anchor" id="gab708ed615526a03ec26e3b614bea2b7b"></a><!-- doxytag: member="glm::gtc::half_float::hvec3" ref="gab708ed615526a03ec26e3b614bea2b7b" args="" -->
153 <div class="memitem">
154 <div class="memproto">
155 <table class="memname">
156 <tr>
157 <td class="memname">typedef detail::tvec3&lt;detail::thalf&gt; hvec3</td>
158 </tr>
159 </table>
160 </div>
161 <div class="memdoc">
162
163 <p>Vector of 3 half-precision floating-point numbers. </p>
164 <p>From GLM_GTC_half_float extension. </p>
165
166 <p>Definition at line <a class="el" href="a00056_source.html#l00342">342</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
167
168 </div>
169 </div>
170 <a class="anchor" id="ga912913b034fea8952fcfc129a633c667"></a><!-- doxytag: member="glm::gtc::half_float::hvec4" ref="ga912913b034fea8952fcfc129a633c667" args="" -->
171 <div class="memitem">
172 <div class="memproto">
173 <table class="memname">
174 <tr>
175 <td class="memname">typedef detail::tvec4&lt;detail::thalf&gt; hvec4</td>
176 </tr>
177 </table>
178 </div>
179 <div class="memdoc">
180
181 <p>Vector of 4 half-precision floating-point numbers. </p>
182 <p>From GLM_GTC_half_float extension. </p>
183
184 <p>Definition at line <a class="el" href="a00056_source.html#l00346">346</a> of file <a class="el" href="a00056_source.html">half_float.hpp</a>.</p>
179 <p>Set a specific row to a matrix. </p>
180 <p>From GLM_GTC_matrix_access extension. </p>
185181
186182 </div>
187183 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTC_matrix_access: Access matrix rows and columns.</title>
4 <title>GLM_GTC_matrix_integer: Integer matrix types.</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#func-members">Functions</a> </div>
32 <a href="#typedef-members">Typedefs</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTC_matrix_access: Access matrix rows and columns.</h1> </div>
35 <div class="ingroups"><a class="el" href="a00239.html">GTC Extensions (Stable)</a></div></div>
34 <h1>GLM_GTC_matrix_integer: Integer matrix types.</h1> </div>
35 <div class="ingroups"><a class="el" href="a00238.html">GTC Extensions (Stable)</a></div></div>
3636 <div class="contents">
3737 <table class="memberdecls">
38 <tr><td colspan="2"><h2><a name="func-members"></a>
39 Functions</h2></td></tr>
40 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
41 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::col_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga0e92f78abad525682684b0c262bbffe4">column</a> (genType const &amp;m, int index)</td></tr>
42 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
43 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga30e1966ba22897cd09f156690c8f94a1">column</a> (genType const &amp;m, int index, typename genType::col_type const &amp;x)</td></tr>
44 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
45 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::row_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga35d133d689062739c8dad60b7e399bbe">row</a> (genType const &amp;m, int index)</td></tr>
46 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
47 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gab6684183e0e91181c960ce21efe1ce67">row</a> (genType const &amp;m, int index, typename genType::row_type const &amp;x)</td></tr>
38 <tr><td colspan="2"><h2><a name="typedef-members"></a>
39 Typedefs</h2></td></tr>
40 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga16e9ac01daa94cd41baca57b1720c4d2"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat2" ref="ga16e9ac01daa94cd41baca57b1720c4d2" args="" -->
41 typedef detail::tmat2x2<br class="typebreak"/>
42 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga16e9ac01daa94cd41baca57b1720c4d2">highp_imat2</a></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga503734c9f848968b3ede74017d3927e0"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat2x2" ref="ga503734c9f848968b3ede74017d3927e0" args="" -->
44 typedef detail::tmat2x2<br class="typebreak"/>
45 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga503734c9f848968b3ede74017d3927e0">highp_imat2x2</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae4ac618eb06b7288e4a14633971320ed"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat2x3" ref="gae4ac618eb06b7288e4a14633971320ed" args="" -->
47 typedef detail::tmat2x3<br class="typebreak"/>
48 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gae4ac618eb06b7288e4a14633971320ed">highp_imat2x3</a></td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73ca75871a9a43972be9bb4b295b1e3f"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat2x4" ref="ga73ca75871a9a43972be9bb4b295b1e3f" args="" -->
50 typedef detail::tmat2x4<br class="typebreak"/>
51 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga73ca75871a9a43972be9bb4b295b1e3f">highp_imat2x4</a></td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1aab5488573c134db709107b0aa45060"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat3" ref="ga1aab5488573c134db709107b0aa45060" args="" -->
53 typedef detail::tmat3x3<br class="typebreak"/>
54 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga1aab5488573c134db709107b0aa45060">highp_imat3</a></td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8e2e34fc5f030a888cff9b9fdf169c01"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat3x2" ref="ga8e2e34fc5f030a888cff9b9fdf169c01" args="" -->
56 typedef detail::tmat3x2<br class="typebreak"/>
57 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga8e2e34fc5f030a888cff9b9fdf169c01">highp_imat3x2</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20a5eb2dc99580c5eee0d1287a81dc71"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat3x3" ref="ga20a5eb2dc99580c5eee0d1287a81dc71" args="" -->
59 typedef detail::tmat3x3<br class="typebreak"/>
60 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga20a5eb2dc99580c5eee0d1287a81dc71">highp_imat3x3</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52c1fd71b37cd7534b3ba05cfddf5641"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat3x4" ref="ga52c1fd71b37cd7534b3ba05cfddf5641" args="" -->
62 typedef detail::tmat3x4<br class="typebreak"/>
63 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga52c1fd71b37cd7534b3ba05cfddf5641">highp_imat3x4</a></td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga001cb3722aece6e478d1c013cd561248"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat4" ref="ga001cb3722aece6e478d1c013cd561248" args="" -->
65 typedef detail::tmat4x4<br class="typebreak"/>
66 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga001cb3722aece6e478d1c013cd561248">highp_imat4</a></td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8d5483e43eaf948445dad0316adfd065"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat4x2" ref="ga8d5483e43eaf948445dad0316adfd065" args="" -->
68 typedef detail::tmat4x2<br class="typebreak"/>
69 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga8d5483e43eaf948445dad0316adfd065">highp_imat4x2</a></td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga39096445d642ca381cec94a9dcefa49e"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat4x3" ref="ga39096445d642ca381cec94a9dcefa49e" args="" -->
71 typedef detail::tmat4x3<br class="typebreak"/>
72 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga39096445d642ca381cec94a9dcefa49e">highp_imat4x3</a></td></tr>
73 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1956c46bca65b5b00c01250e0d5f1de6"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat4x4" ref="ga1956c46bca65b5b00c01250e0d5f1de6" args="" -->
74 typedef detail::tmat4x4<br class="typebreak"/>
75 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga1956c46bca65b5b00c01250e0d5f1de6">highp_imat4x4</a></td></tr>
76 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9917f09e4bbb414e5b10f5e00c7de70d"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat2" ref="ga9917f09e4bbb414e5b10f5e00c7de70d" args="" -->
77 typedef detail::tmat2x2<br class="typebreak"/>
78 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga9917f09e4bbb414e5b10f5e00c7de70d">highp_umat2</a></td></tr>
79 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac46ccd4fa290488681c4574e5e562d55"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat2x2" ref="gac46ccd4fa290488681c4574e5e562d55" args="" -->
80 typedef detail::tmat2x2<br class="typebreak"/>
81 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gac46ccd4fa290488681c4574e5e562d55">highp_umat2x2</a></td></tr>
82 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga81a27f521f29ff4ace4d1e4cde1de2a5"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat2x3" ref="ga81a27f521f29ff4ace4d1e4cde1de2a5" args="" -->
83 typedef detail::tmat2x3<br class="typebreak"/>
84 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga81a27f521f29ff4ace4d1e4cde1de2a5">highp_umat2x3</a></td></tr>
85 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab6c2023040df42564c16a2b464adba9b"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat2x4" ref="gab6c2023040df42564c16a2b464adba9b" args="" -->
86 typedef detail::tmat2x4<br class="typebreak"/>
87 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gab6c2023040df42564c16a2b464adba9b">highp_umat2x4</a></td></tr>
88 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac7928fd1dbf3decc2463e0044d10ba14"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat3" ref="gac7928fd1dbf3decc2463e0044d10ba14" args="" -->
89 typedef detail::tmat3x3<br class="typebreak"/>
90 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gac7928fd1dbf3decc2463e0044d10ba14">highp_umat3</a></td></tr>
91 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab9cdf3c2c04d7346cc45b212a904f02d"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat3x2" ref="gab9cdf3c2c04d7346cc45b212a904f02d" args="" -->
92 typedef detail::tmat3x2<br class="typebreak"/>
93 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gab9cdf3c2c04d7346cc45b212a904f02d">highp_umat3x2</a></td></tr>
94 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabb4b97694034f2d650dca359db023eaa"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat3x3" ref="gabb4b97694034f2d650dca359db023eaa" args="" -->
95 typedef detail::tmat3x3<br class="typebreak"/>
96 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gabb4b97694034f2d650dca359db023eaa">highp_umat3x3</a></td></tr>
97 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8c7be88fb8d49dd55eb6892da1bf1966"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat3x4" ref="ga8c7be88fb8d49dd55eb6892da1bf1966" args="" -->
98 typedef detail::tmat3x4<br class="typebreak"/>
99 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga8c7be88fb8d49dd55eb6892da1bf1966">highp_umat3x4</a></td></tr>
100 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2f29d9ef4636752de31b92a56b44bd8a"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat4" ref="ga2f29d9ef4636752de31b92a56b44bd8a" args="" -->
101 typedef detail::tmat4x4<br class="typebreak"/>
102 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga2f29d9ef4636752de31b92a56b44bd8a">highp_umat4</a></td></tr>
103 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga84ddf69a6f1912a196c505c4a8fe817b"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat4x2" ref="ga84ddf69a6f1912a196c505c4a8fe817b" args="" -->
104 typedef detail::tmat4x2<br class="typebreak"/>
105 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga84ddf69a6f1912a196c505c4a8fe817b">highp_umat4x2</a></td></tr>
106 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaba6def08906f182866bd945babf9a5f7"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat4x3" ref="gaba6def08906f182866bd945babf9a5f7" args="" -->
107 typedef detail::tmat4x3<br class="typebreak"/>
108 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaba6def08906f182866bd945babf9a5f7">highp_umat4x3</a></td></tr>
109 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaff8f7574251ea10466c0f31ca1e83f6d"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat4x4" ref="gaff8f7574251ea10466c0f31ca1e83f6d" args="" -->
110 typedef detail::tmat4x4<br class="typebreak"/>
111 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaff8f7574251ea10466c0f31ca1e83f6d">highp_umat4x4</a></td></tr>
112 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaabe04f9948d4a213bb1c20137de03e01"></a><!-- doxytag: member="gtc_matrix_integer::imat2" ref="gaabe04f9948d4a213bb1c20137de03e01" args="" -->
113 typedef mediump_imat2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a></td></tr>
114 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa4732a240522ad9bc28144fda2fc14ec"></a><!-- doxytag: member="gtc_matrix_integer::imat2x2" ref="gaa4732a240522ad9bc28144fda2fc14ec" args="" -->
115 typedef mediump_imat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a></td></tr>
116 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3f42dd3d5d94a0fd5706f7ec8dd0c605"></a><!-- doxytag: member="gtc_matrix_integer::imat2x3" ref="ga3f42dd3d5d94a0fd5706f7ec8dd0c605" args="" -->
117 typedef mediump_imat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a></td></tr>
118 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9d8faafdca42583d67e792dd038fc668"></a><!-- doxytag: member="gtc_matrix_integer::imat2x4" ref="ga9d8faafdca42583d67e792dd038fc668" args="" -->
119 typedef mediump_imat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a></td></tr>
120 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga038f68437155ffa3c2583a15264a8195"></a><!-- doxytag: member="gtc_matrix_integer::imat3" ref="ga038f68437155ffa3c2583a15264a8195" args="" -->
121 typedef mediump_imat3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga038f68437155ffa3c2583a15264a8195">imat3</a></td></tr>
122 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7b33bbe4f12c060892bd3cc8d4cd737f"></a><!-- doxytag: member="gtc_matrix_integer::imat3x2" ref="ga7b33bbe4f12c060892bd3cc8d4cd737f" args="" -->
123 typedef mediump_imat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a></td></tr>
124 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6aacc960f62e8f7d2fe9d32d5050e7a4"></a><!-- doxytag: member="gtc_matrix_integer::imat3x3" ref="ga6aacc960f62e8f7d2fe9d32d5050e7a4" args="" -->
125 typedef mediump_imat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a></td></tr>
126 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e9ce23496d8b08dfc302d4039694b58"></a><!-- doxytag: member="gtc_matrix_integer::imat3x4" ref="ga6e9ce23496d8b08dfc302d4039694b58" args="" -->
127 typedef mediump_imat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a></td></tr>
128 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga96b0d26a33b81bb6a60ca0f39682f7eb"></a><!-- doxytag: member="gtc_matrix_integer::imat4" ref="ga96b0d26a33b81bb6a60ca0f39682f7eb" args="" -->
129 typedef mediump_imat4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a></td></tr>
130 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8ce7ef51d8b2c1901fa5414deccbc3fa"></a><!-- doxytag: member="gtc_matrix_integer::imat4x2" ref="ga8ce7ef51d8b2c1901fa5414deccbc3fa" args="" -->
131 typedef mediump_imat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a></td></tr>
132 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga705ee0bf49d6c3de4404ce2481bf0df5"></a><!-- doxytag: member="gtc_matrix_integer::imat4x3" ref="ga705ee0bf49d6c3de4404ce2481bf0df5" args="" -->
133 typedef mediump_imat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a></td></tr>
134 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga43ed5e4f475b6f4cad7cba78f29c405b"></a><!-- doxytag: member="gtc_matrix_integer::imat4x4" ref="ga43ed5e4f475b6f4cad7cba78f29c405b" args="" -->
135 typedef mediump_imat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a></td></tr>
136 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga53ba084d560fbe0a32409b7ad29a405f"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat2" ref="ga53ba084d560fbe0a32409b7ad29a405f" args="" -->
137 typedef detail::tmat2x2&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga53ba084d560fbe0a32409b7ad29a405f">lowp_imat2</a></td></tr>
138 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4cb2449be4c36270d0f6c2849f72037c"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat2x2" ref="ga4cb2449be4c36270d0f6c2849f72037c" args="" -->
139 typedef detail::tmat2x2&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga4cb2449be4c36270d0f6c2849f72037c">lowp_imat2x2</a></td></tr>
140 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad9cf0368a1cd253d87307c9784ea4c56"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat2x3" ref="gad9cf0368a1cd253d87307c9784ea4c56" args="" -->
141 typedef detail::tmat2x3&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gad9cf0368a1cd253d87307c9784ea4c56">lowp_imat2x3</a></td></tr>
142 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab065fa79d6c42b6df2e261c76b359524"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat2x4" ref="gab065fa79d6c42b6df2e261c76b359524" args="" -->
143 typedef detail::tmat2x4&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gab065fa79d6c42b6df2e261c76b359524">lowp_imat2x4</a></td></tr>
144 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga602bbe8185b35c8e02038924c95c526c"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat3" ref="ga602bbe8185b35c8e02038924c95c526c" args="" -->
145 typedef detail::tmat3x3&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga602bbe8185b35c8e02038924c95c526c">lowp_imat3</a></td></tr>
146 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf96385c22d0e6876b8b5c3dcc2e1d91a"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat3x2" ref="gaf96385c22d0e6876b8b5c3dcc2e1d91a" args="" -->
147 typedef detail::tmat3x2&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaf96385c22d0e6876b8b5c3dcc2e1d91a">lowp_imat3x2</a></td></tr>
148 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4da80362c97eb9abb48cedc5a444daf6"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat3x3" ref="ga4da80362c97eb9abb48cedc5a444daf6" args="" -->
149 typedef detail::tmat3x3&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga4da80362c97eb9abb48cedc5a444daf6">lowp_imat3x3</a></td></tr>
150 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7114fd267da92d44c98a440704e0be79"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat3x4" ref="ga7114fd267da92d44c98a440704e0be79" args="" -->
151 typedef detail::tmat3x4&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga7114fd267da92d44c98a440704e0be79">lowp_imat3x4</a></td></tr>
152 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e0f075c487aee31df91d9dbd71db88d"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat4" ref="ga6e0f075c487aee31df91d9dbd71db88d" args="" -->
153 typedef detail::tmat4x4&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga6e0f075c487aee31df91d9dbd71db88d">lowp_imat4</a></td></tr>
154 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab9357fc7eb98b919fba7f1656fd548a8"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat4x2" ref="gab9357fc7eb98b919fba7f1656fd548a8" args="" -->
155 typedef detail::tmat4x2&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gab9357fc7eb98b919fba7f1656fd548a8">lowp_imat4x2</a></td></tr>
156 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac21d66a9936eb54d12b8e57b08e589bc"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat4x3" ref="gac21d66a9936eb54d12b8e57b08e589bc" args="" -->
157 typedef detail::tmat4x3&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gac21d66a9936eb54d12b8e57b08e589bc">lowp_imat4x3</a></td></tr>
158 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad30fba4d4c94eda205b3f768274f0893"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat4x4" ref="gad30fba4d4c94eda205b3f768274f0893" args="" -->
159 typedef detail::tmat4x4&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gad30fba4d4c94eda205b3f768274f0893">lowp_imat4x4</a></td></tr>
160 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf5fd055eb478c690723f3db742fed7ee"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat2" ref="gaf5fd055eb478c690723f3db742fed7ee" args="" -->
161 typedef detail::tmat2x2<br class="typebreak"/>
162 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaf5fd055eb478c690723f3db742fed7ee">lowp_umat2</a></td></tr>
163 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2041f6554b1e8ed2a6b74cffa2b8d917"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat2x2" ref="ga2041f6554b1e8ed2a6b74cffa2b8d917" args="" -->
164 typedef detail::tmat2x2<br class="typebreak"/>
165 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga2041f6554b1e8ed2a6b74cffa2b8d917">lowp_umat2x2</a></td></tr>
166 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2831bb6c3ed95cfefc2fffd315d31904"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat2x3" ref="ga2831bb6c3ed95cfefc2fffd315d31904" args="" -->
167 typedef detail::tmat2x3<br class="typebreak"/>
168 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga2831bb6c3ed95cfefc2fffd315d31904">lowp_umat2x3</a></td></tr>
169 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7e15349e63fbb93ce8ab047a02f0fe73"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat2x4" ref="ga7e15349e63fbb93ce8ab047a02f0fe73" args="" -->
170 typedef detail::tmat2x4<br class="typebreak"/>
171 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga7e15349e63fbb93ce8ab047a02f0fe73">lowp_umat2x4</a></td></tr>
172 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9b9e4dbbb43103f29e432c611ba2a8e9"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat3" ref="ga9b9e4dbbb43103f29e432c611ba2a8e9" args="" -->
173 typedef detail::tmat3x3<br class="typebreak"/>
174 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga9b9e4dbbb43103f29e432c611ba2a8e9">lowp_umat3</a></td></tr>
175 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9bb2ec92ae5a588cc2f2487a2b39091a"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat3x2" ref="ga9bb2ec92ae5a588cc2f2487a2b39091a" args="" -->
176 typedef detail::tmat3x2<br class="typebreak"/>
177 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga9bb2ec92ae5a588cc2f2487a2b39091a">lowp_umat3x2</a></td></tr>
178 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0cd96f6db0335fec76d521c04e55aa72"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat3x3" ref="ga0cd96f6db0335fec76d521c04e55aa72" args="" -->
179 typedef detail::tmat3x3<br class="typebreak"/>
180 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga0cd96f6db0335fec76d521c04e55aa72">lowp_umat3x3</a></td></tr>
181 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga74afefa6d98ed4013b0b8973aedaa3c3"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat3x4" ref="ga74afefa6d98ed4013b0b8973aedaa3c3" args="" -->
182 typedef detail::tmat3x4<br class="typebreak"/>
183 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga74afefa6d98ed4013b0b8973aedaa3c3">lowp_umat3x4</a></td></tr>
184 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabe8174acf8b97bba515e77b050dee149"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat4" ref="gabe8174acf8b97bba515e77b050dee149" args="" -->
185 typedef detail::tmat4x4<br class="typebreak"/>
186 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gabe8174acf8b97bba515e77b050dee149">lowp_umat4</a></td></tr>
187 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6c87f764b7e37b732701d12a5dd99b60"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat4x2" ref="ga6c87f764b7e37b732701d12a5dd99b60" args="" -->
188 typedef detail::tmat4x2<br class="typebreak"/>
189 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga6c87f764b7e37b732701d12a5dd99b60">lowp_umat4x2</a></td></tr>
190 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf0ec78e818b558be26ab100630bb1a2f"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat4x3" ref="gaf0ec78e818b558be26ab100630bb1a2f" args="" -->
191 typedef detail::tmat4x3<br class="typebreak"/>
192 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaf0ec78e818b558be26ab100630bb1a2f">lowp_umat4x3</a></td></tr>
193 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8afd2898b4e81ddfcf4826a1f09261df"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat4x4" ref="ga8afd2898b4e81ddfcf4826a1f09261df" args="" -->
194 typedef detail::tmat4x4<br class="typebreak"/>
195 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga8afd2898b4e81ddfcf4826a1f09261df">lowp_umat4x4</a></td></tr>
196 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga143ecf702b39ac7730009796b5d61b48"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat2" ref="ga143ecf702b39ac7730009796b5d61b48" args="" -->
197 typedef detail::tmat2x2<br class="typebreak"/>
198 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga143ecf702b39ac7730009796b5d61b48">mediump_imat2</a></td></tr>
199 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga14f7ebf70ea05156698a0cb403dff827"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat2x2" ref="ga14f7ebf70ea05156698a0cb403dff827" args="" -->
200 typedef detail::tmat2x2<br class="typebreak"/>
201 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga14f7ebf70ea05156698a0cb403dff827">mediump_imat2x2</a></td></tr>
202 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga971f0d97d5aa82d96885b23132260bc5"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat2x3" ref="ga971f0d97d5aa82d96885b23132260bc5" args="" -->
203 typedef detail::tmat2x3<br class="typebreak"/>
204 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga971f0d97d5aa82d96885b23132260bc5">mediump_imat2x3</a></td></tr>
205 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa912743dd1649cdc2231ad08c7b3ad83"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat2x4" ref="gaa912743dd1649cdc2231ad08c7b3ad83" args="" -->
206 typedef detail::tmat2x4<br class="typebreak"/>
207 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaa912743dd1649cdc2231ad08c7b3ad83">mediump_imat2x4</a></td></tr>
208 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga88879288540afc046b8dcf9574f39599"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat3" ref="ga88879288540afc046b8dcf9574f39599" args="" -->
209 typedef detail::tmat3x3<br class="typebreak"/>
210 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga88879288540afc046b8dcf9574f39599">mediump_imat3</a></td></tr>
211 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga846e335231d6d156ce1dff7ee8d247c0"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat3x2" ref="ga846e335231d6d156ce1dff7ee8d247c0" args="" -->
212 typedef detail::tmat3x2<br class="typebreak"/>
213 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga846e335231d6d156ce1dff7ee8d247c0">mediump_imat3x2</a></td></tr>
214 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae49f27a71c9643dc6e852d29de1a7337"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat3x3" ref="gae49f27a71c9643dc6e852d29de1a7337" args="" -->
215 typedef detail::tmat3x3<br class="typebreak"/>
216 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gae49f27a71c9643dc6e852d29de1a7337">mediump_imat3x3</a></td></tr>
217 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5c32e78899b8ddc6d38a46a059dea62b"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat3x4" ref="ga5c32e78899b8ddc6d38a46a059dea62b" args="" -->
218 typedef detail::tmat3x4<br class="typebreak"/>
219 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga5c32e78899b8ddc6d38a46a059dea62b">mediump_imat3x4</a></td></tr>
220 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8f1cc05b68f13365c227d40cb52e6a6d"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat4" ref="ga8f1cc05b68f13365c227d40cb52e6a6d" args="" -->
221 typedef detail::tmat4x4<br class="typebreak"/>
222 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga8f1cc05b68f13365c227d40cb52e6a6d">mediump_imat4</a></td></tr>
223 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafa1f18250380f03bcdba92af051cf436"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat4x2" ref="gafa1f18250380f03bcdba92af051cf436" args="" -->
224 typedef detail::tmat4x2<br class="typebreak"/>
225 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gafa1f18250380f03bcdba92af051cf436">mediump_imat4x2</a></td></tr>
226 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6ce6435a08574b6d53933bce0fb99aa9"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat4x3" ref="ga6ce6435a08574b6d53933bce0fb99aa9" args="" -->
227 typedef detail::tmat4x3<br class="typebreak"/>
228 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga6ce6435a08574b6d53933bce0fb99aa9">mediump_imat4x3</a></td></tr>
229 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad548e325172bf111285d710e0aedada6"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat4x4" ref="gad548e325172bf111285d710e0aedada6" args="" -->
230 typedef detail::tmat4x4<br class="typebreak"/>
231 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gad548e325172bf111285d710e0aedada6">mediump_imat4x4</a></td></tr>
232 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga248ef3b18ce8e7974a1b04b9e10b0d70"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat2" ref="ga248ef3b18ce8e7974a1b04b9e10b0d70" args="" -->
233 typedef detail::tmat2x2<br class="typebreak"/>
234 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga248ef3b18ce8e7974a1b04b9e10b0d70">mediump_umat2</a></td></tr>
235 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4deef9aaf20528b594af15e0d8a8394a"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat2x2" ref="ga4deef9aaf20528b594af15e0d8a8394a" args="" -->
236 typedef detail::tmat2x2<br class="typebreak"/>
237 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga4deef9aaf20528b594af15e0d8a8394a">mediump_umat2x2</a></td></tr>
238 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga57dcd02ce5c008214d1ac033d62237f4"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat2x3" ref="ga57dcd02ce5c008214d1ac033d62237f4" args="" -->
239 typedef detail::tmat2x3<br class="typebreak"/>
240 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga57dcd02ce5c008214d1ac033d62237f4">mediump_umat2x3</a></td></tr>
241 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa0005c075583fa42425573df59ae47b7"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat2x4" ref="gaa0005c075583fa42425573df59ae47b7" args="" -->
242 typedef detail::tmat2x4<br class="typebreak"/>
243 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaa0005c075583fa42425573df59ae47b7">mediump_umat2x4</a></td></tr>
244 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa802202181dac79e9dcd7848af5b57df"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat3" ref="gaa802202181dac79e9dcd7848af5b57df" args="" -->
245 typedef detail::tmat3x3<br class="typebreak"/>
246 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaa802202181dac79e9dcd7848af5b57df">mediump_umat3</a></td></tr>
247 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac65dc743ab57f960c9f77eb817a2b375"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat3x2" ref="gac65dc743ab57f960c9f77eb817a2b375" args="" -->
248 typedef detail::tmat3x2<br class="typebreak"/>
249 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gac65dc743ab57f960c9f77eb817a2b375">mediump_umat3x2</a></td></tr>
250 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga69d2278480a495af358ba198cdd708d1"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat3x3" ref="ga69d2278480a495af358ba198cdd708d1" args="" -->
251 typedef detail::tmat3x3<br class="typebreak"/>
252 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga69d2278480a495af358ba198cdd708d1">mediump_umat3x3</a></td></tr>
253 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga65ed7a18729feae1ca61a8ab573fe5db"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat3x4" ref="ga65ed7a18729feae1ca61a8ab573fe5db" args="" -->
254 typedef detail::tmat3x4<br class="typebreak"/>
255 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga65ed7a18729feae1ca61a8ab573fe5db">mediump_umat3x4</a></td></tr>
256 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3981b8297512d35fe39413149e3f57ad"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat4" ref="ga3981b8297512d35fe39413149e3f57ad" args="" -->
257 typedef detail::tmat4x4<br class="typebreak"/>
258 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga3981b8297512d35fe39413149e3f57ad">mediump_umat4</a></td></tr>
259 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabab2363c9e7691ba23319174dd3b211e"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat4x2" ref="gabab2363c9e7691ba23319174dd3b211e" args="" -->
260 typedef detail::tmat4x2<br class="typebreak"/>
261 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gabab2363c9e7691ba23319174dd3b211e">mediump_umat4x2</a></td></tr>
262 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeb0dd2f67c17909a8747089bee0cf301"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat4x3" ref="gaeb0dd2f67c17909a8747089bee0cf301" args="" -->
263 typedef detail::tmat4x3<br class="typebreak"/>
264 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaeb0dd2f67c17909a8747089bee0cf301">mediump_umat4x3</a></td></tr>
265 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad8086f60b4190c4b567bded1d0fb4edb"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat4x4" ref="gad8086f60b4190c4b567bded1d0fb4edb" args="" -->
266 typedef detail::tmat4x4<br class="typebreak"/>
267 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gad8086f60b4190c4b567bded1d0fb4edb">mediump_umat4x4</a></td></tr>
268 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4cae85566f900debf930c41944b64691"></a><!-- doxytag: member="gtc_matrix_integer::umat2" ref="ga4cae85566f900debf930c41944b64691" args="" -->
269 typedef mediump_umat2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga4cae85566f900debf930c41944b64691">umat2</a></td></tr>
270 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabf8acdd33ce8951051edbca5200898aa"></a><!-- doxytag: member="gtc_matrix_integer::umat2x2" ref="gabf8acdd33ce8951051edbca5200898aa" args="" -->
271 typedef mediump_umat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a></td></tr>
272 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1870da7578d5022b973a83155d386ab3"></a><!-- doxytag: member="gtc_matrix_integer::umat2x3" ref="ga1870da7578d5022b973a83155d386ab3" args="" -->
273 typedef mediump_umat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a></td></tr>
274 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga57936a3998e992370e59a223e0ee4fd4"></a><!-- doxytag: member="gtc_matrix_integer::umat2x4" ref="ga57936a3998e992370e59a223e0ee4fd4" args="" -->
275 typedef mediump_umat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a></td></tr>
276 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5085e3ff02abbac5e537eb7b89ab63b6"></a><!-- doxytag: member="gtc_matrix_integer::umat3" ref="ga5085e3ff02abbac5e537eb7b89ab63b6" args="" -->
277 typedef mediump_umat3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a></td></tr>
278 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9cd7fa637a4a6788337f45231fad9e1a"></a><!-- doxytag: member="gtc_matrix_integer::umat3x2" ref="ga9cd7fa637a4a6788337f45231fad9e1a" args="" -->
279 typedef mediump_umat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a></td></tr>
280 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1f2cfcf3357db0cdf31fcb15e3c6bafb"></a><!-- doxytag: member="gtc_matrix_integer::umat3x3" ref="ga1f2cfcf3357db0cdf31fcb15e3c6bafb" args="" -->
281 typedef mediump_umat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a></td></tr>
282 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae7c78ff3fc4309605ab0fa186c8d48ba"></a><!-- doxytag: member="gtc_matrix_integer::umat3x4" ref="gae7c78ff3fc4309605ab0fa186c8d48ba" args="" -->
283 typedef mediump_umat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a></td></tr>
284 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38bc7bb6494e344185df596deeb4544c"></a><!-- doxytag: member="gtc_matrix_integer::umat4" ref="ga38bc7bb6494e344185df596deeb4544c" args="" -->
285 typedef mediump_umat4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a></td></tr>
286 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga70fa2d05896aa83cbc8c07672a429b53"></a><!-- doxytag: member="gtc_matrix_integer::umat4x2" ref="ga70fa2d05896aa83cbc8c07672a429b53" args="" -->
287 typedef mediump_umat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a></td></tr>
288 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga87581417945411f75cb31dd6ca1dba98"></a><!-- doxytag: member="gtc_matrix_integer::umat4x3" ref="ga87581417945411f75cb31dd6ca1dba98" args="" -->
289 typedef mediump_umat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a></td></tr>
290 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf72e6d399c42985db6872c50f53d7eb8"></a><!-- doxytag: member="gtc_matrix_integer::umat4x4" ref="gaf72e6d399c42985db6872c50f53d7eb8" args="" -->
291 typedef mediump_umat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a></td></tr>
48292 </table>
49293 <hr/><a name="_details"></a><h2>Detailed Description</h2>
50 <p>Defines functions to access rows or columns of a matrix easily. &lt;<a class="el" href="a00071_source.html">glm/gtc/matrix_access.hpp</a>&gt; need to be included to use these functionalities. </p>
51 <hr/><h2>Function Documentation</h2>
52 <a class="anchor" id="ga0e92f78abad525682684b0c262bbffe4"></a><!-- doxytag: member="glm::gtc::matrix_access::column" ref="ga0e92f78abad525682684b0c262bbffe4" args="(genType const &amp;m, int index)" -->
53 <div class="memitem">
54 <div class="memproto">
55 <table class="memname">
56 <tr>
57 <td class="memname">genType::col_type glm::gtc::matrix_access::column </td>
58 <td>(</td>
59 <td class="paramtype">genType const &amp;&#160;</td>
60 <td class="paramname"><em>m</em>, </td>
61 </tr>
62 <tr>
63 <td class="paramkey"></td>
64 <td></td>
65 <td class="paramtype">int&#160;</td>
66 <td class="paramname"><em>index</em>&#160;</td>
67 </tr>
68 <tr>
69 <td></td>
70 <td>)</td>
71 <td></td><td></td>
72 </tr>
73 </table>
74 </div>
75 <div class="memdoc">
76
77 <p>Get a specific column of a matrix. </p>
78 <p>From GLM_GTC_matrix_access extension. </p>
79
80 </div>
81 </div>
82 <a class="anchor" id="ga30e1966ba22897cd09f156690c8f94a1"></a><!-- doxytag: member="glm::gtc::matrix_access::column" ref="ga30e1966ba22897cd09f156690c8f94a1" args="(genType const &amp;m, int index, typename genType::col_type const &amp;x)" -->
83 <div class="memitem">
84 <div class="memproto">
85 <table class="memname">
86 <tr>
87 <td class="memname">genType glm::gtc::matrix_access::column </td>
88 <td>(</td>
89 <td class="paramtype">genType const &amp;&#160;</td>
90 <td class="paramname"><em>m</em>, </td>
91 </tr>
92 <tr>
93 <td class="paramkey"></td>
94 <td></td>
95 <td class="paramtype">int&#160;</td>
96 <td class="paramname"><em>index</em>, </td>
97 </tr>
98 <tr>
99 <td class="paramkey"></td>
100 <td></td>
101 <td class="paramtype">typename genType::col_type const &amp;&#160;</td>
102 <td class="paramname"><em>x</em>&#160;</td>
103 </tr>
104 <tr>
105 <td></td>
106 <td>)</td>
107 <td></td><td></td>
108 </tr>
109 </table>
110 </div>
111 <div class="memdoc">
112
113 <p>Set a specific column to a matrix. </p>
114 <p>From GLM_GTC_matrix_access extension. </p>
115
116 </div>
117 </div>
118 <a class="anchor" id="ga35d133d689062739c8dad60b7e399bbe"></a><!-- doxytag: member="glm::gtc::matrix_access::row" ref="ga35d133d689062739c8dad60b7e399bbe" args="(genType const &amp;m, int index)" -->
119 <div class="memitem">
120 <div class="memproto">
121 <table class="memname">
122 <tr>
123 <td class="memname">genType::row_type glm::gtc::matrix_access::row </td>
124 <td>(</td>
125 <td class="paramtype">genType const &amp;&#160;</td>
126 <td class="paramname"><em>m</em>, </td>
127 </tr>
128 <tr>
129 <td class="paramkey"></td>
130 <td></td>
131 <td class="paramtype">int&#160;</td>
132 <td class="paramname"><em>index</em>&#160;</td>
133 </tr>
134 <tr>
135 <td></td>
136 <td>)</td>
137 <td></td><td></td>
138 </tr>
139 </table>
140 </div>
141 <div class="memdoc">
142
143 <p>Get a specific row of a matrix. </p>
144 <p>From GLM_GTC_matrix_access extension. </p>
145
146 </div>
147 </div>
148 <a class="anchor" id="gab6684183e0e91181c960ce21efe1ce67"></a><!-- doxytag: member="glm::gtc::matrix_access::row" ref="gab6684183e0e91181c960ce21efe1ce67" args="(genType const &amp;m, int index, typename genType::row_type const &amp;x)" -->
149 <div class="memitem">
150 <div class="memproto">
151 <table class="memname">
152 <tr>
153 <td class="memname">genType glm::gtc::matrix_access::row </td>
154 <td>(</td>
155 <td class="paramtype">genType const &amp;&#160;</td>
156 <td class="paramname"><em>m</em>, </td>
157 </tr>
158 <tr>
159 <td class="paramkey"></td>
160 <td></td>
161 <td class="paramtype">int&#160;</td>
162 <td class="paramname"><em>index</em>, </td>
163 </tr>
164 <tr>
165 <td class="paramkey"></td>
166 <td></td>
167 <td class="paramtype">typename genType::row_type const &amp;&#160;</td>
168 <td class="paramname"><em>x</em>&#160;</td>
169 </tr>
170 <tr>
171 <td></td>
172 <td>)</td>
173 <td></td><td></td>
174 </tr>
175 </table>
176 </div>
177 <div class="memdoc">
178
179 <p>Set a specific row to a matrix. </p>
180 <p>From GLM_GTC_matrix_access extension. </p>
181
182 </div>
183 </div>
294 <p>Defines a number of matrices with integer types. &lt;<a class="el" href="a00073_source.html">glm/gtc/matrix_integer.hpp</a>&gt; need to be included to use these functionalities. </p>
184295 </div>
185296 <hr class="footer"/><address class="footer"><small>Generated by&#160;
186297 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTC_matrix_integer: Integer matrix types.</title>
4 <title>GLM_GTC_matrix_inverse: Additional matrix inverse function</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#typedef-members">Typedefs</a> </div>
32 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTC_matrix_integer: Integer matrix types.</h1> </div>
35 <div class="ingroups"><a class="el" href="a00239.html">GTC Extensions (Stable)</a></div></div>
34 <h1>GLM_GTC_matrix_inverse: Additional matrix inverse function</h1> </div>
35 <div class="ingroups"><a class="el" href="a00238.html">GTC Extensions (Stable)</a></div></div>
3636 <div class="contents">
3737 <table class="memberdecls">
38 <tr><td colspan="2"><h2><a name="typedef-members"></a>
39 Typedefs</h2></td></tr>
40 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga16e9ac01daa94cd41baca57b1720c4d2"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat2" ref="ga16e9ac01daa94cd41baca57b1720c4d2" args="" -->
41 typedef detail::tmat2x2<br class="typebreak"/>
42 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga16e9ac01daa94cd41baca57b1720c4d2">highp_imat2</a></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga503734c9f848968b3ede74017d3927e0"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat2x2" ref="ga503734c9f848968b3ede74017d3927e0" args="" -->
44 typedef detail::tmat2x2<br class="typebreak"/>
45 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga503734c9f848968b3ede74017d3927e0">highp_imat2x2</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae4ac618eb06b7288e4a14633971320ed"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat2x3" ref="gae4ac618eb06b7288e4a14633971320ed" args="" -->
47 typedef detail::tmat2x3<br class="typebreak"/>
48 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gae4ac618eb06b7288e4a14633971320ed">highp_imat2x3</a></td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73ca75871a9a43972be9bb4b295b1e3f"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat2x4" ref="ga73ca75871a9a43972be9bb4b295b1e3f" args="" -->
50 typedef detail::tmat2x4<br class="typebreak"/>
51 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga73ca75871a9a43972be9bb4b295b1e3f">highp_imat2x4</a></td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1aab5488573c134db709107b0aa45060"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat3" ref="ga1aab5488573c134db709107b0aa45060" args="" -->
53 typedef detail::tmat3x3<br class="typebreak"/>
54 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga1aab5488573c134db709107b0aa45060">highp_imat3</a></td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8e2e34fc5f030a888cff9b9fdf169c01"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat3x2" ref="ga8e2e34fc5f030a888cff9b9fdf169c01" args="" -->
56 typedef detail::tmat3x2<br class="typebreak"/>
57 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga8e2e34fc5f030a888cff9b9fdf169c01">highp_imat3x2</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20a5eb2dc99580c5eee0d1287a81dc71"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat3x3" ref="ga20a5eb2dc99580c5eee0d1287a81dc71" args="" -->
59 typedef detail::tmat3x3<br class="typebreak"/>
60 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga20a5eb2dc99580c5eee0d1287a81dc71">highp_imat3x3</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52c1fd71b37cd7534b3ba05cfddf5641"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat3x4" ref="ga52c1fd71b37cd7534b3ba05cfddf5641" args="" -->
62 typedef detail::tmat3x4<br class="typebreak"/>
63 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga52c1fd71b37cd7534b3ba05cfddf5641">highp_imat3x4</a></td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga001cb3722aece6e478d1c013cd561248"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat4" ref="ga001cb3722aece6e478d1c013cd561248" args="" -->
65 typedef detail::tmat4x4<br class="typebreak"/>
66 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga001cb3722aece6e478d1c013cd561248">highp_imat4</a></td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8d5483e43eaf948445dad0316adfd065"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat4x2" ref="ga8d5483e43eaf948445dad0316adfd065" args="" -->
68 typedef detail::tmat4x2<br class="typebreak"/>
69 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga8d5483e43eaf948445dad0316adfd065">highp_imat4x2</a></td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga39096445d642ca381cec94a9dcefa49e"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat4x3" ref="ga39096445d642ca381cec94a9dcefa49e" args="" -->
71 typedef detail::tmat4x3<br class="typebreak"/>
72 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga39096445d642ca381cec94a9dcefa49e">highp_imat4x3</a></td></tr>
73 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1956c46bca65b5b00c01250e0d5f1de6"></a><!-- doxytag: member="gtc_matrix_integer::highp_imat4x4" ref="ga1956c46bca65b5b00c01250e0d5f1de6" args="" -->
74 typedef detail::tmat4x4<br class="typebreak"/>
75 &lt; highp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga1956c46bca65b5b00c01250e0d5f1de6">highp_imat4x4</a></td></tr>
76 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9917f09e4bbb414e5b10f5e00c7de70d"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat2" ref="ga9917f09e4bbb414e5b10f5e00c7de70d" args="" -->
77 typedef detail::tmat2x2<br class="typebreak"/>
78 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga9917f09e4bbb414e5b10f5e00c7de70d">highp_umat2</a></td></tr>
79 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac46ccd4fa290488681c4574e5e562d55"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat2x2" ref="gac46ccd4fa290488681c4574e5e562d55" args="" -->
80 typedef detail::tmat2x2<br class="typebreak"/>
81 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gac46ccd4fa290488681c4574e5e562d55">highp_umat2x2</a></td></tr>
82 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga81a27f521f29ff4ace4d1e4cde1de2a5"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat2x3" ref="ga81a27f521f29ff4ace4d1e4cde1de2a5" args="" -->
83 typedef detail::tmat2x3<br class="typebreak"/>
84 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga81a27f521f29ff4ace4d1e4cde1de2a5">highp_umat2x3</a></td></tr>
85 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab6c2023040df42564c16a2b464adba9b"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat2x4" ref="gab6c2023040df42564c16a2b464adba9b" args="" -->
86 typedef detail::tmat2x4<br class="typebreak"/>
87 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gab6c2023040df42564c16a2b464adba9b">highp_umat2x4</a></td></tr>
88 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac7928fd1dbf3decc2463e0044d10ba14"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat3" ref="gac7928fd1dbf3decc2463e0044d10ba14" args="" -->
89 typedef detail::tmat3x3<br class="typebreak"/>
90 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gac7928fd1dbf3decc2463e0044d10ba14">highp_umat3</a></td></tr>
91 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab9cdf3c2c04d7346cc45b212a904f02d"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat3x2" ref="gab9cdf3c2c04d7346cc45b212a904f02d" args="" -->
92 typedef detail::tmat3x2<br class="typebreak"/>
93 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gab9cdf3c2c04d7346cc45b212a904f02d">highp_umat3x2</a></td></tr>
94 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabb4b97694034f2d650dca359db023eaa"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat3x3" ref="gabb4b97694034f2d650dca359db023eaa" args="" -->
95 typedef detail::tmat3x3<br class="typebreak"/>
96 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gabb4b97694034f2d650dca359db023eaa">highp_umat3x3</a></td></tr>
97 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8c7be88fb8d49dd55eb6892da1bf1966"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat3x4" ref="ga8c7be88fb8d49dd55eb6892da1bf1966" args="" -->
98 typedef detail::tmat3x4<br class="typebreak"/>
99 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga8c7be88fb8d49dd55eb6892da1bf1966">highp_umat3x4</a></td></tr>
100 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2f29d9ef4636752de31b92a56b44bd8a"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat4" ref="ga2f29d9ef4636752de31b92a56b44bd8a" args="" -->
101 typedef detail::tmat4x4<br class="typebreak"/>
102 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga2f29d9ef4636752de31b92a56b44bd8a">highp_umat4</a></td></tr>
103 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga84ddf69a6f1912a196c505c4a8fe817b"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat4x2" ref="ga84ddf69a6f1912a196c505c4a8fe817b" args="" -->
104 typedef detail::tmat4x2<br class="typebreak"/>
105 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga84ddf69a6f1912a196c505c4a8fe817b">highp_umat4x2</a></td></tr>
106 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaba6def08906f182866bd945babf9a5f7"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat4x3" ref="gaba6def08906f182866bd945babf9a5f7" args="" -->
107 typedef detail::tmat4x3<br class="typebreak"/>
108 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaba6def08906f182866bd945babf9a5f7">highp_umat4x3</a></td></tr>
109 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaff8f7574251ea10466c0f31ca1e83f6d"></a><!-- doxytag: member="gtc_matrix_integer::highp_umat4x4" ref="gaff8f7574251ea10466c0f31ca1e83f6d" args="" -->
110 typedef detail::tmat4x4<br class="typebreak"/>
111 &lt; highp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaff8f7574251ea10466c0f31ca1e83f6d">highp_umat4x4</a></td></tr>
112 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaabe04f9948d4a213bb1c20137de03e01"></a><!-- doxytag: member="gtc_matrix_integer::imat2" ref="gaabe04f9948d4a213bb1c20137de03e01" args="" -->
113 typedef mediump_imat2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a></td></tr>
114 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa4732a240522ad9bc28144fda2fc14ec"></a><!-- doxytag: member="gtc_matrix_integer::imat2x2" ref="gaa4732a240522ad9bc28144fda2fc14ec" args="" -->
115 typedef mediump_imat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a></td></tr>
116 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3f42dd3d5d94a0fd5706f7ec8dd0c605"></a><!-- doxytag: member="gtc_matrix_integer::imat2x3" ref="ga3f42dd3d5d94a0fd5706f7ec8dd0c605" args="" -->
117 typedef mediump_imat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a></td></tr>
118 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9d8faafdca42583d67e792dd038fc668"></a><!-- doxytag: member="gtc_matrix_integer::imat2x4" ref="ga9d8faafdca42583d67e792dd038fc668" args="" -->
119 typedef mediump_imat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a></td></tr>
120 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga038f68437155ffa3c2583a15264a8195"></a><!-- doxytag: member="gtc_matrix_integer::imat3" ref="ga038f68437155ffa3c2583a15264a8195" args="" -->
121 typedef mediump_imat3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga038f68437155ffa3c2583a15264a8195">imat3</a></td></tr>
122 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7b33bbe4f12c060892bd3cc8d4cd737f"></a><!-- doxytag: member="gtc_matrix_integer::imat3x2" ref="ga7b33bbe4f12c060892bd3cc8d4cd737f" args="" -->
123 typedef mediump_imat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a></td></tr>
124 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6aacc960f62e8f7d2fe9d32d5050e7a4"></a><!-- doxytag: member="gtc_matrix_integer::imat3x3" ref="ga6aacc960f62e8f7d2fe9d32d5050e7a4" args="" -->
125 typedef mediump_imat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a></td></tr>
126 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e9ce23496d8b08dfc302d4039694b58"></a><!-- doxytag: member="gtc_matrix_integer::imat3x4" ref="ga6e9ce23496d8b08dfc302d4039694b58" args="" -->
127 typedef mediump_imat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a></td></tr>
128 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga96b0d26a33b81bb6a60ca0f39682f7eb"></a><!-- doxytag: member="gtc_matrix_integer::imat4" ref="ga96b0d26a33b81bb6a60ca0f39682f7eb" args="" -->
129 typedef mediump_imat4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a></td></tr>
130 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8ce7ef51d8b2c1901fa5414deccbc3fa"></a><!-- doxytag: member="gtc_matrix_integer::imat4x2" ref="ga8ce7ef51d8b2c1901fa5414deccbc3fa" args="" -->
131 typedef mediump_imat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a></td></tr>
132 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga705ee0bf49d6c3de4404ce2481bf0df5"></a><!-- doxytag: member="gtc_matrix_integer::imat4x3" ref="ga705ee0bf49d6c3de4404ce2481bf0df5" args="" -->
133 typedef mediump_imat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a></td></tr>
134 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga43ed5e4f475b6f4cad7cba78f29c405b"></a><!-- doxytag: member="gtc_matrix_integer::imat4x4" ref="ga43ed5e4f475b6f4cad7cba78f29c405b" args="" -->
135 typedef mediump_imat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a></td></tr>
136 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga53ba084d560fbe0a32409b7ad29a405f"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat2" ref="ga53ba084d560fbe0a32409b7ad29a405f" args="" -->
137 typedef detail::tmat2x2&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga53ba084d560fbe0a32409b7ad29a405f">lowp_imat2</a></td></tr>
138 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4cb2449be4c36270d0f6c2849f72037c"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat2x2" ref="ga4cb2449be4c36270d0f6c2849f72037c" args="" -->
139 typedef detail::tmat2x2&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga4cb2449be4c36270d0f6c2849f72037c">lowp_imat2x2</a></td></tr>
140 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad9cf0368a1cd253d87307c9784ea4c56"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat2x3" ref="gad9cf0368a1cd253d87307c9784ea4c56" args="" -->
141 typedef detail::tmat2x3&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gad9cf0368a1cd253d87307c9784ea4c56">lowp_imat2x3</a></td></tr>
142 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab065fa79d6c42b6df2e261c76b359524"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat2x4" ref="gab065fa79d6c42b6df2e261c76b359524" args="" -->
143 typedef detail::tmat2x4&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gab065fa79d6c42b6df2e261c76b359524">lowp_imat2x4</a></td></tr>
144 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga602bbe8185b35c8e02038924c95c526c"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat3" ref="ga602bbe8185b35c8e02038924c95c526c" args="" -->
145 typedef detail::tmat3x3&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga602bbe8185b35c8e02038924c95c526c">lowp_imat3</a></td></tr>
146 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf96385c22d0e6876b8b5c3dcc2e1d91a"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat3x2" ref="gaf96385c22d0e6876b8b5c3dcc2e1d91a" args="" -->
147 typedef detail::tmat3x2&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaf96385c22d0e6876b8b5c3dcc2e1d91a">lowp_imat3x2</a></td></tr>
148 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4da80362c97eb9abb48cedc5a444daf6"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat3x3" ref="ga4da80362c97eb9abb48cedc5a444daf6" args="" -->
149 typedef detail::tmat3x3&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga4da80362c97eb9abb48cedc5a444daf6">lowp_imat3x3</a></td></tr>
150 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7114fd267da92d44c98a440704e0be79"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat3x4" ref="ga7114fd267da92d44c98a440704e0be79" args="" -->
151 typedef detail::tmat3x4&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga7114fd267da92d44c98a440704e0be79">lowp_imat3x4</a></td></tr>
152 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e0f075c487aee31df91d9dbd71db88d"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat4" ref="ga6e0f075c487aee31df91d9dbd71db88d" args="" -->
153 typedef detail::tmat4x4&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga6e0f075c487aee31df91d9dbd71db88d">lowp_imat4</a></td></tr>
154 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab9357fc7eb98b919fba7f1656fd548a8"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat4x2" ref="gab9357fc7eb98b919fba7f1656fd548a8" args="" -->
155 typedef detail::tmat4x2&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gab9357fc7eb98b919fba7f1656fd548a8">lowp_imat4x2</a></td></tr>
156 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac21d66a9936eb54d12b8e57b08e589bc"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat4x3" ref="gac21d66a9936eb54d12b8e57b08e589bc" args="" -->
157 typedef detail::tmat4x3&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gac21d66a9936eb54d12b8e57b08e589bc">lowp_imat4x3</a></td></tr>
158 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad30fba4d4c94eda205b3f768274f0893"></a><!-- doxytag: member="gtc_matrix_integer::lowp_imat4x4" ref="gad30fba4d4c94eda205b3f768274f0893" args="" -->
159 typedef detail::tmat4x4&lt; lowp_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gad30fba4d4c94eda205b3f768274f0893">lowp_imat4x4</a></td></tr>
160 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf5fd055eb478c690723f3db742fed7ee"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat2" ref="gaf5fd055eb478c690723f3db742fed7ee" args="" -->
161 typedef detail::tmat2x2<br class="typebreak"/>
162 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaf5fd055eb478c690723f3db742fed7ee">lowp_umat2</a></td></tr>
163 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2041f6554b1e8ed2a6b74cffa2b8d917"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat2x2" ref="ga2041f6554b1e8ed2a6b74cffa2b8d917" args="" -->
164 typedef detail::tmat2x2<br class="typebreak"/>
165 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga2041f6554b1e8ed2a6b74cffa2b8d917">lowp_umat2x2</a></td></tr>
166 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2831bb6c3ed95cfefc2fffd315d31904"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat2x3" ref="ga2831bb6c3ed95cfefc2fffd315d31904" args="" -->
167 typedef detail::tmat2x3<br class="typebreak"/>
168 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga2831bb6c3ed95cfefc2fffd315d31904">lowp_umat2x3</a></td></tr>
169 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7e15349e63fbb93ce8ab047a02f0fe73"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat2x4" ref="ga7e15349e63fbb93ce8ab047a02f0fe73" args="" -->
170 typedef detail::tmat2x4<br class="typebreak"/>
171 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga7e15349e63fbb93ce8ab047a02f0fe73">lowp_umat2x4</a></td></tr>
172 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9b9e4dbbb43103f29e432c611ba2a8e9"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat3" ref="ga9b9e4dbbb43103f29e432c611ba2a8e9" args="" -->
173 typedef detail::tmat3x3<br class="typebreak"/>
174 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga9b9e4dbbb43103f29e432c611ba2a8e9">lowp_umat3</a></td></tr>
175 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9bb2ec92ae5a588cc2f2487a2b39091a"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat3x2" ref="ga9bb2ec92ae5a588cc2f2487a2b39091a" args="" -->
176 typedef detail::tmat3x2<br class="typebreak"/>
177 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga9bb2ec92ae5a588cc2f2487a2b39091a">lowp_umat3x2</a></td></tr>
178 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0cd96f6db0335fec76d521c04e55aa72"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat3x3" ref="ga0cd96f6db0335fec76d521c04e55aa72" args="" -->
179 typedef detail::tmat3x3<br class="typebreak"/>
180 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga0cd96f6db0335fec76d521c04e55aa72">lowp_umat3x3</a></td></tr>
181 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga74afefa6d98ed4013b0b8973aedaa3c3"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat3x4" ref="ga74afefa6d98ed4013b0b8973aedaa3c3" args="" -->
182 typedef detail::tmat3x4<br class="typebreak"/>
183 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga74afefa6d98ed4013b0b8973aedaa3c3">lowp_umat3x4</a></td></tr>
184 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabe8174acf8b97bba515e77b050dee149"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat4" ref="gabe8174acf8b97bba515e77b050dee149" args="" -->
185 typedef detail::tmat4x4<br class="typebreak"/>
186 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gabe8174acf8b97bba515e77b050dee149">lowp_umat4</a></td></tr>
187 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6c87f764b7e37b732701d12a5dd99b60"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat4x2" ref="ga6c87f764b7e37b732701d12a5dd99b60" args="" -->
188 typedef detail::tmat4x2<br class="typebreak"/>
189 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga6c87f764b7e37b732701d12a5dd99b60">lowp_umat4x2</a></td></tr>
190 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf0ec78e818b558be26ab100630bb1a2f"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat4x3" ref="gaf0ec78e818b558be26ab100630bb1a2f" args="" -->
191 typedef detail::tmat4x3<br class="typebreak"/>
192 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaf0ec78e818b558be26ab100630bb1a2f">lowp_umat4x3</a></td></tr>
193 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8afd2898b4e81ddfcf4826a1f09261df"></a><!-- doxytag: member="gtc_matrix_integer::lowp_umat4x4" ref="ga8afd2898b4e81ddfcf4826a1f09261df" args="" -->
194 typedef detail::tmat4x4<br class="typebreak"/>
195 &lt; lowp_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga8afd2898b4e81ddfcf4826a1f09261df">lowp_umat4x4</a></td></tr>
196 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga143ecf702b39ac7730009796b5d61b48"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat2" ref="ga143ecf702b39ac7730009796b5d61b48" args="" -->
197 typedef detail::tmat2x2<br class="typebreak"/>
198 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga143ecf702b39ac7730009796b5d61b48">mediump_imat2</a></td></tr>
199 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga14f7ebf70ea05156698a0cb403dff827"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat2x2" ref="ga14f7ebf70ea05156698a0cb403dff827" args="" -->
200 typedef detail::tmat2x2<br class="typebreak"/>
201 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga14f7ebf70ea05156698a0cb403dff827">mediump_imat2x2</a></td></tr>
202 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga971f0d97d5aa82d96885b23132260bc5"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat2x3" ref="ga971f0d97d5aa82d96885b23132260bc5" args="" -->
203 typedef detail::tmat2x3<br class="typebreak"/>
204 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga971f0d97d5aa82d96885b23132260bc5">mediump_imat2x3</a></td></tr>
205 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa912743dd1649cdc2231ad08c7b3ad83"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat2x4" ref="gaa912743dd1649cdc2231ad08c7b3ad83" args="" -->
206 typedef detail::tmat2x4<br class="typebreak"/>
207 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaa912743dd1649cdc2231ad08c7b3ad83">mediump_imat2x4</a></td></tr>
208 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga88879288540afc046b8dcf9574f39599"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat3" ref="ga88879288540afc046b8dcf9574f39599" args="" -->
209 typedef detail::tmat3x3<br class="typebreak"/>
210 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga88879288540afc046b8dcf9574f39599">mediump_imat3</a></td></tr>
211 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga846e335231d6d156ce1dff7ee8d247c0"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat3x2" ref="ga846e335231d6d156ce1dff7ee8d247c0" args="" -->
212 typedef detail::tmat3x2<br class="typebreak"/>
213 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga846e335231d6d156ce1dff7ee8d247c0">mediump_imat3x2</a></td></tr>
214 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae49f27a71c9643dc6e852d29de1a7337"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat3x3" ref="gae49f27a71c9643dc6e852d29de1a7337" args="" -->
215 typedef detail::tmat3x3<br class="typebreak"/>
216 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gae49f27a71c9643dc6e852d29de1a7337">mediump_imat3x3</a></td></tr>
217 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5c32e78899b8ddc6d38a46a059dea62b"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat3x4" ref="ga5c32e78899b8ddc6d38a46a059dea62b" args="" -->
218 typedef detail::tmat3x4<br class="typebreak"/>
219 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga5c32e78899b8ddc6d38a46a059dea62b">mediump_imat3x4</a></td></tr>
220 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8f1cc05b68f13365c227d40cb52e6a6d"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat4" ref="ga8f1cc05b68f13365c227d40cb52e6a6d" args="" -->
221 typedef detail::tmat4x4<br class="typebreak"/>
222 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga8f1cc05b68f13365c227d40cb52e6a6d">mediump_imat4</a></td></tr>
223 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafa1f18250380f03bcdba92af051cf436"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat4x2" ref="gafa1f18250380f03bcdba92af051cf436" args="" -->
224 typedef detail::tmat4x2<br class="typebreak"/>
225 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gafa1f18250380f03bcdba92af051cf436">mediump_imat4x2</a></td></tr>
226 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6ce6435a08574b6d53933bce0fb99aa9"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat4x3" ref="ga6ce6435a08574b6d53933bce0fb99aa9" args="" -->
227 typedef detail::tmat4x3<br class="typebreak"/>
228 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga6ce6435a08574b6d53933bce0fb99aa9">mediump_imat4x3</a></td></tr>
229 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad548e325172bf111285d710e0aedada6"></a><!-- doxytag: member="gtc_matrix_integer::mediump_imat4x4" ref="gad548e325172bf111285d710e0aedada6" args="" -->
230 typedef detail::tmat4x4<br class="typebreak"/>
231 &lt; mediump_int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gad548e325172bf111285d710e0aedada6">mediump_imat4x4</a></td></tr>
232 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga248ef3b18ce8e7974a1b04b9e10b0d70"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat2" ref="ga248ef3b18ce8e7974a1b04b9e10b0d70" args="" -->
233 typedef detail::tmat2x2<br class="typebreak"/>
234 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga248ef3b18ce8e7974a1b04b9e10b0d70">mediump_umat2</a></td></tr>
235 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4deef9aaf20528b594af15e0d8a8394a"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat2x2" ref="ga4deef9aaf20528b594af15e0d8a8394a" args="" -->
236 typedef detail::tmat2x2<br class="typebreak"/>
237 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga4deef9aaf20528b594af15e0d8a8394a">mediump_umat2x2</a></td></tr>
238 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga57dcd02ce5c008214d1ac033d62237f4"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat2x3" ref="ga57dcd02ce5c008214d1ac033d62237f4" args="" -->
239 typedef detail::tmat2x3<br class="typebreak"/>
240 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga57dcd02ce5c008214d1ac033d62237f4">mediump_umat2x3</a></td></tr>
241 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa0005c075583fa42425573df59ae47b7"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat2x4" ref="gaa0005c075583fa42425573df59ae47b7" args="" -->
242 typedef detail::tmat2x4<br class="typebreak"/>
243 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaa0005c075583fa42425573df59ae47b7">mediump_umat2x4</a></td></tr>
244 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa802202181dac79e9dcd7848af5b57df"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat3" ref="gaa802202181dac79e9dcd7848af5b57df" args="" -->
245 typedef detail::tmat3x3<br class="typebreak"/>
246 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaa802202181dac79e9dcd7848af5b57df">mediump_umat3</a></td></tr>
247 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac65dc743ab57f960c9f77eb817a2b375"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat3x2" ref="gac65dc743ab57f960c9f77eb817a2b375" args="" -->
248 typedef detail::tmat3x2<br class="typebreak"/>
249 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gac65dc743ab57f960c9f77eb817a2b375">mediump_umat3x2</a></td></tr>
250 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga69d2278480a495af358ba198cdd708d1"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat3x3" ref="ga69d2278480a495af358ba198cdd708d1" args="" -->
251 typedef detail::tmat3x3<br class="typebreak"/>
252 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga69d2278480a495af358ba198cdd708d1">mediump_umat3x3</a></td></tr>
253 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga65ed7a18729feae1ca61a8ab573fe5db"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat3x4" ref="ga65ed7a18729feae1ca61a8ab573fe5db" args="" -->
254 typedef detail::tmat3x4<br class="typebreak"/>
255 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga65ed7a18729feae1ca61a8ab573fe5db">mediump_umat3x4</a></td></tr>
256 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3981b8297512d35fe39413149e3f57ad"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat4" ref="ga3981b8297512d35fe39413149e3f57ad" args="" -->
257 typedef detail::tmat4x4<br class="typebreak"/>
258 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga3981b8297512d35fe39413149e3f57ad">mediump_umat4</a></td></tr>
259 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabab2363c9e7691ba23319174dd3b211e"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat4x2" ref="gabab2363c9e7691ba23319174dd3b211e" args="" -->
260 typedef detail::tmat4x2<br class="typebreak"/>
261 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gabab2363c9e7691ba23319174dd3b211e">mediump_umat4x2</a></td></tr>
262 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeb0dd2f67c17909a8747089bee0cf301"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat4x3" ref="gaeb0dd2f67c17909a8747089bee0cf301" args="" -->
263 typedef detail::tmat4x3<br class="typebreak"/>
264 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaeb0dd2f67c17909a8747089bee0cf301">mediump_umat4x3</a></td></tr>
265 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad8086f60b4190c4b567bded1d0fb4edb"></a><!-- doxytag: member="gtc_matrix_integer::mediump_umat4x4" ref="gad8086f60b4190c4b567bded1d0fb4edb" args="" -->
266 typedef detail::tmat4x4<br class="typebreak"/>
267 &lt; mediump_uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gad8086f60b4190c4b567bded1d0fb4edb">mediump_umat4x4</a></td></tr>
268 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4cae85566f900debf930c41944b64691"></a><!-- doxytag: member="gtc_matrix_integer::umat2" ref="ga4cae85566f900debf930c41944b64691" args="" -->
269 typedef mediump_umat2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga4cae85566f900debf930c41944b64691">umat2</a></td></tr>
270 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabf8acdd33ce8951051edbca5200898aa"></a><!-- doxytag: member="gtc_matrix_integer::umat2x2" ref="gabf8acdd33ce8951051edbca5200898aa" args="" -->
271 typedef mediump_umat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a></td></tr>
272 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1870da7578d5022b973a83155d386ab3"></a><!-- doxytag: member="gtc_matrix_integer::umat2x3" ref="ga1870da7578d5022b973a83155d386ab3" args="" -->
273 typedef mediump_umat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a></td></tr>
274 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga57936a3998e992370e59a223e0ee4fd4"></a><!-- doxytag: member="gtc_matrix_integer::umat2x4" ref="ga57936a3998e992370e59a223e0ee4fd4" args="" -->
275 typedef mediump_umat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a></td></tr>
276 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5085e3ff02abbac5e537eb7b89ab63b6"></a><!-- doxytag: member="gtc_matrix_integer::umat3" ref="ga5085e3ff02abbac5e537eb7b89ab63b6" args="" -->
277 typedef mediump_umat3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a></td></tr>
278 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9cd7fa637a4a6788337f45231fad9e1a"></a><!-- doxytag: member="gtc_matrix_integer::umat3x2" ref="ga9cd7fa637a4a6788337f45231fad9e1a" args="" -->
279 typedef mediump_umat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a></td></tr>
280 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1f2cfcf3357db0cdf31fcb15e3c6bafb"></a><!-- doxytag: member="gtc_matrix_integer::umat3x3" ref="ga1f2cfcf3357db0cdf31fcb15e3c6bafb" args="" -->
281 typedef mediump_umat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a></td></tr>
282 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae7c78ff3fc4309605ab0fa186c8d48ba"></a><!-- doxytag: member="gtc_matrix_integer::umat3x4" ref="gae7c78ff3fc4309605ab0fa186c8d48ba" args="" -->
283 typedef mediump_umat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a></td></tr>
284 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38bc7bb6494e344185df596deeb4544c"></a><!-- doxytag: member="gtc_matrix_integer::umat4" ref="ga38bc7bb6494e344185df596deeb4544c" args="" -->
285 typedef mediump_umat4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a></td></tr>
286 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga70fa2d05896aa83cbc8c07672a429b53"></a><!-- doxytag: member="gtc_matrix_integer::umat4x2" ref="ga70fa2d05896aa83cbc8c07672a429b53" args="" -->
287 typedef mediump_umat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a></td></tr>
288 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga87581417945411f75cb31dd6ca1dba98"></a><!-- doxytag: member="gtc_matrix_integer::umat4x3" ref="ga87581417945411f75cb31dd6ca1dba98" args="" -->
289 typedef mediump_umat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a></td></tr>
290 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf72e6d399c42985db6872c50f53d7eb8"></a><!-- doxytag: member="gtc_matrix_integer::umat4x4" ref="gaf72e6d399c42985db6872c50f53d7eb8" args="" -->
291 typedef mediump_umat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00242.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a></td></tr>
38 <tr><td colspan="2"><h2><a name="func-members"></a>
39 Functions</h2></td></tr>
40 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
41 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00242.html#gade90330b2e6ef1b27371498cab1c38da">affineInverse</a> (genType const &amp;m)</td></tr>
42 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
43 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
44 genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00242.html#ga1df67bb7d1c4c89484ac57c5cc09c7a3">inverseTranspose</a> (genType const &amp;m)</td></tr>
29245 </table>
29346 <hr/><a name="_details"></a><h2>Detailed Description</h2>
294 <p>Defines a number of matrices with integer types. &lt;<a class="el" href="a00073_source.html">glm/gtc/matrix_integer.hpp</a>&gt; need to be included to use these functionalities. </p>
47 <p>Defines additional matrix inverting functions. &lt;<a class="el" href="a00075_source.html">glm/gtc/matrix_inverse.hpp</a>&gt; need to be included to use these functionalities. </p>
48 <hr/><h2>Function Documentation</h2>
49 <a class="anchor" id="gade90330b2e6ef1b27371498cab1c38da"></a><!-- doxytag: member="glm::gtc::matrix_inverse::affineInverse" ref="gade90330b2e6ef1b27371498cab1c38da" args="(genType const &amp;m)" -->
50 <div class="memitem">
51 <div class="memproto">
52 <table class="memname">
53 <tr>
54 <td class="memname">genType glm::gtc::matrix_inverse::affineInverse </td>
55 <td>(</td>
56 <td class="paramtype">genType const &amp;&#160;</td>
57 <td class="paramname"><em>m</em></td><td>)</td>
58 <td></td>
59 </tr>
60 </table>
61 </div>
62 <div class="memdoc">
63
64 <p>Fast matrix inverse for affine matrix. </p>
65 <p>From GLM_GTC_matrix_inverse extension. </p>
66
67 </div>
68 </div>
69 <a class="anchor" id="ga1df67bb7d1c4c89484ac57c5cc09c7a3"></a><!-- doxytag: member="glm::gtc::matrix_inverse::inverseTranspose" ref="ga1df67bb7d1c4c89484ac57c5cc09c7a3" args="(genType const &amp;m)" -->
70 <div class="memitem">
71 <div class="memproto">
72 <table class="memname">
73 <tr>
74 <td class="memname">GLM_FUNC_QUALIFIER genType::value_type glm::gtc::matrix_inverse::inverseTranspose </td>
75 <td>(</td>
76 <td class="paramtype">genType const &amp;&#160;</td>
77 <td class="paramname"><em>m</em></td><td>)</td>
78 <td></td>
79 </tr>
80 </table>
81 </div>
82 <div class="memdoc">
83
84 <p>Compute the inverse transpose of a matrix. </p>
85 <p>From GLM_GTC_matrix_inverse extension. </p>
86
87 </div>
88 </div>
29589 </div>
29690 <hr class="footer"/><address class="footer"><small>Generated by&#160;
29791 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTC_matrix_inverse: Additional matrix inverse function</title>
4 <title>GLM_GTC_matrix_transform: Matrix transform functions.</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTC_matrix_inverse: Additional matrix inverse function</h1> </div>
35 <div class="ingroups"><a class="el" href="a00239.html">GTC Extensions (Stable)</a></div></div>
34 <h1>GLM_GTC_matrix_transform: Matrix transform functions.</h1> </div>
35 <div class="ingroups"><a class="el" href="a00238.html">GTC Extensions (Stable)</a></div></div>
3636 <div class="contents">
37
38 <p>Defines functions that generate common transformation matrices.
39 <a href="#_details">More...</a></p>
3740 <table class="memberdecls">
3841 <tr><td colspan="2"><h2><a name="func-members"></a>
3942 Functions</h2></td></tr>
40 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
41 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#gade90330b2e6ef1b27371498cab1c38da">affineInverse</a> (genType const &amp;m)</td></tr>
42 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
43 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
44 genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga1df67bb7d1c4c89484ac57c5cc09c7a3">inverseTranspose</a> (genType const &amp;m)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga517623bf6344a9e276b877366143116a">frustum</a> (T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top, T const &amp;nearVal, T const &amp;farVal)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#gab8bb0d61dfe8a35df79ee3ccc6dd9afe">infinitePerspective</a> (T fovy, T aspect, T zNear)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga2d6b6c381f047ea4d9ca4145fed9edd5">lookAt</a> (detail::tvec3&lt; T &gt; const &amp;eye, detail::tvec3&lt; T &gt; const &amp;center, detail::tvec3&lt; T &gt; const &amp;up)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga71777a3b1d4fe1729cccf6eda05c8127">ortho</a> (T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#gad25e5b029ebefac5b657861378c17aa8">ortho</a> (T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top, T const &amp;zNear, T const &amp;zFar)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga1bb3652e43f824d8c1dd5b9e60c80437">perspective</a> (T const &amp;fovy, T const &amp;aspect, T const &amp;zNear, T const &amp;zFar)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga2d4fab691ace1abbffb3cdd4cc2316e9">perspectiveFov</a> (valType const &amp;fov, valType const &amp;width, valType const &amp;height, valType const &amp;zNear, valType const &amp;zFar)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga9ebc45c333c8ec63c5047d6c1fcb9415">pickMatrix</a> (detail::tvec2&lt; T &gt; const &amp;center, detail::tvec2&lt; T &gt; const &amp;delta, detail::tvec4&lt; U &gt; const &amp;viewport)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga30e98d64189bae49582de8373de9f09f">project</a> (detail::tvec3&lt; T &gt; const &amp;obj, detail::tmat4x4&lt; T &gt; const &amp;model, detail::tmat4x4&lt; T &gt; const &amp;proj, detail::tvec4&lt; U &gt; const &amp;viewport)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga48168ff70412019857ceb28b3b2b1f5e">rotate</a> (detail::tmat4x4&lt; T &gt; const &amp;m, T const &amp;angle, detail::tvec3&lt; T &gt; const &amp;v)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga6da77ee2c33d0d33de557a37ff35b197">scale</a> (detail::tmat4x4&lt; T &gt; const &amp;m, detail::tvec3&lt; T &gt; const &amp;v)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#ga4683c446c8432476750ade56f2537397">translate</a> (detail::tmat4x4&lt; T &gt; const &amp;m, detail::tvec3&lt; T &gt; const &amp;v)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#gac257959595078f003d6a0e4be6f9a2eb">tweakedInfinitePerspective</a> (T fovy, T aspect, T zNear)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00243.html#gac38d611231b15799a0c06c54ff1ede43">unProject</a> (detail::tvec3&lt; T &gt; const &amp;win, detail::tmat4x4&lt; T &gt; const &amp;model, detail::tmat4x4&lt; T &gt; const &amp;proj, detail::tvec4&lt; U &gt; const &amp;viewport)</td></tr>
4571 </table>
4672 <hr/><a name="_details"></a><h2>Detailed Description</h2>
47 <p>Defines additional matrix inverting functions. &lt;<a class="el" href="a00075_source.html">glm/gtc/matrix_inverse.hpp</a>&gt; need to be included to use these functionalities. </p>
73 <p>Defines functions that generate common transformation matrices. </p>
74 <p>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.</p>
75 <p>&lt;<a class="el" href="a00079_source.html">glm/gtc/matrix_transform.hpp</a>&gt; need to be included to use these functionalities. </p>
4876 <hr/><h2>Function Documentation</h2>
49 <a class="anchor" id="gade90330b2e6ef1b27371498cab1c38da"></a><!-- doxytag: member="glm::gtc::matrix_inverse::affineInverse" ref="gade90330b2e6ef1b27371498cab1c38da" args="(genType const &amp;m)" -->
50 <div class="memitem">
51 <div class="memproto">
52 <table class="memname">
53 <tr>
54 <td class="memname">genType glm::gtc::matrix_inverse::affineInverse </td>
55 <td>(</td>
56 <td class="paramtype">genType const &amp;&#160;</td>
57 <td class="paramname"><em>m</em></td><td>)</td>
58 <td></td>
59 </tr>
60 </table>
61 </div>
62 <div class="memdoc">
63
64 <p>Fast matrix inverse for affine matrix. </p>
65 <p>From GLM_GTC_matrix_inverse extension. </p>
66
67 </div>
68 </div>
69 <a class="anchor" id="ga1df67bb7d1c4c89484ac57c5cc09c7a3"></a><!-- doxytag: member="glm::gtc::matrix_inverse::inverseTranspose" ref="ga1df67bb7d1c4c89484ac57c5cc09c7a3" args="(genType const &amp;m)" -->
70 <div class="memitem">
71 <div class="memproto">
72 <table class="memname">
73 <tr>
74 <td class="memname">GLM_FUNC_QUALIFIER genType::value_type glm::gtc::matrix_inverse::inverseTranspose </td>
75 <td>(</td>
76 <td class="paramtype">genType const &amp;&#160;</td>
77 <td class="paramname"><em>m</em></td><td>)</td>
78 <td></td>
79 </tr>
80 </table>
81 </div>
82 <div class="memdoc">
83
84 <p>Compute the inverse transpose of a matrix. </p>
85 <p>From GLM_GTC_matrix_inverse extension. </p>
77 <a class="anchor" id="ga517623bf6344a9e276b877366143116a"></a><!-- doxytag: member="glm::gtc::matrix_transform::frustum" ref="ga517623bf6344a9e276b877366143116a" args="(T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top, T const &amp;nearVal, T const &amp;farVal)" -->
78 <div class="memitem">
79 <div class="memproto">
80 <table class="memname">
81 <tr>
82 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::frustum </td>
83 <td>(</td>
84 <td class="paramtype">T const &amp;&#160;</td>
85 <td class="paramname"><em>left</em>, </td>
86 </tr>
87 <tr>
88 <td class="paramkey"></td>
89 <td></td>
90 <td class="paramtype">T const &amp;&#160;</td>
91 <td class="paramname"><em>right</em>, </td>
92 </tr>
93 <tr>
94 <td class="paramkey"></td>
95 <td></td>
96 <td class="paramtype">T const &amp;&#160;</td>
97 <td class="paramname"><em>bottom</em>, </td>
98 </tr>
99 <tr>
100 <td class="paramkey"></td>
101 <td></td>
102 <td class="paramtype">T const &amp;&#160;</td>
103 <td class="paramname"><em>top</em>, </td>
104 </tr>
105 <tr>
106 <td class="paramkey"></td>
107 <td></td>
108 <td class="paramtype">T const &amp;&#160;</td>
109 <td class="paramname"><em>nearVal</em>, </td>
110 </tr>
111 <tr>
112 <td class="paramkey"></td>
113 <td></td>
114 <td class="paramtype">T const &amp;&#160;</td>
115 <td class="paramname"><em>farVal</em>&#160;</td>
116 </tr>
117 <tr>
118 <td></td>
119 <td>)</td>
120 <td></td><td></td>
121 </tr>
122 </table>
123 </div>
124 <div class="memdoc">
125
126 <p>Creates a frustum matrix. </p>
127 <p>From GLM_GTC_matrix_transform extension. </p>
128
129 </div>
130 </div>
131 <a class="anchor" id="gab8bb0d61dfe8a35df79ee3ccc6dd9afe"></a><!-- doxytag: member="glm::gtc::matrix_transform::infinitePerspective" ref="gab8bb0d61dfe8a35df79ee3ccc6dd9afe" args="(T fovy, T aspect, T zNear)" -->
132 <div class="memitem">
133 <div class="memproto">
134 <table class="memname">
135 <tr>
136 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::infinitePerspective </td>
137 <td>(</td>
138 <td class="paramtype">T&#160;</td>
139 <td class="paramname"><em>fovy</em>, </td>
140 </tr>
141 <tr>
142 <td class="paramkey"></td>
143 <td></td>
144 <td class="paramtype">T&#160;</td>
145 <td class="paramname"><em>aspect</em>, </td>
146 </tr>
147 <tr>
148 <td class="paramkey"></td>
149 <td></td>
150 <td class="paramtype">T&#160;</td>
151 <td class="paramname"><em>zNear</em>&#160;</td>
152 </tr>
153 <tr>
154 <td></td>
155 <td>)</td>
156 <td></td><td></td>
157 </tr>
158 </table>
159 </div>
160 <div class="memdoc">
161
162 <p>Creates a matrix for a symmetric perspective-view frustum with far plane at infinite . </p>
163 <p>From GLM_GTC_matrix_transform extension. </p>
164
165 </div>
166 </div>
167 <a class="anchor" id="ga2d6b6c381f047ea4d9ca4145fed9edd5"></a><!-- doxytag: member="glm::gtc::matrix_transform::lookAt" ref="ga2d6b6c381f047ea4d9ca4145fed9edd5" args="(detail::tvec3&lt; T &gt; const &amp;eye, detail::tvec3&lt; T &gt; const &amp;center, detail::tvec3&lt; T &gt; const &amp;up)" -->
168 <div class="memitem">
169 <div class="memproto">
170 <table class="memname">
171 <tr>
172 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::lookAt </td>
173 <td>(</td>
174 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
175 <td class="paramname"><em>eye</em>, </td>
176 </tr>
177 <tr>
178 <td class="paramkey"></td>
179 <td></td>
180 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
181 <td class="paramname"><em>center</em>, </td>
182 </tr>
183 <tr>
184 <td class="paramkey"></td>
185 <td></td>
186 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
187 <td class="paramname"><em>up</em>&#160;</td>
188 </tr>
189 <tr>
190 <td></td>
191 <td>)</td>
192 <td></td><td></td>
193 </tr>
194 </table>
195 </div>
196 <div class="memdoc">
197
198 <p>Build a look at view matrix. </p>
199 <p>From GLM_GTC_matrix_transform extension. </p>
200
201 </div>
202 </div>
203 <a class="anchor" id="ga71777a3b1d4fe1729cccf6eda05c8127"></a><!-- doxytag: member="glm::gtc::matrix_transform::ortho" ref="ga71777a3b1d4fe1729cccf6eda05c8127" args="(T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top)" -->
204 <div class="memitem">
205 <div class="memproto">
206 <table class="memname">
207 <tr>
208 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::ortho </td>
209 <td>(</td>
210 <td class="paramtype">T const &amp;&#160;</td>
211 <td class="paramname"><em>left</em>, </td>
212 </tr>
213 <tr>
214 <td class="paramkey"></td>
215 <td></td>
216 <td class="paramtype">T const &amp;&#160;</td>
217 <td class="paramname"><em>right</em>, </td>
218 </tr>
219 <tr>
220 <td class="paramkey"></td>
221 <td></td>
222 <td class="paramtype">T const &amp;&#160;</td>
223 <td class="paramname"><em>bottom</em>, </td>
224 </tr>
225 <tr>
226 <td class="paramkey"></td>
227 <td></td>
228 <td class="paramtype">T const &amp;&#160;</td>
229 <td class="paramname"><em>top</em>&#160;</td>
230 </tr>
231 <tr>
232 <td></td>
233 <td>)</td>
234 <td></td><td></td>
235 </tr>
236 </table>
237 </div>
238 <div class="memdoc">
239
240 <p>Creates a matrix for projecting two-dimensional coordinates onto the screen. </p>
241 <p>From GLM_GTC_matrix_transform extension. </p>
242
243 </div>
244 </div>
245 <a class="anchor" id="gad25e5b029ebefac5b657861378c17aa8"></a><!-- doxytag: member="glm::gtc::matrix_transform::ortho" ref="gad25e5b029ebefac5b657861378c17aa8" args="(T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top, T const &amp;zNear, T const &amp;zFar)" -->
246 <div class="memitem">
247 <div class="memproto">
248 <table class="memname">
249 <tr>
250 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::ortho </td>
251 <td>(</td>
252 <td class="paramtype">T const &amp;&#160;</td>
253 <td class="paramname"><em>left</em>, </td>
254 </tr>
255 <tr>
256 <td class="paramkey"></td>
257 <td></td>
258 <td class="paramtype">T const &amp;&#160;</td>
259 <td class="paramname"><em>right</em>, </td>
260 </tr>
261 <tr>
262 <td class="paramkey"></td>
263 <td></td>
264 <td class="paramtype">T const &amp;&#160;</td>
265 <td class="paramname"><em>bottom</em>, </td>
266 </tr>
267 <tr>
268 <td class="paramkey"></td>
269 <td></td>
270 <td class="paramtype">T const &amp;&#160;</td>
271 <td class="paramname"><em>top</em>, </td>
272 </tr>
273 <tr>
274 <td class="paramkey"></td>
275 <td></td>
276 <td class="paramtype">T const &amp;&#160;</td>
277 <td class="paramname"><em>zNear</em>, </td>
278 </tr>
279 <tr>
280 <td class="paramkey"></td>
281 <td></td>
282 <td class="paramtype">T const &amp;&#160;</td>
283 <td class="paramname"><em>zFar</em>&#160;</td>
284 </tr>
285 <tr>
286 <td></td>
287 <td>)</td>
288 <td></td><td></td>
289 </tr>
290 </table>
291 </div>
292 <div class="memdoc">
293
294 <p>Creates a matrix for an orthographic parallel viewing volume. </p>
295 <p>From GLM_GTC_matrix_transform extension. </p>
296
297 </div>
298 </div>
299 <a class="anchor" id="ga1bb3652e43f824d8c1dd5b9e60c80437"></a><!-- doxytag: member="glm::gtc::matrix_transform::perspective" ref="ga1bb3652e43f824d8c1dd5b9e60c80437" args="(T const &amp;fovy, T const &amp;aspect, T const &amp;zNear, T const &amp;zFar)" -->
300 <div class="memitem">
301 <div class="memproto">
302 <table class="memname">
303 <tr>
304 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::perspective </td>
305 <td>(</td>
306 <td class="paramtype">T const &amp;&#160;</td>
307 <td class="paramname"><em>fovy</em>, </td>
308 </tr>
309 <tr>
310 <td class="paramkey"></td>
311 <td></td>
312 <td class="paramtype">T const &amp;&#160;</td>
313 <td class="paramname"><em>aspect</em>, </td>
314 </tr>
315 <tr>
316 <td class="paramkey"></td>
317 <td></td>
318 <td class="paramtype">T const &amp;&#160;</td>
319 <td class="paramname"><em>zNear</em>, </td>
320 </tr>
321 <tr>
322 <td class="paramkey"></td>
323 <td></td>
324 <td class="paramtype">T const &amp;&#160;</td>
325 <td class="paramname"><em>zFar</em>&#160;</td>
326 </tr>
327 <tr>
328 <td></td>
329 <td>)</td>
330 <td></td><td></td>
331 </tr>
332 </table>
333 </div>
334 <div class="memdoc">
335
336 <p>Creates a matrix for a symetric perspective-view frustum. </p>
337 <p>From GLM_GTC_matrix_transform extension. </p>
338
339 </div>
340 </div>
341 <a class="anchor" id="ga2d4fab691ace1abbffb3cdd4cc2316e9"></a><!-- doxytag: member="glm::gtc::matrix_transform::perspectiveFov" ref="ga2d4fab691ace1abbffb3cdd4cc2316e9" args="(valType const &amp;fov, valType const &amp;width, valType const &amp;height, valType const &amp;zNear, valType const &amp;zFar)" -->
342 <div class="memitem">
343 <div class="memproto">
344 <table class="memname">
345 <tr>
346 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtc::matrix_transform::perspectiveFov </td>
347 <td>(</td>
348 <td class="paramtype">valType const &amp;&#160;</td>
349 <td class="paramname"><em>fov</em>, </td>
350 </tr>
351 <tr>
352 <td class="paramkey"></td>
353 <td></td>
354 <td class="paramtype">valType const &amp;&#160;</td>
355 <td class="paramname"><em>width</em>, </td>
356 </tr>
357 <tr>
358 <td class="paramkey"></td>
359 <td></td>
360 <td class="paramtype">valType const &amp;&#160;</td>
361 <td class="paramname"><em>height</em>, </td>
362 </tr>
363 <tr>
364 <td class="paramkey"></td>
365 <td></td>
366 <td class="paramtype">valType const &amp;&#160;</td>
367 <td class="paramname"><em>zNear</em>, </td>
368 </tr>
369 <tr>
370 <td class="paramkey"></td>
371 <td></td>
372 <td class="paramtype">valType const &amp;&#160;</td>
373 <td class="paramname"><em>zFar</em>&#160;</td>
374 </tr>
375 <tr>
376 <td></td>
377 <td>)</td>
378 <td></td><td></td>
379 </tr>
380 </table>
381 </div>
382 <div class="memdoc">
383
384 <p>Builds a perspective projection matrix based on a field of view From GLM_GTC_matrix_transform extension. </p>
385
386 </div>
387 </div>
388 <a class="anchor" id="ga9ebc45c333c8ec63c5047d6c1fcb9415"></a><!-- doxytag: member="glm::gtc::matrix_transform::pickMatrix" ref="ga9ebc45c333c8ec63c5047d6c1fcb9415" args="(detail::tvec2&lt; T &gt; const &amp;center, detail::tvec2&lt; T &gt; const &amp;delta, detail::tvec4&lt; U &gt; const &amp;viewport)" -->
389 <div class="memitem">
390 <div class="memproto">
391 <table class="memname">
392 <tr>
393 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::pickMatrix </td>
394 <td>(</td>
395 <td class="paramtype">detail::tvec2&lt; T &gt; const &amp;&#160;</td>
396 <td class="paramname"><em>center</em>, </td>
397 </tr>
398 <tr>
399 <td class="paramkey"></td>
400 <td></td>
401 <td class="paramtype">detail::tvec2&lt; T &gt; const &amp;&#160;</td>
402 <td class="paramname"><em>delta</em>, </td>
403 </tr>
404 <tr>
405 <td class="paramkey"></td>
406 <td></td>
407 <td class="paramtype">detail::tvec4&lt; U &gt; const &amp;&#160;</td>
408 <td class="paramname"><em>viewport</em>&#160;</td>
409 </tr>
410 <tr>
411 <td></td>
412 <td>)</td>
413 <td></td><td></td>
414 </tr>
415 </table>
416 </div>
417 <div class="memdoc">
418
419 <p>Define a picking region From GLM_GTC_matrix_transform extension. </p>
420
421 </div>
422 </div>
423 <a class="anchor" id="ga30e98d64189bae49582de8373de9f09f"></a><!-- doxytag: member="glm::gtc::matrix_transform::project" ref="ga30e98d64189bae49582de8373de9f09f" args="(detail::tvec3&lt; T &gt; const &amp;obj, detail::tmat4x4&lt; T &gt; const &amp;model, detail::tmat4x4&lt; T &gt; const &amp;proj, detail::tvec4&lt; U &gt; const &amp;viewport)" -->
424 <div class="memitem">
425 <div class="memproto">
426 <table class="memname">
427 <tr>
428 <td class="memname">detail::tvec3&lt;T&gt; glm::gtc::matrix_transform::project </td>
429 <td>(</td>
430 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
431 <td class="paramname"><em>obj</em>, </td>
432 </tr>
433 <tr>
434 <td class="paramkey"></td>
435 <td></td>
436 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
437 <td class="paramname"><em>model</em>, </td>
438 </tr>
439 <tr>
440 <td class="paramkey"></td>
441 <td></td>
442 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
443 <td class="paramname"><em>proj</em>, </td>
444 </tr>
445 <tr>
446 <td class="paramkey"></td>
447 <td></td>
448 <td class="paramtype">detail::tvec4&lt; U &gt; const &amp;&#160;</td>
449 <td class="paramname"><em>viewport</em>&#160;</td>
450 </tr>
451 <tr>
452 <td></td>
453 <td>)</td>
454 <td></td><td></td>
455 </tr>
456 </table>
457 </div>
458 <div class="memdoc">
459
460 <p>Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. </p>
461 <p>From GLM_GTC_matrix_transform extension. </p>
462
463 </div>
464 </div>
465 <a class="anchor" id="ga48168ff70412019857ceb28b3b2b1f5e"></a><!-- doxytag: member="glm::gtc::matrix_transform::rotate" ref="ga48168ff70412019857ceb28b3b2b1f5e" args="(detail::tmat4x4&lt; T &gt; const &amp;m, T const &amp;angle, detail::tvec3&lt; T &gt; const &amp;v)" -->
466 <div class="memitem">
467 <div class="memproto">
468 <table class="memname">
469 <tr>
470 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::rotate </td>
471 <td>(</td>
472 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
473 <td class="paramname"><em>m</em>, </td>
474 </tr>
475 <tr>
476 <td class="paramkey"></td>
477 <td></td>
478 <td class="paramtype">T const &amp;&#160;</td>
479 <td class="paramname"><em>angle</em>, </td>
480 </tr>
481 <tr>
482 <td class="paramkey"></td>
483 <td></td>
484 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
485 <td class="paramname"><em>v</em>&#160;</td>
486 </tr>
487 <tr>
488 <td></td>
489 <td>)</td>
490 <td></td><td></td>
491 </tr>
492 </table>
493 </div>
494 <div class="memdoc">
495
496 <p>Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees. </p>
497 <p>From GLM_GTC_matrix_transform extension. </p>
498
499 </div>
500 </div>
501 <a class="anchor" id="ga6da77ee2c33d0d33de557a37ff35b197"></a><!-- doxytag: member="glm::gtc::matrix_transform::scale" ref="ga6da77ee2c33d0d33de557a37ff35b197" args="(detail::tmat4x4&lt; T &gt; const &amp;m, detail::tvec3&lt; T &gt; const &amp;v)" -->
502 <div class="memitem">
503 <div class="memproto">
504 <table class="memname">
505 <tr>
506 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::scale </td>
507 <td>(</td>
508 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
509 <td class="paramname"><em>m</em>, </td>
510 </tr>
511 <tr>
512 <td class="paramkey"></td>
513 <td></td>
514 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
515 <td class="paramname"><em>v</em>&#160;</td>
516 </tr>
517 <tr>
518 <td></td>
519 <td>)</td>
520 <td></td><td></td>
521 </tr>
522 </table>
523 </div>
524 <div class="memdoc">
525
526 <p>Builds a scale 4 * 4 matrix created from 3 scalars. </p>
527 <p>From GLM_GTC_matrix_transform extension. </p>
528
529 </div>
530 </div>
531 <a class="anchor" id="ga4683c446c8432476750ade56f2537397"></a><!-- doxytag: member="glm::gtc::matrix_transform::translate" ref="ga4683c446c8432476750ade56f2537397" args="(detail::tmat4x4&lt; T &gt; const &amp;m, detail::tvec3&lt; T &gt; const &amp;v)" -->
532 <div class="memitem">
533 <div class="memproto">
534 <table class="memname">
535 <tr>
536 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::translate </td>
537 <td>(</td>
538 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
539 <td class="paramname"><em>m</em>, </td>
540 </tr>
541 <tr>
542 <td class="paramkey"></td>
543 <td></td>
544 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
545 <td class="paramname"><em>v</em>&#160;</td>
546 </tr>
547 <tr>
548 <td></td>
549 <td>)</td>
550 <td></td><td></td>
551 </tr>
552 </table>
553 </div>
554 <div class="memdoc">
555
556 <p>Builds a translation 4 * 4 matrix created from a vector of 3 components. </p>
557 <p>From GLM_GTC_matrix_transform extension. </p>
558
559 </div>
560 </div>
561 <a class="anchor" id="gac257959595078f003d6a0e4be6f9a2eb"></a><!-- doxytag: member="glm::gtc::matrix_transform::tweakedInfinitePerspective" ref="gac257959595078f003d6a0e4be6f9a2eb" args="(T fovy, T aspect, T zNear)" -->
562 <div class="memitem">
563 <div class="memproto">
564 <table class="memname">
565 <tr>
566 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::tweakedInfinitePerspective </td>
567 <td>(</td>
568 <td class="paramtype">T&#160;</td>
569 <td class="paramname"><em>fovy</em>, </td>
570 </tr>
571 <tr>
572 <td class="paramkey"></td>
573 <td></td>
574 <td class="paramtype">T&#160;</td>
575 <td class="paramname"><em>aspect</em>, </td>
576 </tr>
577 <tr>
578 <td class="paramkey"></td>
579 <td></td>
580 <td class="paramtype">T&#160;</td>
581 <td class="paramname"><em>zNear</em>&#160;</td>
582 </tr>
583 <tr>
584 <td></td>
585 <td>)</td>
586 <td></td><td></td>
587 </tr>
588 </table>
589 </div>
590 <div class="memdoc">
591
592 <p>Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. </p>
593 <p>From GLM_GTC_matrix_transform extension. </p>
594
595 </div>
596 </div>
597 <a class="anchor" id="gac38d611231b15799a0c06c54ff1ede43"></a><!-- doxytag: member="glm::gtc::matrix_transform::unProject" ref="gac38d611231b15799a0c06c54ff1ede43" args="(detail::tvec3&lt; T &gt; const &amp;win, detail::tmat4x4&lt; T &gt; const &amp;model, detail::tmat4x4&lt; T &gt; const &amp;proj, detail::tvec4&lt; U &gt; const &amp;viewport)" -->
598 <div class="memitem">
599 <div class="memproto">
600 <table class="memname">
601 <tr>
602 <td class="memname">detail::tvec3&lt;T&gt; glm::gtc::matrix_transform::unProject </td>
603 <td>(</td>
604 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
605 <td class="paramname"><em>win</em>, </td>
606 </tr>
607 <tr>
608 <td class="paramkey"></td>
609 <td></td>
610 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
611 <td class="paramname"><em>model</em>, </td>
612 </tr>
613 <tr>
614 <td class="paramkey"></td>
615 <td></td>
616 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
617 <td class="paramname"><em>proj</em>, </td>
618 </tr>
619 <tr>
620 <td class="paramkey"></td>
621 <td></td>
622 <td class="paramtype">detail::tvec4&lt; U &gt; const &amp;&#160;</td>
623 <td class="paramname"><em>viewport</em>&#160;</td>
624 </tr>
625 <tr>
626 <td></td>
627 <td>)</td>
628 <td></td><td></td>
629 </tr>
630 </table>
631 </div>
632 <div class="memdoc">
633
634 <p>Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. </p>
635 <p>From GLM_GTC_matrix_transform extension. </p>
86636
87637 </div>
88638 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTC_matrix_transform: Matrix transform functions.</title>
4 <title>GLM_GTC_quaternion: Quaternion types and functions</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#nested-classes">Classes</a> &#124;
33 <a href="#typedef-members">Typedefs</a> &#124;
3234 <a href="#func-members">Functions</a> </div>
3335 <div class="headertitle">
34 <h1>GLM_GTC_matrix_transform: Matrix transform functions.</h1> </div>
35 <div class="ingroups"><a class="el" href="a00239.html">GTC Extensions (Stable)</a></div></div>
36 <h1>GLM_GTC_quaternion: Quaternion types and functions</h1> </div>
37 <div class="ingroups"><a class="el" href="a00238.html">GTC Extensions (Stable)</a></div></div>
3638 <div class="contents">
3739
38 <p>Defines functions that generate common transformation matrices.
40 <p>Defines a templated quaternion type and several quaternion operations.
3941 <a href="#_details">More...</a></p>
4042 <table class="memberdecls">
43 <tr><td colspan="2"><h2><a name="nested-classes"></a>
44 Classes</h2></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00019.html">tquat&lt; T &gt;</a></td></tr>
46 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for quaternion. <a href="a00019.html#_details">More...</a><br/></td></tr>
47 <tr><td colspan="2"><h2><a name="typedef-members"></a>
48 Typedefs</h2></td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tquat&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00244.html#ga5428321324094c7170d6133c8139d255">dquat</a></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tquat&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00244.html#gaae07c293efbe1c530ff18044a15fe662">fquat</a></td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tquat<br class="typebreak"/>
52 &lt; highp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00244.html#ga8a7c2c751ad30db9ec4268a6b7d99f6c">highp_quat</a></td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tquat<br class="typebreak"/>
54 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00244.html#ga552e75db1669a7a86b59070d4efd6941">hquat</a></td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tquat&lt; lowp_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00244.html#ga5acd0f3e9f9e3c0e6577440443ec4594">lowp_quat</a></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tquat<br class="typebreak"/>
57 &lt; mediump_float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00244.html#gae93fe73ea5fe5e2150c2eb0641394dc8">mediump_quat</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tquat&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00244.html#ga60408579db470456070a3336295625a7">quat</a></td></tr>
4159 <tr><td colspan="2"><h2><a name="func-members"></a>
4260 Functions</h2></td></tr>
4361 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga517623bf6344a9e276b877366143116a">frustum</a> (T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top, T const &amp;nearVal, T const &amp;farVal)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gab8bb0d61dfe8a35df79ee3ccc6dd9afe">infinitePerspective</a> (T fovy, T aspect, T zNear)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga2d6b6c381f047ea4d9ca4145fed9edd5">lookAt</a> (detail::tvec3&lt; T &gt; const &amp;eye, detail::tvec3&lt; T &gt; const &amp;center, detail::tvec3&lt; T &gt; const &amp;up)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga71777a3b1d4fe1729cccf6eda05c8127">ortho</a> (T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gad25e5b029ebefac5b657861378c17aa8">ortho</a> (T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top, T const &amp;zNear, T const &amp;zFar)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga1bb3652e43f824d8c1dd5b9e60c80437">perspective</a> (T const &amp;fovy, T const &amp;aspect, T const &amp;zNear, T const &amp;zFar)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga2d4fab691ace1abbffb3cdd4cc2316e9">perspectiveFov</a> (valType const &amp;fov, valType const &amp;width, valType const &amp;height, valType const &amp;zNear, valType const &amp;zFar)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga9ebc45c333c8ec63c5047d6c1fcb9415">pickMatrix</a> (detail::tvec2&lt; T &gt; const &amp;center, detail::tvec2&lt; T &gt; const &amp;delta, detail::tvec4&lt; U &gt; const &amp;viewport)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga30e98d64189bae49582de8373de9f09f">project</a> (detail::tvec3&lt; T &gt; const &amp;obj, detail::tmat4x4&lt; T &gt; const &amp;model, detail::tmat4x4&lt; T &gt; const &amp;proj, detail::tvec4&lt; U &gt; const &amp;viewport)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga48168ff70412019857ceb28b3b2b1f5e">rotate</a> (detail::tmat4x4&lt; T &gt; const &amp;m, T const &amp;angle, detail::tvec3&lt; T &gt; const &amp;v)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga6da77ee2c33d0d33de557a37ff35b197">scale</a> (detail::tmat4x4&lt; T &gt; const &amp;m, detail::tvec3&lt; T &gt; const &amp;v)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga4683c446c8432476750ade56f2537397">translate</a> (detail::tmat4x4&lt; T &gt; const &amp;m, detail::tvec3&lt; T &gt; const &amp;v)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gac257959595078f003d6a0e4be6f9a2eb">tweakedInfinitePerspective</a> (T fovy, T aspect, T zNear)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gac38d611231b15799a0c06c54ff1ede43">unProject</a> (detail::tvec3&lt; T &gt; const &amp;win, detail::tmat4x4&lt; T &gt; const &amp;model, detail::tmat4x4&lt; T &gt; const &amp;proj, detail::tvec4&lt; U &gt; const &amp;viewport)</td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gac66280c86e8efa619ad7dddb2d475aa7">conjugate</a> (detail::tquat&lt; T &gt; const &amp;q)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga6fe2d33aa0cdf188ab362355ad4108c4">cross</a> (detail::tquat&lt; T &gt; const &amp;q1, detail::tquat&lt; T &gt; const &amp;q2)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gaae0285ab092999b98c4f4c8455eeee9f">dot</a> (detail::tquat&lt; T &gt; const &amp;q1, detail::tquat&lt; T &gt; const &amp;q2)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga12e7d58d287f181ec2ebf47bc6af6c5c">inverse</a> (detail::tquat&lt; T &gt; const &amp;q)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gabb546279ee6acebe3fe64dce79e7e9f0">length</a> (detail::tquat&lt; T &gt; const &amp;q)</td></tr>
71 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga38702707009c743e9f304aadc25aeeeb">mat3_cast</a> (detail::tquat&lt; T &gt; const &amp;x)</td></tr>
73 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
74 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gae2d14d52f9fef3da00cf867f9e2e3dfa">mat4_cast</a> (detail::tquat&lt; T &gt; const &amp;x)</td></tr>
75 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
76 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga7cacada583bca8e51e9c67f9cd7e69cb">mix</a> (detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, T const &amp;a)</td></tr>
77 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
78 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#gacca9518d4cb79922ccbcd2d01e886421">normalize</a> (detail::tquat&lt; T &gt; const &amp;q)</td></tr>
79 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
80 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga188746bbede6cf3cee5337f1f1c6da5b">quat_cast</a> (detail::tmat4x4&lt; T &gt; const &amp;x)</td></tr>
81 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
82 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga9a8fa3c0a776ce21fde307d94f5a5a52">quat_cast</a> (detail::tmat3x3&lt; T &gt; const &amp;x)</td></tr>
83 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
84 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00244.html#ga98c5928aefea9c200a285a5f1c3a0da5">rotate</a> (detail::tquat&lt; T &gt; const &amp;q, typename detail::tquat&lt; T &gt;::value_type const &amp;angle, detail::tvec3&lt; T &gt; const &amp;v)</td></tr>
7185 </table>
7286 <hr/><a name="_details"></a><h2>Detailed Description</h2>
73 <p>Defines functions that generate common transformation matrices. </p>
74 <p>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.</p>
75 <p>&lt;<a class="el" href="a00079_source.html">glm/gtc/matrix_transform.hpp</a>&gt; need to be included to use these functionalities. </p>
87 <p>Defines a templated quaternion type and several quaternion operations. </p>
88 <p>&lt;<a class="el" href="a00094_source.html">glm/gtc/quaternion.hpp</a>&gt; need to be included to use these functionalities. </p>
89 <hr/><h2>Typedef Documentation</h2>
90 <a class="anchor" id="ga5428321324094c7170d6133c8139d255"></a><!-- doxytag: member="glm::gtc::quaternion::dquat" ref="ga5428321324094c7170d6133c8139d255" args="" -->
91 <div class="memitem">
92 <div class="memproto">
93 <table class="memname">
94 <tr>
95 <td class="memname">typedef detail::tquat&lt;double&gt; dquat</td>
96 </tr>
97 </table>
98 </div>
99 <div class="memdoc">
100
101 <p>Quaternion of double-precision floating-point numbers. </p>
102 <p>From GLM_GTC_quaternion extension. </p>
103
104 <p>Definition at line <a class="el" href="a00094_source.html#l00222">222</a> of file <a class="el" href="a00094_source.html">gtc/quaternion.hpp</a>.</p>
105
106 </div>
107 </div>
108 <a class="anchor" id="gaae07c293efbe1c530ff18044a15fe662"></a><!-- doxytag: member="glm::gtc::quaternion::fquat" ref="gaae07c293efbe1c530ff18044a15fe662" args="" -->
109 <div class="memitem">
110 <div class="memproto">
111 <table class="memname">
112 <tr>
113 <td class="memname">typedef detail::tquat&lt;float&gt; fquat</td>
114 </tr>
115 </table>
116 </div>
117 <div class="memdoc">
118
119 <p>Quaternion of single-precision floating-point numbers. </p>
120 <p>From GLM_GTC_quaternion extension. </p>
121
122 <p>Definition at line <a class="el" href="a00094_source.html#l00218">218</a> of file <a class="el" href="a00094_source.html">gtc/quaternion.hpp</a>.</p>
123
124 </div>
125 </div>
126 <a class="anchor" id="ga8a7c2c751ad30db9ec4268a6b7d99f6c"></a><!-- doxytag: member="glm::gtc::quaternion::highp_quat" ref="ga8a7c2c751ad30db9ec4268a6b7d99f6c" args="" -->
127 <div class="memitem">
128 <div class="memproto">
129 <table class="memname">
130 <tr>
131 <td class="memname">typedef detail::tquat&lt;highp_float&gt; highp_quat</td>
132 </tr>
133 </table>
134 </div>
135 <div class="memdoc">
136
137 <p>Quaternion of high precision floating-point numbers. </p>
138 <p>From GLM_GTC_quaternion extension. </p>
139
140 <p>Definition at line <a class="el" href="a00094_source.html#l00234">234</a> of file <a class="el" href="a00094_source.html">gtc/quaternion.hpp</a>.</p>
141
142 </div>
143 </div>
144 <a class="anchor" id="ga552e75db1669a7a86b59070d4efd6941"></a><!-- doxytag: member="glm::gtc::quaternion::hquat" ref="ga552e75db1669a7a86b59070d4efd6941" args="" -->
145 <div class="memitem">
146 <div class="memproto">
147 <table class="memname">
148 <tr>
149 <td class="memname">typedef detail::tquat&lt;detail::thalf&gt; hquat</td>
150 </tr>
151 </table>
152 </div>
153 <div class="memdoc">
154
155 <p>Quaternion of half-precision floating-point numbers. </p>
156 <p>From GLM_GTC_quaternion extension. </p>
157
158 <p>Definition at line <a class="el" href="a00094_source.html#l00214">214</a> of file <a class="el" href="a00094_source.html">gtc/quaternion.hpp</a>.</p>
159
160 </div>
161 </div>
162 <a class="anchor" id="ga5acd0f3e9f9e3c0e6577440443ec4594"></a><!-- doxytag: member="glm::gtc::quaternion::lowp_quat" ref="ga5acd0f3e9f9e3c0e6577440443ec4594" args="" -->
163 <div class="memitem">
164 <div class="memproto">
165 <table class="memname">
166 <tr>
167 <td class="memname">typedef detail::tquat&lt;lowp_float&gt; lowp_quat</td>
168 </tr>
169 </table>
170 </div>
171 <div class="memdoc">
172
173 <p>Quaternion of low precision floating-point numbers. </p>
174 <p>From GLM_GTC_quaternion extension. </p>
175
176 <p>Definition at line <a class="el" href="a00094_source.html#l00226">226</a> of file <a class="el" href="a00094_source.html">gtc/quaternion.hpp</a>.</p>
177
178 </div>
179 </div>
180 <a class="anchor" id="gae93fe73ea5fe5e2150c2eb0641394dc8"></a><!-- doxytag: member="glm::gtc::quaternion::mediump_quat" ref="gae93fe73ea5fe5e2150c2eb0641394dc8" args="" -->
181 <div class="memitem">
182 <div class="memproto">
183 <table class="memname">
184 <tr>
185 <td class="memname">typedef detail::tquat&lt;mediump_float&gt; mediump_quat</td>
186 </tr>
187 </table>
188 </div>
189 <div class="memdoc">
190
191 <p>Quaternion of medium precision floating-point numbers. </p>
192 <p>From GLM_GTC_quaternion extension. </p>
193
194 <p>Definition at line <a class="el" href="a00094_source.html#l00230">230</a> of file <a class="el" href="a00094_source.html">gtc/quaternion.hpp</a>.</p>
195
196 </div>
197 </div>
198 <a class="anchor" id="ga60408579db470456070a3336295625a7"></a><!-- doxytag: member="glm::gtc::quaternion::quat" ref="ga60408579db470456070a3336295625a7" args="" -->
199 <div class="memitem">
200 <div class="memproto">
201 <table class="memname">
202 <tr>
203 <td class="memname">typedef detail::tquat&lt;float&gt; quat</td>
204 </tr>
205 </table>
206 </div>
207 <div class="memdoc">
208
209 <p>Quaternion of floating-point numbers. </p>
210 <p>From GLM_GTC_quaternion extension. </p>
211
212 <p>Definition at line <a class="el" href="a00094_source.html#l00210">210</a> of file <a class="el" href="a00094_source.html">gtc/quaternion.hpp</a>.</p>
213
214 </div>
215 </div>
76216 <hr/><h2>Function Documentation</h2>
77 <a class="anchor" id="ga517623bf6344a9e276b877366143116a"></a><!-- doxytag: member="glm::gtc::matrix_transform::frustum" ref="ga517623bf6344a9e276b877366143116a" args="(T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top, T const &amp;nearVal, T const &amp;farVal)" -->
78 <div class="memitem">
79 <div class="memproto">
80 <table class="memname">
81 <tr>
82 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::frustum </td>
83 <td>(</td>
84 <td class="paramtype">T const &amp;&#160;</td>
85 <td class="paramname"><em>left</em>, </td>
217 <a class="anchor" id="gac66280c86e8efa619ad7dddb2d475aa7"></a><!-- doxytag: member="glm::gtc::quaternion::conjugate" ref="gac66280c86e8efa619ad7dddb2d475aa7" args="(detail::tquat&lt; T &gt; const &amp;q)" -->
218 <div class="memitem">
219 <div class="memproto">
220 <table class="memname">
221 <tr>
222 <td class="memname">detail::tquat&lt;T&gt; glm::gtc::quaternion::conjugate </td>
223 <td>(</td>
224 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
225 <td class="paramname"><em>q</em></td><td>)</td>
226 <td></td>
227 </tr>
228 </table>
229 </div>
230 <div class="memdoc">
231
232 <p>Returns the q conjugate. </p>
233 <p>From GLM_GTC_quaternion extension. </p>
234
235 </div>
236 </div>
237 <a class="anchor" id="ga6fe2d33aa0cdf188ab362355ad4108c4"></a><!-- doxytag: member="glm::gtc::quaternion::cross" ref="ga6fe2d33aa0cdf188ab362355ad4108c4" args="(detail::tquat&lt; T &gt; const &amp;q1, detail::tquat&lt; T &gt; const &amp;q2)" -->
238 <div class="memitem">
239 <div class="memproto">
240 <table class="memname">
241 <tr>
242 <td class="memname">GLM_DEPRECATED detail::tquat&lt;T&gt; glm::gtc::quaternion::cross </td>
243 <td>(</td>
244 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
245 <td class="paramname"><em>q1</em>, </td>
86246 </tr>
87247 <tr>
88248 <td class="paramkey"></td>
89249 <td></td>
90 <td class="paramtype">T const &amp;&#160;</td>
91 <td class="paramname"><em>right</em>, </td>
92 </tr>
93 <tr>
94 <td class="paramkey"></td>
95 <td></td>
96 <td class="paramtype">T const &amp;&#160;</td>
97 <td class="paramname"><em>bottom</em>, </td>
98 </tr>
99 <tr>
100 <td class="paramkey"></td>
101 <td></td>
102 <td class="paramtype">T const &amp;&#160;</td>
103 <td class="paramname"><em>top</em>, </td>
104 </tr>
105 <tr>
106 <td class="paramkey"></td>
107 <td></td>
108 <td class="paramtype">T const &amp;&#160;</td>
109 <td class="paramname"><em>nearVal</em>, </td>
110 </tr>
111 <tr>
112 <td class="paramkey"></td>
113 <td></td>
114 <td class="paramtype">T const &amp;&#160;</td>
115 <td class="paramname"><em>farVal</em>&#160;</td>
250 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
251 <td class="paramname"><em>q2</em>&#160;</td>
116252 </tr>
117253 <tr>
118254 <td></td>
123259 </div>
124260 <div class="memdoc">
125261
126 <p>Creates a frustum matrix. </p>
127 <p>From GLM_GTC_matrix_transform extension. </p>
128
129 </div>
130 </div>
131 <a class="anchor" id="gab8bb0d61dfe8a35df79ee3ccc6dd9afe"></a><!-- doxytag: member="glm::gtc::matrix_transform::infinitePerspective" ref="gab8bb0d61dfe8a35df79ee3ccc6dd9afe" args="(T fovy, T aspect, T zNear)" -->
132 <div class="memitem">
133 <div class="memproto">
134 <table class="memname">
135 <tr>
136 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::infinitePerspective </td>
137 <td>(</td>
138 <td class="paramtype">T&#160;</td>
139 <td class="paramname"><em>fovy</em>, </td>
262 <p>Returns the cross product of q1 and q2. </p>
263 <p>From GLM_GTC_quaternion extension. </p>
264
265 </div>
266 </div>
267 <a class="anchor" id="gaae0285ab092999b98c4f4c8455eeee9f"></a><!-- doxytag: member="glm::gtc::quaternion::dot" ref="gaae0285ab092999b98c4f4c8455eeee9f" args="(detail::tquat&lt; T &gt; const &amp;q1, detail::tquat&lt; T &gt; const &amp;q2)" -->
268 <div class="memitem">
269 <div class="memproto">
270 <table class="memname">
271 <tr>
272 <td class="memname">detail::tquat&lt;T&gt;::value_type glm::gtc::quaternion::dot </td>
273 <td>(</td>
274 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
275 <td class="paramname"><em>q1</em>, </td>
140276 </tr>
141277 <tr>
142278 <td class="paramkey"></td>
143279 <td></td>
144 <td class="paramtype">T&#160;</td>
145 <td class="paramname"><em>aspect</em>, </td>
146 </tr>
147 <tr>
148 <td class="paramkey"></td>
149 <td></td>
150 <td class="paramtype">T&#160;</td>
151 <td class="paramname"><em>zNear</em>&#160;</td>
280 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
281 <td class="paramname"><em>q2</em>&#160;</td>
152282 </tr>
153283 <tr>
154284 <td></td>
159289 </div>
160290 <div class="memdoc">
161291
162 <p>Creates a matrix for a symmetric perspective-view frustum with far plane at infinite . </p>
163 <p>From GLM_GTC_matrix_transform extension. </p>
164
165 </div>
166 </div>
167 <a class="anchor" id="ga2d6b6c381f047ea4d9ca4145fed9edd5"></a><!-- doxytag: member="glm::gtc::matrix_transform::lookAt" ref="ga2d6b6c381f047ea4d9ca4145fed9edd5" args="(detail::tvec3&lt; T &gt; const &amp;eye, detail::tvec3&lt; T &gt; const &amp;center, detail::tvec3&lt; T &gt; const &amp;up)" -->
168 <div class="memitem">
169 <div class="memproto">
170 <table class="memname">
171 <tr>
172 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::lookAt </td>
173 <td>(</td>
174 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
175 <td class="paramname"><em>eye</em>, </td>
292 <p>Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... </p>
293 <p>From GLM_GTC_quaternion extension. </p>
294
295 </div>
296 </div>
297 <a class="anchor" id="ga12e7d58d287f181ec2ebf47bc6af6c5c"></a><!-- doxytag: member="glm::gtc::quaternion::inverse" ref="ga12e7d58d287f181ec2ebf47bc6af6c5c" args="(detail::tquat&lt; T &gt; const &amp;q)" -->
298 <div class="memitem">
299 <div class="memproto">
300 <table class="memname">
301 <tr>
302 <td class="memname">detail::tquat&lt;T&gt; glm::gtc::quaternion::inverse </td>
303 <td>(</td>
304 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
305 <td class="paramname"><em>q</em></td><td>)</td>
306 <td></td>
307 </tr>
308 </table>
309 </div>
310 <div class="memdoc">
311
312 <p>Returns the q inverse. </p>
313 <p>From GLM_GTC_quaternion extension. </p>
314
315 </div>
316 </div>
317 <a class="anchor" id="gabb546279ee6acebe3fe64dce79e7e9f0"></a><!-- doxytag: member="glm::gtc::quaternion::length" ref="gabb546279ee6acebe3fe64dce79e7e9f0" args="(detail::tquat&lt; T &gt; const &amp;q)" -->
318 <div class="memitem">
319 <div class="memproto">
320 <table class="memname">
321 <tr>
322 <td class="memname">detail::tquat&lt;T&gt;::value_type glm::gtc::quaternion::length </td>
323 <td>(</td>
324 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
325 <td class="paramname"><em>q</em></td><td>)</td>
326 <td></td>
327 </tr>
328 </table>
329 </div>
330 <div class="memdoc">
331
332 <p>Returns the length of the quaternion. </p>
333 <p>From GLM_GTC_quaternion extension. </p>
334
335 </div>
336 </div>
337 <a class="anchor" id="ga38702707009c743e9f304aadc25aeeeb"></a><!-- doxytag: member="glm::gtc::quaternion::mat3_cast" ref="ga38702707009c743e9f304aadc25aeeeb" args="(detail::tquat&lt; T &gt; const &amp;x)" -->
338 <div class="memitem">
339 <div class="memproto">
340 <table class="memname">
341 <tr>
342 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtc::quaternion::mat3_cast </td>
343 <td>(</td>
344 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
345 <td class="paramname"><em>x</em></td><td>)</td>
346 <td></td>
347 </tr>
348 </table>
349 </div>
350 <div class="memdoc">
351
352 <p>Converts a quaternion to a 3 * 3 matrix. </p>
353 <p>From GLM_GTC_quaternion extension. </p>
354
355 <p>Referenced by <a class="el" href="a00095_source.html#l00171">glm::gtx::quaternion::toMat3()</a>.</p>
356
357 </div>
358 </div>
359 <a class="anchor" id="gae2d14d52f9fef3da00cf867f9e2e3dfa"></a><!-- doxytag: member="glm::gtc::quaternion::mat4_cast" ref="gae2d14d52f9fef3da00cf867f9e2e3dfa" args="(detail::tquat&lt; T &gt; const &amp;x)" -->
360 <div class="memitem">
361 <div class="memproto">
362 <table class="memname">
363 <tr>
364 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::quaternion::mat4_cast </td>
365 <td>(</td>
366 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
367 <td class="paramname"><em>x</em></td><td>)</td>
368 <td></td>
369 </tr>
370 </table>
371 </div>
372 <div class="memdoc">
373
374 <p>Converts a quaternion to a 4 * 4 matrix. </p>
375 <p>From GLM_GTC_quaternion extension. </p>
376
377 <p>Referenced by <a class="el" href="a00095_source.html#l00177">glm::gtx::quaternion::toMat4()</a>.</p>
378
379 </div>
380 </div>
381 <a class="anchor" id="ga7cacada583bca8e51e9c67f9cd7e69cb"></a><!-- doxytag: member="glm::gtc::quaternion::mix" ref="ga7cacada583bca8e51e9c67f9cd7e69cb" args="(detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, T const &amp;a)" -->
382 <div class="memitem">
383 <div class="memproto">
384 <table class="memname">
385 <tr>
386 <td class="memname">detail::tquat&lt;T&gt; glm::gtc::quaternion::mix </td>
387 <td>(</td>
388 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
389 <td class="paramname"><em>x</em>, </td>
176390 </tr>
177391 <tr>
178392 <td class="paramkey"></td>
179393 <td></td>
180 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
181 <td class="paramname"><em>center</em>, </td>
394 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
395 <td class="paramname"><em>y</em>, </td>
182396 </tr>
183397 <tr>
184398 <td class="paramkey"></td>
185399 <td></td>
186 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
187 <td class="paramname"><em>up</em>&#160;</td>
400 <td class="paramtype">T const &amp;&#160;</td>
401 <td class="paramname"><em>a</em>&#160;</td>
188402 </tr>
189403 <tr>
190404 <td></td>
195409 </div>
196410 <div class="memdoc">
197411
198 <p>Build a look at view matrix. </p>
199 <p>From GLM_GTC_matrix_transform extension. </p>
200
201 </div>
202 </div>
203 <a class="anchor" id="ga71777a3b1d4fe1729cccf6eda05c8127"></a><!-- doxytag: member="glm::gtc::matrix_transform::ortho" ref="ga71777a3b1d4fe1729cccf6eda05c8127" args="(T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top)" -->
204 <div class="memitem">
205 <div class="memproto">
206 <table class="memname">
207 <tr>
208 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::ortho </td>
209 <td>(</td>
210 <td class="paramtype">T const &amp;&#160;</td>
211 <td class="paramname"><em>left</em>, </td>
412 <p>Returns a SLERP interpolated quaternion of x and y according a. </p>
413 <p>From GLM_GTC_quaternion extension. </p>
414
415 </div>
416 </div>
417 <a class="anchor" id="gacca9518d4cb79922ccbcd2d01e886421"></a><!-- doxytag: member="glm::gtc::quaternion::normalize" ref="gacca9518d4cb79922ccbcd2d01e886421" args="(detail::tquat&lt; T &gt; const &amp;q)" -->
418 <div class="memitem">
419 <div class="memproto">
420 <table class="memname">
421 <tr>
422 <td class="memname">detail::tquat&lt;T&gt; glm::gtc::quaternion::normalize </td>
423 <td>(</td>
424 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
425 <td class="paramname"><em>q</em></td><td>)</td>
426 <td></td>
427 </tr>
428 </table>
429 </div>
430 <div class="memdoc">
431
432 <p>Returns the normalized quaternion. </p>
433 <p>From GLM_GTC_quaternion extension. </p>
434
435 </div>
436 </div>
437 <a class="anchor" id="ga188746bbede6cf3cee5337f1f1c6da5b"></a><!-- doxytag: member="glm::gtc::quaternion::quat_cast" ref="ga188746bbede6cf3cee5337f1f1c6da5b" args="(detail::tmat4x4&lt; T &gt; const &amp;x)" -->
438 <div class="memitem">
439 <div class="memproto">
440 <table class="memname">
441 <tr>
442 <td class="memname">detail::tquat&lt;T&gt; glm::gtc::quaternion::quat_cast </td>
443 <td>(</td>
444 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
445 <td class="paramname"><em>x</em></td><td>)</td>
446 <td></td>
447 </tr>
448 </table>
449 </div>
450 <div class="memdoc">
451
452 <p>Converts a 4 * 4 matrix to a quaternion. </p>
453 <p>From GLM_GTC_quaternion extension. </p>
454
455 </div>
456 </div>
457 <a class="anchor" id="ga9a8fa3c0a776ce21fde307d94f5a5a52"></a><!-- doxytag: member="glm::gtc::quaternion::quat_cast" ref="ga9a8fa3c0a776ce21fde307d94f5a5a52" args="(detail::tmat3x3&lt; T &gt; const &amp;x)" -->
458 <div class="memitem">
459 <div class="memproto">
460 <table class="memname">
461 <tr>
462 <td class="memname">detail::tquat&lt;T&gt; glm::gtc::quaternion::quat_cast </td>
463 <td>(</td>
464 <td class="paramtype">detail::tmat3x3&lt; T &gt; const &amp;&#160;</td>
465 <td class="paramname"><em>x</em></td><td>)</td>
466 <td></td>
467 </tr>
468 </table>
469 </div>
470 <div class="memdoc">
471
472 <p>Converts a 3 * 3 matrix to a quaternion. </p>
473 <p>From GLM_GTC_quaternion extension. </p>
474
475 <p>Referenced by <a class="el" href="a00095_source.html#l00183">glm::gtx::quaternion::toQuat()</a>.</p>
476
477 </div>
478 </div>
479 <a class="anchor" id="ga98c5928aefea9c200a285a5f1c3a0da5"></a><!-- doxytag: member="glm::gtc::quaternion::rotate" ref="ga98c5928aefea9c200a285a5f1c3a0da5" args="(detail::tquat&lt; T &gt; const &amp;q, typename detail::tquat&lt; T &gt;::value_type const &amp;angle, detail::tvec3&lt; T &gt; const &amp;v)" -->
480 <div class="memitem">
481 <div class="memproto">
482 <table class="memname">
483 <tr>
484 <td class="memname">detail::tquat&lt;T&gt; glm::gtc::quaternion::rotate </td>
485 <td>(</td>
486 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
487 <td class="paramname"><em>q</em>, </td>
212488 </tr>
213489 <tr>
214490 <td class="paramkey"></td>
215491 <td></td>
216 <td class="paramtype">T const &amp;&#160;</td>
217 <td class="paramname"><em>right</em>, </td>
492 <td class="paramtype">typename detail::tquat&lt; T &gt;::value_type const &amp;&#160;</td>
493 <td class="paramname"><em>angle</em>, </td>
218494 </tr>
219495 <tr>
220496 <td class="paramkey"></td>
221497 <td></td>
222 <td class="paramtype">T const &amp;&#160;</td>
223 <td class="paramname"><em>bottom</em>, </td>
224 </tr>
225 <tr>
226 <td class="paramkey"></td>
227 <td></td>
228 <td class="paramtype">T const &amp;&#160;</td>
229 <td class="paramname"><em>top</em>&#160;</td>
498 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
499 <td class="paramname"><em>v</em>&#160;</td>
230500 </tr>
231501 <tr>
232502 <td></td>
237507 </div>
238508 <div class="memdoc">
239509
240 <p>Creates a matrix for projecting two-dimensional coordinates onto the screen. </p>
241 <p>From GLM_GTC_matrix_transform extension. </p>
242
243 </div>
244 </div>
245 <a class="anchor" id="gad25e5b029ebefac5b657861378c17aa8"></a><!-- doxytag: member="glm::gtc::matrix_transform::ortho" ref="gad25e5b029ebefac5b657861378c17aa8" args="(T const &amp;left, T const &amp;right, T const &amp;bottom, T const &amp;top, T const &amp;zNear, T const &amp;zFar)" -->
246 <div class="memitem">
247 <div class="memproto">
248 <table class="memname">
249 <tr>
250 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::ortho </td>
251 <td>(</td>
252 <td class="paramtype">T const &amp;&#160;</td>
253 <td class="paramname"><em>left</em>, </td>
254 </tr>
255 <tr>
256 <td class="paramkey"></td>
257 <td></td>
258 <td class="paramtype">T const &amp;&#160;</td>
259 <td class="paramname"><em>right</em>, </td>
260 </tr>
261 <tr>
262 <td class="paramkey"></td>
263 <td></td>
264 <td class="paramtype">T const &amp;&#160;</td>
265 <td class="paramname"><em>bottom</em>, </td>
266 </tr>
267 <tr>
268 <td class="paramkey"></td>
269 <td></td>
270 <td class="paramtype">T const &amp;&#160;</td>
271 <td class="paramname"><em>top</em>, </td>
272 </tr>
273 <tr>
274 <td class="paramkey"></td>
275 <td></td>
276 <td class="paramtype">T const &amp;&#160;</td>
277 <td class="paramname"><em>zNear</em>, </td>
278 </tr>
279 <tr>
280 <td class="paramkey"></td>
281 <td></td>
282 <td class="paramtype">T const &amp;&#160;</td>
283 <td class="paramname"><em>zFar</em>&#160;</td>
284 </tr>
285 <tr>
286 <td></td>
287 <td>)</td>
288 <td></td><td></td>
289 </tr>
290 </table>
291 </div>
292 <div class="memdoc">
293
294 <p>Creates a matrix for an orthographic parallel viewing volume. </p>
295 <p>From GLM_GTC_matrix_transform extension. </p>
296
297 </div>
298 </div>
299 <a class="anchor" id="ga1bb3652e43f824d8c1dd5b9e60c80437"></a><!-- doxytag: member="glm::gtc::matrix_transform::perspective" ref="ga1bb3652e43f824d8c1dd5b9e60c80437" args="(T const &amp;fovy, T const &amp;aspect, T const &amp;zNear, T const &amp;zFar)" -->
300 <div class="memitem">
301 <div class="memproto">
302 <table class="memname">
303 <tr>
304 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::perspective </td>
305 <td>(</td>
306 <td class="paramtype">T const &amp;&#160;</td>
307 <td class="paramname"><em>fovy</em>, </td>
308 </tr>
309 <tr>
310 <td class="paramkey"></td>
311 <td></td>
312 <td class="paramtype">T const &amp;&#160;</td>
313 <td class="paramname"><em>aspect</em>, </td>
314 </tr>
315 <tr>
316 <td class="paramkey"></td>
317 <td></td>
318 <td class="paramtype">T const &amp;&#160;</td>
319 <td class="paramname"><em>zNear</em>, </td>
320 </tr>
321 <tr>
322 <td class="paramkey"></td>
323 <td></td>
324 <td class="paramtype">T const &amp;&#160;</td>
325 <td class="paramname"><em>zFar</em>&#160;</td>
326 </tr>
327 <tr>
328 <td></td>
329 <td>)</td>
330 <td></td><td></td>
331 </tr>
332 </table>
333 </div>
334 <div class="memdoc">
335
336 <p>Creates a matrix for a symetric perspective-view frustum. </p>
337 <p>From GLM_GTC_matrix_transform extension. </p>
338
339 </div>
340 </div>
341 <a class="anchor" id="ga2d4fab691ace1abbffb3cdd4cc2316e9"></a><!-- doxytag: member="glm::gtc::matrix_transform::perspectiveFov" ref="ga2d4fab691ace1abbffb3cdd4cc2316e9" args="(valType const &amp;fov, valType const &amp;width, valType const &amp;height, valType const &amp;zNear, valType const &amp;zFar)" -->
342 <div class="memitem">
343 <div class="memproto">
344 <table class="memname">
345 <tr>
346 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtc::matrix_transform::perspectiveFov </td>
347 <td>(</td>
348 <td class="paramtype">valType const &amp;&#160;</td>
349 <td class="paramname"><em>fov</em>, </td>
350 </tr>
351 <tr>
352 <td class="paramkey"></td>
353 <td></td>
354 <td class="paramtype">valType const &amp;&#160;</td>
355 <td class="paramname"><em>width</em>, </td>
356 </tr>
357 <tr>
358 <td class="paramkey"></td>
359 <td></td>
360 <td class="paramtype">valType const &amp;&#160;</td>
361 <td class="paramname"><em>height</em>, </td>
362 </tr>
363 <tr>
364 <td class="paramkey"></td>
365 <td></td>
366 <td class="paramtype">valType const &amp;&#160;</td>
367 <td class="paramname"><em>zNear</em>, </td>
368 </tr>
369 <tr>
370 <td class="paramkey"></td>
371 <td></td>
372 <td class="paramtype">valType const &amp;&#160;</td>
373 <td class="paramname"><em>zFar</em>&#160;</td>
374 </tr>
375 <tr>
376 <td></td>
377 <td>)</td>
378 <td></td><td></td>
379 </tr>
380 </table>
381 </div>
382 <div class="memdoc">
383
384 <p>Builds a perspective projection matrix based on a field of view From GLM_GTC_matrix_transform extension. </p>
385
386 </div>
387 </div>
388 <a class="anchor" id="ga9ebc45c333c8ec63c5047d6c1fcb9415"></a><!-- doxytag: member="glm::gtc::matrix_transform::pickMatrix" ref="ga9ebc45c333c8ec63c5047d6c1fcb9415" args="(detail::tvec2&lt; T &gt; const &amp;center, detail::tvec2&lt; T &gt; const &amp;delta, detail::tvec4&lt; U &gt; const &amp;viewport)" -->
389 <div class="memitem">
390 <div class="memproto">
391 <table class="memname">
392 <tr>
393 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::pickMatrix </td>
394 <td>(</td>
395 <td class="paramtype">detail::tvec2&lt; T &gt; const &amp;&#160;</td>
396 <td class="paramname"><em>center</em>, </td>
397 </tr>
398 <tr>
399 <td class="paramkey"></td>
400 <td></td>
401 <td class="paramtype">detail::tvec2&lt; T &gt; const &amp;&#160;</td>
402 <td class="paramname"><em>delta</em>, </td>
403 </tr>
404 <tr>
405 <td class="paramkey"></td>
406 <td></td>
407 <td class="paramtype">detail::tvec4&lt; U &gt; const &amp;&#160;</td>
408 <td class="paramname"><em>viewport</em>&#160;</td>
409 </tr>
410 <tr>
411 <td></td>
412 <td>)</td>
413 <td></td><td></td>
414 </tr>
415 </table>
416 </div>
417 <div class="memdoc">
418
419 <p>Define a picking region From GLM_GTC_matrix_transform extension. </p>
420
421 </div>
422 </div>
423 <a class="anchor" id="ga30e98d64189bae49582de8373de9f09f"></a><!-- doxytag: member="glm::gtc::matrix_transform::project" ref="ga30e98d64189bae49582de8373de9f09f" args="(detail::tvec3&lt; T &gt; const &amp;obj, detail::tmat4x4&lt; T &gt; const &amp;model, detail::tmat4x4&lt; T &gt; const &amp;proj, detail::tvec4&lt; U &gt; const &amp;viewport)" -->
424 <div class="memitem">
425 <div class="memproto">
426 <table class="memname">
427 <tr>
428 <td class="memname">detail::tvec3&lt;T&gt; glm::gtc::matrix_transform::project </td>
429 <td>(</td>
430 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
431 <td class="paramname"><em>obj</em>, </td>
432 </tr>
433 <tr>
434 <td class="paramkey"></td>
435 <td></td>
436 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
437 <td class="paramname"><em>model</em>, </td>
438 </tr>
439 <tr>
440 <td class="paramkey"></td>
441 <td></td>
442 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
443 <td class="paramname"><em>proj</em>, </td>
444 </tr>
445 <tr>
446 <td class="paramkey"></td>
447 <td></td>
448 <td class="paramtype">detail::tvec4&lt; U &gt; const &amp;&#160;</td>
449 <td class="paramname"><em>viewport</em>&#160;</td>
450 </tr>
451 <tr>
452 <td></td>
453 <td>)</td>
454 <td></td><td></td>
455 </tr>
456 </table>
457 </div>
458 <div class="memdoc">
459
460 <p>Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. </p>
461 <p>From GLM_GTC_matrix_transform extension. </p>
462
463 </div>
464 </div>
465 <a class="anchor" id="ga48168ff70412019857ceb28b3b2b1f5e"></a><!-- doxytag: member="glm::gtc::matrix_transform::rotate" ref="ga48168ff70412019857ceb28b3b2b1f5e" args="(detail::tmat4x4&lt; T &gt; const &amp;m, T const &amp;angle, detail::tvec3&lt; T &gt; const &amp;v)" -->
466 <div class="memitem">
467 <div class="memproto">
468 <table class="memname">
469 <tr>
470 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::rotate </td>
471 <td>(</td>
472 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
473 <td class="paramname"><em>m</em>, </td>
474 </tr>
475 <tr>
476 <td class="paramkey"></td>
477 <td></td>
478 <td class="paramtype">T const &amp;&#160;</td>
479 <td class="paramname"><em>angle</em>, </td>
480 </tr>
481 <tr>
482 <td class="paramkey"></td>
483 <td></td>
484 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
485 <td class="paramname"><em>v</em>&#160;</td>
486 </tr>
487 <tr>
488 <td></td>
489 <td>)</td>
490 <td></td><td></td>
491 </tr>
492 </table>
493 </div>
494 <div class="memdoc">
495
496 <p>Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees. </p>
497 <p>From GLM_GTC_matrix_transform extension. </p>
498
499 </div>
500 </div>
501 <a class="anchor" id="ga6da77ee2c33d0d33de557a37ff35b197"></a><!-- doxytag: member="glm::gtc::matrix_transform::scale" ref="ga6da77ee2c33d0d33de557a37ff35b197" args="(detail::tmat4x4&lt; T &gt; const &amp;m, detail::tvec3&lt; T &gt; const &amp;v)" -->
502 <div class="memitem">
503 <div class="memproto">
504 <table class="memname">
505 <tr>
506 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::scale </td>
507 <td>(</td>
508 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
509 <td class="paramname"><em>m</em>, </td>
510 </tr>
511 <tr>
512 <td class="paramkey"></td>
513 <td></td>
514 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
515 <td class="paramname"><em>v</em>&#160;</td>
516 </tr>
517 <tr>
518 <td></td>
519 <td>)</td>
520 <td></td><td></td>
521 </tr>
522 </table>
523 </div>
524 <div class="memdoc">
525
526 <p>Builds a scale 4 * 4 matrix created from 3 scalars. </p>
527 <p>From GLM_GTC_matrix_transform extension. </p>
528
529 </div>
530 </div>
531 <a class="anchor" id="ga4683c446c8432476750ade56f2537397"></a><!-- doxytag: member="glm::gtc::matrix_transform::translate" ref="ga4683c446c8432476750ade56f2537397" args="(detail::tmat4x4&lt; T &gt; const &amp;m, detail::tvec3&lt; T &gt; const &amp;v)" -->
532 <div class="memitem">
533 <div class="memproto">
534 <table class="memname">
535 <tr>
536 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::translate </td>
537 <td>(</td>
538 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
539 <td class="paramname"><em>m</em>, </td>
540 </tr>
541 <tr>
542 <td class="paramkey"></td>
543 <td></td>
544 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
545 <td class="paramname"><em>v</em>&#160;</td>
546 </tr>
547 <tr>
548 <td></td>
549 <td>)</td>
550 <td></td><td></td>
551 </tr>
552 </table>
553 </div>
554 <div class="memdoc">
555
556 <p>Builds a translation 4 * 4 matrix created from a vector of 3 components. </p>
557 <p>From GLM_GTC_matrix_transform extension. </p>
558
559 </div>
560 </div>
561 <a class="anchor" id="gac257959595078f003d6a0e4be6f9a2eb"></a><!-- doxytag: member="glm::gtc::matrix_transform::tweakedInfinitePerspective" ref="gac257959595078f003d6a0e4be6f9a2eb" args="(T fovy, T aspect, T zNear)" -->
562 <div class="memitem">
563 <div class="memproto">
564 <table class="memname">
565 <tr>
566 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::matrix_transform::tweakedInfinitePerspective </td>
567 <td>(</td>
568 <td class="paramtype">T&#160;</td>
569 <td class="paramname"><em>fovy</em>, </td>
570 </tr>
571 <tr>
572 <td class="paramkey"></td>
573 <td></td>
574 <td class="paramtype">T&#160;</td>
575 <td class="paramname"><em>aspect</em>, </td>
576 </tr>
577 <tr>
578 <td class="paramkey"></td>
579 <td></td>
580 <td class="paramtype">T&#160;</td>
581 <td class="paramname"><em>zNear</em>&#160;</td>
582 </tr>
583 <tr>
584 <td></td>
585 <td>)</td>
586 <td></td><td></td>
587 </tr>
588 </table>
589 </div>
590 <div class="memdoc">
591
592 <p>Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. </p>
593 <p>From GLM_GTC_matrix_transform extension. </p>
594
595 </div>
596 </div>
597 <a class="anchor" id="gac38d611231b15799a0c06c54ff1ede43"></a><!-- doxytag: member="glm::gtc::matrix_transform::unProject" ref="gac38d611231b15799a0c06c54ff1ede43" args="(detail::tvec3&lt; T &gt; const &amp;win, detail::tmat4x4&lt; T &gt; const &amp;model, detail::tmat4x4&lt; T &gt; const &amp;proj, detail::tvec4&lt; U &gt; const &amp;viewport)" -->
598 <div class="memitem">
599 <div class="memproto">
600 <table class="memname">
601 <tr>
602 <td class="memname">detail::tvec3&lt;T&gt; glm::gtc::matrix_transform::unProject </td>
603 <td>(</td>
604 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
605 <td class="paramname"><em>win</em>, </td>
606 </tr>
607 <tr>
608 <td class="paramkey"></td>
609 <td></td>
610 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
611 <td class="paramname"><em>model</em>, </td>
612 </tr>
613 <tr>
614 <td class="paramkey"></td>
615 <td></td>
616 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
617 <td class="paramname"><em>proj</em>, </td>
618 </tr>
619 <tr>
620 <td class="paramkey"></td>
621 <td></td>
622 <td class="paramtype">detail::tvec4&lt; U &gt; const &amp;&#160;</td>
623 <td class="paramname"><em>viewport</em>&#160;</td>
624 </tr>
625 <tr>
626 <td></td>
627 <td>)</td>
628 <td></td><td></td>
629 </tr>
630 </table>
631 </div>
632 <div class="memdoc">
633
634 <p>Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. </p>
635 <p>From GLM_GTC_matrix_transform extension. </p>
510 <p>Rotates a quaternion from an vector of 3 components axis and an angle expressed in degrees. </p>
511 <p>From GLM_GTC_quaternion extension. </p>
636512
637513 </div>
638514 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTC_quaternion: Quaternion types and functions</title>
4 <title>GLM_GTC_type_precision: Vector and matrix types with defined precisions.</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#nested-classes">Classes</a> &#124;
33 <a href="#typedef-members">Typedefs</a> &#124;
34 <a href="#func-members">Functions</a> </div>
32 <a href="#typedef-members">Typedefs</a> </div>
3533 <div class="headertitle">
36 <h1>GLM_GTC_quaternion: Quaternion types and functions</h1> </div>
37 <div class="ingroups"><a class="el" href="a00239.html">GTC Extensions (Stable)</a></div></div>
34 <h1>GLM_GTC_type_precision: Vector and matrix types with defined precisions.</h1> </div>
35 <div class="ingroups"><a class="el" href="a00238.html">GTC Extensions (Stable)</a></div></div>
3836 <div class="contents">
3937
40 <p>Defines a templated quaternion type and several quaternion operations.
38 <p>Defines specific C++-based precision types.
4139 <a href="#_details">More...</a></p>
4240 <table class="memberdecls">
43 <tr><td colspan="2"><h2><a name="nested-classes"></a>
44 Classes</h2></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00019.html">tquat&lt; T &gt;</a></td></tr>
46 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template for quaternion. <a href="a00019.html#_details">More...</a><br/></td></tr>
4741 <tr><td colspan="2"><h2><a name="typedef-members"></a>
4842 Typedefs</h2></td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tquat&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga5428321324094c7170d6133c8139d255">dquat</a></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tquat&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaae07c293efbe1c530ff18044a15fe662">fquat</a></td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tquat<br class="typebreak"/>
52 &lt; detail::thalf &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga552e75db1669a7a86b59070d4efd6941">hquat</a></td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top">typedef detail::tquat&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga60408579db470456070a3336295625a7">quat</a></td></tr>
54 <tr><td colspan="2"><h2><a name="func-members"></a>
55 Functions</h2></td></tr>
56 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#gac66280c86e8efa619ad7dddb2d475aa7">conjugate</a> (detail::tquat&lt; T &gt; const &amp;q)</td></tr>
58 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#ga6fe2d33aa0cdf188ab362355ad4108c4">cross</a> (detail::tquat&lt; T &gt; const &amp;q1, detail::tquat&lt; T &gt; const &amp;q2)</td></tr>
60 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
61 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#gaae0285ab092999b98c4f4c8455eeee9f">dot</a> (detail::tquat&lt; T &gt; const &amp;q1, detail::tquat&lt; T &gt; const &amp;q2)</td></tr>
62 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#ga12e7d58d287f181ec2ebf47bc6af6c5c">inverse</a> (detail::tquat&lt; T &gt; const &amp;q)</td></tr>
64 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#gabb546279ee6acebe3fe64dce79e7e9f0">length</a> (detail::tquat&lt; T &gt; const &amp;q)</td></tr>
66 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
67 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#ga38702707009c743e9f304aadc25aeeeb">mat3_cast</a> (detail::tquat&lt; T &gt; const &amp;x)</td></tr>
68 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#gae2d14d52f9fef3da00cf867f9e2e3dfa">mat4_cast</a> (detail::tquat&lt; T &gt; const &amp;x)</td></tr>
70 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#ga99e0097254662e3d4d5859fa329762ca">mix</a> (detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, typename detail::tquat&lt; T &gt;::value_type const &amp;a)</td></tr>
72 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
73 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#gacca9518d4cb79922ccbcd2d01e886421">normalize</a> (detail::tquat&lt; T &gt; const &amp;q)</td></tr>
74 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#ga188746bbede6cf3cee5337f1f1c6da5b">quat_cast</a> (detail::tmat4x4&lt; T &gt; const &amp;x)</td></tr>
76 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#ga9a8fa3c0a776ce21fde307d94f5a5a52">quat_cast</a> (detail::tmat3x3&lt; T &gt; const &amp;x)</td></tr>
78 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
79 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00245.html#ga98c5928aefea9c200a285a5f1c3a0da5">rotate</a> (detail::tquat&lt; T &gt; const &amp;q, typename detail::tquat&lt; T &gt;::value_type const &amp;angle, detail::tvec3&lt; T &gt; const &amp;v)</td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3ca1b6511bcc12516b5fd76c7976f01b"></a><!-- doxytag: member="gtc_type_precision::f16" ref="ga3ca1b6511bcc12516b5fd76c7976f01b" args="" -->
44 typedef float16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae16f41dbae14d92fb946080a0a868de9"></a><!-- doxytag: member="gtc_type_precision::f16mat2" ref="gae16f41dbae14d92fb946080a0a868de9" args="" -->
46 typedef detail::tmat2x2&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gae16f41dbae14d92fb946080a0a868de9">f16mat2</a></td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0251c24813cf14f31851e506ccaca8e3"></a><!-- doxytag: member="gtc_type_precision::f16mat2x2" ref="ga0251c24813cf14f31851e506ccaca8e3" args="" -->
48 typedef detail::tmat2x2&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga0251c24813cf14f31851e506ccaca8e3">f16mat2x2</a></td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga75b44fd9278b87d63926bf6cb83a90ce"></a><!-- doxytag: member="gtc_type_precision::f16mat2x3" ref="ga75b44fd9278b87d63926bf6cb83a90ce" args="" -->
50 typedef detail::tmat2x3&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga75b44fd9278b87d63926bf6cb83a90ce">f16mat2x3</a></td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5f7b279e5d36687a69f75cf2f95b64c5"></a><!-- doxytag: member="gtc_type_precision::f16mat2x4" ref="ga5f7b279e5d36687a69f75cf2f95b64c5" args="" -->
52 typedef detail::tmat2x4&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga5f7b279e5d36687a69f75cf2f95b64c5">f16mat2x4</a></td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3ada76173b353ee8615dcd70dbf7fe7f"></a><!-- doxytag: member="gtc_type_precision::f16mat3" ref="ga3ada76173b353ee8615dcd70dbf7fe7f" args="" -->
54 typedef detail::tmat3x3&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga3ada76173b353ee8615dcd70dbf7fe7f">f16mat3</a></td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacc55b3fc1bd509b96f5f291b019b0c3a"></a><!-- doxytag: member="gtc_type_precision::f16mat3x2" ref="gacc55b3fc1bd509b96f5f291b019b0c3a" args="" -->
56 typedef detail::tmat3x2&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gacc55b3fc1bd509b96f5f291b019b0c3a">f16mat3x2</a></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4fe684c085caee45c79f6b8e2a8a498e"></a><!-- doxytag: member="gtc_type_precision::f16mat3x3" ref="ga4fe684c085caee45c79f6b8e2a8a498e" args="" -->
58 typedef detail::tmat3x3&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga4fe684c085caee45c79f6b8e2a8a498e">f16mat3x3</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeefd948e1360ef7fe65201482f07e379"></a><!-- doxytag: member="gtc_type_precision::f16mat3x4" ref="gaeefd948e1360ef7fe65201482f07e379" args="" -->
60 typedef detail::tmat3x4&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaeefd948e1360ef7fe65201482f07e379">f16mat3x4</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac12c1d9b5e7ef301c81b23cd555c5be9"></a><!-- doxytag: member="gtc_type_precision::f16mat4" ref="gac12c1d9b5e7ef301c81b23cd555c5be9" args="" -->
62 typedef detail::tmat4x4&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gac12c1d9b5e7ef301c81b23cd555c5be9">f16mat4</a></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad18e575d7bc47e6d696366712724c31a"></a><!-- doxytag: member="gtc_type_precision::f16mat4x2" ref="gad18e575d7bc47e6d696366712724c31a" args="" -->
64 typedef detail::tmat4x2&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gad18e575d7bc47e6d696366712724c31a">f16mat4x2</a></td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38e54b583ed34891b3dc3fcd8f194a44"></a><!-- doxytag: member="gtc_type_precision::f16mat4x3" ref="ga38e54b583ed34891b3dc3fcd8f194a44" args="" -->
66 typedef detail::tmat4x3&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga38e54b583ed34891b3dc3fcd8f194a44">f16mat4x3</a></td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga996f1e97233164dd076fad915b1f4b2a"></a><!-- doxytag: member="gtc_type_precision::f16mat4x4" ref="ga996f1e97233164dd076fad915b1f4b2a" args="" -->
68 typedef detail::tmat4x4&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga996f1e97233164dd076fad915b1f4b2a">f16mat4x4</a></td></tr>
69 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38cc7dfd875fb2a5d07101972bf96bfb"></a><!-- doxytag: member="gtc_type_precision::f16quat" ref="ga38cc7dfd875fb2a5d07101972bf96bfb" args="" -->
70 typedef detail::tquat&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga38cc7dfd875fb2a5d07101972bf96bfb">f16quat</a></td></tr>
71 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac29c0992aa0fe2df8f9b6b9edc220822"></a><!-- doxytag: member="gtc_type_precision::f16vec2" ref="gac29c0992aa0fe2df8f9b6b9edc220822" args="" -->
72 typedef detail::tvec2&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gac29c0992aa0fe2df8f9b6b9edc220822">f16vec2</a></td></tr>
73 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa68a583d3e3b202e1b48c7bc94964c78"></a><!-- doxytag: member="gtc_type_precision::f16vec3" ref="gaa68a583d3e3b202e1b48c7bc94964c78" args="" -->
74 typedef detail::tvec3&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaa68a583d3e3b202e1b48c7bc94964c78">f16vec3</a></td></tr>
75 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae77767db0311f307255a057fd7358704"></a><!-- doxytag: member="gtc_type_precision::f16vec4" ref="gae77767db0311f307255a057fd7358704" args="" -->
76 typedef detail::tvec4&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gae77767db0311f307255a057fd7358704">f16vec4</a></td></tr>
77 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"></a><!-- doxytag: member="gtc_type_precision::f32" ref="gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" args="" -->
78 typedef float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a></td></tr>
79 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaffc1dddbdfee9006f65dec7490cef35"></a><!-- doxytag: member="gtc_type_precision::f32mat2" ref="gaaffc1dddbdfee9006f65dec7490cef35" args="" -->
80 typedef detail::tmat2x2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaaffc1dddbdfee9006f65dec7490cef35">f32mat2</a></td></tr>
81 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9b851abbec4f37c06604e5b612b764a3"></a><!-- doxytag: member="gtc_type_precision::f32mat2x2" ref="ga9b851abbec4f37c06604e5b612b764a3" args="" -->
82 typedef detail::tmat2x2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga9b851abbec4f37c06604e5b612b764a3">f32mat2x2</a></td></tr>
83 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabc06add14a487def0be0a88cb7191310"></a><!-- doxytag: member="gtc_type_precision::f32mat2x3" ref="gabc06add14a487def0be0a88cb7191310" args="" -->
84 typedef detail::tmat2x3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gabc06add14a487def0be0a88cb7191310">f32mat2x3</a></td></tr>
85 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae7d246881a2b9bbf2933e9aa32c873f9"></a><!-- doxytag: member="gtc_type_precision::f32mat2x4" ref="gae7d246881a2b9bbf2933e9aa32c873f9" args="" -->
86 typedef detail::tmat2x4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gae7d246881a2b9bbf2933e9aa32c873f9">f32mat2x4</a></td></tr>
87 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2da36e87f1f319cd99d2870ab3be4799"></a><!-- doxytag: member="gtc_type_precision::f32mat3" ref="ga2da36e87f1f319cd99d2870ab3be4799" args="" -->
88 typedef detail::tmat3x3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga2da36e87f1f319cd99d2870ab3be4799">f32mat3</a></td></tr>
89 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3c2727aca36e2f45f4eaabc06fe859e5"></a><!-- doxytag: member="gtc_type_precision::f32mat3x2" ref="ga3c2727aca36e2f45f4eaabc06fe859e5" args="" -->
90 typedef detail::tmat3x2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga3c2727aca36e2f45f4eaabc06fe859e5">f32mat3x2</a></td></tr>
91 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad60954ab0fcc5d2fdf2573be7d359920"></a><!-- doxytag: member="gtc_type_precision::f32mat3x3" ref="gad60954ab0fcc5d2fdf2573be7d359920" args="" -->
92 typedef detail::tmat3x3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gad60954ab0fcc5d2fdf2573be7d359920">f32mat3x3</a></td></tr>
93 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga76466bef28f20c754b6f25da8138033b"></a><!-- doxytag: member="gtc_type_precision::f32mat3x4" ref="ga76466bef28f20c754b6f25da8138033b" args="" -->
94 typedef detail::tmat3x4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga76466bef28f20c754b6f25da8138033b">f32mat3x4</a></td></tr>
95 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae84e6d0a740dbbefeb29c72ca93b9202"></a><!-- doxytag: member="gtc_type_precision::f32mat4" ref="gae84e6d0a740dbbefeb29c72ca93b9202" args="" -->
96 typedef detail::tmat4x4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gae84e6d0a740dbbefeb29c72ca93b9202">f32mat4</a></td></tr>
97 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf81550e292ce3d4dd2c22960713188f3"></a><!-- doxytag: member="gtc_type_precision::f32mat4x2" ref="gaf81550e292ce3d4dd2c22960713188f3" args="" -->
98 typedef detail::tmat4x2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaf81550e292ce3d4dd2c22960713188f3">f32mat4x2</a></td></tr>
99 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0a78d326a35e18803e7ae7a49d2c738c"></a><!-- doxytag: member="gtc_type_precision::f32mat4x3" ref="ga0a78d326a35e18803e7ae7a49d2c738c" args="" -->
100 typedef detail::tmat4x3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga0a78d326a35e18803e7ae7a49d2c738c">f32mat4x3</a></td></tr>
101 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga390ae17a61ddb8a7702cd92065754633"></a><!-- doxytag: member="gtc_type_precision::f32mat4x4" ref="ga390ae17a61ddb8a7702cd92065754633" args="" -->
102 typedef detail::tmat4x4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga390ae17a61ddb8a7702cd92065754633">f32mat4x4</a></td></tr>
103 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad073de7365e4b6771de824b18b0ea7a9"></a><!-- doxytag: member="gtc_type_precision::f32quat" ref="gad073de7365e4b6771de824b18b0ea7a9" args="" -->
104 typedef detail::tquat&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gad073de7365e4b6771de824b18b0ea7a9">f32quat</a></td></tr>
105 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6a1674122ce80c7f3b77ddbc85b4d9f1"></a><!-- doxytag: member="gtc_type_precision::f32vec2" ref="ga6a1674122ce80c7f3b77ddbc85b4d9f1" args="" -->
106 typedef detail::tvec2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga6a1674122ce80c7f3b77ddbc85b4d9f1">f32vec2</a></td></tr>
107 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga81353c6a9b282b2b34185306a40040ad"></a><!-- doxytag: member="gtc_type_precision::f32vec3" ref="ga81353c6a9b282b2b34185306a40040ad" args="" -->
108 typedef detail::tvec3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga81353c6a9b282b2b34185306a40040ad">f32vec3</a></td></tr>
109 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga58dbce28a4d4b0d72c239cf3069bd28b"></a><!-- doxytag: member="gtc_type_precision::f32vec4" ref="ga58dbce28a4d4b0d72c239cf3069bd28b" args="" -->
110 typedef detail::tvec4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga58dbce28a4d4b0d72c239cf3069bd28b">f32vec4</a></td></tr>
111 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1d794d240091678f602e8de225b8d8c9"></a><!-- doxytag: member="gtc_type_precision::f64" ref="ga1d794d240091678f602e8de225b8d8c9" args="" -->
112 typedef float64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">f64</a></td></tr>
113 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8e6af45d08751da72ddb3c8380028d0b"></a><!-- doxytag: member="gtc_type_precision::f64mat2" ref="ga8e6af45d08751da72ddb3c8380028d0b" args="" -->
114 typedef detail::tmat2x2&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga8e6af45d08751da72ddb3c8380028d0b">f64mat2</a></td></tr>
115 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga48dfaa0c23e89839f9fd43ae1d03f5de"></a><!-- doxytag: member="gtc_type_precision::f64mat2x2" ref="ga48dfaa0c23e89839f9fd43ae1d03f5de" args="" -->
116 typedef detail::tmat2x2&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga48dfaa0c23e89839f9fd43ae1d03f5de">f64mat2x2</a></td></tr>
117 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0ee61da67c73edc53648db680e0a6d59"></a><!-- doxytag: member="gtc_type_precision::f64mat2x3" ref="ga0ee61da67c73edc53648db680e0a6d59" args="" -->
118 typedef detail::tmat2x3&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga0ee61da67c73edc53648db680e0a6d59">f64mat2x3</a></td></tr>
119 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga95a3099cce2b620027a9164324787a14"></a><!-- doxytag: member="gtc_type_precision::f64mat2x4" ref="ga95a3099cce2b620027a9164324787a14" args="" -->
120 typedef detail::tmat2x4&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga95a3099cce2b620027a9164324787a14">f64mat2x4</a></td></tr>
121 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae394301075475e6759f0835a251d497e"></a><!-- doxytag: member="gtc_type_precision::f64mat3" ref="gae394301075475e6759f0835a251d497e" args="" -->
122 typedef detail::tmat3x3&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gae394301075475e6759f0835a251d497e">f64mat3</a></td></tr>
123 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga24ab90298c753e8da92ba333ef2f7f71"></a><!-- doxytag: member="gtc_type_precision::f64mat3x2" ref="ga24ab90298c753e8da92ba333ef2f7f71" args="" -->
124 typedef detail::tmat3x2&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga24ab90298c753e8da92ba333ef2f7f71">f64mat3x2</a></td></tr>
125 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5dfbb37bd5e0a221b1627172e052a168"></a><!-- doxytag: member="gtc_type_precision::f64mat3x3" ref="ga5dfbb37bd5e0a221b1627172e052a168" args="" -->
126 typedef detail::tmat3x3&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga5dfbb37bd5e0a221b1627172e052a168">f64mat3x3</a></td></tr>
127 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaecc98ee8c67aaca82e817d2cf4028cd7"></a><!-- doxytag: member="gtc_type_precision::f64mat3x4" ref="gaecc98ee8c67aaca82e817d2cf4028cd7" args="" -->
128 typedef detail::tmat3x4&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaecc98ee8c67aaca82e817d2cf4028cd7">f64mat3x4</a></td></tr>
129 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4c6042a4ef0df9c92b94dd8a30df3f82"></a><!-- doxytag: member="gtc_type_precision::f64mat4" ref="ga4c6042a4ef0df9c92b94dd8a30df3f82" args="" -->
130 typedef detail::tmat4x4&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga4c6042a4ef0df9c92b94dd8a30df3f82">f64mat4</a></td></tr>
131 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac99d22a5ada54ab33aad0cd208d20e48"></a><!-- doxytag: member="gtc_type_precision::f64mat4x2" ref="gac99d22a5ada54ab33aad0cd208d20e48" args="" -->
132 typedef detail::tmat4x2&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gac99d22a5ada54ab33aad0cd208d20e48">f64mat4x2</a></td></tr>
133 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1e10cbf50386189533011ef827204920"></a><!-- doxytag: member="gtc_type_precision::f64mat4x3" ref="ga1e10cbf50386189533011ef827204920" args="" -->
134 typedef detail::tmat4x3&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga1e10cbf50386189533011ef827204920">f64mat4x3</a></td></tr>
135 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5efb4fb73bf79baf00cda64d318bfdb5"></a><!-- doxytag: member="gtc_type_precision::f64mat4x4" ref="ga5efb4fb73bf79baf00cda64d318bfdb5" args="" -->
136 typedef detail::tmat4x4&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga5efb4fb73bf79baf00cda64d318bfdb5">f64mat4x4</a></td></tr>
137 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38a458ff317f21cf58ceed99dde5daaa"></a><!-- doxytag: member="gtc_type_precision::f64quat" ref="ga38a458ff317f21cf58ceed99dde5daaa" args="" -->
138 typedef detail::tquat&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga38a458ff317f21cf58ceed99dde5daaa">f64quat</a></td></tr>
139 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1de31e7b24d714613b83fb704b8b1fd1"></a><!-- doxytag: member="gtc_type_precision::f64vec2" ref="ga1de31e7b24d714613b83fb704b8b1fd1" args="" -->
140 typedef detail::tvec2&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga1de31e7b24d714613b83fb704b8b1fd1">f64vec2</a></td></tr>
141 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2a4b3d9e62dc8c9b970e91c38bb56997"></a><!-- doxytag: member="gtc_type_precision::f64vec3" ref="ga2a4b3d9e62dc8c9b970e91c38bb56997" args="" -->
142 typedef detail::tvec3&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga2a4b3d9e62dc8c9b970e91c38bb56997">f64vec3</a></td></tr>
143 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga66999872051fdf1934199af093eedece"></a><!-- doxytag: member="gtc_type_precision::f64vec4" ref="ga66999872051fdf1934199af093eedece" args="" -->
144 typedef detail::tvec4&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga66999872051fdf1934199af093eedece">f64vec4</a></td></tr>
145 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga19287ee46bd37d1459731d7191bc2f66"></a><!-- doxytag: member="gtc_type_precision::float16" ref="ga19287ee46bd37d1459731d7191bc2f66" args="" -->
146 typedef detail::float16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga19287ee46bd37d1459731d7191bc2f66">float16</a></td></tr>
147 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad3c127f8bf8d7d4e738037c257abb5b1"></a><!-- doxytag: member="gtc_type_precision::float32" ref="gad3c127f8bf8d7d4e738037c257abb5b1" args="" -->
148 typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a></td></tr>
149 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab5596d48586414c91ccb270962dc14d3"></a><!-- doxytag: member="gtc_type_precision::float64" ref="gab5596d48586414c91ccb270962dc14d3" args="" -->
150 typedef detail::float64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gab5596d48586414c91ccb270962dc14d3">float64</a></td></tr>
151 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaee87d6e282960e7c75bfb1371def1fc6"></a><!-- doxytag: member="gtc_type_precision::fmat2" ref="gaee87d6e282960e7c75bfb1371def1fc6" args="" -->
152 typedef detail::tmat2x2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaee87d6e282960e7c75bfb1371def1fc6">fmat2</a></td></tr>
153 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1c9d98f605e9194e6febfc8c390f21e2"></a><!-- doxytag: member="gtc_type_precision::fmat2x2" ref="ga1c9d98f605e9194e6febfc8c390f21e2" args="" -->
154 typedef detail::tmat2x2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga1c9d98f605e9194e6febfc8c390f21e2">fmat2x2</a></td></tr>
155 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5a49e7e42cb7826309dfe5914ff7adb2"></a><!-- doxytag: member="gtc_type_precision::fmat2x3" ref="ga5a49e7e42cb7826309dfe5914ff7adb2" args="" -->
156 typedef detail::tmat2x3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga5a49e7e42cb7826309dfe5914ff7adb2">fmat2x3</a></td></tr>
157 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga17af021ba84b81a88cd8ff5415737082"></a><!-- doxytag: member="gtc_type_precision::fmat2x4" ref="ga17af021ba84b81a88cd8ff5415737082" args="" -->
158 typedef detail::tmat2x4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga17af021ba84b81a88cd8ff5415737082">fmat2x4</a></td></tr>
159 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga885ab2670ad608f174889cc5779e814c"></a><!-- doxytag: member="gtc_type_precision::fmat3" ref="ga885ab2670ad608f174889cc5779e814c" args="" -->
160 typedef detail::tmat3x3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga885ab2670ad608f174889cc5779e814c">fmat3</a></td></tr>
161 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabb5363b848026b7819e8df12f9eba807"></a><!-- doxytag: member="gtc_type_precision::fmat3x2" ref="gabb5363b848026b7819e8df12f9eba807" args="" -->
162 typedef detail::tmat3x2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gabb5363b848026b7819e8df12f9eba807">fmat3x2</a></td></tr>
163 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae3cec4e7ffbfce5fc693f70693b67bdd"></a><!-- doxytag: member="gtc_type_precision::fmat3x3" ref="gae3cec4e7ffbfce5fc693f70693b67bdd" args="" -->
164 typedef detail::tmat3x3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gae3cec4e7ffbfce5fc693f70693b67bdd">fmat3x3</a></td></tr>
165 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8cc18a8db872ac321446a0ec76d0f4c9"></a><!-- doxytag: member="gtc_type_precision::fmat3x4" ref="ga8cc18a8db872ac321446a0ec76d0f4c9" args="" -->
166 typedef detail::tmat3x4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga8cc18a8db872ac321446a0ec76d0f4c9">fmat3x4</a></td></tr>
167 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga17a80f33494617743e6156e125c2333d"></a><!-- doxytag: member="gtc_type_precision::fmat4" ref="ga17a80f33494617743e6156e125c2333d" args="" -->
168 typedef detail::tmat4x4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga17a80f33494617743e6156e125c2333d">fmat4</a></td></tr>
169 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga730c05a1fd676cedcecd74595866bb35"></a><!-- doxytag: member="gtc_type_precision::fmat4x2" ref="ga730c05a1fd676cedcecd74595866bb35" args="" -->
170 typedef detail::tmat4x2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga730c05a1fd676cedcecd74595866bb35">fmat4x2</a></td></tr>
171 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac9d68d8ad27aceea1814b96b1e8fc92e"></a><!-- doxytag: member="gtc_type_precision::fmat4x3" ref="gac9d68d8ad27aceea1814b96b1e8fc92e" args="" -->
172 typedef detail::tmat4x3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gac9d68d8ad27aceea1814b96b1e8fc92e">fmat4x3</a></td></tr>
173 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5a1741d5e03b4a99ad1728a8e8c65a38"></a><!-- doxytag: member="gtc_type_precision::fmat4x4" ref="ga5a1741d5e03b4a99ad1728a8e8c65a38" args="" -->
174 typedef detail::tmat4x4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga5a1741d5e03b4a99ad1728a8e8c65a38">fmat4x4</a></td></tr>
175 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeb3201411f8933fae30fe36b3fb1db90"></a><!-- doxytag: member="gtc_type_precision::fvec2" ref="gaeb3201411f8933fae30fe36b3fb1db90" args="" -->
176 typedef detail::tvec2&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaeb3201411f8933fae30fe36b3fb1db90">fvec2</a></td></tr>
177 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga36d8bc27da6e04285ab3b11d0af061b0"></a><!-- doxytag: member="gtc_type_precision::fvec3" ref="ga36d8bc27da6e04285ab3b11d0af061b0" args="" -->
178 typedef detail::tvec3&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga36d8bc27da6e04285ab3b11d0af061b0">fvec3</a></td></tr>
179 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac8e4776e86d01ed43b2dce32db2c72ba"></a><!-- doxytag: member="gtc_type_precision::fvec4" ref="gac8e4776e86d01ed43b2dce32db2c72ba" args="" -->
180 typedef detail::tvec4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gac8e4776e86d01ed43b2dce32db2c72ba">fvec4</a></td></tr>
181 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga47ad84e86d8eef23a5ebab2815242a0d"></a><!-- doxytag: member="gtc_type_precision::i16" ref="ga47ad84e86d8eef23a5ebab2815242a0d" args="" -->
182 typedef int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d">i16</a></td></tr>
183 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6a9c8e79629016f081cd3274eeafe429"></a><!-- doxytag: member="gtc_type_precision::i16vec2" ref="ga6a9c8e79629016f081cd3274eeafe429" args="" -->
184 typedef detail::tvec2&lt; i16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga6a9c8e79629016f081cd3274eeafe429">i16vec2</a></td></tr>
185 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga539ac09149e338c783bc492fd25d504c"></a><!-- doxytag: member="gtc_type_precision::i16vec3" ref="ga539ac09149e338c783bc492fd25d504c" args="" -->
186 typedef detail::tvec3&lt; i16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga539ac09149e338c783bc492fd25d504c">i16vec3</a></td></tr>
187 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga09c99e80eb63c8df7a9cc4021c8a2811"></a><!-- doxytag: member="gtc_type_precision::i16vec4" ref="ga09c99e80eb63c8df7a9cc4021c8a2811" args="" -->
188 typedef detail::tvec4&lt; i16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga09c99e80eb63c8df7a9cc4021c8a2811">i16vec4</a></td></tr>
189 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga324db08ffb2a193f9a10864288b94523"></a><!-- doxytag: member="gtc_type_precision::i32" ref="ga324db08ffb2a193f9a10864288b94523" args="" -->
190 typedef int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga324db08ffb2a193f9a10864288b94523">i32</a></td></tr>
191 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga587a33330386e50f7ff9a870f1b62ab1"></a><!-- doxytag: member="gtc_type_precision::i32vec2" ref="ga587a33330386e50f7ff9a870f1b62ab1" args="" -->
192 typedef detail::tvec2&lt; i32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga587a33330386e50f7ff9a870f1b62ab1">i32vec2</a></td></tr>
193 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae8b7bb7698c98fb69f2a4aff8a757416"></a><!-- doxytag: member="gtc_type_precision::i32vec3" ref="gae8b7bb7698c98fb69f2a4aff8a757416" args="" -->
194 typedef detail::tvec3&lt; i32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gae8b7bb7698c98fb69f2a4aff8a757416">i32vec3</a></td></tr>
195 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa82f1d2958dfcc463a2498d52ee80a0a"></a><!-- doxytag: member="gtc_type_precision::i32vec4" ref="gaa82f1d2958dfcc463a2498d52ee80a0a" args="" -->
196 typedef detail::tvec4&lt; i32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaa82f1d2958dfcc463a2498d52ee80a0a">i32vec4</a></td></tr>
197 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga60abe2e6e0bacb893a2d6d17cc50f753"></a><!-- doxytag: member="gtc_type_precision::i64" ref="ga60abe2e6e0bacb893a2d6d17cc50f753" args="" -->
198 typedef int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753">i64</a></td></tr>
199 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7a6245c652f68ba306c05bb0d4ca1361"></a><!-- doxytag: member="gtc_type_precision::i64vec2" ref="ga7a6245c652f68ba306c05bb0d4ca1361" args="" -->
200 typedef detail::tvec2&lt; i64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga7a6245c652f68ba306c05bb0d4ca1361">i64vec2</a></td></tr>
201 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga78ad50b24382913ef6068ded644c9f3f"></a><!-- doxytag: member="gtc_type_precision::i64vec3" ref="ga78ad50b24382913ef6068ded644c9f3f" args="" -->
202 typedef detail::tvec3&lt; i64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga78ad50b24382913ef6068ded644c9f3f">i64vec3</a></td></tr>
203 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8392ac39a51731ab9a5b3f23a5eaf1d7"></a><!-- doxytag: member="gtc_type_precision::i64vec4" ref="ga8392ac39a51731ab9a5b3f23a5eaf1d7" args="" -->
204 typedef detail::tvec4&lt; i64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga8392ac39a51731ab9a5b3f23a5eaf1d7">i64vec4</a></td></tr>
205 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga112f99168645b5338136b72eddd12895"></a><!-- doxytag: member="gtc_type_precision::i8" ref="ga112f99168645b5338136b72eddd12895" args="" -->
206 typedef int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga112f99168645b5338136b72eddd12895">i8</a></td></tr>
207 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9ab3f26fa232d5a4d2397d7904eb9069"></a><!-- doxytag: member="gtc_type_precision::i8vec2" ref="ga9ab3f26fa232d5a4d2397d7904eb9069" args="" -->
208 typedef detail::tvec2&lt; i8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga9ab3f26fa232d5a4d2397d7904eb9069">i8vec2</a></td></tr>
209 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa8c91ad088bbbd51f2ef3b7701f00ed9"></a><!-- doxytag: member="gtc_type_precision::i8vec3" ref="gaa8c91ad088bbbd51f2ef3b7701f00ed9" args="" -->
210 typedef detail::tvec3&lt; i8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaa8c91ad088bbbd51f2ef3b7701f00ed9">i8vec3</a></td></tr>
211 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga792e1b3e596a020df28a8eb4ec3c0708"></a><!-- doxytag: member="gtc_type_precision::i8vec4" ref="ga792e1b3e596a020df28a8eb4ec3c0708" args="" -->
212 typedef detail::tvec4&lt; i8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga792e1b3e596a020df28a8eb4ec3c0708">i8vec4</a></td></tr>
213 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga302041c186d0d028bea31b711fe16759"></a><!-- doxytag: member="gtc_type_precision::int16" ref="ga302041c186d0d028bea31b711fe16759" args="" -->
214 typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga302041c186d0d028bea31b711fe16759">int16</a></td></tr>
215 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8df669f4e7698dfe0c0354d92578d74f"></a><!-- doxytag: member="gtc_type_precision::int32" ref="ga8df669f4e7698dfe0c0354d92578d74f" args="" -->
216 typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a></td></tr>
217 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaff5189f97f9e842d9636a0f240001b2e"></a><!-- doxytag: member="gtc_type_precision::int64" ref="gaff5189f97f9e842d9636a0f240001b2e" args="" -->
218 typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a></td></tr>
219 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga41c6189f6485c2825d60fdc835b3a2b0"></a><!-- doxytag: member="gtc_type_precision::int8" ref="ga41c6189f6485c2825d60fdc835b3a2b0" args="" -->
220 typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a></td></tr>
221 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga91ec65f57d610f6902fd081f1d1e265a"></a><!-- doxytag: member="gtc_type_precision::u16" ref="ga91ec65f57d610f6902fd081f1d1e265a" args="" -->
222 typedef uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a">u16</a></td></tr>
223 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga63f78111033fd19335588c549fcc0512"></a><!-- doxytag: member="gtc_type_precision::u16vec2" ref="ga63f78111033fd19335588c549fcc0512" args="" -->
224 typedef detail::tvec2&lt; u16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga63f78111033fd19335588c549fcc0512">u16vec2</a></td></tr>
225 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga53d4785d0f40c66bf58b315dd1122fe4"></a><!-- doxytag: member="gtc_type_precision::u16vec3" ref="ga53d4785d0f40c66bf58b315dd1122fe4" args="" -->
226 typedef detail::tvec3&lt; u16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga53d4785d0f40c66bf58b315dd1122fe4">u16vec3</a></td></tr>
227 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0331a2b68ce5f72a450f6d45c90f7709"></a><!-- doxytag: member="gtc_type_precision::u16vec4" ref="ga0331a2b68ce5f72a450f6d45c90f7709" args="" -->
228 typedef detail::tvec4&lt; u16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga0331a2b68ce5f72a450f6d45c90f7709">u16vec4</a></td></tr>
229 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0bb0c4c53d0a5ea2c01d0bb363b56722"></a><!-- doxytag: member="gtc_type_precision::u32" ref="ga0bb0c4c53d0a5ea2c01d0bb363b56722" args="" -->
230 typedef uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">u32</a></td></tr>
231 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaae1d6aa5d86a2744294b97e05b623e29"></a><!-- doxytag: member="gtc_type_precision::u32vec2" ref="gaae1d6aa5d86a2744294b97e05b623e29" args="" -->
232 typedef detail::tvec2&lt; u32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gaae1d6aa5d86a2744294b97e05b623e29">u32vec2</a></td></tr>
233 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae013bd205f900d8ac3d783e62c9fa294"></a><!-- doxytag: member="gtc_type_precision::u32vec3" ref="gae013bd205f900d8ac3d783e62c9fa294" args="" -->
234 typedef detail::tvec3&lt; u32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gae013bd205f900d8ac3d783e62c9fa294">u32vec3</a></td></tr>
235 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac61f03e72cbcace4582b0c11859f54c7"></a><!-- doxytag: member="gtc_type_precision::u32vec4" ref="gac61f03e72cbcace4582b0c11859f54c7" args="" -->
236 typedef detail::tvec4&lt; u32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gac61f03e72cbcace4582b0c11859f54c7">u32vec4</a></td></tr>
237 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga02ecb7390e4c4515df2268d18f99abc0"></a><!-- doxytag: member="gtc_type_precision::u64" ref="ga02ecb7390e4c4515df2268d18f99abc0" args="" -->
238 typedef uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0">u64</a></td></tr>
239 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga98265c5d66ab4bf19f4242746233526c"></a><!-- doxytag: member="gtc_type_precision::u64vec2" ref="ga98265c5d66ab4bf19f4242746233526c" args="" -->
240 typedef detail::tvec2&lt; u64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga98265c5d66ab4bf19f4242746233526c">u64vec2</a></td></tr>
241 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga470cfa496aae49e63c5becee347651a1"></a><!-- doxytag: member="gtc_type_precision::u64vec3" ref="ga470cfa496aae49e63c5becee347651a1" args="" -->
242 typedef detail::tvec3&lt; u64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga470cfa496aae49e63c5becee347651a1">u64vec3</a></td></tr>
243 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga34a421d3df867266c9437dc00897edeb"></a><!-- doxytag: member="gtc_type_precision::u64vec4" ref="ga34a421d3df867266c9437dc00897edeb" args="" -->
244 typedef detail::tvec4&lt; u64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga34a421d3df867266c9437dc00897edeb">u64vec4</a></td></tr>
245 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad8d9dbef83392da434801486bf814fe4"></a><!-- doxytag: member="gtc_type_precision::u8" ref="gad8d9dbef83392da434801486bf814fe4" args="" -->
246 typedef uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gad8d9dbef83392da434801486bf814fe4">u8</a></td></tr>
247 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8f78a1ea21be24a89da31928fc037bfd"></a><!-- doxytag: member="gtc_type_precision::u8vec2" ref="ga8f78a1ea21be24a89da31928fc037bfd" args="" -->
248 typedef detail::tvec2&lt; u8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga8f78a1ea21be24a89da31928fc037bfd">u8vec2</a></td></tr>
249 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7a4cb62a556ad09c7e0721aecac64dbd"></a><!-- doxytag: member="gtc_type_precision::u8vec3" ref="ga7a4cb62a556ad09c7e0721aecac64dbd" args="" -->
250 typedef detail::tvec3&lt; u8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga7a4cb62a556ad09c7e0721aecac64dbd">u8vec3</a></td></tr>
251 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83091381b9b909057004c4de7896d072"></a><!-- doxytag: member="gtc_type_precision::u8vec4" ref="ga83091381b9b909057004c4de7896d072" args="" -->
252 typedef detail::tvec4&lt; u8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga83091381b9b909057004c4de7896d072">u8vec4</a></td></tr>
253 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga13471cbbe74e4303a57f3743d007b74d"></a><!-- doxytag: member="gtc_type_precision::uint16" ref="ga13471cbbe74e4303a57f3743d007b74d" args="" -->
254 typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a></td></tr>
255 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5fa3ddcab56c789bc272ff5651faa12d"></a><!-- doxytag: member="gtc_type_precision::uint32" ref="ga5fa3ddcab56c789bc272ff5651faa12d" args="" -->
256 typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a></td></tr>
257 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab630f76c26b50298187f7889104d4b9c"></a><!-- doxytag: member="gtc_type_precision::uint64" ref="gab630f76c26b50298187f7889104d4b9c" args="" -->
258 typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#gab630f76c26b50298187f7889104d4b9c">uint64</a></td></tr>
259 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga36475e31b1992cfde54c1a6f5a148865"></a><!-- doxytag: member="gtc_type_precision::uint8" ref="ga36475e31b1992cfde54c1a6f5a148865" args="" -->
260 typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a></td></tr>
80261 </table>
81262 <hr/><a name="_details"></a><h2>Detailed Description</h2>
82 <p>Defines a templated quaternion type and several quaternion operations. </p>
83 <p>&lt;<a class="el" href="a00094_source.html">glm/gtc/quaternion.hpp</a>&gt; need to be included to use these functionalities. </p>
84 <hr/><h2>Typedef Documentation</h2>
85 <a class="anchor" id="ga5428321324094c7170d6133c8139d255"></a><!-- doxytag: member="glm::gtc::quaternion::dquat" ref="ga5428321324094c7170d6133c8139d255" args="" -->
86 <div class="memitem">
87 <div class="memproto">
88 <table class="memname">
89 <tr>
90 <td class="memname">typedef detail::tquat&lt;double&gt; dquat</td>
91 </tr>
92 </table>
93 </div>
94 <div class="memdoc">
95
96 <p>Quaternion of double-precision floating-point numbers. </p>
97 <p>From GLM_GTC_quaternion extension. </p>
98
99 <p>Definition at line <a class="el" href="a00094_source.html#l00223">223</a> of file <a class="el" href="a00094_source.html">gtc/quaternion.hpp</a>.</p>
100
101 </div>
102 </div>
103 <a class="anchor" id="gaae07c293efbe1c530ff18044a15fe662"></a><!-- doxytag: member="glm::gtc::quaternion::fquat" ref="gaae07c293efbe1c530ff18044a15fe662" args="" -->
104 <div class="memitem">
105 <div class="memproto">
106 <table class="memname">
107 <tr>
108 <td class="memname">typedef detail::tquat&lt;float&gt; fquat</td>
109 </tr>
110 </table>
111 </div>
112 <div class="memdoc">
113
114 <p>Quaternion of single-precision floating-point numbers. </p>
115 <p>From GLM_GTC_quaternion extension. </p>
116
117 <p>Definition at line <a class="el" href="a00094_source.html#l00219">219</a> of file <a class="el" href="a00094_source.html">gtc/quaternion.hpp</a>.</p>
118
119 </div>
120 </div>
121 <a class="anchor" id="ga552e75db1669a7a86b59070d4efd6941"></a><!-- doxytag: member="glm::gtc::quaternion::hquat" ref="ga552e75db1669a7a86b59070d4efd6941" args="" -->
122 <div class="memitem">
123 <div class="memproto">
124 <table class="memname">
125 <tr>
126 <td class="memname">typedef detail::tquat&lt;detail::thalf&gt; hquat</td>
127 </tr>
128 </table>
129 </div>
130 <div class="memdoc">
131
132 <p>Quaternion of half-precision floating-point numbers. </p>
133 <p>From GLM_GTC_quaternion extension. </p>
134
135 <p>Definition at line <a class="el" href="a00094_source.html#l00215">215</a> of file <a class="el" href="a00094_source.html">gtc/quaternion.hpp</a>.</p>
136
137 </div>
138 </div>
139 <a class="anchor" id="ga60408579db470456070a3336295625a7"></a><!-- doxytag: member="glm::gtc::quaternion::quat" ref="ga60408579db470456070a3336295625a7" args="" -->
140 <div class="memitem">
141 <div class="memproto">
142 <table class="memname">
143 <tr>
144 <td class="memname">typedef detail::tquat&lt;float&gt; quat</td>
145 </tr>
146 </table>
147 </div>
148 <div class="memdoc">
149
150 <p>Quaternion of floating-point numbers. </p>
151 <p>From GLM_GTC_quaternion extension. </p>
152
153 <p>Definition at line <a class="el" href="a00094_source.html#l00211">211</a> of file <a class="el" href="a00094_source.html">gtc/quaternion.hpp</a>.</p>
154
155 </div>
156 </div>
157 <hr/><h2>Function Documentation</h2>
158 <a class="anchor" id="gac66280c86e8efa619ad7dddb2d475aa7"></a><!-- doxytag: member="glm::gtc::quaternion::conjugate" ref="gac66280c86e8efa619ad7dddb2d475aa7" args="(detail::tquat&lt; T &gt; const &amp;q)" -->
159 <div class="memitem">
160 <div class="memproto">
161 <table class="memname">
162 <tr>
163 <td class="memname">detail::tquat&lt;T&gt; glm::gtc::quaternion::conjugate </td>
164 <td>(</td>
165 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
166 <td class="paramname"><em>q</em></td><td>)</td>
167 <td></td>
168 </tr>
169 </table>
170 </div>
171 <div class="memdoc">
172
173 <p>Returns the q conjugate. </p>
174 <p>From GLM_GTC_quaternion extension. </p>
175
176 </div>
177 </div>
178 <a class="anchor" id="ga6fe2d33aa0cdf188ab362355ad4108c4"></a><!-- doxytag: member="glm::gtc::quaternion::cross" ref="ga6fe2d33aa0cdf188ab362355ad4108c4" args="(detail::tquat&lt; T &gt; const &amp;q1, detail::tquat&lt; T &gt; const &amp;q2)" -->
179 <div class="memitem">
180 <div class="memproto">
181 <table class="memname">
182 <tr>
183 <td class="memname">GLM_DEPRECATED detail::tquat&lt;T&gt; glm::gtc::quaternion::cross </td>
184 <td>(</td>
185 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
186 <td class="paramname"><em>q1</em>, </td>
187 </tr>
188 <tr>
189 <td class="paramkey"></td>
190 <td></td>
191 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
192 <td class="paramname"><em>q2</em>&#160;</td>
193 </tr>
194 <tr>
195 <td></td>
196 <td>)</td>
197 <td></td><td></td>
198 </tr>
199 </table>
200 </div>
201 <div class="memdoc">
202
203 <p>Returns the cross product of q1 and q2. </p>
204 <p>From GLM_GTC_quaternion extension. </p>
205
206 </div>
207 </div>
208 <a class="anchor" id="gaae0285ab092999b98c4f4c8455eeee9f"></a><!-- doxytag: member="glm::gtc::quaternion::dot" ref="gaae0285ab092999b98c4f4c8455eeee9f" args="(detail::tquat&lt; T &gt; const &amp;q1, detail::tquat&lt; T &gt; const &amp;q2)" -->
209 <div class="memitem">
210 <div class="memproto">
211 <table class="memname">
212 <tr>
213 <td class="memname">detail::tquat&lt;T&gt;::value_type glm::gtc::quaternion::dot </td>
214 <td>(</td>
215 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
216 <td class="paramname"><em>q1</em>, </td>
217 </tr>
218 <tr>
219 <td class="paramkey"></td>
220 <td></td>
221 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
222 <td class="paramname"><em>q2</em>&#160;</td>
223 </tr>
224 <tr>
225 <td></td>
226 <td>)</td>
227 <td></td><td></td>
228 </tr>
229 </table>
230 </div>
231 <div class="memdoc">
232
233 <p>Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... </p>
234 <p>From GLM_GTC_quaternion extension. </p>
235
236 </div>
237 </div>
238 <a class="anchor" id="ga12e7d58d287f181ec2ebf47bc6af6c5c"></a><!-- doxytag: member="glm::gtc::quaternion::inverse" ref="ga12e7d58d287f181ec2ebf47bc6af6c5c" args="(detail::tquat&lt; T &gt; const &amp;q)" -->
239 <div class="memitem">
240 <div class="memproto">
241 <table class="memname">
242 <tr>
243 <td class="memname">detail::tquat&lt;T&gt; glm::gtc::quaternion::inverse </td>
244 <td>(</td>
245 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
246 <td class="paramname"><em>q</em></td><td>)</td>
247 <td></td>
248 </tr>
249 </table>
250 </div>
251 <div class="memdoc">
252
253 <p>Returns the q inverse. </p>
254 <p>From GLM_GTC_quaternion extension. </p>
255
256 </div>
257 </div>
258 <a class="anchor" id="gabb546279ee6acebe3fe64dce79e7e9f0"></a><!-- doxytag: member="glm::gtc::quaternion::length" ref="gabb546279ee6acebe3fe64dce79e7e9f0" args="(detail::tquat&lt; T &gt; const &amp;q)" -->
259 <div class="memitem">
260 <div class="memproto">
261 <table class="memname">
262 <tr>
263 <td class="memname">detail::tquat&lt;T&gt;::value_type glm::gtc::quaternion::length </td>
264 <td>(</td>
265 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
266 <td class="paramname"><em>q</em></td><td>)</td>
267 <td></td>
268 </tr>
269 </table>
270 </div>
271 <div class="memdoc">
272
273 <p>Returns the length of the quaternion x. </p>
274 <p>From GLM_GTC_quaternion extension. </p>
275
276 </div>
277 </div>
278 <a class="anchor" id="ga38702707009c743e9f304aadc25aeeeb"></a><!-- doxytag: member="glm::gtc::quaternion::mat3_cast" ref="ga38702707009c743e9f304aadc25aeeeb" args="(detail::tquat&lt; T &gt; const &amp;x)" -->
279 <div class="memitem">
280 <div class="memproto">
281 <table class="memname">
282 <tr>
283 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtc::quaternion::mat3_cast </td>
284 <td>(</td>
285 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
286 <td class="paramname"><em>x</em></td><td>)</td>
287 <td></td>
288 </tr>
289 </table>
290 </div>
291 <div class="memdoc">
292
293 <p>Converts a quaternion to a 3 * 3 matrix. </p>
294 <p>From GLM_GTC_quaternion extension. </p>
295
296 <p>Referenced by <a class="el" href="a00095_source.html#l00173">glm::gtx::quaternion::toMat3()</a>.</p>
297
298 </div>
299 </div>
300 <a class="anchor" id="gae2d14d52f9fef3da00cf867f9e2e3dfa"></a><!-- doxytag: member="glm::gtc::quaternion::mat4_cast" ref="gae2d14d52f9fef3da00cf867f9e2e3dfa" args="(detail::tquat&lt; T &gt; const &amp;x)" -->
301 <div class="memitem">
302 <div class="memproto">
303 <table class="memname">
304 <tr>
305 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtc::quaternion::mat4_cast </td>
306 <td>(</td>
307 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
308 <td class="paramname"><em>x</em></td><td>)</td>
309 <td></td>
310 </tr>
311 </table>
312 </div>
313 <div class="memdoc">
314
315 <p>Converts a quaternion to a 4 * 4 matrix. </p>
316 <p>From GLM_GTC_quaternion extension. </p>
317
318 <p>Referenced by <a class="el" href="a00095_source.html#l00179">glm::gtx::quaternion::toMat4()</a>.</p>
319
320 </div>
321 </div>
322 <a class="anchor" id="ga99e0097254662e3d4d5859fa329762ca"></a><!-- doxytag: member="glm::gtc::quaternion::mix" ref="ga99e0097254662e3d4d5859fa329762ca" args="(detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, typename detail::tquat&lt; T &gt;::value_type const &amp;a)" -->
323 <div class="memitem">
324 <div class="memproto">
325 <table class="memname">
326 <tr>
327 <td class="memname">detail::tquat&lt;T&gt; glm::gtc::quaternion::mix </td>
328 <td>(</td>
329 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
330 <td class="paramname"><em>x</em>, </td>
331 </tr>
332 <tr>
333 <td class="paramkey"></td>
334 <td></td>
335 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
336 <td class="paramname"><em>y</em>, </td>
337 </tr>
338 <tr>
339 <td class="paramkey"></td>
340 <td></td>
341 <td class="paramtype">typename detail::tquat&lt; T &gt;::value_type const &amp;&#160;</td>
342 <td class="paramname"><em>a</em>&#160;</td>
343 </tr>
344 <tr>
345 <td></td>
346 <td>)</td>
347 <td></td><td></td>
348 </tr>
349 </table>
350 </div>
351 <div class="memdoc">
352
353 <p>Returns a SLERP interpolated quaternion of x and y according a. </p>
354 <p>From GLM_GTC_quaternion extension. </p>
355
356 </div>
357 </div>
358 <a class="anchor" id="gacca9518d4cb79922ccbcd2d01e886421"></a><!-- doxytag: member="glm::gtc::quaternion::normalize" ref="gacca9518d4cb79922ccbcd2d01e886421" args="(detail::tquat&lt; T &gt; const &amp;q)" -->
359 <div class="memitem">
360 <div class="memproto">
361 <table class="memname">
362 <tr>
363 <td class="memname">detail::tquat&lt;T&gt; glm::gtc::quaternion::normalize </td>
364 <td>(</td>
365 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
366 <td class="paramname"><em>q</em></td><td>)</td>
367 <td></td>
368 </tr>
369 </table>
370 </div>
371 <div class="memdoc">
372
373 <p>Returns the normalized quaternion of from x. </p>
374 <p>From GLM_GTC_quaternion extension. </p>
375
376 </div>
377 </div>
378 <a class="anchor" id="ga188746bbede6cf3cee5337f1f1c6da5b"></a><!-- doxytag: member="glm::gtc::quaternion::quat_cast" ref="ga188746bbede6cf3cee5337f1f1c6da5b" args="(detail::tmat4x4&lt; T &gt; const &amp;x)" -->
379 <div class="memitem">
380 <div class="memproto">
381 <table class="memname">
382 <tr>
383 <td class="memname">detail::tquat&lt;T&gt; glm::gtc::quaternion::quat_cast </td>
384 <td>(</td>
385 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
386 <td class="paramname"><em>x</em></td><td>)</td>
387 <td></td>
388 </tr>
389 </table>
390 </div>
391 <div class="memdoc">
392
393 <p>Converts a 4 * 4 matrix to a quaternion. </p>
394 <p>From GLM_GTC_quaternion extension. </p>
395
396 </div>
397 </div>
398 <a class="anchor" id="ga9a8fa3c0a776ce21fde307d94f5a5a52"></a><!-- doxytag: member="glm::gtc::quaternion::quat_cast" ref="ga9a8fa3c0a776ce21fde307d94f5a5a52" args="(detail::tmat3x3&lt; T &gt; const &amp;x)" -->
399 <div class="memitem">
400 <div class="memproto">
401 <table class="memname">
402 <tr>
403 <td class="memname">detail::tquat&lt;T&gt; glm::gtc::quaternion::quat_cast </td>
404 <td>(</td>
405 <td class="paramtype">detail::tmat3x3&lt; T &gt; const &amp;&#160;</td>
406 <td class="paramname"><em>x</em></td><td>)</td>
407 <td></td>
408 </tr>
409 </table>
410 </div>
411 <div class="memdoc">
412
413 <p>Converts a 3 * 3 matrix to a quaternion. </p>
414 <p>From GLM_GTC_quaternion extension. </p>
415
416 <p>Referenced by <a class="el" href="a00095_source.html#l00185">glm::gtx::quaternion::toQuat()</a>.</p>
417
418 </div>
419 </div>
420 <a class="anchor" id="ga98c5928aefea9c200a285a5f1c3a0da5"></a><!-- doxytag: member="glm::gtc::quaternion::rotate" ref="ga98c5928aefea9c200a285a5f1c3a0da5" args="(detail::tquat&lt; T &gt; const &amp;q, typename detail::tquat&lt; T &gt;::value_type const &amp;angle, detail::tvec3&lt; T &gt; const &amp;v)" -->
421 <div class="memitem">
422 <div class="memproto">
423 <table class="memname">
424 <tr>
425 <td class="memname">detail::tquat&lt;T&gt; glm::gtc::quaternion::rotate </td>
426 <td>(</td>
427 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
428 <td class="paramname"><em>q</em>, </td>
429 </tr>
430 <tr>
431 <td class="paramkey"></td>
432 <td></td>
433 <td class="paramtype">typename detail::tquat&lt; T &gt;::value_type const &amp;&#160;</td>
434 <td class="paramname"><em>angle</em>, </td>
435 </tr>
436 <tr>
437 <td class="paramkey"></td>
438 <td></td>
439 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
440 <td class="paramname"><em>v</em>&#160;</td>
441 </tr>
442 <tr>
443 <td></td>
444 <td>)</td>
445 <td></td><td></td>
446 </tr>
447 </table>
448 </div>
449 <div class="memdoc">
450
451 <p>Rotates a quaternion from an vector of 3 components axis and an angle expressed in degrees. </p>
452 <p>From GLM_GTC_quaternion extension. </p>
453
454 </div>
455 </div>
263 <p>Defines specific C++-based precision types. </p>
264 <p><a class="el" href="a00235.html">Precision types</a> defines types based on GLSL's precision qualifiers. This extension defines types based on explicitly-sized C++ data types.</p>
265 <p>&lt;<a class="el" href="a00125_source.html">glm/gtc/type_precision.hpp</a>&gt; need to be included to use these functionalities. </p>
456266 </div>
457267 <hr class="footer"/><address class="footer"><small>Generated by&#160;
458268 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTC_type_precision: Vector and matrix types with defined precisions.</title>
4 <title>GLM_GTC_type_ptr: Memory layout access.</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#typedef-members">Typedefs</a> </div>
32 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTC_type_precision: Vector and matrix types with defined precisions.</h1> </div>
35 <div class="ingroups"><a class="el" href="a00239.html">GTC Extensions (Stable)</a></div></div>
34 <h1>GLM_GTC_type_ptr: Memory layout access.</h1> </div>
35 <div class="ingroups"><a class="el" href="a00238.html">GTC Extensions (Stable)</a></div></div>
3636 <div class="contents">
3737
38 <p>Defines specific C++-based precision types.
38 <p>Used to get a pointer to the memory layout of a basic type.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
41 <tr><td colspan="2"><h2><a name="typedef-members"></a>
42 Typedefs</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3ca1b6511bcc12516b5fd76c7976f01b"></a><!-- doxytag: member="gtc_type_precision::f16" ref="ga3ca1b6511bcc12516b5fd76c7976f01b" args="" -->
44 typedef float16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">f16</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae16f41dbae14d92fb946080a0a868de9"></a><!-- doxytag: member="gtc_type_precision::f16mat2" ref="gae16f41dbae14d92fb946080a0a868de9" args="" -->
46 typedef detail::tmat2x2&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gae16f41dbae14d92fb946080a0a868de9">f16mat2</a></td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0251c24813cf14f31851e506ccaca8e3"></a><!-- doxytag: member="gtc_type_precision::f16mat2x2" ref="ga0251c24813cf14f31851e506ccaca8e3" args="" -->
48 typedef detail::tmat2x2&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga0251c24813cf14f31851e506ccaca8e3">f16mat2x2</a></td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga75b44fd9278b87d63926bf6cb83a90ce"></a><!-- doxytag: member="gtc_type_precision::f16mat2x3" ref="ga75b44fd9278b87d63926bf6cb83a90ce" args="" -->
50 typedef detail::tmat2x3&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga75b44fd9278b87d63926bf6cb83a90ce">f16mat2x3</a></td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5f7b279e5d36687a69f75cf2f95b64c5"></a><!-- doxytag: member="gtc_type_precision::f16mat2x4" ref="ga5f7b279e5d36687a69f75cf2f95b64c5" args="" -->
52 typedef detail::tmat2x4&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga5f7b279e5d36687a69f75cf2f95b64c5">f16mat2x4</a></td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3ada76173b353ee8615dcd70dbf7fe7f"></a><!-- doxytag: member="gtc_type_precision::f16mat3" ref="ga3ada76173b353ee8615dcd70dbf7fe7f" args="" -->
54 typedef detail::tmat3x3&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga3ada76173b353ee8615dcd70dbf7fe7f">f16mat3</a></td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacc55b3fc1bd509b96f5f291b019b0c3a"></a><!-- doxytag: member="gtc_type_precision::f16mat3x2" ref="gacc55b3fc1bd509b96f5f291b019b0c3a" args="" -->
56 typedef detail::tmat3x2&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gacc55b3fc1bd509b96f5f291b019b0c3a">f16mat3x2</a></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4fe684c085caee45c79f6b8e2a8a498e"></a><!-- doxytag: member="gtc_type_precision::f16mat3x3" ref="ga4fe684c085caee45c79f6b8e2a8a498e" args="" -->
58 typedef detail::tmat3x3&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga4fe684c085caee45c79f6b8e2a8a498e">f16mat3x3</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeefd948e1360ef7fe65201482f07e379"></a><!-- doxytag: member="gtc_type_precision::f16mat3x4" ref="gaeefd948e1360ef7fe65201482f07e379" args="" -->
60 typedef detail::tmat3x4&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaeefd948e1360ef7fe65201482f07e379">f16mat3x4</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac12c1d9b5e7ef301c81b23cd555c5be9"></a><!-- doxytag: member="gtc_type_precision::f16mat4" ref="gac12c1d9b5e7ef301c81b23cd555c5be9" args="" -->
62 typedef detail::tmat4x4&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gac12c1d9b5e7ef301c81b23cd555c5be9">f16mat4</a></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad18e575d7bc47e6d696366712724c31a"></a><!-- doxytag: member="gtc_type_precision::f16mat4x2" ref="gad18e575d7bc47e6d696366712724c31a" args="" -->
64 typedef detail::tmat4x2&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gad18e575d7bc47e6d696366712724c31a">f16mat4x2</a></td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38e54b583ed34891b3dc3fcd8f194a44"></a><!-- doxytag: member="gtc_type_precision::f16mat4x3" ref="ga38e54b583ed34891b3dc3fcd8f194a44" args="" -->
66 typedef detail::tmat4x3&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga38e54b583ed34891b3dc3fcd8f194a44">f16mat4x3</a></td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga996f1e97233164dd076fad915b1f4b2a"></a><!-- doxytag: member="gtc_type_precision::f16mat4x4" ref="ga996f1e97233164dd076fad915b1f4b2a" args="" -->
68 typedef detail::tmat4x4&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga996f1e97233164dd076fad915b1f4b2a">f16mat4x4</a></td></tr>
69 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38cc7dfd875fb2a5d07101972bf96bfb"></a><!-- doxytag: member="gtc_type_precision::f16quat" ref="ga38cc7dfd875fb2a5d07101972bf96bfb" args="" -->
70 typedef detail::tquat&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga38cc7dfd875fb2a5d07101972bf96bfb">f16quat</a></td></tr>
71 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac29c0992aa0fe2df8f9b6b9edc220822"></a><!-- doxytag: member="gtc_type_precision::f16vec2" ref="gac29c0992aa0fe2df8f9b6b9edc220822" args="" -->
72 typedef detail::tvec2&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gac29c0992aa0fe2df8f9b6b9edc220822">f16vec2</a></td></tr>
73 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa68a583d3e3b202e1b48c7bc94964c78"></a><!-- doxytag: member="gtc_type_precision::f16vec3" ref="gaa68a583d3e3b202e1b48c7bc94964c78" args="" -->
74 typedef detail::tvec3&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaa68a583d3e3b202e1b48c7bc94964c78">f16vec3</a></td></tr>
75 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae77767db0311f307255a057fd7358704"></a><!-- doxytag: member="gtc_type_precision::f16vec4" ref="gae77767db0311f307255a057fd7358704" args="" -->
76 typedef detail::tvec4&lt; f16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gae77767db0311f307255a057fd7358704">f16vec4</a></td></tr>
77 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"></a><!-- doxytag: member="gtc_type_precision::f32" ref="gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" args="" -->
78 typedef float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a></td></tr>
79 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaffc1dddbdfee9006f65dec7490cef35"></a><!-- doxytag: member="gtc_type_precision::f32mat2" ref="gaaffc1dddbdfee9006f65dec7490cef35" args="" -->
80 typedef detail::tmat2x2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaaffc1dddbdfee9006f65dec7490cef35">f32mat2</a></td></tr>
81 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9b851abbec4f37c06604e5b612b764a3"></a><!-- doxytag: member="gtc_type_precision::f32mat2x2" ref="ga9b851abbec4f37c06604e5b612b764a3" args="" -->
82 typedef detail::tmat2x2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga9b851abbec4f37c06604e5b612b764a3">f32mat2x2</a></td></tr>
83 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabc06add14a487def0be0a88cb7191310"></a><!-- doxytag: member="gtc_type_precision::f32mat2x3" ref="gabc06add14a487def0be0a88cb7191310" args="" -->
84 typedef detail::tmat2x3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gabc06add14a487def0be0a88cb7191310">f32mat2x3</a></td></tr>
85 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae7d246881a2b9bbf2933e9aa32c873f9"></a><!-- doxytag: member="gtc_type_precision::f32mat2x4" ref="gae7d246881a2b9bbf2933e9aa32c873f9" args="" -->
86 typedef detail::tmat2x4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gae7d246881a2b9bbf2933e9aa32c873f9">f32mat2x4</a></td></tr>
87 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2da36e87f1f319cd99d2870ab3be4799"></a><!-- doxytag: member="gtc_type_precision::f32mat3" ref="ga2da36e87f1f319cd99d2870ab3be4799" args="" -->
88 typedef detail::tmat3x3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga2da36e87f1f319cd99d2870ab3be4799">f32mat3</a></td></tr>
89 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3c2727aca36e2f45f4eaabc06fe859e5"></a><!-- doxytag: member="gtc_type_precision::f32mat3x2" ref="ga3c2727aca36e2f45f4eaabc06fe859e5" args="" -->
90 typedef detail::tmat3x2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga3c2727aca36e2f45f4eaabc06fe859e5">f32mat3x2</a></td></tr>
91 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad60954ab0fcc5d2fdf2573be7d359920"></a><!-- doxytag: member="gtc_type_precision::f32mat3x3" ref="gad60954ab0fcc5d2fdf2573be7d359920" args="" -->
92 typedef detail::tmat3x3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gad60954ab0fcc5d2fdf2573be7d359920">f32mat3x3</a></td></tr>
93 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga76466bef28f20c754b6f25da8138033b"></a><!-- doxytag: member="gtc_type_precision::f32mat3x4" ref="ga76466bef28f20c754b6f25da8138033b" args="" -->
94 typedef detail::tmat3x4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga76466bef28f20c754b6f25da8138033b">f32mat3x4</a></td></tr>
95 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae84e6d0a740dbbefeb29c72ca93b9202"></a><!-- doxytag: member="gtc_type_precision::f32mat4" ref="gae84e6d0a740dbbefeb29c72ca93b9202" args="" -->
96 typedef detail::tmat4x4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gae84e6d0a740dbbefeb29c72ca93b9202">f32mat4</a></td></tr>
97 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf81550e292ce3d4dd2c22960713188f3"></a><!-- doxytag: member="gtc_type_precision::f32mat4x2" ref="gaf81550e292ce3d4dd2c22960713188f3" args="" -->
98 typedef detail::tmat4x2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaf81550e292ce3d4dd2c22960713188f3">f32mat4x2</a></td></tr>
99 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0a78d326a35e18803e7ae7a49d2c738c"></a><!-- doxytag: member="gtc_type_precision::f32mat4x3" ref="ga0a78d326a35e18803e7ae7a49d2c738c" args="" -->
100 typedef detail::tmat4x3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga0a78d326a35e18803e7ae7a49d2c738c">f32mat4x3</a></td></tr>
101 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga390ae17a61ddb8a7702cd92065754633"></a><!-- doxytag: member="gtc_type_precision::f32mat4x4" ref="ga390ae17a61ddb8a7702cd92065754633" args="" -->
102 typedef detail::tmat4x4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga390ae17a61ddb8a7702cd92065754633">f32mat4x4</a></td></tr>
103 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad073de7365e4b6771de824b18b0ea7a9"></a><!-- doxytag: member="gtc_type_precision::f32quat" ref="gad073de7365e4b6771de824b18b0ea7a9" args="" -->
104 typedef detail::tquat&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gad073de7365e4b6771de824b18b0ea7a9">f32quat</a></td></tr>
105 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6a1674122ce80c7f3b77ddbc85b4d9f1"></a><!-- doxytag: member="gtc_type_precision::f32vec2" ref="ga6a1674122ce80c7f3b77ddbc85b4d9f1" args="" -->
106 typedef detail::tvec2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga6a1674122ce80c7f3b77ddbc85b4d9f1">f32vec2</a></td></tr>
107 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga81353c6a9b282b2b34185306a40040ad"></a><!-- doxytag: member="gtc_type_precision::f32vec3" ref="ga81353c6a9b282b2b34185306a40040ad" args="" -->
108 typedef detail::tvec3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga81353c6a9b282b2b34185306a40040ad">f32vec3</a></td></tr>
109 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga58dbce28a4d4b0d72c239cf3069bd28b"></a><!-- doxytag: member="gtc_type_precision::f32vec4" ref="ga58dbce28a4d4b0d72c239cf3069bd28b" args="" -->
110 typedef detail::tvec4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga58dbce28a4d4b0d72c239cf3069bd28b">f32vec4</a></td></tr>
111 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1d794d240091678f602e8de225b8d8c9"></a><!-- doxytag: member="gtc_type_precision::f64" ref="ga1d794d240091678f602e8de225b8d8c9" args="" -->
112 typedef float64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">f64</a></td></tr>
113 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8e6af45d08751da72ddb3c8380028d0b"></a><!-- doxytag: member="gtc_type_precision::f64mat2" ref="ga8e6af45d08751da72ddb3c8380028d0b" args="" -->
114 typedef detail::tmat2x2&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga8e6af45d08751da72ddb3c8380028d0b">f64mat2</a></td></tr>
115 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga48dfaa0c23e89839f9fd43ae1d03f5de"></a><!-- doxytag: member="gtc_type_precision::f64mat2x2" ref="ga48dfaa0c23e89839f9fd43ae1d03f5de" args="" -->
116 typedef detail::tmat2x2&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga48dfaa0c23e89839f9fd43ae1d03f5de">f64mat2x2</a></td></tr>
117 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0ee61da67c73edc53648db680e0a6d59"></a><!-- doxytag: member="gtc_type_precision::f64mat2x3" ref="ga0ee61da67c73edc53648db680e0a6d59" args="" -->
118 typedef detail::tmat2x3&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga0ee61da67c73edc53648db680e0a6d59">f64mat2x3</a></td></tr>
119 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga95a3099cce2b620027a9164324787a14"></a><!-- doxytag: member="gtc_type_precision::f64mat2x4" ref="ga95a3099cce2b620027a9164324787a14" args="" -->
120 typedef detail::tmat2x4&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga95a3099cce2b620027a9164324787a14">f64mat2x4</a></td></tr>
121 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae394301075475e6759f0835a251d497e"></a><!-- doxytag: member="gtc_type_precision::f64mat3" ref="gae394301075475e6759f0835a251d497e" args="" -->
122 typedef detail::tmat3x3&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gae394301075475e6759f0835a251d497e">f64mat3</a></td></tr>
123 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga24ab90298c753e8da92ba333ef2f7f71"></a><!-- doxytag: member="gtc_type_precision::f64mat3x2" ref="ga24ab90298c753e8da92ba333ef2f7f71" args="" -->
124 typedef detail::tmat3x2&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga24ab90298c753e8da92ba333ef2f7f71">f64mat3x2</a></td></tr>
125 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5dfbb37bd5e0a221b1627172e052a168"></a><!-- doxytag: member="gtc_type_precision::f64mat3x3" ref="ga5dfbb37bd5e0a221b1627172e052a168" args="" -->
126 typedef detail::tmat3x3&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga5dfbb37bd5e0a221b1627172e052a168">f64mat3x3</a></td></tr>
127 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaecc98ee8c67aaca82e817d2cf4028cd7"></a><!-- doxytag: member="gtc_type_precision::f64mat3x4" ref="gaecc98ee8c67aaca82e817d2cf4028cd7" args="" -->
128 typedef detail::tmat3x4&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaecc98ee8c67aaca82e817d2cf4028cd7">f64mat3x4</a></td></tr>
129 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4c6042a4ef0df9c92b94dd8a30df3f82"></a><!-- doxytag: member="gtc_type_precision::f64mat4" ref="ga4c6042a4ef0df9c92b94dd8a30df3f82" args="" -->
130 typedef detail::tmat4x4&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga4c6042a4ef0df9c92b94dd8a30df3f82">f64mat4</a></td></tr>
131 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac99d22a5ada54ab33aad0cd208d20e48"></a><!-- doxytag: member="gtc_type_precision::f64mat4x2" ref="gac99d22a5ada54ab33aad0cd208d20e48" args="" -->
132 typedef detail::tmat4x2&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gac99d22a5ada54ab33aad0cd208d20e48">f64mat4x2</a></td></tr>
133 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1e10cbf50386189533011ef827204920"></a><!-- doxytag: member="gtc_type_precision::f64mat4x3" ref="ga1e10cbf50386189533011ef827204920" args="" -->
134 typedef detail::tmat4x3&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga1e10cbf50386189533011ef827204920">f64mat4x3</a></td></tr>
135 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5efb4fb73bf79baf00cda64d318bfdb5"></a><!-- doxytag: member="gtc_type_precision::f64mat4x4" ref="ga5efb4fb73bf79baf00cda64d318bfdb5" args="" -->
136 typedef detail::tmat4x4&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga5efb4fb73bf79baf00cda64d318bfdb5">f64mat4x4</a></td></tr>
137 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38a458ff317f21cf58ceed99dde5daaa"></a><!-- doxytag: member="gtc_type_precision::f64quat" ref="ga38a458ff317f21cf58ceed99dde5daaa" args="" -->
138 typedef detail::tquat&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga38a458ff317f21cf58ceed99dde5daaa">f64quat</a></td></tr>
139 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1de31e7b24d714613b83fb704b8b1fd1"></a><!-- doxytag: member="gtc_type_precision::f64vec2" ref="ga1de31e7b24d714613b83fb704b8b1fd1" args="" -->
140 typedef detail::tvec2&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga1de31e7b24d714613b83fb704b8b1fd1">f64vec2</a></td></tr>
141 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2a4b3d9e62dc8c9b970e91c38bb56997"></a><!-- doxytag: member="gtc_type_precision::f64vec3" ref="ga2a4b3d9e62dc8c9b970e91c38bb56997" args="" -->
142 typedef detail::tvec3&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga2a4b3d9e62dc8c9b970e91c38bb56997">f64vec3</a></td></tr>
143 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga66999872051fdf1934199af093eedece"></a><!-- doxytag: member="gtc_type_precision::f64vec4" ref="ga66999872051fdf1934199af093eedece" args="" -->
144 typedef detail::tvec4&lt; f64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga66999872051fdf1934199af093eedece">f64vec4</a></td></tr>
145 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga19287ee46bd37d1459731d7191bc2f66"></a><!-- doxytag: member="gtc_type_precision::float16" ref="ga19287ee46bd37d1459731d7191bc2f66" args="" -->
146 typedef detail::float16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga19287ee46bd37d1459731d7191bc2f66">float16</a></td></tr>
147 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad3c127f8bf8d7d4e738037c257abb5b1"></a><!-- doxytag: member="gtc_type_precision::float32" ref="gad3c127f8bf8d7d4e738037c257abb5b1" args="" -->
148 typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a></td></tr>
149 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab5596d48586414c91ccb270962dc14d3"></a><!-- doxytag: member="gtc_type_precision::float64" ref="gab5596d48586414c91ccb270962dc14d3" args="" -->
150 typedef detail::float64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gab5596d48586414c91ccb270962dc14d3">float64</a></td></tr>
151 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaee87d6e282960e7c75bfb1371def1fc6"></a><!-- doxytag: member="gtc_type_precision::fmat2" ref="gaee87d6e282960e7c75bfb1371def1fc6" args="" -->
152 typedef detail::tmat2x2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaee87d6e282960e7c75bfb1371def1fc6">fmat2</a></td></tr>
153 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1c9d98f605e9194e6febfc8c390f21e2"></a><!-- doxytag: member="gtc_type_precision::fmat2x2" ref="ga1c9d98f605e9194e6febfc8c390f21e2" args="" -->
154 typedef detail::tmat2x2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga1c9d98f605e9194e6febfc8c390f21e2">fmat2x2</a></td></tr>
155 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5a49e7e42cb7826309dfe5914ff7adb2"></a><!-- doxytag: member="gtc_type_precision::fmat2x3" ref="ga5a49e7e42cb7826309dfe5914ff7adb2" args="" -->
156 typedef detail::tmat2x3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga5a49e7e42cb7826309dfe5914ff7adb2">fmat2x3</a></td></tr>
157 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga17af021ba84b81a88cd8ff5415737082"></a><!-- doxytag: member="gtc_type_precision::fmat2x4" ref="ga17af021ba84b81a88cd8ff5415737082" args="" -->
158 typedef detail::tmat2x4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga17af021ba84b81a88cd8ff5415737082">fmat2x4</a></td></tr>
159 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga885ab2670ad608f174889cc5779e814c"></a><!-- doxytag: member="gtc_type_precision::fmat3" ref="ga885ab2670ad608f174889cc5779e814c" args="" -->
160 typedef detail::tmat3x3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga885ab2670ad608f174889cc5779e814c">fmat3</a></td></tr>
161 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabb5363b848026b7819e8df12f9eba807"></a><!-- doxytag: member="gtc_type_precision::fmat3x2" ref="gabb5363b848026b7819e8df12f9eba807" args="" -->
162 typedef detail::tmat3x2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gabb5363b848026b7819e8df12f9eba807">fmat3x2</a></td></tr>
163 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae3cec4e7ffbfce5fc693f70693b67bdd"></a><!-- doxytag: member="gtc_type_precision::fmat3x3" ref="gae3cec4e7ffbfce5fc693f70693b67bdd" args="" -->
164 typedef detail::tmat3x3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gae3cec4e7ffbfce5fc693f70693b67bdd">fmat3x3</a></td></tr>
165 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8cc18a8db872ac321446a0ec76d0f4c9"></a><!-- doxytag: member="gtc_type_precision::fmat3x4" ref="ga8cc18a8db872ac321446a0ec76d0f4c9" args="" -->
166 typedef detail::tmat3x4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga8cc18a8db872ac321446a0ec76d0f4c9">fmat3x4</a></td></tr>
167 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga17a80f33494617743e6156e125c2333d"></a><!-- doxytag: member="gtc_type_precision::fmat4" ref="ga17a80f33494617743e6156e125c2333d" args="" -->
168 typedef detail::tmat4x4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga17a80f33494617743e6156e125c2333d">fmat4</a></td></tr>
169 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga730c05a1fd676cedcecd74595866bb35"></a><!-- doxytag: member="gtc_type_precision::fmat4x2" ref="ga730c05a1fd676cedcecd74595866bb35" args="" -->
170 typedef detail::tmat4x2&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga730c05a1fd676cedcecd74595866bb35">fmat4x2</a></td></tr>
171 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac9d68d8ad27aceea1814b96b1e8fc92e"></a><!-- doxytag: member="gtc_type_precision::fmat4x3" ref="gac9d68d8ad27aceea1814b96b1e8fc92e" args="" -->
172 typedef detail::tmat4x3&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gac9d68d8ad27aceea1814b96b1e8fc92e">fmat4x3</a></td></tr>
173 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5a1741d5e03b4a99ad1728a8e8c65a38"></a><!-- doxytag: member="gtc_type_precision::fmat4x4" ref="ga5a1741d5e03b4a99ad1728a8e8c65a38" args="" -->
174 typedef detail::tmat4x4&lt; f32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga5a1741d5e03b4a99ad1728a8e8c65a38">fmat4x4</a></td></tr>
175 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeb3201411f8933fae30fe36b3fb1db90"></a><!-- doxytag: member="gtc_type_precision::fvec2" ref="gaeb3201411f8933fae30fe36b3fb1db90" args="" -->
176 typedef detail::tvec2&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaeb3201411f8933fae30fe36b3fb1db90">fvec2</a></td></tr>
177 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga36d8bc27da6e04285ab3b11d0af061b0"></a><!-- doxytag: member="gtc_type_precision::fvec3" ref="ga36d8bc27da6e04285ab3b11d0af061b0" args="" -->
178 typedef detail::tvec3&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga36d8bc27da6e04285ab3b11d0af061b0">fvec3</a></td></tr>
179 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac8e4776e86d01ed43b2dce32db2c72ba"></a><!-- doxytag: member="gtc_type_precision::fvec4" ref="gac8e4776e86d01ed43b2dce32db2c72ba" args="" -->
180 typedef detail::tvec4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gac8e4776e86d01ed43b2dce32db2c72ba">fvec4</a></td></tr>
181 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga47ad84e86d8eef23a5ebab2815242a0d"></a><!-- doxytag: member="gtc_type_precision::i16" ref="ga47ad84e86d8eef23a5ebab2815242a0d" args="" -->
182 typedef int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga47ad84e86d8eef23a5ebab2815242a0d">i16</a></td></tr>
183 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6a9c8e79629016f081cd3274eeafe429"></a><!-- doxytag: member="gtc_type_precision::i16vec2" ref="ga6a9c8e79629016f081cd3274eeafe429" args="" -->
184 typedef detail::tvec2&lt; i16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga6a9c8e79629016f081cd3274eeafe429">i16vec2</a></td></tr>
185 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga539ac09149e338c783bc492fd25d504c"></a><!-- doxytag: member="gtc_type_precision::i16vec3" ref="ga539ac09149e338c783bc492fd25d504c" args="" -->
186 typedef detail::tvec3&lt; i16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga539ac09149e338c783bc492fd25d504c">i16vec3</a></td></tr>
187 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga09c99e80eb63c8df7a9cc4021c8a2811"></a><!-- doxytag: member="gtc_type_precision::i16vec4" ref="ga09c99e80eb63c8df7a9cc4021c8a2811" args="" -->
188 typedef detail::tvec4&lt; i16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga09c99e80eb63c8df7a9cc4021c8a2811">i16vec4</a></td></tr>
189 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga324db08ffb2a193f9a10864288b94523"></a><!-- doxytag: member="gtc_type_precision::i32" ref="ga324db08ffb2a193f9a10864288b94523" args="" -->
190 typedef int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga324db08ffb2a193f9a10864288b94523">i32</a></td></tr>
191 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga587a33330386e50f7ff9a870f1b62ab1"></a><!-- doxytag: member="gtc_type_precision::i32vec2" ref="ga587a33330386e50f7ff9a870f1b62ab1" args="" -->
192 typedef detail::tvec2&lt; i32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga587a33330386e50f7ff9a870f1b62ab1">i32vec2</a></td></tr>
193 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae8b7bb7698c98fb69f2a4aff8a757416"></a><!-- doxytag: member="gtc_type_precision::i32vec3" ref="gae8b7bb7698c98fb69f2a4aff8a757416" args="" -->
194 typedef detail::tvec3&lt; i32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gae8b7bb7698c98fb69f2a4aff8a757416">i32vec3</a></td></tr>
195 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa82f1d2958dfcc463a2498d52ee80a0a"></a><!-- doxytag: member="gtc_type_precision::i32vec4" ref="gaa82f1d2958dfcc463a2498d52ee80a0a" args="" -->
196 typedef detail::tvec4&lt; i32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaa82f1d2958dfcc463a2498d52ee80a0a">i32vec4</a></td></tr>
197 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga60abe2e6e0bacb893a2d6d17cc50f753"></a><!-- doxytag: member="gtc_type_precision::i64" ref="ga60abe2e6e0bacb893a2d6d17cc50f753" args="" -->
198 typedef int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga60abe2e6e0bacb893a2d6d17cc50f753">i64</a></td></tr>
199 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7a6245c652f68ba306c05bb0d4ca1361"></a><!-- doxytag: member="gtc_type_precision::i64vec2" ref="ga7a6245c652f68ba306c05bb0d4ca1361" args="" -->
200 typedef detail::tvec2&lt; i64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga7a6245c652f68ba306c05bb0d4ca1361">i64vec2</a></td></tr>
201 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga78ad50b24382913ef6068ded644c9f3f"></a><!-- doxytag: member="gtc_type_precision::i64vec3" ref="ga78ad50b24382913ef6068ded644c9f3f" args="" -->
202 typedef detail::tvec3&lt; i64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga78ad50b24382913ef6068ded644c9f3f">i64vec3</a></td></tr>
203 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8392ac39a51731ab9a5b3f23a5eaf1d7"></a><!-- doxytag: member="gtc_type_precision::i64vec4" ref="ga8392ac39a51731ab9a5b3f23a5eaf1d7" args="" -->
204 typedef detail::tvec4&lt; i64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga8392ac39a51731ab9a5b3f23a5eaf1d7">i64vec4</a></td></tr>
205 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga112f99168645b5338136b72eddd12895"></a><!-- doxytag: member="gtc_type_precision::i8" ref="ga112f99168645b5338136b72eddd12895" args="" -->
206 typedef int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga112f99168645b5338136b72eddd12895">i8</a></td></tr>
207 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9ab3f26fa232d5a4d2397d7904eb9069"></a><!-- doxytag: member="gtc_type_precision::i8vec2" ref="ga9ab3f26fa232d5a4d2397d7904eb9069" args="" -->
208 typedef detail::tvec2&lt; i8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga9ab3f26fa232d5a4d2397d7904eb9069">i8vec2</a></td></tr>
209 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa8c91ad088bbbd51f2ef3b7701f00ed9"></a><!-- doxytag: member="gtc_type_precision::i8vec3" ref="gaa8c91ad088bbbd51f2ef3b7701f00ed9" args="" -->
210 typedef detail::tvec3&lt; i8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaa8c91ad088bbbd51f2ef3b7701f00ed9">i8vec3</a></td></tr>
211 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga792e1b3e596a020df28a8eb4ec3c0708"></a><!-- doxytag: member="gtc_type_precision::i8vec4" ref="ga792e1b3e596a020df28a8eb4ec3c0708" args="" -->
212 typedef detail::tvec4&lt; i8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga792e1b3e596a020df28a8eb4ec3c0708">i8vec4</a></td></tr>
213 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga302041c186d0d028bea31b711fe16759"></a><!-- doxytag: member="gtc_type_precision::int16" ref="ga302041c186d0d028bea31b711fe16759" args="" -->
214 typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga302041c186d0d028bea31b711fe16759">int16</a></td></tr>
215 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8df669f4e7698dfe0c0354d92578d74f"></a><!-- doxytag: member="gtc_type_precision::int32" ref="ga8df669f4e7698dfe0c0354d92578d74f" args="" -->
216 typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a></td></tr>
217 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaff5189f97f9e842d9636a0f240001b2e"></a><!-- doxytag: member="gtc_type_precision::int64" ref="gaff5189f97f9e842d9636a0f240001b2e" args="" -->
218 typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a></td></tr>
219 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga41c6189f6485c2825d60fdc835b3a2b0"></a><!-- doxytag: member="gtc_type_precision::int8" ref="ga41c6189f6485c2825d60fdc835b3a2b0" args="" -->
220 typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a></td></tr>
221 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga91ec65f57d610f6902fd081f1d1e265a"></a><!-- doxytag: member="gtc_type_precision::u16" ref="ga91ec65f57d610f6902fd081f1d1e265a" args="" -->
222 typedef uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga91ec65f57d610f6902fd081f1d1e265a">u16</a></td></tr>
223 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga63f78111033fd19335588c549fcc0512"></a><!-- doxytag: member="gtc_type_precision::u16vec2" ref="ga63f78111033fd19335588c549fcc0512" args="" -->
224 typedef detail::tvec2&lt; u16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga63f78111033fd19335588c549fcc0512">u16vec2</a></td></tr>
225 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga53d4785d0f40c66bf58b315dd1122fe4"></a><!-- doxytag: member="gtc_type_precision::u16vec3" ref="ga53d4785d0f40c66bf58b315dd1122fe4" args="" -->
226 typedef detail::tvec3&lt; u16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga53d4785d0f40c66bf58b315dd1122fe4">u16vec3</a></td></tr>
227 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0331a2b68ce5f72a450f6d45c90f7709"></a><!-- doxytag: member="gtc_type_precision::u16vec4" ref="ga0331a2b68ce5f72a450f6d45c90f7709" args="" -->
228 typedef detail::tvec4&lt; u16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga0331a2b68ce5f72a450f6d45c90f7709">u16vec4</a></td></tr>
229 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0bb0c4c53d0a5ea2c01d0bb363b56722"></a><!-- doxytag: member="gtc_type_precision::u32" ref="ga0bb0c4c53d0a5ea2c01d0bb363b56722" args="" -->
230 typedef uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">u32</a></td></tr>
231 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaae1d6aa5d86a2744294b97e05b623e29"></a><!-- doxytag: member="gtc_type_precision::u32vec2" ref="gaae1d6aa5d86a2744294b97e05b623e29" args="" -->
232 typedef detail::tvec2&lt; u32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gaae1d6aa5d86a2744294b97e05b623e29">u32vec2</a></td></tr>
233 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae013bd205f900d8ac3d783e62c9fa294"></a><!-- doxytag: member="gtc_type_precision::u32vec3" ref="gae013bd205f900d8ac3d783e62c9fa294" args="" -->
234 typedef detail::tvec3&lt; u32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gae013bd205f900d8ac3d783e62c9fa294">u32vec3</a></td></tr>
235 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac61f03e72cbcace4582b0c11859f54c7"></a><!-- doxytag: member="gtc_type_precision::u32vec4" ref="gac61f03e72cbcace4582b0c11859f54c7" args="" -->
236 typedef detail::tvec4&lt; u32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gac61f03e72cbcace4582b0c11859f54c7">u32vec4</a></td></tr>
237 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga02ecb7390e4c4515df2268d18f99abc0"></a><!-- doxytag: member="gtc_type_precision::u64" ref="ga02ecb7390e4c4515df2268d18f99abc0" args="" -->
238 typedef uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga02ecb7390e4c4515df2268d18f99abc0">u64</a></td></tr>
239 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga98265c5d66ab4bf19f4242746233526c"></a><!-- doxytag: member="gtc_type_precision::u64vec2" ref="ga98265c5d66ab4bf19f4242746233526c" args="" -->
240 typedef detail::tvec2&lt; u64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga98265c5d66ab4bf19f4242746233526c">u64vec2</a></td></tr>
241 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga470cfa496aae49e63c5becee347651a1"></a><!-- doxytag: member="gtc_type_precision::u64vec3" ref="ga470cfa496aae49e63c5becee347651a1" args="" -->
242 typedef detail::tvec3&lt; u64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga470cfa496aae49e63c5becee347651a1">u64vec3</a></td></tr>
243 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga34a421d3df867266c9437dc00897edeb"></a><!-- doxytag: member="gtc_type_precision::u64vec4" ref="ga34a421d3df867266c9437dc00897edeb" args="" -->
244 typedef detail::tvec4&lt; u64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga34a421d3df867266c9437dc00897edeb">u64vec4</a></td></tr>
245 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad8d9dbef83392da434801486bf814fe4"></a><!-- doxytag: member="gtc_type_precision::u8" ref="gad8d9dbef83392da434801486bf814fe4" args="" -->
246 typedef uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gad8d9dbef83392da434801486bf814fe4">u8</a></td></tr>
247 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8f78a1ea21be24a89da31928fc037bfd"></a><!-- doxytag: member="gtc_type_precision::u8vec2" ref="ga8f78a1ea21be24a89da31928fc037bfd" args="" -->
248 typedef detail::tvec2&lt; u8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga8f78a1ea21be24a89da31928fc037bfd">u8vec2</a></td></tr>
249 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7a4cb62a556ad09c7e0721aecac64dbd"></a><!-- doxytag: member="gtc_type_precision::u8vec3" ref="ga7a4cb62a556ad09c7e0721aecac64dbd" args="" -->
250 typedef detail::tvec3&lt; u8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga7a4cb62a556ad09c7e0721aecac64dbd">u8vec3</a></td></tr>
251 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83091381b9b909057004c4de7896d072"></a><!-- doxytag: member="gtc_type_precision::u8vec4" ref="ga83091381b9b909057004c4de7896d072" args="" -->
252 typedef detail::tvec4&lt; u8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga83091381b9b909057004c4de7896d072">u8vec4</a></td></tr>
253 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga13471cbbe74e4303a57f3743d007b74d"></a><!-- doxytag: member="gtc_type_precision::uint16" ref="ga13471cbbe74e4303a57f3743d007b74d" args="" -->
254 typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a></td></tr>
255 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5fa3ddcab56c789bc272ff5651faa12d"></a><!-- doxytag: member="gtc_type_precision::uint32" ref="ga5fa3ddcab56c789bc272ff5651faa12d" args="" -->
256 typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a></td></tr>
257 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab630f76c26b50298187f7889104d4b9c"></a><!-- doxytag: member="gtc_type_precision::uint64" ref="gab630f76c26b50298187f7889104d4b9c" args="" -->
258 typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#gab630f76c26b50298187f7889104d4b9c">uint64</a></td></tr>
259 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga36475e31b1992cfde54c1a6f5a148865"></a><!-- doxytag: member="gtc_type_precision::uint8" ref="ga36475e31b1992cfde54c1a6f5a148865" args="" -->
260 typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a></td></tr>
41 <tr><td colspan="2"><h2><a name="func-members"></a>
42 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
45 detail::tmat2x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga28e2cb93a1d741f43d116ae597ffcc91">make_mat2</a> (T const *const ptr)</td></tr>
46 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
47 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
48 detail::tmat2x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga8ad46b9608226fd1c7eec27890281a72">make_mat2x2</a> (T const *const ptr)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
51 detail::tmat2x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga44094e20569c4f5099c099906278ea3d">make_mat2x3</a> (T const *const ptr)</td></tr>
52 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
53 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
54 detail::tmat2x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga26642a9d5c0f0a1eaacc8b432516aa99">make_mat2x4</a> (T const *const ptr)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
57 detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga3012728a59d487ef0e19e0f0fff79b64">make_mat3</a> (T const *const ptr)</td></tr>
58 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
60 detail::tmat3x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga9e82111c23b88953fe05ee8c27c2b1bc">make_mat3x2</a> (T const *const ptr)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
63 detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga225aa7d04b65101d744ef77d95e1a23b">make_mat3x3</a> (T const *const ptr)</td></tr>
64 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
66 detail::tmat3x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#gaa4708891294a5aee07256ba6441b4889">make_mat3x4</a> (T const *const ptr)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
69 detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga208ed9a335cf79366b278deedd83f32b">make_mat4</a> (T const *const ptr)</td></tr>
70 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
72 detail::tmat4x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga2092b5a4cd05f2e39dc1b8e5ee22589c">make_mat4x2</a> (T const *const ptr)</td></tr>
73 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
74 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
75 detail::tmat4x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga0bc483c7f197b07a816682dd0b3981d9">make_mat4x3</a> (T const *const ptr)</td></tr>
76 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
78 detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#gac9e742ff5cc9308caabd8236fc11a687">make_mat4x4</a> (T const *const ptr)</td></tr>
79 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
80 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
81 detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga78da3ea7db8bca3e13559653ce55093b">make_vec2</a> (T const *const ptr)</td></tr>
82 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
83 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
84 detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga2a4f1959e1070f904687739954c4f7ee">make_vec3</a> (T const *const ptr)</td></tr>
85 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
86 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
87 detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga76c09e1e25b8dbb947d10b76f5c4beac">make_vec4</a> (T const *const ptr)</td></tr>
88 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
89 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga42469e8bdefe80d3fefa9aa58aad61e8">value_ptr</a> (detail::tmat4x4&lt; T &gt; &amp;mat)</td></tr>
90 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
91 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga05d5fe10da0bee1b1443058e8ed0299f">value_ptr</a> (detail::tmat4x3&lt; T &gt; &amp;mat)</td></tr>
92 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
93 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga2df67ef048ae136e1bcd05f8942fde7a">value_ptr</a> (detail::tmat4x3&lt; T &gt; const &amp;mat)</td></tr>
94 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
95 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga5fa0d0614af4ed2455e652884846fb1d">value_ptr</a> (detail::tmat3x4&lt; T &gt; &amp;mat)</td></tr>
96 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
97 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga651f202c716db8b90cefb81b1c0da0c8">value_ptr</a> (detail::tmat3x4&lt; T &gt; const &amp;mat)</td></tr>
98 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
99 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga49da2fc0f3db83449a06c47d729ba024">value_ptr</a> (detail::tmat4x2&lt; T &gt; &amp;mat)</td></tr>
100 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
101 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga96d7708293e8bc9904afcc504189bf55">value_ptr</a> (detail::tmat2x4&lt; T &gt; &amp;mat)</td></tr>
102 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
103 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga99bbcb12e6a17ba198faf9259c8abd96">value_ptr</a> (detail::tmat2x4&lt; T &gt; const &amp;mat)</td></tr>
104 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
105 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#gaa9206a4b3878b3fd2a904b8147457f77">value_ptr</a> (detail::tmat2x2&lt; T &gt; &amp;mat)</td></tr>
106 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
107 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#gabd71f400506835e596c2decd6631f124">value_ptr</a> (detail::tvec3&lt; T &gt; &amp;vec)</td></tr>
108 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
109 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga9fc0e1b422d30446d77f7b3b9a4344dd">value_ptr</a> (detail::tmat3x3&lt; T &gt; const &amp;mat)</td></tr>
110 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
111 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga7bf8756cfee3981a93530342efda2a09">value_ptr</a> (detail::tvec2&lt; T &gt; &amp;vec)</td></tr>
112 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
113 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#gac21518f95a134dbe3c61460c89264b08">value_ptr</a> (detail::tvec2&lt; T &gt; const &amp;vec)</td></tr>
114 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
115 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga3d8f3ed25463d8b7d9f25ba6d7a8acbc">value_ptr</a> (detail::tvec4&lt; T &gt; &amp;vec)</td></tr>
116 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
117 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga56c2e17bbd93738609308c13a515f170">value_ptr</a> (detail::tmat4x4&lt; T &gt; const &amp;mat)</td></tr>
118 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
119 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga830aa0335e6f5e590b1c3ebb642f3e9b">value_ptr</a> (detail::tmat3x3&lt; T &gt; &amp;mat)</td></tr>
120 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
121 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga865263cd65e95cc13ff6a5aa84e3f5e8">value_ptr</a> (detail::tmat4x2&lt; T &gt; const &amp;mat)</td></tr>
122 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
123 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga861a6b1ce6a5138d9fd56c03df8831fa">value_ptr</a> (detail::tmat3x2&lt; T &gt; &amp;mat)</td></tr>
124 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
125 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga8cb84075eac2170b71408bd87e360fc5">value_ptr</a> (detail::tmat2x3&lt; T &gt; &amp;mat)</td></tr>
126 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
127 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga3991a9338f71a240c139d2578dc3ce2a">value_ptr</a> (detail::tvec3&lt; T &gt; const &amp;vec)</td></tr>
128 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
129 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#gaa8d062cde13a6ab5b87e660301aafcbd">value_ptr</a> (detail::tvec4&lt; T &gt; const &amp;vec)</td></tr>
130 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
131 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga35559a6453513f1be0cc693d55058313">value_ptr</a> (detail::tmat3x2&lt; T &gt; const &amp;mat)</td></tr>
132 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
133 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga8346668458014141646d1d73b009d8b1">value_ptr</a> (detail::tmat2x3&lt; T &gt; const &amp;mat)</td></tr>
134 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
135 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00246.html#ga7a39de90fc430c08510ce091ac634a79">value_ptr</a> (detail::tmat2x2&lt; T &gt; const &amp;mat)</td></tr>
261136 </table>
262137 <hr/><a name="_details"></a><h2>Detailed Description</h2>
263 <p>Defines specific C++-based precision types. </p>
264 <p><a class="el" href="a00236.html">Precision types</a> defines types based on GLSL's precision qualifiers. This extension defines types based on explicitly-sized C++ data types.</p>
265 <p>&lt;<a class="el" href="a00125_source.html">glm/gtc/type_precision.hpp</a>&gt; need to be included to use these functionalities. </p>
138 <p>Used to get a pointer to the memory layout of a basic type. </p>
139 <p>This extension defines an overloaded function, glm::value_ptr, which takes any of the <a class="el" href="a00236.html">core template types</a>. It returns a pointer to the memory layout of the object. Matrix types store their values in column-major order.</p>
140 <p>This is useful for uploading data to matrices or copying data to buffer objects.</p>
141 <p>Example:</p>
142 <div class="fragment"><pre class="fragment"><span class="preprocessor">#include &lt;glm/glm.hpp&gt;</span>
143 <span class="preprocessor">#include &lt;glm/gtc/type_ptr.hpp&gt;</span>
144
145 <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a> aVector(3);
146 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> someMatrix(1.0);
147
148 glUniform3fv(uniformLoc, 1, <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">glm::value_ptr</a>(aVector));
149 glUniformMatrix4fv(uniformMatrixLoc, 1, GL_FALSE, <a class="code" href="a00246.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">glm::value_ptr</a>(someMatrix));
150 </pre></div><p>&lt;<a class="el" href="a00126_source.html">glm/gtc/type_ptr.hpp</a>&gt; need to be included to use these functionalities. </p>
151 <hr/><h2>Function Documentation</h2>
152 <a class="anchor" id="ga28e2cb93a1d741f43d116ae597ffcc91"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat2" ref="ga28e2cb93a1d741f43d116ae597ffcc91" args="(T const *const ptr)" -->
153 <div class="memitem">
154 <div class="memproto">
155 <table class="memname">
156 <tr>
157 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat2x2&lt;T&gt; glm::gtc::type_ptr::make_mat2 </td>
158 <td>(</td>
159 <td class="paramtype">T const *const&#160;</td>
160 <td class="paramname"><em>ptr</em></td><td>)</td>
161 <td></td>
162 </tr>
163 </table>
164 </div>
165 <div class="memdoc">
166
167 <p>Build a matrix from a pointer. </p>
168 <p>From GLM_GTC_type_ptr extension. </p>
169
170 <p>Definition at line <a class="el" href="a00126_source.html#l00417">417</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
171
172 <p>References <a class="el" href="a00126_source.html#l00326">glm::gtc::type_ptr::make_mat2x2()</a>.</p>
173
174 </div>
175 </div>
176 <a class="anchor" id="ga8ad46b9608226fd1c7eec27890281a72"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat2x2" ref="ga8ad46b9608226fd1c7eec27890281a72" args="(T const *const ptr)" -->
177 <div class="memitem">
178 <div class="memproto">
179 <table class="memname">
180 <tr>
181 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat2x2&lt;T&gt; glm::gtc::type_ptr::make_mat2x2 </td>
182 <td>(</td>
183 <td class="paramtype">T const *const&#160;</td>
184 <td class="paramname"><em>ptr</em></td><td>)</td>
185 <td></td>
186 </tr>
187 </table>
188 </div>
189 <div class="memdoc">
190
191 <p>Build a matrix from a pointer. </p>
192 <p>From GLM_GTC_type_ptr extension. </p>
193
194 <p>Definition at line <a class="el" href="a00126_source.html#l00326">326</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
195
196 <p>References <a class="el" href="a00126_source.html#l00036">glm::gtc::type_ptr::value_ptr()</a>.</p>
197
198 <p>Referenced by <a class="el" href="a00126_source.html#l00417">glm::gtc::type_ptr::make_mat2()</a>.</p>
199
200 </div>
201 </div>
202 <a class="anchor" id="ga44094e20569c4f5099c099906278ea3d"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat2x3" ref="ga44094e20569c4f5099c099906278ea3d" args="(T const *const ptr)" -->
203 <div class="memitem">
204 <div class="memproto">
205 <table class="memname">
206 <tr>
207 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat2x3&lt;T&gt; glm::gtc::type_ptr::make_mat2x3 </td>
208 <td>(</td>
209 <td class="paramtype">T const *const&#160;</td>
210 <td class="paramname"><em>ptr</em></td><td>)</td>
211 <td></td>
212 </tr>
213 </table>
214 </div>
215 <div class="memdoc">
216
217 <p>Build a matrix from a pointer. </p>
218 <p>From GLM_GTC_type_ptr extension. </p>
219
220 <p>Definition at line <a class="el" href="a00126_source.html#l00336">336</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
221
222 <p>References <a class="el" href="a00126_source.html#l00036">glm::gtc::type_ptr::value_ptr()</a>.</p>
223
224 </div>
225 </div>
226 <a class="anchor" id="ga26642a9d5c0f0a1eaacc8b432516aa99"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat2x4" ref="ga26642a9d5c0f0a1eaacc8b432516aa99" args="(T const *const ptr)" -->
227 <div class="memitem">
228 <div class="memproto">
229 <table class="memname">
230 <tr>
231 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat2x4&lt;T&gt; glm::gtc::type_ptr::make_mat2x4 </td>
232 <td>(</td>
233 <td class="paramtype">T const *const&#160;</td>
234 <td class="paramname"><em>ptr</em></td><td>)</td>
235 <td></td>
236 </tr>
237 </table>
238 </div>
239 <div class="memdoc">
240
241 <p>Build a matrix from a pointer. </p>
242 <p>From GLM_GTC_type_ptr extension. </p>
243
244 <p>Definition at line <a class="el" href="a00126_source.html#l00346">346</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
245
246 <p>References <a class="el" href="a00126_source.html#l00036">glm::gtc::type_ptr::value_ptr()</a>.</p>
247
248 </div>
249 </div>
250 <a class="anchor" id="ga3012728a59d487ef0e19e0f0fff79b64"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat3" ref="ga3012728a59d487ef0e19e0f0fff79b64" args="(T const *const ptr)" -->
251 <div class="memitem">
252 <div class="memproto">
253 <table class="memname">
254 <tr>
255 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat3x3&lt;T&gt; glm::gtc::type_ptr::make_mat3 </td>
256 <td>(</td>
257 <td class="paramtype">T const *const&#160;</td>
258 <td class="paramname"><em>ptr</em></td><td>)</td>
259 <td></td>
260 </tr>
261 </table>
262 </div>
263 <div class="memdoc">
264
265 <p>Build a matrix from a pointer. </p>
266 <p>From GLM_GTC_type_ptr extension. </p>
267
268 <p>Definition at line <a class="el" href="a00126_source.html#l00425">425</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
269
270 <p>References <a class="el" href="a00126_source.html#l00366">glm::gtc::type_ptr::make_mat3x3()</a>.</p>
271
272 </div>
273 </div>
274 <a class="anchor" id="ga9e82111c23b88953fe05ee8c27c2b1bc"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat3x2" ref="ga9e82111c23b88953fe05ee8c27c2b1bc" args="(T const *const ptr)" -->
275 <div class="memitem">
276 <div class="memproto">
277 <table class="memname">
278 <tr>
279 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat3x2&lt;T&gt; glm::gtc::type_ptr::make_mat3x2 </td>
280 <td>(</td>
281 <td class="paramtype">T const *const&#160;</td>
282 <td class="paramname"><em>ptr</em></td><td>)</td>
283 <td></td>
284 </tr>
285 </table>
286 </div>
287 <div class="memdoc">
288
289 <p>Build a matrix from a pointer. </p>
290 <p>From GLM_GTC_type_ptr extension. </p>
291
292 <p>Definition at line <a class="el" href="a00126_source.html#l00356">356</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
293
294 <p>References <a class="el" href="a00126_source.html#l00036">glm::gtc::type_ptr::value_ptr()</a>.</p>
295
296 </div>
297 </div>
298 <a class="anchor" id="ga225aa7d04b65101d744ef77d95e1a23b"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat3x3" ref="ga225aa7d04b65101d744ef77d95e1a23b" args="(T const *const ptr)" -->
299 <div class="memitem">
300 <div class="memproto">
301 <table class="memname">
302 <tr>
303 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat3x3&lt;T&gt; glm::gtc::type_ptr::make_mat3x3 </td>
304 <td>(</td>
305 <td class="paramtype">T const *const&#160;</td>
306 <td class="paramname"><em>ptr</em></td><td>)</td>
307 <td></td>
308 </tr>
309 </table>
310 </div>
311 <div class="memdoc">
312
313 <p>Build a matrix from a pointer. </p>
314 <p>From GLM_GTC_type_ptr extension. </p>
315
316 <p>Definition at line <a class="el" href="a00126_source.html#l00366">366</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
317
318 <p>References <a class="el" href="a00126_source.html#l00036">glm::gtc::type_ptr::value_ptr()</a>.</p>
319
320 <p>Referenced by <a class="el" href="a00126_source.html#l00425">glm::gtc::type_ptr::make_mat3()</a>.</p>
321
322 </div>
323 </div>
324 <a class="anchor" id="gaa4708891294a5aee07256ba6441b4889"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat3x4" ref="gaa4708891294a5aee07256ba6441b4889" args="(T const *const ptr)" -->
325 <div class="memitem">
326 <div class="memproto">
327 <table class="memname">
328 <tr>
329 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat3x4&lt;T&gt; glm::gtc::type_ptr::make_mat3x4 </td>
330 <td>(</td>
331 <td class="paramtype">T const *const&#160;</td>
332 <td class="paramname"><em>ptr</em></td><td>)</td>
333 <td></td>
334 </tr>
335 </table>
336 </div>
337 <div class="memdoc">
338
339 <p>Build a matrix from a pointer. </p>
340 <p>From GLM_GTC_type_ptr extension. </p>
341
342 <p>Definition at line <a class="el" href="a00126_source.html#l00376">376</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
343
344 <p>References <a class="el" href="a00126_source.html#l00036">glm::gtc::type_ptr::value_ptr()</a>.</p>
345
346 </div>
347 </div>
348 <a class="anchor" id="ga208ed9a335cf79366b278deedd83f32b"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat4" ref="ga208ed9a335cf79366b278deedd83f32b" args="(T const *const ptr)" -->
349 <div class="memitem">
350 <div class="memproto">
351 <table class="memname">
352 <tr>
353 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat4x4&lt;T&gt; glm::gtc::type_ptr::make_mat4 </td>
354 <td>(</td>
355 <td class="paramtype">T const *const&#160;</td>
356 <td class="paramname"><em>ptr</em></td><td>)</td>
357 <td></td>
358 </tr>
359 </table>
360 </div>
361 <div class="memdoc">
362
363 <p>Build a matrix from a pointer. </p>
364 <p>From GLM_GTC_type_ptr extension. </p>
365
366 <p>Definition at line <a class="el" href="a00126_source.html#l00433">433</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
367
368 <p>References <a class="el" href="a00126_source.html#l00407">glm::gtc::type_ptr::make_mat4x4()</a>.</p>
369
370 </div>
371 </div>
372 <a class="anchor" id="ga2092b5a4cd05f2e39dc1b8e5ee22589c"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat4x2" ref="ga2092b5a4cd05f2e39dc1b8e5ee22589c" args="(T const *const ptr)" -->
373 <div class="memitem">
374 <div class="memproto">
375 <table class="memname">
376 <tr>
377 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat4x2&lt;T&gt; glm::gtc::type_ptr::make_mat4x2 </td>
378 <td>(</td>
379 <td class="paramtype">T const *const&#160;</td>
380 <td class="paramname"><em>ptr</em></td><td>)</td>
381 <td></td>
382 </tr>
383 </table>
384 </div>
385 <div class="memdoc">
386
387 <p>Build a matrix from a pointer. </p>
388 <p>From GLM_GTC_type_ptr extension. </p>
389
390 <p>Definition at line <a class="el" href="a00126_source.html#l00387">387</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
391
392 <p>References <a class="el" href="a00126_source.html#l00036">glm::gtc::type_ptr::value_ptr()</a>.</p>
393
394 </div>
395 </div>
396 <a class="anchor" id="ga0bc483c7f197b07a816682dd0b3981d9"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat4x3" ref="ga0bc483c7f197b07a816682dd0b3981d9" args="(T const *const ptr)" -->
397 <div class="memitem">
398 <div class="memproto">
399 <table class="memname">
400 <tr>
401 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat4x3&lt;T&gt; glm::gtc::type_ptr::make_mat4x3 </td>
402 <td>(</td>
403 <td class="paramtype">T const *const&#160;</td>
404 <td class="paramname"><em>ptr</em></td><td>)</td>
405 <td></td>
406 </tr>
407 </table>
408 </div>
409 <div class="memdoc">
410
411 <p>Build a matrix from a pointer. </p>
412 <p>From GLM_GTC_type_ptr extension. </p>
413
414 <p>Definition at line <a class="el" href="a00126_source.html#l00397">397</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
415
416 <p>References <a class="el" href="a00126_source.html#l00036">glm::gtc::type_ptr::value_ptr()</a>.</p>
417
418 </div>
419 </div>
420 <a class="anchor" id="gac9e742ff5cc9308caabd8236fc11a687"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat4x4" ref="gac9e742ff5cc9308caabd8236fc11a687" args="(T const *const ptr)" -->
421 <div class="memitem">
422 <div class="memproto">
423 <table class="memname">
424 <tr>
425 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat4x4&lt;T&gt; glm::gtc::type_ptr::make_mat4x4 </td>
426 <td>(</td>
427 <td class="paramtype">T const *const&#160;</td>
428 <td class="paramname"><em>ptr</em></td><td>)</td>
429 <td></td>
430 </tr>
431 </table>
432 </div>
433 <div class="memdoc">
434
435 <p>Build a matrix from a pointer. </p>
436 <p>From GLM_GTC_type_ptr extension. </p>
437
438 <p>Definition at line <a class="el" href="a00126_source.html#l00407">407</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
439
440 <p>References <a class="el" href="a00126_source.html#l00036">glm::gtc::type_ptr::value_ptr()</a>.</p>
441
442 <p>Referenced by <a class="el" href="a00126_source.html#l00433">glm::gtc::type_ptr::make_mat4()</a>.</p>
443
444 </div>
445 </div>
446 <a class="anchor" id="ga78da3ea7db8bca3e13559653ce55093b"></a><!-- doxytag: member="glm::gtc::type_ptr::make_vec2" ref="ga78da3ea7db8bca3e13559653ce55093b" args="(T const *const ptr)" -->
447 <div class="memitem">
448 <div class="memproto">
449 <table class="memname">
450 <tr>
451 <td class="memname">GLM_FUNC_QUALIFIER detail::tvec2&lt;T&gt; glm::gtc::type_ptr::make_vec2 </td>
452 <td>(</td>
453 <td class="paramtype">T const *const&#160;</td>
454 <td class="paramname"><em>ptr</em></td><td>)</td>
455 <td></td>
456 </tr>
457 </table>
458 </div>
459 <div class="memdoc">
460
461 <p>Build a vector from a pointer. </p>
462 <p>From GLM_GTC_type_ptr extension. </p>
463
464 <p>Definition at line <a class="el" href="a00126_source.html#l00296">296</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
465
466 <p>References <a class="el" href="a00126_source.html#l00036">glm::gtc::type_ptr::value_ptr()</a>.</p>
467
468 </div>
469 </div>
470 <a class="anchor" id="ga2a4f1959e1070f904687739954c4f7ee"></a><!-- doxytag: member="glm::gtc::type_ptr::make_vec3" ref="ga2a4f1959e1070f904687739954c4f7ee" args="(T const *const ptr)" -->
471 <div class="memitem">
472 <div class="memproto">
473 <table class="memname">
474 <tr>
475 <td class="memname">GLM_FUNC_QUALIFIER detail::tvec3&lt;T&gt; glm::gtc::type_ptr::make_vec3 </td>
476 <td>(</td>
477 <td class="paramtype">T const *const&#160;</td>
478 <td class="paramname"><em>ptr</em></td><td>)</td>
479 <td></td>
480 </tr>
481 </table>
482 </div>
483 <div class="memdoc">
484
485 <p>Build a vector from a pointer. </p>
486 <p>From GLM_GTC_type_ptr extension. </p>
487
488 <p>Definition at line <a class="el" href="a00126_source.html#l00306">306</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
489
490 <p>References <a class="el" href="a00126_source.html#l00036">glm::gtc::type_ptr::value_ptr()</a>.</p>
491
492 </div>
493 </div>
494 <a class="anchor" id="ga76c09e1e25b8dbb947d10b76f5c4beac"></a><!-- doxytag: member="glm::gtc::type_ptr::make_vec4" ref="ga76c09e1e25b8dbb947d10b76f5c4beac" args="(T const *const ptr)" -->
495 <div class="memitem">
496 <div class="memproto">
497 <table class="memname">
498 <tr>
499 <td class="memname">GLM_FUNC_QUALIFIER detail::tvec4&lt;T&gt; glm::gtc::type_ptr::make_vec4 </td>
500 <td>(</td>
501 <td class="paramtype">T const *const&#160;</td>
502 <td class="paramname"><em>ptr</em></td><td>)</td>
503 <td></td>
504 </tr>
505 </table>
506 </div>
507 <div class="memdoc">
508
509 <p>Build a vector from a pointer. </p>
510 <p>From GLM_GTC_type_ptr extension. </p>
511
512 <p>Definition at line <a class="el" href="a00126_source.html#l00316">316</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
513
514 <p>References <a class="el" href="a00126_source.html#l00036">glm::gtc::type_ptr::value_ptr()</a>.</p>
515
516 </div>
517 </div>
518 <a class="anchor" id="ga42469e8bdefe80d3fefa9aa58aad61e8"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga42469e8bdefe80d3fefa9aa58aad61e8" args="(detail::tmat4x4&lt; T &gt; &amp;mat)" -->
519 <div class="memitem">
520 <div class="memproto">
521 <table class="memname">
522 <tr>
523 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
524 <td>(</td>
525 <td class="paramtype">detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
526 <td class="paramname"><em>mat</em></td><td>)</td>
527 <td></td>
528 </tr>
529 </table>
530 </div>
531 <div class="memdoc">
532
533 <p>Get the address of the matrix content. </p>
534 <p>From GLM_GTC_type_ptr extension. </p>
535
536 <p>Definition at line <a class="el" href="a00126_source.html#l00157">157</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
537
538 </div>
539 </div>
540 <a class="anchor" id="ga05d5fe10da0bee1b1443058e8ed0299f"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga05d5fe10da0bee1b1443058e8ed0299f" args="(detail::tmat4x3&lt; T &gt; &amp;mat)" -->
541 <div class="memitem">
542 <div class="memproto">
543 <table class="memname">
544 <tr>
545 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
546 <td>(</td>
547 <td class="paramtype">detail::tmat4x3&lt; T &gt; &amp;&#160;</td>
548 <td class="paramname"><em>mat</em></td><td>)</td>
549 <td></td>
550 </tr>
551 </table>
552 </div>
553 <div class="memdoc">
554
555 <p>Get the address of the matrix content. </p>
556 <p>From GLM_GTC_type_ptr extension. </p>
557
558 <p>Definition at line <a class="el" href="a00126_source.html#l00288">288</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
559
560 </div>
561 </div>
562 <a class="anchor" id="ga2df67ef048ae136e1bcd05f8942fde7a"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga2df67ef048ae136e1bcd05f8942fde7a" args="(detail::tmat4x3&lt; T &gt; const &amp;mat)" -->
563 <div class="memitem">
564 <div class="memproto">
565 <table class="memname">
566 <tr>
567 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
568 <td>(</td>
569 <td class="paramtype">detail::tmat4x3&lt; T &gt; const &amp;&#160;</td>
570 <td class="paramname"><em>mat</em></td><td>)</td>
571 <td></td>
572 </tr>
573 </table>
574 </div>
575 <div class="memdoc">
576
577 <p>Get the const address of the matrix content. </p>
578 <p>From GLM_GTC_type_ptr extension. </p>
579
580 <p>Definition at line <a class="el" href="a00126_source.html#l00278">278</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
581
582 </div>
583 </div>
584 <a class="anchor" id="ga5fa0d0614af4ed2455e652884846fb1d"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga5fa0d0614af4ed2455e652884846fb1d" args="(detail::tmat3x4&lt; T &gt; &amp;mat)" -->
585 <div class="memitem">
586 <div class="memproto">
587 <table class="memname">
588 <tr>
589 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
590 <td>(</td>
591 <td class="paramtype">detail::tmat3x4&lt; T &gt; &amp;&#160;</td>
592 <td class="paramname"><em>mat</em></td><td>)</td>
593 <td></td>
594 </tr>
595 </table>
596 </div>
597 <div class="memdoc">
598
599 <p>Get the address of the matrix content. </p>
600 <p>From GLM_GTC_type_ptr extension. </p>
601
602 <p>Definition at line <a class="el" href="a00126_source.html#l00267">267</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
603
604 </div>
605 </div>
606 <a class="anchor" id="ga651f202c716db8b90cefb81b1c0da0c8"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga651f202c716db8b90cefb81b1c0da0c8" args="(detail::tmat3x4&lt; T &gt; const &amp;mat)" -->
607 <div class="memitem">
608 <div class="memproto">
609 <table class="memname">
610 <tr>
611 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
612 <td>(</td>
613 <td class="paramtype">detail::tmat3x4&lt; T &gt; const &amp;&#160;</td>
614 <td class="paramname"><em>mat</em></td><td>)</td>
615 <td></td>
616 </tr>
617 </table>
618 </div>
619 <div class="memdoc">
620
621 <p>Get the const address of the matrix content. </p>
622 <p>From GLM_GTC_type_ptr extension. </p>
623
624 <p>Definition at line <a class="el" href="a00126_source.html#l00256">256</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
625
626 </div>
627 </div>
628 <a class="anchor" id="ga49da2fc0f3db83449a06c47d729ba024"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga49da2fc0f3db83449a06c47d729ba024" args="(detail::tmat4x2&lt; T &gt; &amp;mat)" -->
629 <div class="memitem">
630 <div class="memproto">
631 <table class="memname">
632 <tr>
633 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
634 <td>(</td>
635 <td class="paramtype">detail::tmat4x2&lt; T &gt; &amp;&#160;</td>
636 <td class="paramname"><em>mat</em></td><td>)</td>
637 <td></td>
638 </tr>
639 </table>
640 </div>
641 <div class="memdoc">
642
643 <p>Get the address of the matrix content. </p>
644 <p>From GLM_GTC_type_ptr extension. </p>
645
646 <p>Definition at line <a class="el" href="a00126_source.html#l00245">245</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
647
648 </div>
649 </div>
650 <a class="anchor" id="ga96d7708293e8bc9904afcc504189bf55"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga96d7708293e8bc9904afcc504189bf55" args="(detail::tmat2x4&lt; T &gt; &amp;mat)" -->
651 <div class="memitem">
652 <div class="memproto">
653 <table class="memname">
654 <tr>
655 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
656 <td>(</td>
657 <td class="paramtype">detail::tmat2x4&lt; T &gt; &amp;&#160;</td>
658 <td class="paramname"><em>mat</em></td><td>)</td>
659 <td></td>
660 </tr>
661 </table>
662 </div>
663 <div class="memdoc">
664
665 <p>Get the address of the matrix content. </p>
666 <p>From GLM_GTC_type_ptr extension. </p>
667
668 <p>Definition at line <a class="el" href="a00126_source.html#l00223">223</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
669
670 </div>
671 </div>
672 <a class="anchor" id="ga99bbcb12e6a17ba198faf9259c8abd96"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga99bbcb12e6a17ba198faf9259c8abd96" args="(detail::tmat2x4&lt; T &gt; const &amp;mat)" -->
673 <div class="memitem">
674 <div class="memproto">
675 <table class="memname">
676 <tr>
677 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
678 <td>(</td>
679 <td class="paramtype">detail::tmat2x4&lt; T &gt; const &amp;&#160;</td>
680 <td class="paramname"><em>mat</em></td><td>)</td>
681 <td></td>
682 </tr>
683 </table>
684 </div>
685 <div class="memdoc">
686
687 <p>Get the const address of the matrix content. </p>
688 <p>From GLM_GTC_type_ptr extension. </p>
689
690 <p>Definition at line <a class="el" href="a00126_source.html#l00212">212</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
691
692 </div>
693 </div>
694 <a class="anchor" id="gaa9206a4b3878b3fd2a904b8147457f77"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="gaa9206a4b3878b3fd2a904b8147457f77" args="(detail::tmat2x2&lt; T &gt; &amp;mat)" -->
695 <div class="memitem">
696 <div class="memproto">
697 <table class="memname">
698 <tr>
699 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
700 <td>(</td>
701 <td class="paramtype">detail::tmat2x2&lt; T &gt; &amp;&#160;</td>
702 <td class="paramname"><em>mat</em></td><td>)</td>
703 <td></td>
704 </tr>
705 </table>
706 </div>
707 <div class="memdoc">
708
709 <p>Get the address of the matrix content. </p>
710 <p>From GLM_GTC_type_ptr extension. </p>
711
712 <p>Definition at line <a class="el" href="a00126_source.html#l00113">113</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
713
714 </div>
715 </div>
716 <a class="anchor" id="gabd71f400506835e596c2decd6631f124"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="gabd71f400506835e596c2decd6631f124" args="(detail::tvec3&lt; T &gt; &amp;vec)" -->
717 <div class="memitem">
718 <div class="memproto">
719 <table class="memname">
720 <tr>
721 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
722 <td>(</td>
723 <td class="paramtype">detail::tvec3&lt; T &gt; &amp;&#160;</td>
724 <td class="paramname"><em>vec</em></td><td>)</td>
725 <td></td>
726 </tr>
727 </table>
728 </div>
729 <div class="memdoc">
730
731 <p>Get the address of the vector content. </p>
732 <p>From GLM_GTC_type_ptr extension. </p>
733
734 <p>Definition at line <a class="el" href="a00126_source.html#l00069">69</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
735
736 </div>
737 </div>
738 <a class="anchor" id="ga9fc0e1b422d30446d77f7b3b9a4344dd"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga9fc0e1b422d30446d77f7b3b9a4344dd" args="(detail::tmat3x3&lt; T &gt; const &amp;mat)" -->
739 <div class="memitem">
740 <div class="memproto">
741 <table class="memname">
742 <tr>
743 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
744 <td>(</td>
745 <td class="paramtype">detail::tmat3x3&lt; T &gt; const &amp;&#160;</td>
746 <td class="paramname"><em>mat</em></td><td>)</td>
747 <td></td>
748 </tr>
749 </table>
750 </div>
751 <div class="memdoc">
752
753 <p>Get the const address of the matrix content. </p>
754 <p>From GLM_GTC_type_ptr extension. </p>
755
756 <p>Definition at line <a class="el" href="a00126_source.html#l00124">124</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
757
758 </div>
759 </div>
760 <a class="anchor" id="ga7bf8756cfee3981a93530342efda2a09"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga7bf8756cfee3981a93530342efda2a09" args="(detail::tvec2&lt; T &gt; &amp;vec)" -->
761 <div class="memitem">
762 <div class="memproto">
763 <table class="memname">
764 <tr>
765 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
766 <td>(</td>
767 <td class="paramtype">detail::tvec2&lt; T &gt; &amp;&#160;</td>
768 <td class="paramname"><em>vec</em></td><td>)</td>
769 <td></td>
770 </tr>
771 </table>
772 </div>
773 <div class="memdoc">
774
775 <p>Get the address of the vector content. </p>
776 <p>From GLM_GTC_type_ptr extension. </p>
777
778 <p>Definition at line <a class="el" href="a00126_source.html#l00047">47</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
779
780 </div>
781 </div>
782 <a class="anchor" id="gac21518f95a134dbe3c61460c89264b08"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="gac21518f95a134dbe3c61460c89264b08" args="(detail::tvec2&lt; T &gt; const &amp;vec)" -->
783 <div class="memitem">
784 <div class="memproto">
785 <table class="memname">
786 <tr>
787 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
788 <td>(</td>
789 <td class="paramtype">detail::tvec2&lt; T &gt; const &amp;&#160;</td>
790 <td class="paramname"><em>vec</em></td><td>)</td>
791 <td></td>
792 </tr>
793 </table>
794 </div>
795 <div class="memdoc">
796
797 <p>Get the const address of the vector content. </p>
798 <p>From GLM_GTC_type_ptr extension. </p>
799
800 <p>Definition at line <a class="el" href="a00126_source.html#l00036">36</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
801
802 <p>Referenced by <a class="el" href="a00126_source.html#l00326">glm::gtc::type_ptr::make_mat2x2()</a>, <a class="el" href="a00126_source.html#l00336">glm::gtc::type_ptr::make_mat2x3()</a>, <a class="el" href="a00126_source.html#l00346">glm::gtc::type_ptr::make_mat2x4()</a>, <a class="el" href="a00126_source.html#l00356">glm::gtc::type_ptr::make_mat3x2()</a>, <a class="el" href="a00126_source.html#l00366">glm::gtc::type_ptr::make_mat3x3()</a>, <a class="el" href="a00126_source.html#l00376">glm::gtc::type_ptr::make_mat3x4()</a>, <a class="el" href="a00126_source.html#l00387">glm::gtc::type_ptr::make_mat4x2()</a>, <a class="el" href="a00126_source.html#l00397">glm::gtc::type_ptr::make_mat4x3()</a>, <a class="el" href="a00126_source.html#l00407">glm::gtc::type_ptr::make_mat4x4()</a>, <a class="el" href="a00126_source.html#l00296">glm::gtc::type_ptr::make_vec2()</a>, <a class="el" href="a00126_source.html#l00306">glm::gtc::type_ptr::make_vec3()</a>, and <a class="el" href="a00126_source.html#l00316">glm::gtc::type_ptr::make_vec4()</a>.</p>
803
804 </div>
805 </div>
806 <a class="anchor" id="ga3d8f3ed25463d8b7d9f25ba6d7a8acbc"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga3d8f3ed25463d8b7d9f25ba6d7a8acbc" args="(detail::tvec4&lt; T &gt; &amp;vec)" -->
807 <div class="memitem">
808 <div class="memproto">
809 <table class="memname">
810 <tr>
811 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
812 <td>(</td>
813 <td class="paramtype">detail::tvec4&lt; T &gt; &amp;&#160;</td>
814 <td class="paramname"><em>vec</em></td><td>)</td>
815 <td></td>
816 </tr>
817 </table>
818 </div>
819 <div class="memdoc">
820
821 <p>Get the address of the vector content. </p>
822 <p>From GLM_GTC_type_ptr extension. </p>
823
824 <p>Definition at line <a class="el" href="a00126_source.html#l00091">91</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
825
826 </div>
827 </div>
828 <a class="anchor" id="ga56c2e17bbd93738609308c13a515f170"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga56c2e17bbd93738609308c13a515f170" args="(detail::tmat4x4&lt; T &gt; const &amp;mat)" -->
829 <div class="memitem">
830 <div class="memproto">
831 <table class="memname">
832 <tr>
833 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
834 <td>(</td>
835 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
836 <td class="paramname"><em>mat</em></td><td>)</td>
837 <td></td>
838 </tr>
839 </table>
840 </div>
841 <div class="memdoc">
842
843 <p>Get the const address of the matrix content. </p>
844 <p>From GLM_GTC_type_ptr extension. </p>
845
846 <p>Definition at line <a class="el" href="a00126_source.html#l00146">146</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
847
848 </div>
849 </div>
850 <a class="anchor" id="ga830aa0335e6f5e590b1c3ebb642f3e9b"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga830aa0335e6f5e590b1c3ebb642f3e9b" args="(detail::tmat3x3&lt; T &gt; &amp;mat)" -->
851 <div class="memitem">
852 <div class="memproto">
853 <table class="memname">
854 <tr>
855 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
856 <td>(</td>
857 <td class="paramtype">detail::tmat3x3&lt; T &gt; &amp;&#160;</td>
858 <td class="paramname"><em>mat</em></td><td>)</td>
859 <td></td>
860 </tr>
861 </table>
862 </div>
863 <div class="memdoc">
864
865 <p>Get the address of the matrix content. </p>
866 <p>From GLM_GTC_type_ptr extension. </p>
867
868 <p>Definition at line <a class="el" href="a00126_source.html#l00135">135</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
869
870 </div>
871 </div>
872 <a class="anchor" id="ga865263cd65e95cc13ff6a5aa84e3f5e8"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga865263cd65e95cc13ff6a5aa84e3f5e8" args="(detail::tmat4x2&lt; T &gt; const &amp;mat)" -->
873 <div class="memitem">
874 <div class="memproto">
875 <table class="memname">
876 <tr>
877 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
878 <td>(</td>
879 <td class="paramtype">detail::tmat4x2&lt; T &gt; const &amp;&#160;</td>
880 <td class="paramname"><em>mat</em></td><td>)</td>
881 <td></td>
882 </tr>
883 </table>
884 </div>
885 <div class="memdoc">
886
887 <p>Get the const address of the matrix content. </p>
888 <p>From GLM_GTC_type_ptr extension. </p>
889
890 <p>Definition at line <a class="el" href="a00126_source.html#l00234">234</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
891
892 </div>
893 </div>
894 <a class="anchor" id="ga861a6b1ce6a5138d9fd56c03df8831fa"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga861a6b1ce6a5138d9fd56c03df8831fa" args="(detail::tmat3x2&lt; T &gt; &amp;mat)" -->
895 <div class="memitem">
896 <div class="memproto">
897 <table class="memname">
898 <tr>
899 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
900 <td>(</td>
901 <td class="paramtype">detail::tmat3x2&lt; T &gt; &amp;&#160;</td>
902 <td class="paramname"><em>mat</em></td><td>)</td>
903 <td></td>
904 </tr>
905 </table>
906 </div>
907 <div class="memdoc">
908
909 <p>Get the address of the matrix content. </p>
910 <p>From GLM_GTC_type_ptr extension. </p>
911
912 <p>Definition at line <a class="el" href="a00126_source.html#l00201">201</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
913
914 </div>
915 </div>
916 <a class="anchor" id="ga8cb84075eac2170b71408bd87e360fc5"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga8cb84075eac2170b71408bd87e360fc5" args="(detail::tmat2x3&lt; T &gt; &amp;mat)" -->
917 <div class="memitem">
918 <div class="memproto">
919 <table class="memname">
920 <tr>
921 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
922 <td>(</td>
923 <td class="paramtype">detail::tmat2x3&lt; T &gt; &amp;&#160;</td>
924 <td class="paramname"><em>mat</em></td><td>)</td>
925 <td></td>
926 </tr>
927 </table>
928 </div>
929 <div class="memdoc">
930
931 <p>Get the address of the matrix content. </p>
932 <p>From GLM_GTC_type_ptr extension. </p>
933
934 <p>Definition at line <a class="el" href="a00126_source.html#l00179">179</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
935
936 </div>
937 </div>
938 <a class="anchor" id="ga3991a9338f71a240c139d2578dc3ce2a"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga3991a9338f71a240c139d2578dc3ce2a" args="(detail::tvec3&lt; T &gt; const &amp;vec)" -->
939 <div class="memitem">
940 <div class="memproto">
941 <table class="memname">
942 <tr>
943 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
944 <td>(</td>
945 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
946 <td class="paramname"><em>vec</em></td><td>)</td>
947 <td></td>
948 </tr>
949 </table>
950 </div>
951 <div class="memdoc">
952
953 <p>Get the const address of the vector content. </p>
954 <p>From GLM_GTC_type_ptr extension. </p>
955
956 <p>Definition at line <a class="el" href="a00126_source.html#l00058">58</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
957
958 </div>
959 </div>
960 <a class="anchor" id="gaa8d062cde13a6ab5b87e660301aafcbd"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="gaa8d062cde13a6ab5b87e660301aafcbd" args="(detail::tvec4&lt; T &gt; const &amp;vec)" -->
961 <div class="memitem">
962 <div class="memproto">
963 <table class="memname">
964 <tr>
965 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
966 <td>(</td>
967 <td class="paramtype">detail::tvec4&lt; T &gt; const &amp;&#160;</td>
968 <td class="paramname"><em>vec</em></td><td>)</td>
969 <td></td>
970 </tr>
971 </table>
972 </div>
973 <div class="memdoc">
974
975 <p>Get the const address of the vector content. </p>
976 <p>From GLM_GTC_type_ptr extension. </p>
977
978 <p>Definition at line <a class="el" href="a00126_source.html#l00080">80</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
979
980 </div>
981 </div>
982 <a class="anchor" id="ga35559a6453513f1be0cc693d55058313"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga35559a6453513f1be0cc693d55058313" args="(detail::tmat3x2&lt; T &gt; const &amp;mat)" -->
983 <div class="memitem">
984 <div class="memproto">
985 <table class="memname">
986 <tr>
987 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
988 <td>(</td>
989 <td class="paramtype">detail::tmat3x2&lt; T &gt; const &amp;&#160;</td>
990 <td class="paramname"><em>mat</em></td><td>)</td>
991 <td></td>
992 </tr>
993 </table>
994 </div>
995 <div class="memdoc">
996
997 <p>Get the const address of the matrix content. </p>
998 <p>From GLM_GTC_type_ptr extension. </p>
999
1000 <p>Definition at line <a class="el" href="a00126_source.html#l00190">190</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
1001
1002 </div>
1003 </div>
1004 <a class="anchor" id="ga8346668458014141646d1d73b009d8b1"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga8346668458014141646d1d73b009d8b1" args="(detail::tmat2x3&lt; T &gt; const &amp;mat)" -->
1005 <div class="memitem">
1006 <div class="memproto">
1007 <table class="memname">
1008 <tr>
1009 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
1010 <td>(</td>
1011 <td class="paramtype">detail::tmat2x3&lt; T &gt; const &amp;&#160;</td>
1012 <td class="paramname"><em>mat</em></td><td>)</td>
1013 <td></td>
1014 </tr>
1015 </table>
1016 </div>
1017 <div class="memdoc">
1018
1019 <p>Get the const address of the matrix content. </p>
1020 <p>From GLM_GTC_type_ptr extension. </p>
1021
1022 <p>Definition at line <a class="el" href="a00126_source.html#l00168">168</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
1023
1024 </div>
1025 </div>
1026 <a class="anchor" id="ga7a39de90fc430c08510ce091ac634a79"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga7a39de90fc430c08510ce091ac634a79" args="(detail::tmat2x2&lt; T &gt; const &amp;mat)" -->
1027 <div class="memitem">
1028 <div class="memproto">
1029 <table class="memname">
1030 <tr>
1031 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
1032 <td>(</td>
1033 <td class="paramtype">detail::tmat2x2&lt; T &gt; const &amp;&#160;</td>
1034 <td class="paramname"><em>mat</em></td><td>)</td>
1035 <td></td>
1036 </tr>
1037 </table>
1038 </div>
1039 <div class="memdoc">
1040
1041 <p>Get the const address of the matrix content. </p>
1042 <p>From GLM_GTC_type_ptr extension. </p>
1043
1044 <p>Definition at line <a class="el" href="a00126_source.html#l00102">102</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
1045
1046 </div>
1047 </div>
2661048 </div>
2671049 <hr class="footer"/><address class="footer"><small>Generated by&#160;
2681050 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTC_type_ptr: Memory layout access.</title>
4 <title>GTX Extensions (Experimental)</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#func-members">Functions</a> </div>
32 <a href="#groups">Modules</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTC_type_ptr: Memory layout access.</h1> </div>
35 <div class="ingroups"><a class="el" href="a00239.html">GTC Extensions (Stable)</a></div></div>
34 <h1>GTX Extensions (Experimental)</h1> </div>
35 </div>
3636 <div class="contents">
3737
38 <p>Used to get a pointer to the memory layout of a basic type.
38 <p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
41 <tr><td colspan="2"><h2><a name="func-members"></a>
42 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
45 detail::tmat2x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga28e2cb93a1d741f43d116ae597ffcc91">make_mat2</a> (T const *const ptr)</td></tr>
46 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
47 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
48 detail::tmat2x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga8ad46b9608226fd1c7eec27890281a72">make_mat2x2</a> (T const *const ptr)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
51 detail::tmat2x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga44094e20569c4f5099c099906278ea3d">make_mat2x3</a> (T const *const ptr)</td></tr>
52 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
53 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
54 detail::tmat2x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga26642a9d5c0f0a1eaacc8b432516aa99">make_mat2x4</a> (T const *const ptr)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
57 detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga3012728a59d487ef0e19e0f0fff79b64">make_mat3</a> (T const *const ptr)</td></tr>
58 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
59 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
60 detail::tmat3x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga9e82111c23b88953fe05ee8c27c2b1bc">make_mat3x2</a> (T const *const ptr)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
63 detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga225aa7d04b65101d744ef77d95e1a23b">make_mat3x3</a> (T const *const ptr)</td></tr>
64 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
65 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
66 detail::tmat3x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#gaa4708891294a5aee07256ba6441b4889">make_mat3x4</a> (T const *const ptr)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
69 detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga208ed9a335cf79366b278deedd83f32b">make_mat4</a> (T const *const ptr)</td></tr>
70 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
71 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
72 detail::tmat4x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga2092b5a4cd05f2e39dc1b8e5ee22589c">make_mat4x2</a> (T const *const ptr)</td></tr>
73 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
74 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
75 detail::tmat4x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga0bc483c7f197b07a816682dd0b3981d9">make_mat4x3</a> (T const *const ptr)</td></tr>
76 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
77 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
78 detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#gac9e742ff5cc9308caabd8236fc11a687">make_mat4x4</a> (T const *const ptr)</td></tr>
79 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
80 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
81 detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga78da3ea7db8bca3e13559653ce55093b">make_vec2</a> (T const *const ptr)</td></tr>
82 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
83 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
84 detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga2a4f1959e1070f904687739954c4f7ee">make_vec3</a> (T const *const ptr)</td></tr>
85 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
86 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
87 detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga76c09e1e25b8dbb947d10b76f5c4beac">make_vec4</a> (T const *const ptr)</td></tr>
88 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
89 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga42469e8bdefe80d3fefa9aa58aad61e8">value_ptr</a> (detail::tmat4x4&lt; T &gt; &amp;mat)</td></tr>
90 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
91 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga05d5fe10da0bee1b1443058e8ed0299f">value_ptr</a> (detail::tmat4x3&lt; T &gt; &amp;mat)</td></tr>
92 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
93 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga2df67ef048ae136e1bcd05f8942fde7a">value_ptr</a> (detail::tmat4x3&lt; T &gt; const &amp;mat)</td></tr>
94 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
95 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga5fa0d0614af4ed2455e652884846fb1d">value_ptr</a> (detail::tmat3x4&lt; T &gt; &amp;mat)</td></tr>
96 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
97 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga651f202c716db8b90cefb81b1c0da0c8">value_ptr</a> (detail::tmat3x4&lt; T &gt; const &amp;mat)</td></tr>
98 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
99 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga49da2fc0f3db83449a06c47d729ba024">value_ptr</a> (detail::tmat4x2&lt; T &gt; &amp;mat)</td></tr>
100 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
101 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga96d7708293e8bc9904afcc504189bf55">value_ptr</a> (detail::tmat2x4&lt; T &gt; &amp;mat)</td></tr>
102 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
103 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga99bbcb12e6a17ba198faf9259c8abd96">value_ptr</a> (detail::tmat2x4&lt; T &gt; const &amp;mat)</td></tr>
104 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
105 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#gaa9206a4b3878b3fd2a904b8147457f77">value_ptr</a> (detail::tmat2x2&lt; T &gt; &amp;mat)</td></tr>
106 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
107 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#gabd71f400506835e596c2decd6631f124">value_ptr</a> (detail::tvec3&lt; T &gt; &amp;vec)</td></tr>
108 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
109 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga9fc0e1b422d30446d77f7b3b9a4344dd">value_ptr</a> (detail::tmat3x3&lt; T &gt; const &amp;mat)</td></tr>
110 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
111 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga7bf8756cfee3981a93530342efda2a09">value_ptr</a> (detail::tvec2&lt; T &gt; &amp;vec)</td></tr>
112 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
113 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#gac21518f95a134dbe3c61460c89264b08">value_ptr</a> (detail::tvec2&lt; T &gt; const &amp;vec)</td></tr>
114 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
115 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga3d8f3ed25463d8b7d9f25ba6d7a8acbc">value_ptr</a> (detail::tvec4&lt; T &gt; &amp;vec)</td></tr>
116 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
117 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga56c2e17bbd93738609308c13a515f170">value_ptr</a> (detail::tmat4x4&lt; T &gt; const &amp;mat)</td></tr>
118 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
119 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga830aa0335e6f5e590b1c3ebb642f3e9b">value_ptr</a> (detail::tmat3x3&lt; T &gt; &amp;mat)</td></tr>
120 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
121 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga865263cd65e95cc13ff6a5aa84e3f5e8">value_ptr</a> (detail::tmat4x2&lt; T &gt; const &amp;mat)</td></tr>
122 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
123 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga861a6b1ce6a5138d9fd56c03df8831fa">value_ptr</a> (detail::tmat3x2&lt; T &gt; &amp;mat)</td></tr>
124 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
125 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga8cb84075eac2170b71408bd87e360fc5">value_ptr</a> (detail::tmat2x3&lt; T &gt; &amp;mat)</td></tr>
126 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
127 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga3991a9338f71a240c139d2578dc3ce2a">value_ptr</a> (detail::tvec3&lt; T &gt; const &amp;vec)</td></tr>
128 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
129 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#gaa8d062cde13a6ab5b87e660301aafcbd">value_ptr</a> (detail::tvec4&lt; T &gt; const &amp;vec)</td></tr>
130 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
131 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga35559a6453513f1be0cc693d55058313">value_ptr</a> (detail::tmat3x2&lt; T &gt; const &amp;mat)</td></tr>
132 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
133 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga8346668458014141646d1d73b009d8b1">value_ptr</a> (detail::tmat2x3&lt; T &gt; const &amp;mat)</td></tr>
134 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
135 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00247.html#ga7a39de90fc430c08510ce091ac634a79">value_ptr</a> (detail::tmat2x2&lt; T &gt; const &amp;mat)</td></tr>
41 <tr><td colspan="2"><h2><a name="groups"></a>
42 Modules</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00248.html">GLM_GTX_associated_min_max: Associated Min/Max</a></td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00249.html">GLM_GTX_bit: Extended bitwise operations</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00250.html">GLM_GTX_closest_point: Find closest point</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00251.html">GLM_GTX_color_cast: Color conversion</a></td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00252.html">GLM_GTX_color_space: RGB to HSV conversion</a></td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00253.html">GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion</a></td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html">GLM_GTX_compatibility: Cg and HLSL compatibility</a></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html">GLM_GTX_component_wise: Component wise</a></td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00256.html">GLM_GTX_epsilon: Epsilon comparison</a></td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00257.html">GLM_GTX_euler_angles: Matrix from euler angles</a></td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00258.html">GLM_GTX_extend: Position extending</a></td></tr>
54 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00259.html">GLM_GTX_extented_min_max: Extended min max</a></td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00260.html">GLM_GTX_fast_exponential: Fast exponentiation functions</a></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00261.html">GLM_GTX_fast_square_root: Fast square root functions</a></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00262.html">GLM_GTX_fast_trigonometry: Fast trigonometric functions</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00263.html">GLM_GTX_handed_coordinate_space: Space Handedness</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00264.html">GLM_GTX_inertia: Intertial matrix</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00265.html">GLM_GTX_int_10_10_10_2: Packed integer</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00266.html">GLM_GTX_integer: Extended integer functions</a></td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00267.html">GLM_GTX_intersect: Intersection tests</a></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00268.html">GLM_GTX_log_base: Log with base</a></td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00269.html">GLM_GTX_matrix_cross_product: Cross product matrix form</a></td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00270.html">GLM_GTX_matrix_major_storage: Build matrix</a></td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00271.html">GLM_GTX_matrix_operation: Extended matrix operations</a></td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00272.html">GLM_GTX_matrix_query: Query matrix properties</a></td></tr>
68 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00273.html">GLM_GTX_mixed_producte: Mixed product</a></td></tr>
69 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00274.html">GLM_GTX_multiple: Multiples</a></td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html">GLM_GTX_norm: Vector norm calculations</a></td></tr>
71 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html">GLM_GTX_normal: Compute normals</a></td></tr>
72 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00277.html">GLM_GTX_normalize_dot: Normalize dot product</a></td></tr>
73 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html">GLM_GTX_number_precision: Number precision</a></td></tr>
74 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html">GLM_GTX_ocl_type: OpenCL types</a></td></tr>
75 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html">GLM_GTX_optimum_pow: Optimum pow</a></td></tr>
76 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html">GLM_GTX_orthonormalize: Orthonormalize</a></td></tr>
77 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00282.html">GLM_GTX_perpendicular: Perpendicular</a></td></tr>
78 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00283.html">GLM_GTX_polar_coordinates: Polar coordinates</a></td></tr>
79 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00284.html">GLM_GTX_projection: Projection</a></td></tr>
80 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00285.html">GLM_GTX_quaternion: Extented quaternion types and functions</a></td></tr>
81 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00286.html">GLM_GTX_random: Random</a></td></tr>
82 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html">GLM_GTX_raw_data: Raw data</a></td></tr>
83 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html">GLM_GTX_reciprocal: Reciprocal</a></td></tr>
84 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00289.html">GLM_GTX_rotate_vector: Rotate vector</a></td></tr>
85 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html">GLM_GTX_simd_mat4: SIMD mat4 type and functions</a></td></tr>
86 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html">GLM_GTX_simd_vec4: SIMD vec4 type and functions</a></td></tr>
87 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html">GLM_GTX_spline: Spline</a></td></tr>
88 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00293.html">GLM_GTX_string_cast: String cast</a></td></tr>
89 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00294.html">GLM_GTX_transform: Extented transformation matrices</a></td></tr>
90 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00295.html">GLM_GTX_transform2: Extra transformation matrices</a></td></tr>
91 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00296.html">GLM_GTX_unsigned_int: Unsigned int</a></td></tr>
92 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00297.html">GLM_GTX_vector_access: Vector access</a></td></tr>
93 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00298.html">GLM_GTX_vector_angle: Vector angle</a></td></tr>
94 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00299.html">GLM_GTX_vector_query: Vector query</a></td></tr>
95 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00300.html">GLM_GTX_verbose_operator: Verbose operator</a></td></tr>
96 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html">GLM_GTX_wrap: Texture coordinate wrap modes</a></td></tr>
13697 </table>
13798 <hr/><a name="_details"></a><h2>Detailed Description</h2>
138 <p>Used to get a pointer to the memory layout of a basic type. </p>
139 <p>This extension defines an overloaded function, glm::value_ptr, which takes any of the <a class="el" href="a00237.html">core template types</a>. It returns a pointer to the memory layout of the object. Matrix types store their values in column-major order.</p>
140 <p>This is useful for uploading data to matrices or copying data to buffer objects.</p>
141 <p>Example:</p>
142 <div class="fragment"><pre class="fragment"><span class="preprocessor">#include &lt;glm/glm.hpp&gt;</span>
143 <span class="preprocessor">#include &lt;glm/gtc/type_ptr.hpp&gt;</span>
144
145 <a class="code" href="a00021.html" title="Basic 3D vector type.">glm::vec3</a> aVector(3);
146 <a class="code" href="a00018.html" title="Template for 4 * 4 matrix of floating-point numbers.">glm::mat4</a> someMatrix(1.0);
147
148 glUniform3fv(uniformLoc, 1, <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">glm::value_ptr</a>(aVector));
149 glUniformMatrix4fv(uniformMatrixLoc, 1, GL_FALSE, <a class="code" href="a00247.html#gac21518f95a134dbe3c61460c89264b08" title="Get the const address of the vector content.">glm::value_ptr</a>(someMatrix));
150 </pre></div><p>&lt;<a class="el" href="a00126_source.html">glm/gtc/type_ptr.hpp</a>&gt; need to be included to use these functionalities. </p>
151 <hr/><h2>Function Documentation</h2>
152 <a class="anchor" id="ga28e2cb93a1d741f43d116ae597ffcc91"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat2" ref="ga28e2cb93a1d741f43d116ae597ffcc91" args="(T const *const ptr)" -->
153 <div class="memitem">
154 <div class="memproto">
155 <table class="memname">
156 <tr>
157 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat2x2&lt;T&gt; glm::gtc::type_ptr::make_mat2 </td>
158 <td>(</td>
159 <td class="paramtype">T const *const&#160;</td>
160 <td class="paramname"><em>ptr</em></td><td>)</td>
161 <td></td>
162 </tr>
163 </table>
164 </div>
165 <div class="memdoc">
166
167 <p>Build a matrix from a pointer. </p>
168 <p>From GLM_GTC_type_ptr extension. </p>
169
170 <p>Definition at line <a class="el" href="a00126_source.html#l00422">422</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
171
172 <p>References <a class="el" href="a00126_source.html#l00331">glm::gtc::type_ptr::make_mat2x2()</a>.</p>
173
174 </div>
175 </div>
176 <a class="anchor" id="ga8ad46b9608226fd1c7eec27890281a72"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat2x2" ref="ga8ad46b9608226fd1c7eec27890281a72" args="(T const *const ptr)" -->
177 <div class="memitem">
178 <div class="memproto">
179 <table class="memname">
180 <tr>
181 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat2x2&lt;T&gt; glm::gtc::type_ptr::make_mat2x2 </td>
182 <td>(</td>
183 <td class="paramtype">T const *const&#160;</td>
184 <td class="paramname"><em>ptr</em></td><td>)</td>
185 <td></td>
186 </tr>
187 </table>
188 </div>
189 <div class="memdoc">
190
191 <p>Build a matrix from a pointer. </p>
192 <p>From GLM_GTC_type_ptr extension. </p>
193
194 <p>Definition at line <a class="el" href="a00126_source.html#l00331">331</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
195
196 <p>References <a class="el" href="a00126_source.html#l00041">glm::gtc::type_ptr::value_ptr()</a>.</p>
197
198 <p>Referenced by <a class="el" href="a00126_source.html#l00422">glm::gtc::type_ptr::make_mat2()</a>.</p>
199
200 </div>
201 </div>
202 <a class="anchor" id="ga44094e20569c4f5099c099906278ea3d"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat2x3" ref="ga44094e20569c4f5099c099906278ea3d" args="(T const *const ptr)" -->
203 <div class="memitem">
204 <div class="memproto">
205 <table class="memname">
206 <tr>
207 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat2x3&lt;T&gt; glm::gtc::type_ptr::make_mat2x3 </td>
208 <td>(</td>
209 <td class="paramtype">T const *const&#160;</td>
210 <td class="paramname"><em>ptr</em></td><td>)</td>
211 <td></td>
212 </tr>
213 </table>
214 </div>
215 <div class="memdoc">
216
217 <p>Build a matrix from a pointer. </p>
218 <p>From GLM_GTC_type_ptr extension. </p>
219
220 <p>Definition at line <a class="el" href="a00126_source.html#l00341">341</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
221
222 <p>References <a class="el" href="a00126_source.html#l00041">glm::gtc::type_ptr::value_ptr()</a>.</p>
223
224 </div>
225 </div>
226 <a class="anchor" id="ga26642a9d5c0f0a1eaacc8b432516aa99"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat2x4" ref="ga26642a9d5c0f0a1eaacc8b432516aa99" args="(T const *const ptr)" -->
227 <div class="memitem">
228 <div class="memproto">
229 <table class="memname">
230 <tr>
231 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat2x4&lt;T&gt; glm::gtc::type_ptr::make_mat2x4 </td>
232 <td>(</td>
233 <td class="paramtype">T const *const&#160;</td>
234 <td class="paramname"><em>ptr</em></td><td>)</td>
235 <td></td>
236 </tr>
237 </table>
238 </div>
239 <div class="memdoc">
240
241 <p>Build a matrix from a pointer. </p>
242 <p>From GLM_GTC_type_ptr extension. </p>
243
244 <p>Definition at line <a class="el" href="a00126_source.html#l00351">351</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
245
246 <p>References <a class="el" href="a00126_source.html#l00041">glm::gtc::type_ptr::value_ptr()</a>.</p>
247
248 </div>
249 </div>
250 <a class="anchor" id="ga3012728a59d487ef0e19e0f0fff79b64"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat3" ref="ga3012728a59d487ef0e19e0f0fff79b64" args="(T const *const ptr)" -->
251 <div class="memitem">
252 <div class="memproto">
253 <table class="memname">
254 <tr>
255 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat3x3&lt;T&gt; glm::gtc::type_ptr::make_mat3 </td>
256 <td>(</td>
257 <td class="paramtype">T const *const&#160;</td>
258 <td class="paramname"><em>ptr</em></td><td>)</td>
259 <td></td>
260 </tr>
261 </table>
262 </div>
263 <div class="memdoc">
264
265 <p>Build a matrix from a pointer. </p>
266 <p>From GLM_GTC_type_ptr extension. </p>
267
268 <p>Definition at line <a class="el" href="a00126_source.html#l00430">430</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
269
270 <p>References <a class="el" href="a00126_source.html#l00371">glm::gtc::type_ptr::make_mat3x3()</a>.</p>
271
272 </div>
273 </div>
274 <a class="anchor" id="ga9e82111c23b88953fe05ee8c27c2b1bc"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat3x2" ref="ga9e82111c23b88953fe05ee8c27c2b1bc" args="(T const *const ptr)" -->
275 <div class="memitem">
276 <div class="memproto">
277 <table class="memname">
278 <tr>
279 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat3x2&lt;T&gt; glm::gtc::type_ptr::make_mat3x2 </td>
280 <td>(</td>
281 <td class="paramtype">T const *const&#160;</td>
282 <td class="paramname"><em>ptr</em></td><td>)</td>
283 <td></td>
284 </tr>
285 </table>
286 </div>
287 <div class="memdoc">
288
289 <p>Build a matrix from a pointer. </p>
290 <p>From GLM_GTC_type_ptr extension. </p>
291
292 <p>Definition at line <a class="el" href="a00126_source.html#l00361">361</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
293
294 <p>References <a class="el" href="a00126_source.html#l00041">glm::gtc::type_ptr::value_ptr()</a>.</p>
295
296 </div>
297 </div>
298 <a class="anchor" id="ga225aa7d04b65101d744ef77d95e1a23b"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat3x3" ref="ga225aa7d04b65101d744ef77d95e1a23b" args="(T const *const ptr)" -->
299 <div class="memitem">
300 <div class="memproto">
301 <table class="memname">
302 <tr>
303 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat3x3&lt;T&gt; glm::gtc::type_ptr::make_mat3x3 </td>
304 <td>(</td>
305 <td class="paramtype">T const *const&#160;</td>
306 <td class="paramname"><em>ptr</em></td><td>)</td>
307 <td></td>
308 </tr>
309 </table>
310 </div>
311 <div class="memdoc">
312
313 <p>Build a matrix from a pointer. </p>
314 <p>From GLM_GTC_type_ptr extension. </p>
315
316 <p>Definition at line <a class="el" href="a00126_source.html#l00371">371</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
317
318 <p>References <a class="el" href="a00126_source.html#l00041">glm::gtc::type_ptr::value_ptr()</a>.</p>
319
320 <p>Referenced by <a class="el" href="a00126_source.html#l00430">glm::gtc::type_ptr::make_mat3()</a>.</p>
321
322 </div>
323 </div>
324 <a class="anchor" id="gaa4708891294a5aee07256ba6441b4889"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat3x4" ref="gaa4708891294a5aee07256ba6441b4889" args="(T const *const ptr)" -->
325 <div class="memitem">
326 <div class="memproto">
327 <table class="memname">
328 <tr>
329 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat3x4&lt;T&gt; glm::gtc::type_ptr::make_mat3x4 </td>
330 <td>(</td>
331 <td class="paramtype">T const *const&#160;</td>
332 <td class="paramname"><em>ptr</em></td><td>)</td>
333 <td></td>
334 </tr>
335 </table>
336 </div>
337 <div class="memdoc">
338
339 <p>Build a matrix from a pointer. </p>
340 <p>From GLM_GTC_type_ptr extension. </p>
341
342 <p>Definition at line <a class="el" href="a00126_source.html#l00381">381</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
343
344 <p>References <a class="el" href="a00126_source.html#l00041">glm::gtc::type_ptr::value_ptr()</a>.</p>
345
346 </div>
347 </div>
348 <a class="anchor" id="ga208ed9a335cf79366b278deedd83f32b"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat4" ref="ga208ed9a335cf79366b278deedd83f32b" args="(T const *const ptr)" -->
349 <div class="memitem">
350 <div class="memproto">
351 <table class="memname">
352 <tr>
353 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat4x4&lt;T&gt; glm::gtc::type_ptr::make_mat4 </td>
354 <td>(</td>
355 <td class="paramtype">T const *const&#160;</td>
356 <td class="paramname"><em>ptr</em></td><td>)</td>
357 <td></td>
358 </tr>
359 </table>
360 </div>
361 <div class="memdoc">
362
363 <p>Build a matrix from a pointer. </p>
364 <p>From GLM_GTC_type_ptr extension. </p>
365
366 <p>Definition at line <a class="el" href="a00126_source.html#l00438">438</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
367
368 <p>References <a class="el" href="a00126_source.html#l00412">glm::gtc::type_ptr::make_mat4x4()</a>.</p>
369
370 </div>
371 </div>
372 <a class="anchor" id="ga2092b5a4cd05f2e39dc1b8e5ee22589c"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat4x2" ref="ga2092b5a4cd05f2e39dc1b8e5ee22589c" args="(T const *const ptr)" -->
373 <div class="memitem">
374 <div class="memproto">
375 <table class="memname">
376 <tr>
377 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat4x2&lt;T&gt; glm::gtc::type_ptr::make_mat4x2 </td>
378 <td>(</td>
379 <td class="paramtype">T const *const&#160;</td>
380 <td class="paramname"><em>ptr</em></td><td>)</td>
381 <td></td>
382 </tr>
383 </table>
384 </div>
385 <div class="memdoc">
386
387 <p>Build a matrix from a pointer. </p>
388 <p>From GLM_GTC_type_ptr extension. </p>
389
390 <p>Definition at line <a class="el" href="a00126_source.html#l00392">392</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
391
392 <p>References <a class="el" href="a00126_source.html#l00041">glm::gtc::type_ptr::value_ptr()</a>.</p>
393
394 </div>
395 </div>
396 <a class="anchor" id="ga0bc483c7f197b07a816682dd0b3981d9"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat4x3" ref="ga0bc483c7f197b07a816682dd0b3981d9" args="(T const *const ptr)" -->
397 <div class="memitem">
398 <div class="memproto">
399 <table class="memname">
400 <tr>
401 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat4x3&lt;T&gt; glm::gtc::type_ptr::make_mat4x3 </td>
402 <td>(</td>
403 <td class="paramtype">T const *const&#160;</td>
404 <td class="paramname"><em>ptr</em></td><td>)</td>
405 <td></td>
406 </tr>
407 </table>
408 </div>
409 <div class="memdoc">
410
411 <p>Build a matrix from a pointer. </p>
412 <p>From GLM_GTC_type_ptr extension. </p>
413
414 <p>Definition at line <a class="el" href="a00126_source.html#l00402">402</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
415
416 <p>References <a class="el" href="a00126_source.html#l00041">glm::gtc::type_ptr::value_ptr()</a>.</p>
417
418 </div>
419 </div>
420 <a class="anchor" id="gac9e742ff5cc9308caabd8236fc11a687"></a><!-- doxytag: member="glm::gtc::type_ptr::make_mat4x4" ref="gac9e742ff5cc9308caabd8236fc11a687" args="(T const *const ptr)" -->
421 <div class="memitem">
422 <div class="memproto">
423 <table class="memname">
424 <tr>
425 <td class="memname">GLM_FUNC_QUALIFIER detail::tmat4x4&lt;T&gt; glm::gtc::type_ptr::make_mat4x4 </td>
426 <td>(</td>
427 <td class="paramtype">T const *const&#160;</td>
428 <td class="paramname"><em>ptr</em></td><td>)</td>
429 <td></td>
430 </tr>
431 </table>
432 </div>
433 <div class="memdoc">
434
435 <p>Build a matrix from a pointer. </p>
436 <p>From GLM_GTC_type_ptr extension. </p>
437
438 <p>Definition at line <a class="el" href="a00126_source.html#l00412">412</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
439
440 <p>References <a class="el" href="a00126_source.html#l00041">glm::gtc::type_ptr::value_ptr()</a>.</p>
441
442 <p>Referenced by <a class="el" href="a00126_source.html#l00438">glm::gtc::type_ptr::make_mat4()</a>.</p>
443
444 </div>
445 </div>
446 <a class="anchor" id="ga78da3ea7db8bca3e13559653ce55093b"></a><!-- doxytag: member="glm::gtc::type_ptr::make_vec2" ref="ga78da3ea7db8bca3e13559653ce55093b" args="(T const *const ptr)" -->
447 <div class="memitem">
448 <div class="memproto">
449 <table class="memname">
450 <tr>
451 <td class="memname">GLM_FUNC_QUALIFIER detail::tvec2&lt;T&gt; glm::gtc::type_ptr::make_vec2 </td>
452 <td>(</td>
453 <td class="paramtype">T const *const&#160;</td>
454 <td class="paramname"><em>ptr</em></td><td>)</td>
455 <td></td>
456 </tr>
457 </table>
458 </div>
459 <div class="memdoc">
460
461 <p>Build a vector from a pointer. </p>
462 <p>From GLM_GTC_type_ptr extension. </p>
463
464 <p>Definition at line <a class="el" href="a00126_source.html#l00301">301</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
465
466 <p>References <a class="el" href="a00126_source.html#l00041">glm::gtc::type_ptr::value_ptr()</a>.</p>
467
468 </div>
469 </div>
470 <a class="anchor" id="ga2a4f1959e1070f904687739954c4f7ee"></a><!-- doxytag: member="glm::gtc::type_ptr::make_vec3" ref="ga2a4f1959e1070f904687739954c4f7ee" args="(T const *const ptr)" -->
471 <div class="memitem">
472 <div class="memproto">
473 <table class="memname">
474 <tr>
475 <td class="memname">GLM_FUNC_QUALIFIER detail::tvec3&lt;T&gt; glm::gtc::type_ptr::make_vec3 </td>
476 <td>(</td>
477 <td class="paramtype">T const *const&#160;</td>
478 <td class="paramname"><em>ptr</em></td><td>)</td>
479 <td></td>
480 </tr>
481 </table>
482 </div>
483 <div class="memdoc">
484
485 <p>Build a vector from a pointer. </p>
486 <p>From GLM_GTC_type_ptr extension. </p>
487
488 <p>Definition at line <a class="el" href="a00126_source.html#l00311">311</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
489
490 <p>References <a class="el" href="a00126_source.html#l00041">glm::gtc::type_ptr::value_ptr()</a>.</p>
491
492 </div>
493 </div>
494 <a class="anchor" id="ga76c09e1e25b8dbb947d10b76f5c4beac"></a><!-- doxytag: member="glm::gtc::type_ptr::make_vec4" ref="ga76c09e1e25b8dbb947d10b76f5c4beac" args="(T const *const ptr)" -->
495 <div class="memitem">
496 <div class="memproto">
497 <table class="memname">
498 <tr>
499 <td class="memname">GLM_FUNC_QUALIFIER detail::tvec4&lt;T&gt; glm::gtc::type_ptr::make_vec4 </td>
500 <td>(</td>
501 <td class="paramtype">T const *const&#160;</td>
502 <td class="paramname"><em>ptr</em></td><td>)</td>
503 <td></td>
504 </tr>
505 </table>
506 </div>
507 <div class="memdoc">
508
509 <p>Build a vector from a pointer. </p>
510 <p>From GLM_GTC_type_ptr extension. </p>
511
512 <p>Definition at line <a class="el" href="a00126_source.html#l00321">321</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
513
514 <p>References <a class="el" href="a00126_source.html#l00041">glm::gtc::type_ptr::value_ptr()</a>.</p>
515
516 </div>
517 </div>
518 <a class="anchor" id="ga42469e8bdefe80d3fefa9aa58aad61e8"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga42469e8bdefe80d3fefa9aa58aad61e8" args="(detail::tmat4x4&lt; T &gt; &amp;mat)" -->
519 <div class="memitem">
520 <div class="memproto">
521 <table class="memname">
522 <tr>
523 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
524 <td>(</td>
525 <td class="paramtype">detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
526 <td class="paramname"><em>mat</em></td><td>)</td>
527 <td></td>
528 </tr>
529 </table>
530 </div>
531 <div class="memdoc">
532
533 <p>Get the address of the matrix content. </p>
534 <p>From GLM_GTC_type_ptr extension. </p>
535
536 <p>Definition at line <a class="el" href="a00126_source.html#l00162">162</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
537
538 </div>
539 </div>
540 <a class="anchor" id="ga05d5fe10da0bee1b1443058e8ed0299f"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga05d5fe10da0bee1b1443058e8ed0299f" args="(detail::tmat4x3&lt; T &gt; &amp;mat)" -->
541 <div class="memitem">
542 <div class="memproto">
543 <table class="memname">
544 <tr>
545 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
546 <td>(</td>
547 <td class="paramtype">detail::tmat4x3&lt; T &gt; &amp;&#160;</td>
548 <td class="paramname"><em>mat</em></td><td>)</td>
549 <td></td>
550 </tr>
551 </table>
552 </div>
553 <div class="memdoc">
554
555 <p>Get the address of the matrix content. </p>
556 <p>From GLM_GTC_type_ptr extension. </p>
557
558 <p>Definition at line <a class="el" href="a00126_source.html#l00293">293</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
559
560 </div>
561 </div>
562 <a class="anchor" id="ga2df67ef048ae136e1bcd05f8942fde7a"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga2df67ef048ae136e1bcd05f8942fde7a" args="(detail::tmat4x3&lt; T &gt; const &amp;mat)" -->
563 <div class="memitem">
564 <div class="memproto">
565 <table class="memname">
566 <tr>
567 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
568 <td>(</td>
569 <td class="paramtype">detail::tmat4x3&lt; T &gt; const &amp;&#160;</td>
570 <td class="paramname"><em>mat</em></td><td>)</td>
571 <td></td>
572 </tr>
573 </table>
574 </div>
575 <div class="memdoc">
576
577 <p>Get the const address of the matrix content. </p>
578 <p>From GLM_GTC_type_ptr extension. </p>
579
580 <p>Definition at line <a class="el" href="a00126_source.html#l00283">283</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
581
582 </div>
583 </div>
584 <a class="anchor" id="ga5fa0d0614af4ed2455e652884846fb1d"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga5fa0d0614af4ed2455e652884846fb1d" args="(detail::tmat3x4&lt; T &gt; &amp;mat)" -->
585 <div class="memitem">
586 <div class="memproto">
587 <table class="memname">
588 <tr>
589 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
590 <td>(</td>
591 <td class="paramtype">detail::tmat3x4&lt; T &gt; &amp;&#160;</td>
592 <td class="paramname"><em>mat</em></td><td>)</td>
593 <td></td>
594 </tr>
595 </table>
596 </div>
597 <div class="memdoc">
598
599 <p>Get the address of the matrix content. </p>
600 <p>From GLM_GTC_type_ptr extension. </p>
601
602 <p>Definition at line <a class="el" href="a00126_source.html#l00272">272</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
603
604 </div>
605 </div>
606 <a class="anchor" id="ga651f202c716db8b90cefb81b1c0da0c8"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga651f202c716db8b90cefb81b1c0da0c8" args="(detail::tmat3x4&lt; T &gt; const &amp;mat)" -->
607 <div class="memitem">
608 <div class="memproto">
609 <table class="memname">
610 <tr>
611 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
612 <td>(</td>
613 <td class="paramtype">detail::tmat3x4&lt; T &gt; const &amp;&#160;</td>
614 <td class="paramname"><em>mat</em></td><td>)</td>
615 <td></td>
616 </tr>
617 </table>
618 </div>
619 <div class="memdoc">
620
621 <p>Get the const address of the matrix content. </p>
622 <p>From GLM_GTC_type_ptr extension. </p>
623
624 <p>Definition at line <a class="el" href="a00126_source.html#l00261">261</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
625
626 </div>
627 </div>
628 <a class="anchor" id="ga49da2fc0f3db83449a06c47d729ba024"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga49da2fc0f3db83449a06c47d729ba024" args="(detail::tmat4x2&lt; T &gt; &amp;mat)" -->
629 <div class="memitem">
630 <div class="memproto">
631 <table class="memname">
632 <tr>
633 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
634 <td>(</td>
635 <td class="paramtype">detail::tmat4x2&lt; T &gt; &amp;&#160;</td>
636 <td class="paramname"><em>mat</em></td><td>)</td>
637 <td></td>
638 </tr>
639 </table>
640 </div>
641 <div class="memdoc">
642
643 <p>Get the address of the matrix content. </p>
644 <p>From GLM_GTC_type_ptr extension. </p>
645
646 <p>Definition at line <a class="el" href="a00126_source.html#l00250">250</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
647
648 </div>
649 </div>
650 <a class="anchor" id="ga96d7708293e8bc9904afcc504189bf55"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga96d7708293e8bc9904afcc504189bf55" args="(detail::tmat2x4&lt; T &gt; &amp;mat)" -->
651 <div class="memitem">
652 <div class="memproto">
653 <table class="memname">
654 <tr>
655 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
656 <td>(</td>
657 <td class="paramtype">detail::tmat2x4&lt; T &gt; &amp;&#160;</td>
658 <td class="paramname"><em>mat</em></td><td>)</td>
659 <td></td>
660 </tr>
661 </table>
662 </div>
663 <div class="memdoc">
664
665 <p>Get the address of the matrix content. </p>
666 <p>From GLM_GTC_type_ptr extension. </p>
667
668 <p>Definition at line <a class="el" href="a00126_source.html#l00228">228</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
669
670 </div>
671 </div>
672 <a class="anchor" id="ga99bbcb12e6a17ba198faf9259c8abd96"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga99bbcb12e6a17ba198faf9259c8abd96" args="(detail::tmat2x4&lt; T &gt; const &amp;mat)" -->
673 <div class="memitem">
674 <div class="memproto">
675 <table class="memname">
676 <tr>
677 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
678 <td>(</td>
679 <td class="paramtype">detail::tmat2x4&lt; T &gt; const &amp;&#160;</td>
680 <td class="paramname"><em>mat</em></td><td>)</td>
681 <td></td>
682 </tr>
683 </table>
684 </div>
685 <div class="memdoc">
686
687 <p>Get the const address of the matrix content. </p>
688 <p>From GLM_GTC_type_ptr extension. </p>
689
690 <p>Definition at line <a class="el" href="a00126_source.html#l00217">217</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
691
692 </div>
693 </div>
694 <a class="anchor" id="gaa9206a4b3878b3fd2a904b8147457f77"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="gaa9206a4b3878b3fd2a904b8147457f77" args="(detail::tmat2x2&lt; T &gt; &amp;mat)" -->
695 <div class="memitem">
696 <div class="memproto">
697 <table class="memname">
698 <tr>
699 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
700 <td>(</td>
701 <td class="paramtype">detail::tmat2x2&lt; T &gt; &amp;&#160;</td>
702 <td class="paramname"><em>mat</em></td><td>)</td>
703 <td></td>
704 </tr>
705 </table>
706 </div>
707 <div class="memdoc">
708
709 <p>Get the address of the matrix content. </p>
710 <p>From GLM_GTC_type_ptr extension. </p>
711
712 <p>Definition at line <a class="el" href="a00126_source.html#l00118">118</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
713
714 </div>
715 </div>
716 <a class="anchor" id="gabd71f400506835e596c2decd6631f124"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="gabd71f400506835e596c2decd6631f124" args="(detail::tvec3&lt; T &gt; &amp;vec)" -->
717 <div class="memitem">
718 <div class="memproto">
719 <table class="memname">
720 <tr>
721 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
722 <td>(</td>
723 <td class="paramtype">detail::tvec3&lt; T &gt; &amp;&#160;</td>
724 <td class="paramname"><em>vec</em></td><td>)</td>
725 <td></td>
726 </tr>
727 </table>
728 </div>
729 <div class="memdoc">
730
731 <p>Get the address of the vector content. </p>
732 <p>From GLM_GTC_type_ptr extension. </p>
733
734 <p>Definition at line <a class="el" href="a00126_source.html#l00074">74</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
735
736 </div>
737 </div>
738 <a class="anchor" id="ga9fc0e1b422d30446d77f7b3b9a4344dd"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga9fc0e1b422d30446d77f7b3b9a4344dd" args="(detail::tmat3x3&lt; T &gt; const &amp;mat)" -->
739 <div class="memitem">
740 <div class="memproto">
741 <table class="memname">
742 <tr>
743 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
744 <td>(</td>
745 <td class="paramtype">detail::tmat3x3&lt; T &gt; const &amp;&#160;</td>
746 <td class="paramname"><em>mat</em></td><td>)</td>
747 <td></td>
748 </tr>
749 </table>
750 </div>
751 <div class="memdoc">
752
753 <p>Get the const address of the matrix content. </p>
754 <p>From GLM_GTC_type_ptr extension. </p>
755
756 <p>Definition at line <a class="el" href="a00126_source.html#l00129">129</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
757
758 </div>
759 </div>
760 <a class="anchor" id="ga7bf8756cfee3981a93530342efda2a09"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga7bf8756cfee3981a93530342efda2a09" args="(detail::tvec2&lt; T &gt; &amp;vec)" -->
761 <div class="memitem">
762 <div class="memproto">
763 <table class="memname">
764 <tr>
765 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
766 <td>(</td>
767 <td class="paramtype">detail::tvec2&lt; T &gt; &amp;&#160;</td>
768 <td class="paramname"><em>vec</em></td><td>)</td>
769 <td></td>
770 </tr>
771 </table>
772 </div>
773 <div class="memdoc">
774
775 <p>Get the address of the vector content. </p>
776 <p>From GLM_GTC_type_ptr extension. </p>
777
778 <p>Definition at line <a class="el" href="a00126_source.html#l00052">52</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
779
780 </div>
781 </div>
782 <a class="anchor" id="gac21518f95a134dbe3c61460c89264b08"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="gac21518f95a134dbe3c61460c89264b08" args="(detail::tvec2&lt; T &gt; const &amp;vec)" -->
783 <div class="memitem">
784 <div class="memproto">
785 <table class="memname">
786 <tr>
787 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
788 <td>(</td>
789 <td class="paramtype">detail::tvec2&lt; T &gt; const &amp;&#160;</td>
790 <td class="paramname"><em>vec</em></td><td>)</td>
791 <td></td>
792 </tr>
793 </table>
794 </div>
795 <div class="memdoc">
796
797 <p>Get the const address of the vector content. </p>
798 <p>From GLM_GTC_type_ptr extension. </p>
799
800 <p>Definition at line <a class="el" href="a00126_source.html#l00041">41</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
801
802 <p>Referenced by <a class="el" href="a00126_source.html#l00331">glm::gtc::type_ptr::make_mat2x2()</a>, <a class="el" href="a00126_source.html#l00341">glm::gtc::type_ptr::make_mat2x3()</a>, <a class="el" href="a00126_source.html#l00351">glm::gtc::type_ptr::make_mat2x4()</a>, <a class="el" href="a00126_source.html#l00361">glm::gtc::type_ptr::make_mat3x2()</a>, <a class="el" href="a00126_source.html#l00371">glm::gtc::type_ptr::make_mat3x3()</a>, <a class="el" href="a00126_source.html#l00381">glm::gtc::type_ptr::make_mat3x4()</a>, <a class="el" href="a00126_source.html#l00392">glm::gtc::type_ptr::make_mat4x2()</a>, <a class="el" href="a00126_source.html#l00402">glm::gtc::type_ptr::make_mat4x3()</a>, <a class="el" href="a00126_source.html#l00412">glm::gtc::type_ptr::make_mat4x4()</a>, <a class="el" href="a00126_source.html#l00301">glm::gtc::type_ptr::make_vec2()</a>, <a class="el" href="a00126_source.html#l00311">glm::gtc::type_ptr::make_vec3()</a>, and <a class="el" href="a00126_source.html#l00321">glm::gtc::type_ptr::make_vec4()</a>.</p>
803
804 </div>
805 </div>
806 <a class="anchor" id="ga3d8f3ed25463d8b7d9f25ba6d7a8acbc"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga3d8f3ed25463d8b7d9f25ba6d7a8acbc" args="(detail::tvec4&lt; T &gt; &amp;vec)" -->
807 <div class="memitem">
808 <div class="memproto">
809 <table class="memname">
810 <tr>
811 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
812 <td>(</td>
813 <td class="paramtype">detail::tvec4&lt; T &gt; &amp;&#160;</td>
814 <td class="paramname"><em>vec</em></td><td>)</td>
815 <td></td>
816 </tr>
817 </table>
818 </div>
819 <div class="memdoc">
820
821 <p>Get the address of the vector content. </p>
822 <p>From GLM_GTC_type_ptr extension. </p>
823
824 <p>Definition at line <a class="el" href="a00126_source.html#l00096">96</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
825
826 </div>
827 </div>
828 <a class="anchor" id="ga56c2e17bbd93738609308c13a515f170"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga56c2e17bbd93738609308c13a515f170" args="(detail::tmat4x4&lt; T &gt; const &amp;mat)" -->
829 <div class="memitem">
830 <div class="memproto">
831 <table class="memname">
832 <tr>
833 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
834 <td>(</td>
835 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
836 <td class="paramname"><em>mat</em></td><td>)</td>
837 <td></td>
838 </tr>
839 </table>
840 </div>
841 <div class="memdoc">
842
843 <p>Get the const address of the matrix content. </p>
844 <p>From GLM_GTC_type_ptr extension. </p>
845
846 <p>Definition at line <a class="el" href="a00126_source.html#l00151">151</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
847
848 </div>
849 </div>
850 <a class="anchor" id="ga830aa0335e6f5e590b1c3ebb642f3e9b"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga830aa0335e6f5e590b1c3ebb642f3e9b" args="(detail::tmat3x3&lt; T &gt; &amp;mat)" -->
851 <div class="memitem">
852 <div class="memproto">
853 <table class="memname">
854 <tr>
855 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
856 <td>(</td>
857 <td class="paramtype">detail::tmat3x3&lt; T &gt; &amp;&#160;</td>
858 <td class="paramname"><em>mat</em></td><td>)</td>
859 <td></td>
860 </tr>
861 </table>
862 </div>
863 <div class="memdoc">
864
865 <p>Get the address of the matrix content. </p>
866 <p>From GLM_GTC_type_ptr extension. </p>
867
868 <p>Definition at line <a class="el" href="a00126_source.html#l00140">140</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
869
870 </div>
871 </div>
872 <a class="anchor" id="ga865263cd65e95cc13ff6a5aa84e3f5e8"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga865263cd65e95cc13ff6a5aa84e3f5e8" args="(detail::tmat4x2&lt; T &gt; const &amp;mat)" -->
873 <div class="memitem">
874 <div class="memproto">
875 <table class="memname">
876 <tr>
877 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
878 <td>(</td>
879 <td class="paramtype">detail::tmat4x2&lt; T &gt; const &amp;&#160;</td>
880 <td class="paramname"><em>mat</em></td><td>)</td>
881 <td></td>
882 </tr>
883 </table>
884 </div>
885 <div class="memdoc">
886
887 <p>Get the const address of the matrix content. </p>
888 <p>From GLM_GTC_type_ptr extension. </p>
889
890 <p>Definition at line <a class="el" href="a00126_source.html#l00239">239</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
891
892 </div>
893 </div>
894 <a class="anchor" id="ga861a6b1ce6a5138d9fd56c03df8831fa"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga861a6b1ce6a5138d9fd56c03df8831fa" args="(detail::tmat3x2&lt; T &gt; &amp;mat)" -->
895 <div class="memitem">
896 <div class="memproto">
897 <table class="memname">
898 <tr>
899 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
900 <td>(</td>
901 <td class="paramtype">detail::tmat3x2&lt; T &gt; &amp;&#160;</td>
902 <td class="paramname"><em>mat</em></td><td>)</td>
903 <td></td>
904 </tr>
905 </table>
906 </div>
907 <div class="memdoc">
908
909 <p>Get the address of the matrix content. </p>
910 <p>From GLM_GTC_type_ptr extension. </p>
911
912 <p>Definition at line <a class="el" href="a00126_source.html#l00206">206</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
913
914 </div>
915 </div>
916 <a class="anchor" id="ga8cb84075eac2170b71408bd87e360fc5"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga8cb84075eac2170b71408bd87e360fc5" args="(detail::tmat2x3&lt; T &gt; &amp;mat)" -->
917 <div class="memitem">
918 <div class="memproto">
919 <table class="memname">
920 <tr>
921 <td class="memname">GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr </td>
922 <td>(</td>
923 <td class="paramtype">detail::tmat2x3&lt; T &gt; &amp;&#160;</td>
924 <td class="paramname"><em>mat</em></td><td>)</td>
925 <td></td>
926 </tr>
927 </table>
928 </div>
929 <div class="memdoc">
930
931 <p>Get the address of the matrix content. </p>
932 <p>From GLM_GTC_type_ptr extension. </p>
933
934 <p>Definition at line <a class="el" href="a00126_source.html#l00184">184</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
935
936 </div>
937 </div>
938 <a class="anchor" id="ga3991a9338f71a240c139d2578dc3ce2a"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga3991a9338f71a240c139d2578dc3ce2a" args="(detail::tvec3&lt; T &gt; const &amp;vec)" -->
939 <div class="memitem">
940 <div class="memproto">
941 <table class="memname">
942 <tr>
943 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
944 <td>(</td>
945 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
946 <td class="paramname"><em>vec</em></td><td>)</td>
947 <td></td>
948 </tr>
949 </table>
950 </div>
951 <div class="memdoc">
952
953 <p>Get the const address of the vector content. </p>
954 <p>From GLM_GTC_type_ptr extension. </p>
955
956 <p>Definition at line <a class="el" href="a00126_source.html#l00063">63</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
957
958 </div>
959 </div>
960 <a class="anchor" id="gaa8d062cde13a6ab5b87e660301aafcbd"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="gaa8d062cde13a6ab5b87e660301aafcbd" args="(detail::tvec4&lt; T &gt; const &amp;vec)" -->
961 <div class="memitem">
962 <div class="memproto">
963 <table class="memname">
964 <tr>
965 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
966 <td>(</td>
967 <td class="paramtype">detail::tvec4&lt; T &gt; const &amp;&#160;</td>
968 <td class="paramname"><em>vec</em></td><td>)</td>
969 <td></td>
970 </tr>
971 </table>
972 </div>
973 <div class="memdoc">
974
975 <p>Get the const address of the vector content. </p>
976 <p>From GLM_GTC_type_ptr extension. </p>
977
978 <p>Definition at line <a class="el" href="a00126_source.html#l00085">85</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
979
980 </div>
981 </div>
982 <a class="anchor" id="ga35559a6453513f1be0cc693d55058313"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga35559a6453513f1be0cc693d55058313" args="(detail::tmat3x2&lt; T &gt; const &amp;mat)" -->
983 <div class="memitem">
984 <div class="memproto">
985 <table class="memname">
986 <tr>
987 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
988 <td>(</td>
989 <td class="paramtype">detail::tmat3x2&lt; T &gt; const &amp;&#160;</td>
990 <td class="paramname"><em>mat</em></td><td>)</td>
991 <td></td>
992 </tr>
993 </table>
994 </div>
995 <div class="memdoc">
996
997 <p>Get the const address of the matrix content. </p>
998 <p>From GLM_GTC_type_ptr extension. </p>
999
1000 <p>Definition at line <a class="el" href="a00126_source.html#l00195">195</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
1001
1002 </div>
1003 </div>
1004 <a class="anchor" id="ga8346668458014141646d1d73b009d8b1"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga8346668458014141646d1d73b009d8b1" args="(detail::tmat2x3&lt; T &gt; const &amp;mat)" -->
1005 <div class="memitem">
1006 <div class="memproto">
1007 <table class="memname">
1008 <tr>
1009 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
1010 <td>(</td>
1011 <td class="paramtype">detail::tmat2x3&lt; T &gt; const &amp;&#160;</td>
1012 <td class="paramname"><em>mat</em></td><td>)</td>
1013 <td></td>
1014 </tr>
1015 </table>
1016 </div>
1017 <div class="memdoc">
1018
1019 <p>Get the const address of the matrix content. </p>
1020 <p>From GLM_GTC_type_ptr extension. </p>
1021
1022 <p>Definition at line <a class="el" href="a00126_source.html#l00173">173</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
1023
1024 </div>
1025 </div>
1026 <a class="anchor" id="ga7a39de90fc430c08510ce091ac634a79"></a><!-- doxytag: member="glm::gtc::type_ptr::value_ptr" ref="ga7a39de90fc430c08510ce091ac634a79" args="(detail::tmat2x2&lt; T &gt; const &amp;mat)" -->
1027 <div class="memitem">
1028 <div class="memproto">
1029 <table class="memname">
1030 <tr>
1031 <td class="memname">GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr </td>
1032 <td>(</td>
1033 <td class="paramtype">detail::tmat2x2&lt; T &gt; const &amp;&#160;</td>
1034 <td class="paramname"><em>mat</em></td><td>)</td>
1035 <td></td>
1036 </tr>
1037 </table>
1038 </div>
1039 <div class="memdoc">
1040
1041 <p>Get the const address of the matrix content. </p>
1042 <p>From GLM_GTC_type_ptr extension. </p>
1043
1044 <p>Definition at line <a class="el" href="a00126_source.html#l00107">107</a> of file <a class="el" href="a00126_source.html">type_ptr.hpp</a>.</p>
1045
1046 </div>
1047 </div>
99 <p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program. </p>
100 <p>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.</p>
101 <p>Even if it's highly unrecommended, it's possible to include all the extensions at once by including &lt;<a class="el" href="a00037_source.html">glm/ext.hpp</a>&gt;. Otherwise, each extension needs to be included a specific file. </p>
1048102 </div>
1049103 <hr class="footer"/><address class="footer"><small>Generated by&#160;
1050104 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GTX Extensions (Experimental)</title>
4 <title>GLM_GTX_associated_min_max: Associated Min/Max</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#groups">Modules</a> </div>
32 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GTX Extensions (Experimental)</h1> </div>
35 </div>
34 <h1>GLM_GTX_associated_min_max: Associated Min/Max</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program.
38 <p>Min and max functions that return associated values not the compared onces. &lt;<a class="el" href="a00026_source.html">glm/gtx/associated_min_max.hpp</a>&gt; need to be included to use these functionalities.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
41 <tr><td colspan="2"><h2><a name="groups"></a>
42 Modules</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00249.html">GLM_GTX_associated_min_max: Associated Min/Max</a></td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00250.html">GLM_GTX_bit: Extended bitwise operations</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00251.html">GLM_GTX_closest_point: Find closest point</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00252.html">GLM_GTX_color_cast: Color conversion</a></td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00253.html">GLM_GTX_color_space: RGB to HSV conversion</a></td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html">GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion</a></td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html">GLM_GTX_compatibility: Cg and HLSL compatibility</a></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00256.html">GLM_GTX_component_wise: Component wise</a></td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00257.html">GLM_GTX_epsilon: Epsilon comparison</a></td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00258.html">GLM_GTX_euler_angles: Matrix from euler angles</a></td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00259.html">GLM_GTX_extend: Position extending</a></td></tr>
54 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00260.html">GLM_GTX_extented_min_max: Extended min max</a></td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00261.html">GLM_GTX_fast_exponential: Fast exponentiation functions</a></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00262.html">GLM_GTX_fast_square_root: Fast square root functions</a></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00263.html">GLM_GTX_fast_trigonometry: Fast trigonometric functions</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00264.html">GLM_GTX_handed_coordinate_space: Space Handedness</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00265.html">GLM_GTX_inertia: Intertial matrix</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00266.html">GLM_GTX_int_10_10_10_2: Packed integer</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00267.html">GLM_GTX_integer: Extended integer functions</a></td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00268.html">GLM_GTX_intersect: Intersection tests</a></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00269.html">GLM_GTX_log_base: Log with base</a></td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00270.html">GLM_GTX_matrix_cross_product: Cross product matrix form</a></td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00271.html">GLM_GTX_matrix_major_storage: Build matrix</a></td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00272.html">GLM_GTX_matrix_operation: Extended matrix operations</a></td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00273.html">GLM_GTX_matrix_query: Query matrix properties</a></td></tr>
68 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00274.html">GLM_GTX_mixed_producte: Mixed product</a></td></tr>
69 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html">GLM_GTX_multiple: Multiples</a></td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html">GLM_GTX_norm: Vector norm calculations</a></td></tr>
71 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00277.html">GLM_GTX_normal: Compute normals</a></td></tr>
72 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html">GLM_GTX_normalize_dot: Normalize dot product</a></td></tr>
73 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html">GLM_GTX_number_precision: Number precision</a></td></tr>
74 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html">GLM_GTX_ocl_type: OpenCL types</a></td></tr>
75 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html">GLM_GTX_optimum_pow: Optimum pow</a></td></tr>
76 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00282.html">GLM_GTX_orthonormalize: Orthonormalize</a></td></tr>
77 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00283.html">GLM_GTX_perpendicular: Perpendicular</a></td></tr>
78 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00284.html">GLM_GTX_polar_coordinates: Polar coordinates</a></td></tr>
79 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00285.html">GLM_GTX_projection: Projection</a></td></tr>
80 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00286.html">GLM_GTX_quaternion: Extented quaternion types and functions</a></td></tr>
81 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html">GLM_GTX_random: Random</a></td></tr>
82 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html">GLM_GTX_raw_data: Raw data</a></td></tr>
83 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00289.html">GLM_GTX_reciprocal: Reciprocal</a></td></tr>
84 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html">GLM_GTX_rotate_vector: Rotate vector</a></td></tr>
85 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html">GLM_GTX_simd_mat4: SIMD mat4 type and functions</a></td></tr>
86 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html">GLM_GTX_simd_vec4: SIMD vec4 type and functions</a></td></tr>
87 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00293.html">GLM_GTX_spline: Spline</a></td></tr>
88 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00294.html">GLM_GTX_string_cast: String cast</a></td></tr>
89 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00295.html">GLM_GTX_transform: Extented transformation matrices</a></td></tr>
90 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00296.html">GLM_GTX_transform2: Extra transformation matrices</a></td></tr>
91 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00297.html">GLM_GTX_unsigned_int: Unsigned int</a></td></tr>
92 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00298.html">GLM_GTX_vector_angle: Vector access</a></td></tr>
93 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00299.html">GLM_GTX_vector_angle: Vector angle</a></td></tr>
94 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00300.html">GLM_GTX_vector_query: Vector query</a></td></tr>
95 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html">GLM_GTX_verbose_operator: Verbose operator</a></td></tr>
96 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00302.html">GLM_GTX_wrap: Texture coordinate wrap modes</a></td></tr>
41 <tr><td colspan="2"><h2><a name="func-members"></a>
42 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga3b1c8d7070874427d0a0fd84885ce473"></a><!-- doxytag: member="gtx_associated_min_max::associatedMax" ref="ga3b1c8d7070874427d0a0fd84885ce473" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b)" -->
44 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
45 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00248.html#ga3b1c8d7070874427d0a0fd84885ce473">associatedMax</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b)</td></tr>
46 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf677e31296d27c540b8873b0da989780"></a><!-- doxytag: member="gtx_associated_min_max::associatedMax" ref="gaf677e31296d27c540b8873b0da989780" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c)" -->
47 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00248.html#gaf677e31296d27c540b8873b0da989780">associatedMax</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c)</td></tr>
49 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga356657481029e90e6f079ec4ccd6407b"></a><!-- doxytag: member="gtx_associated_min_max::associatedMax" ref="ga356657481029e90e6f079ec4ccd6407b" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c, const genTypeT &amp;w, const genTypeU &amp;d)" -->
50 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
51 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00248.html#ga356657481029e90e6f079ec4ccd6407b">associatedMax</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c, const genTypeT &amp;w, const genTypeU &amp;d)</td></tr>
52 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga35cccfe67d0f20c897b3bb7d53ceee92"></a><!-- doxytag: member="gtx_associated_min_max::associatedMin" ref="ga35cccfe67d0f20c897b3bb7d53ceee92" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c)" -->
53 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00248.html#ga35cccfe67d0f20c897b3bb7d53ceee92">associatedMin</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c)</td></tr>
55 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga84781b260e2851924efea99c4d2e5ae6"></a><!-- doxytag: member="gtx_associated_min_max::associatedMin" ref="ga84781b260e2851924efea99c4d2e5ae6" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b)" -->
56 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00248.html#ga84781b260e2851924efea99c4d2e5ae6">associatedMin</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b)</td></tr>
58 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8ee45a8117b0ce3827d6a57625cafac0"></a><!-- doxytag: member="gtx_associated_min_max::associatedMin" ref="ga8ee45a8117b0ce3827d6a57625cafac0" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c, const genTypeT &amp;w, const genTypeU &amp;d)" -->
59 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00248.html#ga8ee45a8117b0ce3827d6a57625cafac0">associatedMin</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c, const genTypeT &amp;w, const genTypeU &amp;d)</td></tr>
9761 </table>
9862 <hr/><a name="_details"></a><h2>Detailed Description</h2>
99 <p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program. </p>
100 <p>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.</p>
101 <p>Even if it's highly unrecommended, it's possible to include all the extensions at once by including &lt;<a class="el" href="a00037_source.html">glm/ext.hpp</a>&gt;. Otherwise, each extension needs to be included a specific file. </p>
63 <p>Min and max functions that return associated values not the compared onces. &lt;<a class="el" href="a00026_source.html">glm/gtx/associated_min_max.hpp</a>&gt; need to be included to use these functionalities. </p>
10264 </div>
10365 <hr class="footer"/><address class="footer"><small>Generated by&#160;
10466 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_associated_min_max: Associated Min/Max</title>
4 <title>GLM_GTX_bit: Extended bitwise operations</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_associated_min_max: Associated Min/Max</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_bit: Extended bitwise operations</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Min and max functions that return associated values not the compared onces. &lt;<a class="el" href="a00026_source.html">glm/gtx/associated_min_max.hpp</a>&gt; need to be included to use these functionalities.
38 <p>Allow to perform bit operations on integer values.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga3b1c8d7070874427d0a0fd84885ce473"></a><!-- doxytag: member="gtx_associated_min_max::associatedMax" ref="ga3b1c8d7070874427d0a0fd84885ce473" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b)" -->
44 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
45 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga3b1c8d7070874427d0a0fd84885ce473">associatedMax</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b)</td></tr>
46 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf677e31296d27c540b8873b0da989780"></a><!-- doxytag: member="gtx_associated_min_max::associatedMax" ref="gaf677e31296d27c540b8873b0da989780" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c)" -->
47 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#gaf677e31296d27c540b8873b0da989780">associatedMax</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c)</td></tr>
49 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga356657481029e90e6f079ec4ccd6407b"></a><!-- doxytag: member="gtx_associated_min_max::associatedMax" ref="ga356657481029e90e6f079ec4ccd6407b" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c, const genTypeT &amp;w, const genTypeU &amp;d)" -->
50 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
51 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga356657481029e90e6f079ec4ccd6407b">associatedMax</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c, const genTypeT &amp;w, const genTypeU &amp;d)</td></tr>
52 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga35cccfe67d0f20c897b3bb7d53ceee92"></a><!-- doxytag: member="gtx_associated_min_max::associatedMin" ref="ga35cccfe67d0f20c897b3bb7d53ceee92" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c)" -->
53 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga35cccfe67d0f20c897b3bb7d53ceee92">associatedMin</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c)</td></tr>
55 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga84781b260e2851924efea99c4d2e5ae6"></a><!-- doxytag: member="gtx_associated_min_max::associatedMin" ref="ga84781b260e2851924efea99c4d2e5ae6" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b)" -->
56 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga84781b260e2851924efea99c4d2e5ae6">associatedMin</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b)</td></tr>
58 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8ee45a8117b0ce3827d6a57625cafac0"></a><!-- doxytag: member="gtx_associated_min_max::associatedMin" ref="ga8ee45a8117b0ce3827d6a57625cafac0" args="(const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c, const genTypeT &amp;w, const genTypeU &amp;d)" -->
59 template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga8ee45a8117b0ce3827d6a57625cafac0">associatedMin</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b, const genTypeT &amp;z, const genTypeU &amp;c, const genTypeT &amp;w, const genTypeU &amp;d)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga2f145f264c334caba22e6949e015d208">bitRevert</a> (genType const &amp;value)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#gaa8de15434b73178fd1d2ea7ee16b59bd">bitRotateLeft</a> (genType const &amp;In, std::size_t Shift)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#gaeec0d4179d7a092056e2201fff385ef6">bitRotateRight</a> (genType const &amp;In, std::size_t Shift)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType , typename sizeType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga244734bb54e4648970c38b032258035a">extractField</a> (genIUType const &amp;v, sizeType const &amp;first, sizeType const &amp;count)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga55e17a1e9347ca10d206f62ffe294608">highestBit</a> (genType const &amp;value)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga2e2ba1398ef471e40e6a07cbab9a75fe">highestBitValue</a> (genType const &amp;value)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#gadddfcaa01efe60218e52323707331415">isPowerOfTwo</a> (genType const &amp;value)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#gace8029d9e9090f2aaa0248e320b3f24c">lowestBit</a> (genType const &amp;value)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">genIType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga31dbf05c851060984e107afb39dde5fe">mask</a> (genIType const &amp;count)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga0a1683dffc58011a161c0b3cb867c93c">powerOfTwoAbove</a> (genType const &amp;value)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga9adeb3bc22e67933665600e0dc2e1f8d">powerOfTwoBelow</a> (genType const &amp;value)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00249.html#ga12d57451c94950bafe2e1fb57346f082">powerOfTwoNearest</a> (genType const &amp;value)</td></tr>
6167 </table>
6268 <hr/><a name="_details"></a><h2>Detailed Description</h2>
63 <p>Min and max functions that return associated values not the compared onces. &lt;<a class="el" href="a00026_source.html">glm/gtx/associated_min_max.hpp</a>&gt; need to be included to use these functionalities. </p>
69 <p>Allow to perform bit operations on integer values. </p>
70 <p>&lt;<a class="el" href="a00027_source.html">glm/gtx/bit.hpp</a>&gt; need to be included to use these functionalities. </p>
71 <hr/><h2>Function Documentation</h2>
72 <a class="anchor" id="ga2f145f264c334caba22e6949e015d208"></a><!-- doxytag: member="glm::gtx::bit::bitRevert" ref="ga2f145f264c334caba22e6949e015d208" args="(genType const &amp;value)" -->
73 <div class="memitem">
74 <div class="memproto">
75 <table class="memname">
76 <tr>
77 <td class="memname">genType glm::gtx::bit::bitRevert </td>
78 <td>(</td>
79 <td class="paramtype">genType const &amp;&#160;</td>
80 <td class="paramname"><em>value</em></td><td>)</td>
81 <td></td>
82 </tr>
83 </table>
84 </div>
85 <div class="memdoc">
86
87 <p>Revert all bits of any integer based type. </p>
88 <p>From GLM_GTX_bit extension. </p>
89
90 </div>
91 </div>
92 <a class="anchor" id="gaa8de15434b73178fd1d2ea7ee16b59bd"></a><!-- doxytag: member="glm::gtx::bit::bitRotateLeft" ref="gaa8de15434b73178fd1d2ea7ee16b59bd" args="(genType const &amp;In, std::size_t Shift)" -->
93 <div class="memitem">
94 <div class="memproto">
95 <table class="memname">
96 <tr>
97 <td class="memname">genType glm::gtx::bit::bitRotateLeft </td>
98 <td>(</td>
99 <td class="paramtype">genType const &amp;&#160;</td>
100 <td class="paramname"><em>In</em>, </td>
101 </tr>
102 <tr>
103 <td class="paramkey"></td>
104 <td></td>
105 <td class="paramtype">std::size_t&#160;</td>
106 <td class="paramname"><em>Shift</em>&#160;</td>
107 </tr>
108 <tr>
109 <td></td>
110 <td>)</td>
111 <td></td><td></td>
112 </tr>
113 </table>
114 </div>
115 <div class="memdoc">
116
117 <p>Rotate all bits to the left. </p>
118 <p>From GLM_GTX_bit extension. </p>
119
120 </div>
121 </div>
122 <a class="anchor" id="gaeec0d4179d7a092056e2201fff385ef6"></a><!-- doxytag: member="glm::gtx::bit::bitRotateRight" ref="gaeec0d4179d7a092056e2201fff385ef6" args="(genType const &amp;In, std::size_t Shift)" -->
123 <div class="memitem">
124 <div class="memproto">
125 <table class="memname">
126 <tr>
127 <td class="memname">genType glm::gtx::bit::bitRotateRight </td>
128 <td>(</td>
129 <td class="paramtype">genType const &amp;&#160;</td>
130 <td class="paramname"><em>In</em>, </td>
131 </tr>
132 <tr>
133 <td class="paramkey"></td>
134 <td></td>
135 <td class="paramtype">std::size_t&#160;</td>
136 <td class="paramname"><em>Shift</em>&#160;</td>
137 </tr>
138 <tr>
139 <td></td>
140 <td>)</td>
141 <td></td><td></td>
142 </tr>
143 </table>
144 </div>
145 <div class="memdoc">
146
147 <p>Rotate all bits to the right. </p>
148 <p>From GLM_GTX_bit extension. </p>
149
150 </div>
151 </div>
152 <a class="anchor" id="ga244734bb54e4648970c38b032258035a"></a><!-- doxytag: member="glm::gtx::bit::extractField" ref="ga244734bb54e4648970c38b032258035a" args="(genIUType const &amp;v, sizeType const &amp;first, sizeType const &amp;count)" -->
153 <div class="memitem">
154 <div class="memproto">
155 <table class="memname">
156 <tr>
157 <td class="memname">genIUType glm::gtx::bit::extractField </td>
158 <td>(</td>
159 <td class="paramtype">genIUType const &amp;&#160;</td>
160 <td class="paramname"><em>v</em>, </td>
161 </tr>
162 <tr>
163 <td class="paramkey"></td>
164 <td></td>
165 <td class="paramtype">sizeType const &amp;&#160;</td>
166 <td class="paramname"><em>first</em>, </td>
167 </tr>
168 <tr>
169 <td class="paramkey"></td>
170 <td></td>
171 <td class="paramtype">sizeType const &amp;&#160;</td>
172 <td class="paramname"><em>count</em>&#160;</td>
173 </tr>
174 <tr>
175 <td></td>
176 <td>)</td>
177 <td></td><td></td>
178 </tr>
179 </table>
180 </div>
181 <div class="memdoc">
182
183 <p>Component wise extraction of bit fields. </p>
184 <p>genType and genIType could be a scalar or a vector. From GLM_GTX_bit extension. </p>
185
186 </div>
187 </div>
188 <a class="anchor" id="ga55e17a1e9347ca10d206f62ffe294608"></a><!-- doxytag: member="glm::gtx::bit::highestBit" ref="ga55e17a1e9347ca10d206f62ffe294608" args="(genType const &amp;value)" -->
189 <div class="memitem">
190 <div class="memproto">
191 <table class="memname">
192 <tr>
193 <td class="memname">int glm::gtx::bit::highestBit </td>
194 <td>(</td>
195 <td class="paramtype">genType const &amp;&#160;</td>
196 <td class="paramname"><em>value</em></td><td>)</td>
197 <td></td>
198 </tr>
199 </table>
200 </div>
201 <div class="memdoc">
202
203 <p>Find the highest bit set to 1 in a integer variable. </p>
204 <p>From GLM_GTX_bit extension. </p>
205
206 </div>
207 </div>
208 <a class="anchor" id="ga2e2ba1398ef471e40e6a07cbab9a75fe"></a><!-- doxytag: member="glm::gtx::bit::highestBitValue" ref="ga2e2ba1398ef471e40e6a07cbab9a75fe" args="(genType const &amp;value)" -->
209 <div class="memitem">
210 <div class="memproto">
211 <table class="memname">
212 <tr>
213 <td class="memname">genType glm::gtx::bit::highestBitValue </td>
214 <td>(</td>
215 <td class="paramtype">genType const &amp;&#160;</td>
216 <td class="paramname"><em>value</em></td><td>)</td>
217 <td></td>
218 </tr>
219 </table>
220 </div>
221 <div class="memdoc">
222
223 <p>Find the highest bit set to 1 in a integer variable and return its value. </p>
224 <p>From GLM_GTX_bit extension. </p>
225
226 </div>
227 </div>
228 <a class="anchor" id="gadddfcaa01efe60218e52323707331415"></a><!-- doxytag: member="glm::gtx::bit::isPowerOfTwo" ref="gadddfcaa01efe60218e52323707331415" args="(genType const &amp;value)" -->
229 <div class="memitem">
230 <div class="memproto">
231 <table class="memname">
232 <tr>
233 <td class="memname">bool glm::gtx::bit::isPowerOfTwo </td>
234 <td>(</td>
235 <td class="paramtype">genType const &amp;&#160;</td>
236 <td class="paramname"><em>value</em></td><td>)</td>
237 <td></td>
238 </tr>
239 </table>
240 </div>
241 <div class="memdoc">
242
243 <p>Return true if the value is a power of two number. </p>
244 <p>From GLM_GTX_bit extension. </p>
245
246 </div>
247 </div>
248 <a class="anchor" id="gace8029d9e9090f2aaa0248e320b3f24c"></a><!-- doxytag: member="glm::gtx::bit::lowestBit" ref="gace8029d9e9090f2aaa0248e320b3f24c" args="(genType const &amp;value)" -->
249 <div class="memitem">
250 <div class="memproto">
251 <table class="memname">
252 <tr>
253 <td class="memname">int glm::gtx::bit::lowestBit </td>
254 <td>(</td>
255 <td class="paramtype">genType const &amp;&#160;</td>
256 <td class="paramname"><em>value</em></td><td>)</td>
257 <td></td>
258 </tr>
259 </table>
260 </div>
261 <div class="memdoc">
262
263 <p>Find the lowest bit set to 1 in a integer variable. </p>
264 <p>From GLM_GTX_bit extension. </p>
265
266 </div>
267 </div>
268 <a class="anchor" id="ga31dbf05c851060984e107afb39dde5fe"></a><!-- doxytag: member="glm::gtx::bit::mask" ref="ga31dbf05c851060984e107afb39dde5fe" args="(genIType const &amp;count)" -->
269 <div class="memitem">
270 <div class="memproto">
271 <table class="memname">
272 <tr>
273 <td class="memname">genIType glm::gtx::bit::mask </td>
274 <td>(</td>
275 <td class="paramtype">genIType const &amp;&#160;</td>
276 <td class="paramname"><em>count</em></td><td>)</td>
277 <td></td>
278 </tr>
279 </table>
280 </div>
281 <div class="memdoc">
282
283 <p>Build a mask of 'count' bits From GLM_GTX_bit extension. </p>
284
285 </div>
286 </div>
287 <a class="anchor" id="ga0a1683dffc58011a161c0b3cb867c93c"></a><!-- doxytag: member="glm::gtx::bit::powerOfTwoAbove" ref="ga0a1683dffc58011a161c0b3cb867c93c" args="(genType const &amp;value)" -->
288 <div class="memitem">
289 <div class="memproto">
290 <table class="memname">
291 <tr>
292 <td class="memname">genType glm::gtx::bit::powerOfTwoAbove </td>
293 <td>(</td>
294 <td class="paramtype">genType const &amp;&#160;</td>
295 <td class="paramname"><em>value</em></td><td>)</td>
296 <td></td>
297 </tr>
298 </table>
299 </div>
300 <div class="memdoc">
301
302 <p>Return the power of two number which value is just higher the input value. </p>
303 <p>From GLM_GTX_bit extension. </p>
304
305 </div>
306 </div>
307 <a class="anchor" id="ga9adeb3bc22e67933665600e0dc2e1f8d"></a><!-- doxytag: member="glm::gtx::bit::powerOfTwoBelow" ref="ga9adeb3bc22e67933665600e0dc2e1f8d" args="(genType const &amp;value)" -->
308 <div class="memitem">
309 <div class="memproto">
310 <table class="memname">
311 <tr>
312 <td class="memname">genType glm::gtx::bit::powerOfTwoBelow </td>
313 <td>(</td>
314 <td class="paramtype">genType const &amp;&#160;</td>
315 <td class="paramname"><em>value</em></td><td>)</td>
316 <td></td>
317 </tr>
318 </table>
319 </div>
320 <div class="memdoc">
321
322 <p>Return the power of two number which value is just lower the input value. </p>
323 <p>From GLM_GTX_bit extension. </p>
324
325 </div>
326 </div>
327 <a class="anchor" id="ga12d57451c94950bafe2e1fb57346f082"></a><!-- doxytag: member="glm::gtx::bit::powerOfTwoNearest" ref="ga12d57451c94950bafe2e1fb57346f082" args="(genType const &amp;value)" -->
328 <div class="memitem">
329 <div class="memproto">
330 <table class="memname">
331 <tr>
332 <td class="memname">genType glm::gtx::bit::powerOfTwoNearest </td>
333 <td>(</td>
334 <td class="paramtype">genType const &amp;&#160;</td>
335 <td class="paramname"><em>value</em></td><td>)</td>
336 <td></td>
337 </tr>
338 </table>
339 </div>
340 <div class="memdoc">
341
342 <p>Return the power of two number which value is the closet to the input value. </p>
343 <p>From GLM_GTX_bit extension. </p>
344
345 </div>
346 </div>
64347 </div>
65348 <hr class="footer"/><address class="footer"><small>Generated by&#160;
66349 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_bit: Extended bitwise operations</title>
4 <title>GLM_GTX_closest_point: Find closest point</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_bit: Extended bitwise operations</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_closest_point: Find closest point</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Allow to perform bit operations on integer values.
38 <p>Find the point on a straight line which is the closet of a point.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga2f145f264c334caba22e6949e015d208">bitRevert</a> (genType const &amp;value)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#gaa8de15434b73178fd1d2ea7ee16b59bd">bitRotateLeft</a> (genType const &amp;In, std::size_t Shift)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#gaeec0d4179d7a092056e2201fff385ef6">bitRotateRight</a> (genType const &amp;In, std::size_t Shift)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType , typename sizeType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga244734bb54e4648970c38b032258035a">extractField</a> (genIUType const &amp;v, sizeType const &amp;first, sizeType const &amp;count)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga55e17a1e9347ca10d206f62ffe294608">highestBit</a> (genType const &amp;value)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga2e2ba1398ef471e40e6a07cbab9a75fe">highestBitValue</a> (genType const &amp;value)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#gadddfcaa01efe60218e52323707331415">isPowerOfTwo</a> (genType const &amp;value)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#gace8029d9e9090f2aaa0248e320b3f24c">lowestBit</a> (genType const &amp;value)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename genIType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">genIType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga31dbf05c851060984e107afb39dde5fe">mask</a> (genIType const &amp;count)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga0a1683dffc58011a161c0b3cb867c93c">powerOfTwoAbove</a> (genType const &amp;value)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga9adeb3bc22e67933665600e0dc2e1f8d">powerOfTwoBelow</a> (genType const &amp;value)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga12d57451c94950bafe2e1fb57346f082">powerOfTwoNearest</a> (genType const &amp;value)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga14a814a7834db281ef0167947c8f9516">closestPointOnLine</a> (detail::tvec3&lt; T &gt; const &amp;point, detail::tvec3&lt; T &gt; const &amp;a, detail::tvec3&lt; T &gt; const &amp;b)</td></tr>
6745 </table>
6846 <hr/><a name="_details"></a><h2>Detailed Description</h2>
69 <p>Allow to perform bit operations on integer values. </p>
70 <p>&lt;<a class="el" href="a00027_source.html">glm/gtx/bit.hpp</a>&gt; need to be included to use these functionalities. </p>
47 <p>Find the point on a straight line which is the closet of a point. </p>
48 <p>&lt;<a class="el" href="a00028_source.html">glm/gtx/closest_point.hpp</a>&gt; need to be included to use these functionalities. </p>
7149 <hr/><h2>Function Documentation</h2>
72 <a class="anchor" id="ga2f145f264c334caba22e6949e015d208"></a><!-- doxytag: member="glm::gtx::bit::bitRevert" ref="ga2f145f264c334caba22e6949e015d208" args="(genType const &amp;value)" -->
50 <a class="anchor" id="ga14a814a7834db281ef0167947c8f9516"></a><!-- doxytag: member="glm::gtx::closest_point::closestPointOnLine" ref="ga14a814a7834db281ef0167947c8f9516" args="(detail::tvec3&lt; T &gt; const &amp;point, detail::tvec3&lt; T &gt; const &amp;a, detail::tvec3&lt; T &gt; const &amp;b)" -->
7351 <div class="memitem">
7452 <div class="memproto">
7553 <table class="memname">
7654 <tr>
77 <td class="memname">genType glm::gtx::bit::bitRevert </td>
55 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::closest_point::closestPointOnLine </td>
7856 <td>(</td>
79 <td class="paramtype">genType const &amp;&#160;</td>
80 <td class="paramname"><em>value</em></td><td>)</td>
81 <td></td>
82 </tr>
83 </table>
84 </div>
85 <div class="memdoc">
86
87 <p>Revert all bits of any integer based type. </p>
88 <p>From GLM_GTX_bit extension. </p>
89
90 </div>
91 </div>
92 <a class="anchor" id="gaa8de15434b73178fd1d2ea7ee16b59bd"></a><!-- doxytag: member="glm::gtx::bit::bitRotateLeft" ref="gaa8de15434b73178fd1d2ea7ee16b59bd" args="(genType const &amp;In, std::size_t Shift)" -->
93 <div class="memitem">
94 <div class="memproto">
95 <table class="memname">
96 <tr>
97 <td class="memname">genType glm::gtx::bit::bitRotateLeft </td>
98 <td>(</td>
99 <td class="paramtype">genType const &amp;&#160;</td>
100 <td class="paramname"><em>In</em>, </td>
57 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
58 <td class="paramname"><em>point</em>, </td>
10159 </tr>
10260 <tr>
10361 <td class="paramkey"></td>
10462 <td></td>
105 <td class="paramtype">std::size_t&#160;</td>
106 <td class="paramname"><em>Shift</em>&#160;</td>
63 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
64 <td class="paramname"><em>a</em>, </td>
65 </tr>
66 <tr>
67 <td class="paramkey"></td>
68 <td></td>
69 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
70 <td class="paramname"><em>b</em>&#160;</td>
10771 </tr>
10872 <tr>
10973 <td></td>
11478 </div>
11579 <div class="memdoc">
11680
117 <p>Rotate all bits to the left. </p>
118 <p>From GLM_GTX_bit extension. </p>
119
120 </div>
121 </div>
122 <a class="anchor" id="gaeec0d4179d7a092056e2201fff385ef6"></a><!-- doxytag: member="glm::gtx::bit::bitRotateRight" ref="gaeec0d4179d7a092056e2201fff385ef6" args="(genType const &amp;In, std::size_t Shift)" -->
123 <div class="memitem">
124 <div class="memproto">
125 <table class="memname">
126 <tr>
127 <td class="memname">genType glm::gtx::bit::bitRotateRight </td>
128 <td>(</td>
129 <td class="paramtype">genType const &amp;&#160;</td>
130 <td class="paramname"><em>In</em>, </td>
131 </tr>
132 <tr>
133 <td class="paramkey"></td>
134 <td></td>
135 <td class="paramtype">std::size_t&#160;</td>
136 <td class="paramname"><em>Shift</em>&#160;</td>
137 </tr>
138 <tr>
139 <td></td>
140 <td>)</td>
141 <td></td><td></td>
142 </tr>
143 </table>
144 </div>
145 <div class="memdoc">
146
147 <p>Rotate all bits to the right. </p>
148 <p>From GLM_GTX_bit extension. </p>
149
150 </div>
151 </div>
152 <a class="anchor" id="ga244734bb54e4648970c38b032258035a"></a><!-- doxytag: member="glm::gtx::bit::extractField" ref="ga244734bb54e4648970c38b032258035a" args="(genIUType const &amp;v, sizeType const &amp;first, sizeType const &amp;count)" -->
153 <div class="memitem">
154 <div class="memproto">
155 <table class="memname">
156 <tr>
157 <td class="memname">genIUType glm::gtx::bit::extractField </td>
158 <td>(</td>
159 <td class="paramtype">genIUType const &amp;&#160;</td>
160 <td class="paramname"><em>v</em>, </td>
161 </tr>
162 <tr>
163 <td class="paramkey"></td>
164 <td></td>
165 <td class="paramtype">sizeType const &amp;&#160;</td>
166 <td class="paramname"><em>first</em>, </td>
167 </tr>
168 <tr>
169 <td class="paramkey"></td>
170 <td></td>
171 <td class="paramtype">sizeType const &amp;&#160;</td>
172 <td class="paramname"><em>count</em>&#160;</td>
173 </tr>
174 <tr>
175 <td></td>
176 <td>)</td>
177 <td></td><td></td>
178 </tr>
179 </table>
180 </div>
181 <div class="memdoc">
182
183 <p>Component wise extraction of bit fields. </p>
184 <p>genType and genIType could be a scalar or a vector. From GLM_GTX_bit extension. </p>
185
186 </div>
187 </div>
188 <a class="anchor" id="ga55e17a1e9347ca10d206f62ffe294608"></a><!-- doxytag: member="glm::gtx::bit::highestBit" ref="ga55e17a1e9347ca10d206f62ffe294608" args="(genType const &amp;value)" -->
189 <div class="memitem">
190 <div class="memproto">
191 <table class="memname">
192 <tr>
193 <td class="memname">int glm::gtx::bit::highestBit </td>
194 <td>(</td>
195 <td class="paramtype">genType const &amp;&#160;</td>
196 <td class="paramname"><em>value</em></td><td>)</td>
197 <td></td>
198 </tr>
199 </table>
200 </div>
201 <div class="memdoc">
202
203 <p>Find the highest bit set to 1 in a integer variable. </p>
204 <p>From GLM_GTX_bit extension. </p>
205
206 </div>
207 </div>
208 <a class="anchor" id="ga2e2ba1398ef471e40e6a07cbab9a75fe"></a><!-- doxytag: member="glm::gtx::bit::highestBitValue" ref="ga2e2ba1398ef471e40e6a07cbab9a75fe" args="(genType const &amp;value)" -->
209 <div class="memitem">
210 <div class="memproto">
211 <table class="memname">
212 <tr>
213 <td class="memname">genType glm::gtx::bit::highestBitValue </td>
214 <td>(</td>
215 <td class="paramtype">genType const &amp;&#160;</td>
216 <td class="paramname"><em>value</em></td><td>)</td>
217 <td></td>
218 </tr>
219 </table>
220 </div>
221 <div class="memdoc">
222
223 <p>Find the highest bit set to 1 in a integer variable and return its value. </p>
224 <p>From GLM_GTX_bit extension. </p>
225
226 </div>
227 </div>
228 <a class="anchor" id="gadddfcaa01efe60218e52323707331415"></a><!-- doxytag: member="glm::gtx::bit::isPowerOfTwo" ref="gadddfcaa01efe60218e52323707331415" args="(genType const &amp;value)" -->
229 <div class="memitem">
230 <div class="memproto">
231 <table class="memname">
232 <tr>
233 <td class="memname">bool glm::gtx::bit::isPowerOfTwo </td>
234 <td>(</td>
235 <td class="paramtype">genType const &amp;&#160;</td>
236 <td class="paramname"><em>value</em></td><td>)</td>
237 <td></td>
238 </tr>
239 </table>
240 </div>
241 <div class="memdoc">
242
243 <p>Return true if the value is a power of two number. </p>
244 <p>From GLM_GTX_bit extension. </p>
245
246 </div>
247 </div>
248 <a class="anchor" id="gace8029d9e9090f2aaa0248e320b3f24c"></a><!-- doxytag: member="glm::gtx::bit::lowestBit" ref="gace8029d9e9090f2aaa0248e320b3f24c" args="(genType const &amp;value)" -->
249 <div class="memitem">
250 <div class="memproto">
251 <table class="memname">
252 <tr>
253 <td class="memname">int glm::gtx::bit::lowestBit </td>
254 <td>(</td>
255 <td class="paramtype">genType const &amp;&#160;</td>
256 <td class="paramname"><em>value</em></td><td>)</td>
257 <td></td>
258 </tr>
259 </table>
260 </div>
261 <div class="memdoc">
262
263 <p>Find the lowest bit set to 1 in a integer variable. </p>
264 <p>From GLM_GTX_bit extension. </p>
265
266 </div>
267 </div>
268 <a class="anchor" id="ga31dbf05c851060984e107afb39dde5fe"></a><!-- doxytag: member="glm::gtx::bit::mask" ref="ga31dbf05c851060984e107afb39dde5fe" args="(genIType const &amp;count)" -->
269 <div class="memitem">
270 <div class="memproto">
271 <table class="memname">
272 <tr>
273 <td class="memname">genIType glm::gtx::bit::mask </td>
274 <td>(</td>
275 <td class="paramtype">genIType const &amp;&#160;</td>
276 <td class="paramname"><em>count</em></td><td>)</td>
277 <td></td>
278 </tr>
279 </table>
280 </div>
281 <div class="memdoc">
282
283 <p>Build a mask of 'count' bits From GLM_GTX_bit extension. </p>
284
285 </div>
286 </div>
287 <a class="anchor" id="ga0a1683dffc58011a161c0b3cb867c93c"></a><!-- doxytag: member="glm::gtx::bit::powerOfTwoAbove" ref="ga0a1683dffc58011a161c0b3cb867c93c" args="(genType const &amp;value)" -->
288 <div class="memitem">
289 <div class="memproto">
290 <table class="memname">
291 <tr>
292 <td class="memname">genType glm::gtx::bit::powerOfTwoAbove </td>
293 <td>(</td>
294 <td class="paramtype">genType const &amp;&#160;</td>
295 <td class="paramname"><em>value</em></td><td>)</td>
296 <td></td>
297 </tr>
298 </table>
299 </div>
300 <div class="memdoc">
301
302 <p>Return the power of two number which value is just higher the input value. </p>
303 <p>From GLM_GTX_bit extension. </p>
304
305 </div>
306 </div>
307 <a class="anchor" id="ga9adeb3bc22e67933665600e0dc2e1f8d"></a><!-- doxytag: member="glm::gtx::bit::powerOfTwoBelow" ref="ga9adeb3bc22e67933665600e0dc2e1f8d" args="(genType const &amp;value)" -->
308 <div class="memitem">
309 <div class="memproto">
310 <table class="memname">
311 <tr>
312 <td class="memname">genType glm::gtx::bit::powerOfTwoBelow </td>
313 <td>(</td>
314 <td class="paramtype">genType const &amp;&#160;</td>
315 <td class="paramname"><em>value</em></td><td>)</td>
316 <td></td>
317 </tr>
318 </table>
319 </div>
320 <div class="memdoc">
321
322 <p>Return the power of two number which value is just lower the input value. </p>
323 <p>From GLM_GTX_bit extension. </p>
324
325 </div>
326 </div>
327 <a class="anchor" id="ga12d57451c94950bafe2e1fb57346f082"></a><!-- doxytag: member="glm::gtx::bit::powerOfTwoNearest" ref="ga12d57451c94950bafe2e1fb57346f082" args="(genType const &amp;value)" -->
328 <div class="memitem">
329 <div class="memproto">
330 <table class="memname">
331 <tr>
332 <td class="memname">genType glm::gtx::bit::powerOfTwoNearest </td>
333 <td>(</td>
334 <td class="paramtype">genType const &amp;&#160;</td>
335 <td class="paramname"><em>value</em></td><td>)</td>
336 <td></td>
337 </tr>
338 </table>
339 </div>
340 <div class="memdoc">
341
342 <p>Return the power of two number which value is the closet to the input value. </p>
343 <p>From GLM_GTX_bit extension. </p>
81 <p>Find the point on a straight line which is the closet of a point. </p>
82 <p>From GLM_GTX_closest_point extension. </p>
34483
34584 </div>
34685 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_closest_point: Find closest point</title>
4 <title>GLM_GTX_color_cast: Color conversion</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_closest_point: Find closest point</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_color_cast: Color conversion</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Find the point on a straight line which is the closet of a point.
38 <p>Conversion between two color types.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga14a814a7834db281ef0167947c8f9516">closestPointOnLine</a> (detail::tvec3&lt; T &gt; const &amp;point, detail::tvec3&lt; T &gt; const &amp;a, detail::tvec3&lt; T &gt; const &amp;b)</td></tr>
43 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga3cd01da9b10cf61cf556fc8e7992f2ea"></a><!-- doxytag: member="gtx_color_cast::f16_abgr_cast" ref="ga3cd01da9b10cf61cf556fc8e7992f2ea" args="(T c)" -->
44 template&lt;typename T &gt; </td></tr>
45 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f16vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga3cd01da9b10cf61cf556fc8e7992f2ea">f16_abgr_cast</a> (T c)</td></tr>
46 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf58e7f656ffad74fe4ed093250c444c8"></a><!-- doxytag: member="gtx_color_cast::f16_argb_cast" ref="gaf58e7f656ffad74fe4ed093250c444c8" args="(T c)" -->
47 template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f16vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gaf58e7f656ffad74fe4ed093250c444c8">f16_argb_cast</a> (T c)</td></tr>
49 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadbd908bc29dd87b7222dad33a6b0a6ad"></a><!-- doxytag: member="gtx_color_cast::f16_bgra_cast" ref="gadbd908bc29dd87b7222dad33a6b0a6ad" args="(T c)" -->
50 template&lt;typename T &gt; </td></tr>
51 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f16vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gadbd908bc29dd87b7222dad33a6b0a6ad">f16_bgra_cast</a> (T c)</td></tr>
52 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaed8b82a32ac9f6e8024a6880461496ba"></a><!-- doxytag: member="gtx_color_cast::f16_bgrx_cast" ref="gaed8b82a32ac9f6e8024a6880461496ba" args="(T c)" -->
53 template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f16vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gaed8b82a32ac9f6e8024a6880461496ba">f16_bgrx_cast</a> (T c)</td></tr>
55 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae735900f14bcc64ebaf42bb812500964"></a><!-- doxytag: member="gtx_color_cast::f16_channel_cast" ref="gae735900f14bcc64ebaf42bb812500964" args="(T a)" -->
56 template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">gtx::number_precision::f16vec1&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gae735900f14bcc64ebaf42bb812500964">f16_channel_cast</a> (T a)</td></tr>
58 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga417f7a9c2bc66229dbeb714308ff45ba"></a><!-- doxytag: member="gtx_color_cast::f16_rgba_cast" ref="ga417f7a9c2bc66229dbeb714308ff45ba" args="(T c)" -->
59 template&lt;typename T &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f16vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga417f7a9c2bc66229dbeb714308ff45ba">f16_rgba_cast</a> (T c)</td></tr>
61 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga82f8510eb3275299aee11f7a6a0761c0"></a><!-- doxytag: member="gtx_color_cast::f16_rgbx_cast" ref="ga82f8510eb3275299aee11f7a6a0761c0" args="(T c)" -->
62 template&lt;typename T &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f16vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga82f8510eb3275299aee11f7a6a0761c0">f16_rgbx_cast</a> (T c)</td></tr>
64 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga6a18355f6ce1b531a8d879774ba43179"></a><!-- doxytag: member="gtx_color_cast::f16_xbgr_cast" ref="ga6a18355f6ce1b531a8d879774ba43179" args="(T c)" -->
65 template&lt;typename T &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f16vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga6a18355f6ce1b531a8d879774ba43179">f16_xbgr_cast</a> (T c)</td></tr>
67 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga54f72266de72a0834da07337b2512c78"></a><!-- doxytag: member="gtx_color_cast::f16_xrgb_cast" ref="ga54f72266de72a0834da07337b2512c78" args="(T c)" -->
68 template&lt;typename T &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f16vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga54f72266de72a0834da07337b2512c78">f16_xrgb_cast</a> (T c)</td></tr>
70 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga95a33ffb1476bf675e9629301ec180b1"></a><!-- doxytag: member="gtx_color_cast::f32_abgr_cast" ref="ga95a33ffb1476bf675e9629301ec180b1" args="(T c)" -->
71 template&lt;typename T &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f32vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga95a33ffb1476bf675e9629301ec180b1">f32_abgr_cast</a> (T c)</td></tr>
73 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaee24a081d5b7c84ffffdd66d12963c4c"></a><!-- doxytag: member="gtx_color_cast::f32_argb_cast" ref="gaee24a081d5b7c84ffffdd66d12963c4c" args="(T c)" -->
74 template&lt;typename T &gt; </td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f32vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gaee24a081d5b7c84ffffdd66d12963c4c">f32_argb_cast</a> (T c)</td></tr>
76 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadb328d5e9fff54f6b23dc29e1ce8591e"></a><!-- doxytag: member="gtx_color_cast::f32_bgra_cast" ref="gadb328d5e9fff54f6b23dc29e1ce8591e" args="(T c)" -->
77 template&lt;typename T &gt; </td></tr>
78 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f32vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gadb328d5e9fff54f6b23dc29e1ce8591e">f32_bgra_cast</a> (T c)</td></tr>
79 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga78abdd7116c8c25e29219b32c4bb937e"></a><!-- doxytag: member="gtx_color_cast::f32_bgrx_cast" ref="ga78abdd7116c8c25e29219b32c4bb937e" args="(T c)" -->
80 template&lt;typename T &gt; </td></tr>
81 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f32vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga78abdd7116c8c25e29219b32c4bb937e">f32_bgrx_cast</a> (T c)</td></tr>
82 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga44006c7374476ad1ee285f28e9c416bb"></a><!-- doxytag: member="gtx_color_cast::f32_channel_cast" ref="ga44006c7374476ad1ee285f28e9c416bb" args="(T a)" -->
83 template&lt;typename T &gt; </td></tr>
84 <tr><td class="memTemplItemLeft" align="right" valign="top">gtx::number_precision::f32vec1&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga44006c7374476ad1ee285f28e9c416bb">f32_channel_cast</a> (T a)</td></tr>
85 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga84d5bcccb37c9788bfb0fa00bea4b0fe"></a><!-- doxytag: member="gtx_color_cast::f32_rgba_cast" ref="ga84d5bcccb37c9788bfb0fa00bea4b0fe" args="(T c)" -->
86 template&lt;typename T &gt; </td></tr>
87 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f32vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga84d5bcccb37c9788bfb0fa00bea4b0fe">f32_rgba_cast</a> (T c)</td></tr>
88 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4ef58cdad0a076db6b9f6f67d918087b"></a><!-- doxytag: member="gtx_color_cast::f32_rgbx_cast" ref="ga4ef58cdad0a076db6b9f6f67d918087b" args="(T c)" -->
89 template&lt;typename T &gt; </td></tr>
90 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f32vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga4ef58cdad0a076db6b9f6f67d918087b">f32_rgbx_cast</a> (T c)</td></tr>
91 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga46e9df97410a559a816737a331db62dd"></a><!-- doxytag: member="gtx_color_cast::f32_xbgr_cast" ref="ga46e9df97410a559a816737a331db62dd" args="(T c)" -->
92 template&lt;typename T &gt; </td></tr>
93 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f32vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga46e9df97410a559a816737a331db62dd">f32_xbgr_cast</a> (T c)</td></tr>
94 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4c3d60e3f865187ab8dc7e1e53b061b"></a><!-- doxytag: member="gtx_color_cast::f32_xrgb_cast" ref="gaf4c3d60e3f865187ab8dc7e1e53b061b" args="(T c)" -->
95 template&lt;typename T &gt; </td></tr>
96 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f32vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gaf4c3d60e3f865187ab8dc7e1e53b061b">f32_xrgb_cast</a> (T c)</td></tr>
97 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga42c1cf7dedeaa76629046e8abea5d698"></a><!-- doxytag: member="gtx_color_cast::f64_abgr_cast" ref="ga42c1cf7dedeaa76629046e8abea5d698" args="(T c)" -->
98 template&lt;typename T &gt; </td></tr>
99 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f64vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga42c1cf7dedeaa76629046e8abea5d698">f64_abgr_cast</a> (T c)</td></tr>
100 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab917debabb647fd4144b2d4cf3359737"></a><!-- doxytag: member="gtx_color_cast::f64_argb_cast" ref="gab917debabb647fd4144b2d4cf3359737" args="(T c)" -->
101 template&lt;typename T &gt; </td></tr>
102 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f64vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gab917debabb647fd4144b2d4cf3359737">f64_argb_cast</a> (T c)</td></tr>
103 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac954d9636b86e6a10e19ede77d4f387e"></a><!-- doxytag: member="gtx_color_cast::f64_bgra_cast" ref="gac954d9636b86e6a10e19ede77d4f387e" args="(T c)" -->
104 template&lt;typename T &gt; </td></tr>
105 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f64vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gac954d9636b86e6a10e19ede77d4f387e">f64_bgra_cast</a> (T c)</td></tr>
106 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gabb6a7bcbd66735a86da1dedf7ea3d530"></a><!-- doxytag: member="gtx_color_cast::f64_bgrx_cast" ref="gabb6a7bcbd66735a86da1dedf7ea3d530" args="(T c)" -->
107 template&lt;typename T &gt; </td></tr>
108 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f64vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gabb6a7bcbd66735a86da1dedf7ea3d530">f64_bgrx_cast</a> (T c)</td></tr>
109 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gad2b4dbd955443cb15c731e4564f575e0"></a><!-- doxytag: member="gtx_color_cast::f64_channel_cast" ref="gad2b4dbd955443cb15c731e4564f575e0" args="(T a)" -->
110 template&lt;typename T &gt; </td></tr>
111 <tr><td class="memTemplItemLeft" align="right" valign="top">gtx::number_precision::f64vec1&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gad2b4dbd955443cb15c731e4564f575e0">f64_channel_cast</a> (T a)</td></tr>
112 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae915ae64c81df6ceacb793f9cd6eac40"></a><!-- doxytag: member="gtx_color_cast::f64_rgba_cast" ref="gae915ae64c81df6ceacb793f9cd6eac40" args="(T c)" -->
113 template&lt;typename T &gt; </td></tr>
114 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f64vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gae915ae64c81df6ceacb793f9cd6eac40">f64_rgba_cast</a> (T c)</td></tr>
115 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga16520961abfe743f698b2e80cc0dc33a"></a><!-- doxytag: member="gtx_color_cast::f64_rgbx_cast" ref="ga16520961abfe743f698b2e80cc0dc33a" args="(T c)" -->
116 template&lt;typename T &gt; </td></tr>
117 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f64vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga16520961abfe743f698b2e80cc0dc33a">f64_rgbx_cast</a> (T c)</td></tr>
118 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa2c0dd06608625935b2d940a8155a6ff"></a><!-- doxytag: member="gtx_color_cast::f64_xbgr_cast" ref="gaa2c0dd06608625935b2d940a8155a6ff" args="(T c)" -->
119 template&lt;typename T &gt; </td></tr>
120 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f64vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gaa2c0dd06608625935b2d940a8155a6ff">f64_xbgr_cast</a> (T c)</td></tr>
121 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga35d1e8fedde05c4b0bd6b26312fe3677"></a><!-- doxytag: member="gtx_color_cast::f64_xrgb_cast" ref="ga35d1e8fedde05c4b0bd6b26312fe3677" args="(T c)" -->
122 template&lt;typename T &gt; </td></tr>
123 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f64vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga35d1e8fedde05c4b0bd6b26312fe3677">f64_xrgb_cast</a> (T c)</td></tr>
124 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
125 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint16&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gab1c15b0a63939cf8b73704b3ee0531bf">u16channel_cast</a> (valType a)</td></tr>
126 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7419ad7d2b6280021d2e6fe61f959593"></a><!-- doxytag: member="gtx_color_cast::u32_abgr_cast" ref="ga7419ad7d2b6280021d2e6fe61f959593" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
127 template&lt;typename T &gt; </td></tr>
128 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga7419ad7d2b6280021d2e6fe61f959593">u32_abgr_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
129 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga54d650e121ffa7dd5df995f45eacbe7c"></a><!-- doxytag: member="gtx_color_cast::u32_argb_cast" ref="ga54d650e121ffa7dd5df995f45eacbe7c" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
130 template&lt;typename T &gt; </td></tr>
131 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga54d650e121ffa7dd5df995f45eacbe7c">u32_argb_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
132 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga994311f638751fbd6c18cbc6e7cc40a2"></a><!-- doxytag: member="gtx_color_cast::u32_bgra_cast" ref="ga994311f638751fbd6c18cbc6e7cc40a2" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
133 template&lt;typename T &gt; </td></tr>
134 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga994311f638751fbd6c18cbc6e7cc40a2">u32_bgra_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
135 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4343a2cc949e6a62e3195a50e03b328a"></a><!-- doxytag: member="gtx_color_cast::u32_bgrx_cast" ref="ga4343a2cc949e6a62e3195a50e03b328a" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
136 template&lt;typename T &gt; </td></tr>
137 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga4343a2cc949e6a62e3195a50e03b328a">u32_bgrx_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
138 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga3251915cd4e12f9c74f80949dda11751"></a><!-- doxytag: member="gtx_color_cast::u32_rgba_cast" ref="ga3251915cd4e12f9c74f80949dda11751" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
139 template&lt;typename T &gt; </td></tr>
140 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga3251915cd4e12f9c74f80949dda11751">u32_rgba_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
141 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga76304a49860f623238edd96c9a181963"></a><!-- doxytag: member="gtx_color_cast::u32_rgbx_cast" ref="ga76304a49860f623238edd96c9a181963" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
142 template&lt;typename T &gt; </td></tr>
143 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga76304a49860f623238edd96c9a181963">u32_rgbx_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
144 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae24be431c89259065ba614b12e130740"></a><!-- doxytag: member="gtx_color_cast::u32_xbgr_cast" ref="gae24be431c89259065ba614b12e130740" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
145 template&lt;typename T &gt; </td></tr>
146 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gae24be431c89259065ba614b12e130740">u32_xbgr_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
147 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaeeb39141498fdaceb0eb7badd03b3111"></a><!-- doxytag: member="gtx_color_cast::u32_xrgb_cast" ref="gaeeb39141498fdaceb0eb7badd03b3111" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
148 template&lt;typename T &gt; </td></tr>
149 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gaeeb39141498fdaceb0eb7badd03b3111">u32_xrgb_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
150 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4f050b0db28ca10c503188070330a8c5"></a><!-- doxytag: member="gtx_color_cast::u64_abgr_cast" ref="ga4f050b0db28ca10c503188070330a8c5" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
151 template&lt;typename T &gt; </td></tr>
152 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga4f050b0db28ca10c503188070330a8c5">u64_abgr_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
153 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadbf0e161e934b6dc7fda389481764f4e"></a><!-- doxytag: member="gtx_color_cast::u64_argb_cast" ref="gadbf0e161e934b6dc7fda389481764f4e" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
154 template&lt;typename T &gt; </td></tr>
155 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gadbf0e161e934b6dc7fda389481764f4e">u64_argb_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
156 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga36cc78b5052b31b83c2f9562088dc66f"></a><!-- doxytag: member="gtx_color_cast::u64_bgra_cast" ref="ga36cc78b5052b31b83c2f9562088dc66f" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
157 template&lt;typename T &gt; </td></tr>
158 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga36cc78b5052b31b83c2f9562088dc66f">u64_bgra_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
159 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae19e40c22424904d922e22525a0bb455"></a><!-- doxytag: member="gtx_color_cast::u64_bgrx_cast" ref="gae19e40c22424904d922e22525a0bb455" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
160 template&lt;typename T &gt; </td></tr>
161 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gae19e40c22424904d922e22525a0bb455">u64_bgrx_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
162 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gafd8e66f86f3c42fe17637ca0db751d40"></a><!-- doxytag: member="gtx_color_cast::u64_rgba_cast" ref="gafd8e66f86f3c42fe17637ca0db751d40" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
163 template&lt;typename T &gt; </td></tr>
164 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gafd8e66f86f3c42fe17637ca0db751d40">u64_rgba_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
165 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac6f16d71adbccd604cffae1c83961bba"></a><!-- doxytag: member="gtx_color_cast::u64_rgbx_cast" ref="gac6f16d71adbccd604cffae1c83961bba" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
166 template&lt;typename T &gt; </td></tr>
167 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gac6f16d71adbccd604cffae1c83961bba">u64_rgbx_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
168 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac3327797af9858e7716cb02b9f8452bc"></a><!-- doxytag: member="gtx_color_cast::u64_xbgr_cast" ref="gac3327797af9858e7716cb02b9f8452bc" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
169 template&lt;typename T &gt; </td></tr>
170 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gac3327797af9858e7716cb02b9f8452bc">u64_xbgr_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
171 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4b860d9689ce434bef7ecdbb8cdbc4b4"></a><!-- doxytag: member="gtx_color_cast::u64_xrgb_cast" ref="ga4b860d9689ce434bef7ecdbb8cdbc4b4" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
172 template&lt;typename T &gt; </td></tr>
173 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#ga4b860d9689ce434bef7ecdbb8cdbc4b4">u64_xrgb_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
174 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
175 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint8&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00251.html#gab11ba0a450ba9a2b3885fa6a631df6f5">u8channel_cast</a> (valType a)</td></tr>
45176 </table>
46177 <hr/><a name="_details"></a><h2>Detailed Description</h2>
47 <p>Find the point on a straight line which is the closet of a point. </p>
48 <p>&lt;<a class="el" href="a00028_source.html">glm/gtx/closest_point.hpp</a>&gt; need to be included to use these functionalities. </p>
178 <p>Conversion between two color types. </p>
179 <p>&lt;<a class="el" href="a00029_source.html">glm/gtx/color_cast.hpp</a>&gt; need to be included to use these functionalities. </p>
49180 <hr/><h2>Function Documentation</h2>
50 <a class="anchor" id="ga14a814a7834db281ef0167947c8f9516"></a><!-- doxytag: member="glm::gtx::closest_point::closestPointOnLine" ref="ga14a814a7834db281ef0167947c8f9516" args="(detail::tvec3&lt; T &gt; const &amp;point, detail::tvec3&lt; T &gt; const &amp;a, detail::tvec3&lt; T &gt; const &amp;b)" -->
181 <a class="anchor" id="gab1c15b0a63939cf8b73704b3ee0531bf"></a><!-- doxytag: member="glm::gtx::color_cast::u16channel_cast" ref="gab1c15b0a63939cf8b73704b3ee0531bf" args="(valType a)" -->
51182 <div class="memitem">
52183 <div class="memproto">
53184 <table class="memname">
54185 <tr>
55 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::closest_point::closestPointOnLine </td>
186 <td class="memname">gtc::type_precision::uint16 glm::gtx::color_cast::u16channel_cast </td>
56187 <td>(</td>
57 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
58 <td class="paramname"><em>point</em>, </td>
59 </tr>
60 <tr>
61 <td class="paramkey"></td>
188 <td class="paramtype">valType&#160;</td>
189 <td class="paramname"><em>a</em></td><td>)</td>
62190 <td></td>
63 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
64 <td class="paramname"><em>a</em>, </td>
65 </tr>
66 <tr>
67 <td class="paramkey"></td>
68 <td></td>
69 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
70 <td class="paramname"><em>b</em>&#160;</td>
71 </tr>
72 <tr>
73 <td></td>
74 <td>)</td>
75 <td></td><td></td>
76191 </tr>
77192 </table>
78193 </div>
79194 <div class="memdoc">
80195
81 <p>Find the point on a straight line which is the closet of a point. </p>
82 <p>From GLM_GTX_closest_point extension. </p>
196 <p>Conversion of a floating value into a 16bit unsigned int value. </p>
197 <p>From GLM_GTX_color_cast extension. </p>
198
199 </div>
200 </div>
201 <a class="anchor" id="gab11ba0a450ba9a2b3885fa6a631df6f5"></a><!-- doxytag: member="glm::gtx::color_cast::u8channel_cast" ref="gab11ba0a450ba9a2b3885fa6a631df6f5" args="(valType a)" -->
202 <div class="memitem">
203 <div class="memproto">
204 <table class="memname">
205 <tr>
206 <td class="memname">gtc::type_precision::uint8 glm::gtx::color_cast::u8channel_cast </td>
207 <td>(</td>
208 <td class="paramtype">valType&#160;</td>
209 <td class="paramname"><em>a</em></td><td>)</td>
210 <td></td>
211 </tr>
212 </table>
213 </div>
214 <div class="memdoc">
215
216 <p>Conversion of a floating value into a 8bit unsigned int value. </p>
217 <p>From GLM_GTX_color_cast extension. </p>
83218
84219 </div>
85220 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_color_cast: Color conversion</title>
4 <title>GLM_GTX_color_space: RGB to HSV conversion</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_color_cast: Color conversion</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_color_space: RGB to HSV conversion</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Conversion between two color types.
38 <p>Related to RGB to HSV conversions and operations.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga3cd01da9b10cf61cf556fc8e7992f2ea"></a><!-- doxytag: member="gtx_color_cast::f16_abgr_cast" ref="ga3cd01da9b10cf61cf556fc8e7992f2ea" args="(T c)" -->
44 template&lt;typename T &gt; </td></tr>
45 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f16vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga3cd01da9b10cf61cf556fc8e7992f2ea">f16_abgr_cast</a> (T c)</td></tr>
46 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf58e7f656ffad74fe4ed093250c444c8"></a><!-- doxytag: member="gtx_color_cast::f16_argb_cast" ref="gaf58e7f656ffad74fe4ed093250c444c8" args="(T c)" -->
47 template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f16vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gaf58e7f656ffad74fe4ed093250c444c8">f16_argb_cast</a> (T c)</td></tr>
49 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadbd908bc29dd87b7222dad33a6b0a6ad"></a><!-- doxytag: member="gtx_color_cast::f16_bgra_cast" ref="gadbd908bc29dd87b7222dad33a6b0a6ad" args="(T c)" -->
50 template&lt;typename T &gt; </td></tr>
51 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f16vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gadbd908bc29dd87b7222dad33a6b0a6ad">f16_bgra_cast</a> (T c)</td></tr>
52 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaed8b82a32ac9f6e8024a6880461496ba"></a><!-- doxytag: member="gtx_color_cast::f16_bgrx_cast" ref="gaed8b82a32ac9f6e8024a6880461496ba" args="(T c)" -->
53 template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f16vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gaed8b82a32ac9f6e8024a6880461496ba">f16_bgrx_cast</a> (T c)</td></tr>
55 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae735900f14bcc64ebaf42bb812500964"></a><!-- doxytag: member="gtx_color_cast::f16_channel_cast" ref="gae735900f14bcc64ebaf42bb812500964" args="(T a)" -->
56 template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">gtx::number_precision::f16vec1&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gae735900f14bcc64ebaf42bb812500964">f16_channel_cast</a> (T a)</td></tr>
58 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga417f7a9c2bc66229dbeb714308ff45ba"></a><!-- doxytag: member="gtx_color_cast::f16_rgba_cast" ref="ga417f7a9c2bc66229dbeb714308ff45ba" args="(T c)" -->
59 template&lt;typename T &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f16vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga417f7a9c2bc66229dbeb714308ff45ba">f16_rgba_cast</a> (T c)</td></tr>
61 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga82f8510eb3275299aee11f7a6a0761c0"></a><!-- doxytag: member="gtx_color_cast::f16_rgbx_cast" ref="ga82f8510eb3275299aee11f7a6a0761c0" args="(T c)" -->
62 template&lt;typename T &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f16vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga82f8510eb3275299aee11f7a6a0761c0">f16_rgbx_cast</a> (T c)</td></tr>
64 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga6a18355f6ce1b531a8d879774ba43179"></a><!-- doxytag: member="gtx_color_cast::f16_xbgr_cast" ref="ga6a18355f6ce1b531a8d879774ba43179" args="(T c)" -->
65 template&lt;typename T &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f16vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga6a18355f6ce1b531a8d879774ba43179">f16_xbgr_cast</a> (T c)</td></tr>
67 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga54f72266de72a0834da07337b2512c78"></a><!-- doxytag: member="gtx_color_cast::f16_xrgb_cast" ref="ga54f72266de72a0834da07337b2512c78" args="(T c)" -->
68 template&lt;typename T &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f16vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga54f72266de72a0834da07337b2512c78">f16_xrgb_cast</a> (T c)</td></tr>
70 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga95a33ffb1476bf675e9629301ec180b1"></a><!-- doxytag: member="gtx_color_cast::f32_abgr_cast" ref="ga95a33ffb1476bf675e9629301ec180b1" args="(T c)" -->
71 template&lt;typename T &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f32vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga95a33ffb1476bf675e9629301ec180b1">f32_abgr_cast</a> (T c)</td></tr>
73 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaee24a081d5b7c84ffffdd66d12963c4c"></a><!-- doxytag: member="gtx_color_cast::f32_argb_cast" ref="gaee24a081d5b7c84ffffdd66d12963c4c" args="(T c)" -->
74 template&lt;typename T &gt; </td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f32vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gaee24a081d5b7c84ffffdd66d12963c4c">f32_argb_cast</a> (T c)</td></tr>
76 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadb328d5e9fff54f6b23dc29e1ce8591e"></a><!-- doxytag: member="gtx_color_cast::f32_bgra_cast" ref="gadb328d5e9fff54f6b23dc29e1ce8591e" args="(T c)" -->
77 template&lt;typename T &gt; </td></tr>
78 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f32vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gadb328d5e9fff54f6b23dc29e1ce8591e">f32_bgra_cast</a> (T c)</td></tr>
79 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga78abdd7116c8c25e29219b32c4bb937e"></a><!-- doxytag: member="gtx_color_cast::f32_bgrx_cast" ref="ga78abdd7116c8c25e29219b32c4bb937e" args="(T c)" -->
80 template&lt;typename T &gt; </td></tr>
81 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f32vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga78abdd7116c8c25e29219b32c4bb937e">f32_bgrx_cast</a> (T c)</td></tr>
82 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga44006c7374476ad1ee285f28e9c416bb"></a><!-- doxytag: member="gtx_color_cast::f32_channel_cast" ref="ga44006c7374476ad1ee285f28e9c416bb" args="(T a)" -->
83 template&lt;typename T &gt; </td></tr>
84 <tr><td class="memTemplItemLeft" align="right" valign="top">gtx::number_precision::f32vec1&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga44006c7374476ad1ee285f28e9c416bb">f32_channel_cast</a> (T a)</td></tr>
85 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga84d5bcccb37c9788bfb0fa00bea4b0fe"></a><!-- doxytag: member="gtx_color_cast::f32_rgba_cast" ref="ga84d5bcccb37c9788bfb0fa00bea4b0fe" args="(T c)" -->
86 template&lt;typename T &gt; </td></tr>
87 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f32vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga84d5bcccb37c9788bfb0fa00bea4b0fe">f32_rgba_cast</a> (T c)</td></tr>
88 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4ef58cdad0a076db6b9f6f67d918087b"></a><!-- doxytag: member="gtx_color_cast::f32_rgbx_cast" ref="ga4ef58cdad0a076db6b9f6f67d918087b" args="(T c)" -->
89 template&lt;typename T &gt; </td></tr>
90 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f32vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga4ef58cdad0a076db6b9f6f67d918087b">f32_rgbx_cast</a> (T c)</td></tr>
91 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga46e9df97410a559a816737a331db62dd"></a><!-- doxytag: member="gtx_color_cast::f32_xbgr_cast" ref="ga46e9df97410a559a816737a331db62dd" args="(T c)" -->
92 template&lt;typename T &gt; </td></tr>
93 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f32vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga46e9df97410a559a816737a331db62dd">f32_xbgr_cast</a> (T c)</td></tr>
94 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4c3d60e3f865187ab8dc7e1e53b061b"></a><!-- doxytag: member="gtx_color_cast::f32_xrgb_cast" ref="gaf4c3d60e3f865187ab8dc7e1e53b061b" args="(T c)" -->
95 template&lt;typename T &gt; </td></tr>
96 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f32vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gaf4c3d60e3f865187ab8dc7e1e53b061b">f32_xrgb_cast</a> (T c)</td></tr>
97 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga42c1cf7dedeaa76629046e8abea5d698"></a><!-- doxytag: member="gtx_color_cast::f64_abgr_cast" ref="ga42c1cf7dedeaa76629046e8abea5d698" args="(T c)" -->
98 template&lt;typename T &gt; </td></tr>
99 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f64vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga42c1cf7dedeaa76629046e8abea5d698">f64_abgr_cast</a> (T c)</td></tr>
100 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab917debabb647fd4144b2d4cf3359737"></a><!-- doxytag: member="gtx_color_cast::f64_argb_cast" ref="gab917debabb647fd4144b2d4cf3359737" args="(T c)" -->
101 template&lt;typename T &gt; </td></tr>
102 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f64vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gab917debabb647fd4144b2d4cf3359737">f64_argb_cast</a> (T c)</td></tr>
103 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac954d9636b86e6a10e19ede77d4f387e"></a><!-- doxytag: member="gtx_color_cast::f64_bgra_cast" ref="gac954d9636b86e6a10e19ede77d4f387e" args="(T c)" -->
104 template&lt;typename T &gt; </td></tr>
105 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f64vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gac954d9636b86e6a10e19ede77d4f387e">f64_bgra_cast</a> (T c)</td></tr>
106 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gabb6a7bcbd66735a86da1dedf7ea3d530"></a><!-- doxytag: member="gtx_color_cast::f64_bgrx_cast" ref="gabb6a7bcbd66735a86da1dedf7ea3d530" args="(T c)" -->
107 template&lt;typename T &gt; </td></tr>
108 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f64vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gabb6a7bcbd66735a86da1dedf7ea3d530">f64_bgrx_cast</a> (T c)</td></tr>
109 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gad2b4dbd955443cb15c731e4564f575e0"></a><!-- doxytag: member="gtx_color_cast::f64_channel_cast" ref="gad2b4dbd955443cb15c731e4564f575e0" args="(T a)" -->
110 template&lt;typename T &gt; </td></tr>
111 <tr><td class="memTemplItemLeft" align="right" valign="top">gtx::number_precision::f64vec1&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gad2b4dbd955443cb15c731e4564f575e0">f64_channel_cast</a> (T a)</td></tr>
112 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae915ae64c81df6ceacb793f9cd6eac40"></a><!-- doxytag: member="gtx_color_cast::f64_rgba_cast" ref="gae915ae64c81df6ceacb793f9cd6eac40" args="(T c)" -->
113 template&lt;typename T &gt; </td></tr>
114 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f64vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gae915ae64c81df6ceacb793f9cd6eac40">f64_rgba_cast</a> (T c)</td></tr>
115 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga16520961abfe743f698b2e80cc0dc33a"></a><!-- doxytag: member="gtx_color_cast::f64_rgbx_cast" ref="ga16520961abfe743f698b2e80cc0dc33a" args="(T c)" -->
116 template&lt;typename T &gt; </td></tr>
117 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f64vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga16520961abfe743f698b2e80cc0dc33a">f64_rgbx_cast</a> (T c)</td></tr>
118 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa2c0dd06608625935b2d940a8155a6ff"></a><!-- doxytag: member="gtx_color_cast::f64_xbgr_cast" ref="gaa2c0dd06608625935b2d940a8155a6ff" args="(T c)" -->
119 template&lt;typename T &gt; </td></tr>
120 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f64vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gaa2c0dd06608625935b2d940a8155a6ff">f64_xbgr_cast</a> (T c)</td></tr>
121 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga35d1e8fedde05c4b0bd6b26312fe3677"></a><!-- doxytag: member="gtx_color_cast::f64_xrgb_cast" ref="ga35d1e8fedde05c4b0bd6b26312fe3677" args="(T c)" -->
122 template&lt;typename T &gt; </td></tr>
123 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::f64vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga35d1e8fedde05c4b0bd6b26312fe3677">f64_xrgb_cast</a> (T c)</td></tr>
124 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
125 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint16&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gab1c15b0a63939cf8b73704b3ee0531bf">u16channel_cast</a> (valType a)</td></tr>
126 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7419ad7d2b6280021d2e6fe61f959593"></a><!-- doxytag: member="gtx_color_cast::u32_abgr_cast" ref="ga7419ad7d2b6280021d2e6fe61f959593" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
127 template&lt;typename T &gt; </td></tr>
128 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga7419ad7d2b6280021d2e6fe61f959593">u32_abgr_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
129 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga54d650e121ffa7dd5df995f45eacbe7c"></a><!-- doxytag: member="gtx_color_cast::u32_argb_cast" ref="ga54d650e121ffa7dd5df995f45eacbe7c" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
130 template&lt;typename T &gt; </td></tr>
131 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga54d650e121ffa7dd5df995f45eacbe7c">u32_argb_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
132 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga994311f638751fbd6c18cbc6e7cc40a2"></a><!-- doxytag: member="gtx_color_cast::u32_bgra_cast" ref="ga994311f638751fbd6c18cbc6e7cc40a2" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
133 template&lt;typename T &gt; </td></tr>
134 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga994311f638751fbd6c18cbc6e7cc40a2">u32_bgra_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
135 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4343a2cc949e6a62e3195a50e03b328a"></a><!-- doxytag: member="gtx_color_cast::u32_bgrx_cast" ref="ga4343a2cc949e6a62e3195a50e03b328a" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
136 template&lt;typename T &gt; </td></tr>
137 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga4343a2cc949e6a62e3195a50e03b328a">u32_bgrx_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
138 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga3251915cd4e12f9c74f80949dda11751"></a><!-- doxytag: member="gtx_color_cast::u32_rgba_cast" ref="ga3251915cd4e12f9c74f80949dda11751" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
139 template&lt;typename T &gt; </td></tr>
140 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga3251915cd4e12f9c74f80949dda11751">u32_rgba_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
141 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga76304a49860f623238edd96c9a181963"></a><!-- doxytag: member="gtx_color_cast::u32_rgbx_cast" ref="ga76304a49860f623238edd96c9a181963" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
142 template&lt;typename T &gt; </td></tr>
143 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga76304a49860f623238edd96c9a181963">u32_rgbx_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
144 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae24be431c89259065ba614b12e130740"></a><!-- doxytag: member="gtx_color_cast::u32_xbgr_cast" ref="gae24be431c89259065ba614b12e130740" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
145 template&lt;typename T &gt; </td></tr>
146 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gae24be431c89259065ba614b12e130740">u32_xbgr_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
147 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaeeb39141498fdaceb0eb7badd03b3111"></a><!-- doxytag: member="gtx_color_cast::u32_xrgb_cast" ref="gaeeb39141498fdaceb0eb7badd03b3111" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
148 template&lt;typename T &gt; </td></tr>
149 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gaeeb39141498fdaceb0eb7badd03b3111">u32_xrgb_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
150 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4f050b0db28ca10c503188070330a8c5"></a><!-- doxytag: member="gtx_color_cast::u64_abgr_cast" ref="ga4f050b0db28ca10c503188070330a8c5" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
151 template&lt;typename T &gt; </td></tr>
152 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga4f050b0db28ca10c503188070330a8c5">u64_abgr_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
153 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadbf0e161e934b6dc7fda389481764f4e"></a><!-- doxytag: member="gtx_color_cast::u64_argb_cast" ref="gadbf0e161e934b6dc7fda389481764f4e" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
154 template&lt;typename T &gt; </td></tr>
155 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gadbf0e161e934b6dc7fda389481764f4e">u64_argb_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
156 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga36cc78b5052b31b83c2f9562088dc66f"></a><!-- doxytag: member="gtx_color_cast::u64_bgra_cast" ref="ga36cc78b5052b31b83c2f9562088dc66f" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
157 template&lt;typename T &gt; </td></tr>
158 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga36cc78b5052b31b83c2f9562088dc66f">u64_bgra_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
159 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae19e40c22424904d922e22525a0bb455"></a><!-- doxytag: member="gtx_color_cast::u64_bgrx_cast" ref="gae19e40c22424904d922e22525a0bb455" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
160 template&lt;typename T &gt; </td></tr>
161 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gae19e40c22424904d922e22525a0bb455">u64_bgrx_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
162 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gafd8e66f86f3c42fe17637ca0db751d40"></a><!-- doxytag: member="gtx_color_cast::u64_rgba_cast" ref="gafd8e66f86f3c42fe17637ca0db751d40" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
163 template&lt;typename T &gt; </td></tr>
164 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gafd8e66f86f3c42fe17637ca0db751d40">u64_rgba_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
165 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac6f16d71adbccd604cffae1c83961bba"></a><!-- doxytag: member="gtx_color_cast::u64_rgbx_cast" ref="gac6f16d71adbccd604cffae1c83961bba" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
166 template&lt;typename T &gt; </td></tr>
167 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gac6f16d71adbccd604cffae1c83961bba">u64_rgbx_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
168 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac3327797af9858e7716cb02b9f8452bc"></a><!-- doxytag: member="gtx_color_cast::u64_xbgr_cast" ref="gac3327797af9858e7716cb02b9f8452bc" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
169 template&lt;typename T &gt; </td></tr>
170 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gac3327797af9858e7716cb02b9f8452bc">u64_xbgr_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
171 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4b860d9689ce434bef7ecdbb8cdbc4b4"></a><!-- doxytag: member="gtx_color_cast::u64_xrgb_cast" ref="ga4b860d9689ce434bef7ecdbb8cdbc4b4" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
172 template&lt;typename T &gt; </td></tr>
173 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga4b860d9689ce434bef7ecdbb8cdbc4b4">u64_xrgb_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
174 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
175 <tr><td class="memTemplItemLeft" align="right" valign="top">gtc::type_precision::uint8&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gab11ba0a450ba9a2b3885fa6a631df6f5">u8channel_cast</a> (valType a)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga20b1d59474b6588da10e72764711cf71">hsvColor</a> (detail::tvec3&lt; valType &gt; const &amp;rgbValue)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga205ff9aab7e86a3e434f1c49f0a2b234">luminosity</a> (detail::tvec3&lt; valType &gt; const &amp;color)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gaa84fde704746ed36b80df7bf521510c5">rgbColor</a> (detail::tvec3&lt; valType &gt; const &amp;hsvValue)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#ga649fe400f2d7ae99886b2d41113b96d8">saturation</a> (valType const s, detail::tvec3&lt; valType &gt; const &amp;color)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gade937a20e420b352d33cce2e92c6fe10">saturation</a> (valType const s)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00252.html#gaaed109d3a4f752c03df37253f052d589">saturation</a> (valType const s, detail::tvec4&lt; valType &gt; const &amp;color)</td></tr>
17655 </table>
17756 <hr/><a name="_details"></a><h2>Detailed Description</h2>
178 <p>Conversion between two color types. </p>
179 <p>&lt;<a class="el" href="a00029_source.html">glm/gtx/color_cast.hpp</a>&gt; need to be included to use these functionalities. </p>
57 <p>Related to RGB to HSV conversions and operations. </p>
58 <p>&lt;<a class="el" href="a00030_source.html">glm/gtx/color_space.hpp</a>&gt; need to be included to use these functionalities. </p>
18059 <hr/><h2>Function Documentation</h2>
181 <a class="anchor" id="gab1c15b0a63939cf8b73704b3ee0531bf"></a><!-- doxytag: member="glm::gtx::color_cast::u16channel_cast" ref="gab1c15b0a63939cf8b73704b3ee0531bf" args="(valType a)" -->
182 <div class="memitem">
183 <div class="memproto">
184 <table class="memname">
185 <tr>
186 <td class="memname">gtc::type_precision::uint16 glm::gtx::color_cast::u16channel_cast </td>
187 <td>(</td>
188 <td class="paramtype">valType&#160;</td>
189 <td class="paramname"><em>a</em></td><td>)</td>
190 <td></td>
191 </tr>
192 </table>
193 </div>
194 <div class="memdoc">
195
196 <p>Conversion of a floating value into a 16bit unsigned int value. </p>
197 <p>From GLM_GTX_color_cast extension. </p>
198
199 </div>
200 </div>
201 <a class="anchor" id="gab11ba0a450ba9a2b3885fa6a631df6f5"></a><!-- doxytag: member="glm::gtx::color_cast::u8channel_cast" ref="gab11ba0a450ba9a2b3885fa6a631df6f5" args="(valType a)" -->
202 <div class="memitem">
203 <div class="memproto">
204 <table class="memname">
205 <tr>
206 <td class="memname">gtc::type_precision::uint8 glm::gtx::color_cast::u8channel_cast </td>
207 <td>(</td>
208 <td class="paramtype">valType&#160;</td>
209 <td class="paramname"><em>a</em></td><td>)</td>
210 <td></td>
211 </tr>
212 </table>
213 </div>
214 <div class="memdoc">
215
216 <p>Conversion of a floating value into a 8bit unsigned int value. </p>
217 <p>From GLM_GTX_color_cast extension. </p>
60 <a class="anchor" id="ga20b1d59474b6588da10e72764711cf71"></a><!-- doxytag: member="glm::gtx::color_space::hsvColor" ref="ga20b1d59474b6588da10e72764711cf71" args="(detail::tvec3&lt; valType &gt; const &amp;rgbValue)" -->
61 <div class="memitem">
62 <div class="memproto">
63 <table class="memname">
64 <tr>
65 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::color_space::hsvColor </td>
66 <td>(</td>
67 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
68 <td class="paramname"><em>rgbValue</em></td><td>)</td>
69 <td></td>
70 </tr>
71 </table>
72 </div>
73 <div class="memdoc">
74
75 <p>Converts a color from RGB color space to its color in HSV color space. </p>
76 <p>From GLM_GTX_color_space extension. </p>
77
78 </div>
79 </div>
80 <a class="anchor" id="ga205ff9aab7e86a3e434f1c49f0a2b234"></a><!-- doxytag: member="glm::gtx::color_space::luminosity" ref="ga205ff9aab7e86a3e434f1c49f0a2b234" args="(detail::tvec3&lt; valType &gt; const &amp;color)" -->
81 <div class="memitem">
82 <div class="memproto">
83 <table class="memname">
84 <tr>
85 <td class="memname">valType glm::gtx::color_space::luminosity </td>
86 <td>(</td>
87 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
88 <td class="paramname"><em>color</em></td><td>)</td>
89 <td></td>
90 </tr>
91 </table>
92 </div>
93 <div class="memdoc">
94
95 <p>Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. </p>
96 <p>From GLM_GTX_color_space extension. </p>
97
98 </div>
99 </div>
100 <a class="anchor" id="gaa84fde704746ed36b80df7bf521510c5"></a><!-- doxytag: member="glm::gtx::color_space::rgbColor" ref="gaa84fde704746ed36b80df7bf521510c5" args="(detail::tvec3&lt; valType &gt; const &amp;hsvValue)" -->
101 <div class="memitem">
102 <div class="memproto">
103 <table class="memname">
104 <tr>
105 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::color_space::rgbColor </td>
106 <td>(</td>
107 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
108 <td class="paramname"><em>hsvValue</em></td><td>)</td>
109 <td></td>
110 </tr>
111 </table>
112 </div>
113 <div class="memdoc">
114
115 <p>Converts a color from HSV color space to its color in RGB color space. </p>
116 <p>From GLM_GTX_color_space extension. </p>
117
118 </div>
119 </div>
120 <a class="anchor" id="ga649fe400f2d7ae99886b2d41113b96d8"></a><!-- doxytag: member="glm::gtx::color_space::saturation" ref="ga649fe400f2d7ae99886b2d41113b96d8" args="(valType const s, detail::tvec3&lt; valType &gt; const &amp;color)" -->
121 <div class="memitem">
122 <div class="memproto">
123 <table class="memname">
124 <tr>
125 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::color_space::saturation </td>
126 <td>(</td>
127 <td class="paramtype">valType const&#160;</td>
128 <td class="paramname"><em>s</em>, </td>
129 </tr>
130 <tr>
131 <td class="paramkey"></td>
132 <td></td>
133 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
134 <td class="paramname"><em>color</em>&#160;</td>
135 </tr>
136 <tr>
137 <td></td>
138 <td>)</td>
139 <td></td><td></td>
140 </tr>
141 </table>
142 </div>
143 <div class="memdoc">
144
145 <p>Modify the saturation of a color. </p>
146 <p>From GLM_GTX_color_space extension. </p>
147
148 </div>
149 </div>
150 <a class="anchor" id="gade937a20e420b352d33cce2e92c6fe10"></a><!-- doxytag: member="glm::gtx::color_space::saturation" ref="gade937a20e420b352d33cce2e92c6fe10" args="(valType const s)" -->
151 <div class="memitem">
152 <div class="memproto">
153 <table class="memname">
154 <tr>
155 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::color_space::saturation </td>
156 <td>(</td>
157 <td class="paramtype">valType const&#160;</td>
158 <td class="paramname"><em>s</em></td><td>)</td>
159 <td></td>
160 </tr>
161 </table>
162 </div>
163 <div class="memdoc">
164
165 <p>Build a saturation matrix. </p>
166 <p>From GLM_GTX_color_space extension </p>
167
168 </div>
169 </div>
170 <a class="anchor" id="gaaed109d3a4f752c03df37253f052d589"></a><!-- doxytag: member="glm::gtx::color_space::saturation" ref="gaaed109d3a4f752c03df37253f052d589" args="(valType const s, detail::tvec4&lt; valType &gt; const &amp;color)" -->
171 <div class="memitem">
172 <div class="memproto">
173 <table class="memname">
174 <tr>
175 <td class="memname">detail::tvec4&lt;valType&gt; glm::gtx::color_space::saturation </td>
176 <td>(</td>
177 <td class="paramtype">valType const&#160;</td>
178 <td class="paramname"><em>s</em>, </td>
179 </tr>
180 <tr>
181 <td class="paramkey"></td>
182 <td></td>
183 <td class="paramtype">detail::tvec4&lt; valType &gt; const &amp;&#160;</td>
184 <td class="paramname"><em>color</em>&#160;</td>
185 </tr>
186 <tr>
187 <td></td>
188 <td>)</td>
189 <td></td><td></td>
190 </tr>
191 </table>
192 </div>
193 <div class="memdoc">
194
195 <p>Modify the saturation of a color. </p>
196 <p>From GLM_GTX_color_space extension. </p>
218197
219198 </div>
220199 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_color_space: RGB to HSV conversion</title>
4 <title>GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_color_space: RGB to HSV conversion</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Related to RGB to HSV conversions and operations.
38 <p>RGB to YCoCg conversions and operations.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
4343 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#ga20b1d59474b6588da10e72764711cf71">hsvColor</a> (detail::tvec3&lt; valType &gt; const &amp;rgbValue)</td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#ga41820be771f6edb66eec3d3376bae693">rgb2YCoCg</a> (detail::tvec3&lt; valType &gt; const &amp;rgbColor)</td></tr>
4545 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#ga205ff9aab7e86a3e434f1c49f0a2b234">luminosity</a> (detail::tvec3&lt; valType &gt; const &amp;color)</td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#ga3c8d61f4ce259ce76b44fe70f472c766">rgb2YCoCgR</a> (detail::tvec3&lt; valType &gt; const &amp;rgbColor)</td></tr>
4747 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#gaa84fde704746ed36b80df7bf521510c5">rgbColor</a> (detail::tvec3&lt; valType &gt; const &amp;hsvValue)</td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#ga638451b1492ea464bcda5d1abb0db614">YCoCg2rgb</a> (detail::tvec3&lt; valType &gt; const &amp;YCoCgColor)</td></tr>
4949 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#ga649fe400f2d7ae99886b2d41113b96d8">saturation</a> (valType const s, detail::tvec3&lt; valType &gt; const &amp;color)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#gade937a20e420b352d33cce2e92c6fe10">saturation</a> (valType const s)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#gaaed109d3a4f752c03df37253f052d589">saturation</a> (valType const s, detail::tvec4&lt; valType &gt; const &amp;color)</td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00253.html#ga75497f0965bd4834d39a88c10dee12c4">YCoCgR2rgb</a> (detail::tvec3&lt; valType &gt; const &amp;YCoCgColor)</td></tr>
5551 </table>
5652 <hr/><a name="_details"></a><h2>Detailed Description</h2>
57 <p>Related to RGB to HSV conversions and operations. </p>
58 <p>&lt;<a class="el" href="a00030_source.html">glm/gtx/color_space.hpp</a>&gt; need to be included to use these functionalities. </p>
53 <p>RGB to YCoCg conversions and operations. </p>
54 <p>&lt;<a class="el" href="a00031_source.html">glm/gtx/color_space_YCoCg.hpp</a>&gt; need to be included to use these functionalities. </p>
5955 <hr/><h2>Function Documentation</h2>
60 <a class="anchor" id="ga20b1d59474b6588da10e72764711cf71"></a><!-- doxytag: member="glm::gtx::color_space::hsvColor" ref="ga20b1d59474b6588da10e72764711cf71" args="(detail::tvec3&lt; valType &gt; const &amp;rgbValue)" -->
56 <a class="anchor" id="ga41820be771f6edb66eec3d3376bae693"></a><!-- doxytag: member="glm::gtx::color_space_YCoCg::rgb2YCoCg" ref="ga41820be771f6edb66eec3d3376bae693" args="(detail::tvec3&lt; valType &gt; const &amp;rgbColor)" -->
6157 <div class="memitem">
6258 <div class="memproto">
6359 <table class="memname">
6460 <tr>
65 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::color_space::hsvColor </td>
61 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::color_space_YCoCg::rgb2YCoCg </td>
6662 <td>(</td>
6763 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
68 <td class="paramname"><em>rgbValue</em></td><td>)</td>
64 <td class="paramname"><em>rgbColor</em></td><td>)</td>
6965 <td></td>
7066 </tr>
7167 </table>
7268 </div>
7369 <div class="memdoc">
7470
75 <p>Converts a color from RGB color space to its color in HSV color space. </p>
76 <p>From GLM_GTX_color_space extension. </p>
71 <p>Convert a color from RGB color space to YCoCg color space. </p>
72 <p>From GLM_GTX_color_space_YCoCg extension. </p>
7773
7874 </div>
7975 </div>
80 <a class="anchor" id="ga205ff9aab7e86a3e434f1c49f0a2b234"></a><!-- doxytag: member="glm::gtx::color_space::luminosity" ref="ga205ff9aab7e86a3e434f1c49f0a2b234" args="(detail::tvec3&lt; valType &gt; const &amp;color)" -->
76 <a class="anchor" id="ga3c8d61f4ce259ce76b44fe70f472c766"></a><!-- doxytag: member="glm::gtx::color_space_YCoCg::rgb2YCoCgR" ref="ga3c8d61f4ce259ce76b44fe70f472c766" args="(detail::tvec3&lt; valType &gt; const &amp;rgbColor)" -->
8177 <div class="memitem">
8278 <div class="memproto">
8379 <table class="memname">
8480 <tr>
85 <td class="memname">valType glm::gtx::color_space::luminosity </td>
81 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::color_space_YCoCg::rgb2YCoCgR </td>
8682 <td>(</td>
8783 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
88 <td class="paramname"><em>color</em></td><td>)</td>
84 <td class="paramname"><em>rgbColor</em></td><td>)</td>
8985 <td></td>
9086 </tr>
9187 </table>
9288 </div>
9389 <div class="memdoc">
9490
95 <p>Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. </p>
96 <p>From GLM_GTX_color_space extension. </p>
91 <p>Convert a color from RGB color space to YCoCgR color space. </p>
92 <dl class="see"><dt><b>See also:</b></dt><dd>"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range" From GLM_GTX_color_space_YCoCg extension. </dd></dl>
9793
9894 </div>
9995 </div>
100 <a class="anchor" id="gaa84fde704746ed36b80df7bf521510c5"></a><!-- doxytag: member="glm::gtx::color_space::rgbColor" ref="gaa84fde704746ed36b80df7bf521510c5" args="(detail::tvec3&lt; valType &gt; const &amp;hsvValue)" -->
96 <a class="anchor" id="ga638451b1492ea464bcda5d1abb0db614"></a><!-- doxytag: member="glm::gtx::color_space_YCoCg::YCoCg2rgb" ref="ga638451b1492ea464bcda5d1abb0db614" args="(detail::tvec3&lt; valType &gt; const &amp;YCoCgColor)" -->
10197 <div class="memitem">
10298 <div class="memproto">
10399 <table class="memname">
104100 <tr>
105 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::color_space::rgbColor </td>
101 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::color_space_YCoCg::YCoCg2rgb </td>
106102 <td>(</td>
107103 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
108 <td class="paramname"><em>hsvValue</em></td><td>)</td>
104 <td class="paramname"><em>YCoCgColor</em></td><td>)</td>
109105 <td></td>
110106 </tr>
111107 </table>
112108 </div>
113109 <div class="memdoc">
114110
115 <p>Converts a color from HSV color space to its color in RGB color space. </p>
116 <p>From GLM_GTX_color_space extension. </p>
111 <p>Convert a color from YCoCg color space to RGB color space. </p>
112 <p>From GLM_GTX_color_space_YCoCg extension. </p>
117113
118114 </div>
119115 </div>
120 <a class="anchor" id="ga649fe400f2d7ae99886b2d41113b96d8"></a><!-- doxytag: member="glm::gtx::color_space::saturation" ref="ga649fe400f2d7ae99886b2d41113b96d8" args="(valType const s, detail::tvec3&lt; valType &gt; const &amp;color)" -->
116 <a class="anchor" id="ga75497f0965bd4834d39a88c10dee12c4"></a><!-- doxytag: member="glm::gtx::color_space_YCoCg::YCoCgR2rgb" ref="ga75497f0965bd4834d39a88c10dee12c4" args="(detail::tvec3&lt; valType &gt; const &amp;YCoCgColor)" -->
121117 <div class="memitem">
122118 <div class="memproto">
123119 <table class="memname">
124120 <tr>
125 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::color_space::saturation </td>
121 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::color_space_YCoCg::YCoCgR2rgb </td>
126122 <td>(</td>
127 <td class="paramtype">valType const&#160;</td>
128 <td class="paramname"><em>s</em>, </td>
129 </tr>
130 <tr>
131 <td class="paramkey"></td>
132 <td></td>
133123 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
134 <td class="paramname"><em>color</em>&#160;</td>
135 </tr>
136 <tr>
137 <td></td>
138 <td>)</td>
139 <td></td><td></td>
140 </tr>
141 </table>
142 </div>
143 <div class="memdoc">
144
145 <p>Modify the saturation of a color. </p>
146 <p>From GLM_GTX_color_space extension. </p>
147
148 </div>
149 </div>
150 <a class="anchor" id="gade937a20e420b352d33cce2e92c6fe10"></a><!-- doxytag: member="glm::gtx::color_space::saturation" ref="gade937a20e420b352d33cce2e92c6fe10" args="(valType const s)" -->
151 <div class="memitem">
152 <div class="memproto">
153 <table class="memname">
154 <tr>
155 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::color_space::saturation </td>
156 <td>(</td>
157 <td class="paramtype">valType const&#160;</td>
158 <td class="paramname"><em>s</em></td><td>)</td>
124 <td class="paramname"><em>YCoCgColor</em></td><td>)</td>
159125 <td></td>
160126 </tr>
161127 </table>
162128 </div>
163129 <div class="memdoc">
164130
165 <p>Build a saturation matrix. </p>
166 <p>From GLM_GTX_color_space extension </p>
167
168 </div>
169 </div>
170 <a class="anchor" id="gaaed109d3a4f752c03df37253f052d589"></a><!-- doxytag: member="glm::gtx::color_space::saturation" ref="gaaed109d3a4f752c03df37253f052d589" args="(valType const s, detail::tvec4&lt; valType &gt; const &amp;color)" -->
171 <div class="memitem">
172 <div class="memproto">
173 <table class="memname">
174 <tr>
175 <td class="memname">detail::tvec4&lt;valType&gt; glm::gtx::color_space::saturation </td>
176 <td>(</td>
177 <td class="paramtype">valType const&#160;</td>
178 <td class="paramname"><em>s</em>, </td>
179 </tr>
180 <tr>
181 <td class="paramkey"></td>
182 <td></td>
183 <td class="paramtype">detail::tvec4&lt; valType &gt; const &amp;&#160;</td>
184 <td class="paramname"><em>color</em>&#160;</td>
185 </tr>
186 <tr>
187 <td></td>
188 <td>)</td>
189 <td></td><td></td>
190 </tr>
191 </table>
192 </div>
193 <div class="memdoc">
194
195 <p>Modify the saturation of a color. </p>
196 <p>From GLM_GTX_color_space extension. </p>
131 <p>Convert a color from YCoCgR color space to RGB color space. </p>
132 <dl class="see"><dt><b>See also:</b></dt><dd>"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range" From GLM_GTX_color_space_YCoCg extension. </dd></dl>
197133
198134 </div>
199135 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion</title>
4 <title>GLM_GTX_compatibility: Cg and HLSL compatibility</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#typedef-members">Typedefs</a> &#124;
3233 <a href="#func-members">Functions</a> </div>
3334 <div class="headertitle">
34 <h1>GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
35 <h1>GLM_GTX_compatibility: Cg and HLSL compatibility</h1> </div>
36 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3637 <div class="contents">
3738
38 <p>RGB to YCoCg conversions and operations.
39 <p>Provide functions to increase the compatibility with Cg and HLSL languages.
3940 <a href="#_details">More...</a></p>
4041 <table class="memberdecls">
42 <tr><td colspan="2"><h2><a name="typedef-members"></a>
43 Typedefs</h2></td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaddcd7aa2e30e61af5b38660613d3979e"></a><!-- doxytag: member="gtx_compatibility::bool1" ref="gaddcd7aa2e30e61af5b38660613d3979e" args="" -->
45 typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f895c936f0c29c8729afbbf22806090"></a><!-- doxytag: member="gtx_compatibility::bool1x1" ref="ga7f895c936f0c29c8729afbbf22806090" args="" -->
47 typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a></td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga88cfb6bf63a7fd1f03fe5abeae2aec1d"></a><!-- doxytag: member="gtx_compatibility::bool2" ref="ga88cfb6bf63a7fd1f03fe5abeae2aec1d" args="" -->
49 typedef detail::tvec2&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga88cfb6bf63a7fd1f03fe5abeae2aec1d">bool2</a></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga51dfdd84c191d9433ebf5e626af2c1f9"></a><!-- doxytag: member="gtx_compatibility::bool2x2" ref="ga51dfdd84c191d9433ebf5e626af2c1f9" args="" -->
51 typedef detail::tmat2x2&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga51dfdd84c191d9433ebf5e626af2c1f9">bool2x2</a></td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3982a05435c6c2d492b747f8adf6b9e0"></a><!-- doxytag: member="gtx_compatibility::bool2x3" ref="ga3982a05435c6c2d492b747f8adf6b9e0" args="" -->
53 typedef detail::tmat2x3&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga3982a05435c6c2d492b747f8adf6b9e0">bool2x3</a></td></tr>
54 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga78a505943e47244f4495d07e4884c318"></a><!-- doxytag: member="gtx_compatibility::bool2x4" ref="ga78a505943e47244f4495d07e4884c318" args="" -->
55 typedef detail::tmat2x4&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga78a505943e47244f4495d07e4884c318">bool2x4</a></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gade36f151806e985eec29fdf96ae6a2bb"></a><!-- doxytag: member="gtx_compatibility::bool3" ref="gade36f151806e985eec29fdf96ae6a2bb" args="" -->
57 typedef detail::tvec3&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gade36f151806e985eec29fdf96ae6a2bb">bool3</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf4e8c9209cfd75ac029f8d95e9520e2d"></a><!-- doxytag: member="gtx_compatibility::bool3x2" ref="gaf4e8c9209cfd75ac029f8d95e9520e2d" args="" -->
59 typedef detail::tmat3x2&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaf4e8c9209cfd75ac029f8d95e9520e2d">bool3x2</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga977c0274e9364b129774aedb65b3dcbd"></a><!-- doxytag: member="gtx_compatibility::bool3x3" ref="ga977c0274e9364b129774aedb65b3dcbd" args="" -->
61 typedef detail::tmat3x3&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga977c0274e9364b129774aedb65b3dcbd">bool3x3</a></td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5174a0758ee4bc91a51b1eb7b100a416"></a><!-- doxytag: member="gtx_compatibility::bool3x4" ref="ga5174a0758ee4bc91a51b1eb7b100a416" args="" -->
63 typedef detail::tmat3x4&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga5174a0758ee4bc91a51b1eb7b100a416">bool3x4</a></td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1ee8c362caed549a5a83fdd9db6ec6c2"></a><!-- doxytag: member="gtx_compatibility::bool4" ref="ga1ee8c362caed549a5a83fdd9db6ec6c2" args="" -->
65 typedef detail::tvec4&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga1ee8c362caed549a5a83fdd9db6ec6c2">bool4</a></td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga590198580792550bff2a6bd7f811c8d9"></a><!-- doxytag: member="gtx_compatibility::bool4x2" ref="ga590198580792550bff2a6bd7f811c8d9" args="" -->
67 typedef detail::tmat4x2&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga590198580792550bff2a6bd7f811c8d9">bool4x2</a></td></tr>
68 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac8ac5c2c5db2f164ae2e25d1b9898a6b"></a><!-- doxytag: member="gtx_compatibility::bool4x3" ref="gac8ac5c2c5db2f164ae2e25d1b9898a6b" args="" -->
69 typedef detail::tmat4x3&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gac8ac5c2c5db2f164ae2e25d1b9898a6b">bool4x3</a></td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac437f71eba4fabf6d7551f1889af2ea5"></a><!-- doxytag: member="gtx_compatibility::bool4x4" ref="gac437f71eba4fabf6d7551f1889af2ea5" args="" -->
71 typedef detail::tmat4x4&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gac437f71eba4fabf6d7551f1889af2ea5">bool4x4</a></td></tr>
72 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20b861a9b6e2a300323671c57a02525b"></a><!-- doxytag: member="gtx_compatibility::double1" ref="ga20b861a9b6e2a300323671c57a02525b" args="" -->
73 typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga20b861a9b6e2a300323671c57a02525b">double1</a></td></tr>
74 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga45f16a4dd0db1f199afaed9fd12fe9a8"></a><!-- doxytag: member="gtx_compatibility::double1x1" ref="ga45f16a4dd0db1f199afaed9fd12fe9a8" args="" -->
75 typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a></td></tr>
76 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7a2bed57d1cc7209ee6d027010bc96b6"></a><!-- doxytag: member="gtx_compatibility::double2" ref="ga7a2bed57d1cc7209ee6d027010bc96b6" args="" -->
77 typedef detail::tvec2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga7a2bed57d1cc7209ee6d027010bc96b6">double2</a></td></tr>
78 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga96772f5981821b9e80c572481e37f220"></a><!-- doxytag: member="gtx_compatibility::double2x2" ref="ga96772f5981821b9e80c572481e37f220" args="" -->
79 typedef detail::tmat2x2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga96772f5981821b9e80c572481e37f220">double2x2</a></td></tr>
80 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07bbc143dfea7838be68d63c114317f4"></a><!-- doxytag: member="gtx_compatibility::double2x3" ref="ga07bbc143dfea7838be68d63c114317f4" args="" -->
81 typedef detail::tmat2x3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga07bbc143dfea7838be68d63c114317f4">double2x3</a></td></tr>
82 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1e68c0a16e5684f44d86faac2a7d6810"></a><!-- doxytag: member="gtx_compatibility::double2x4" ref="ga1e68c0a16e5684f44d86faac2a7d6810" args="" -->
83 typedef detail::tmat2x4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga1e68c0a16e5684f44d86faac2a7d6810">double2x4</a></td></tr>
84 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaed0358fe1eb696b655a13eac4ececb2a"></a><!-- doxytag: member="gtx_compatibility::double3" ref="gaed0358fe1eb696b655a13eac4ececb2a" args="" -->
85 typedef detail::tvec3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaed0358fe1eb696b655a13eac4ececb2a">double3</a></td></tr>
86 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e8dd2531703ce00b253ddd3c0c6eaca"></a><!-- doxytag: member="gtx_compatibility::double3x2" ref="ga6e8dd2531703ce00b253ddd3c0c6eaca" args="" -->
87 typedef detail::tmat3x2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga6e8dd2531703ce00b253ddd3c0c6eaca">double3x2</a></td></tr>
88 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5dfb1357edcef48fcfdf9908906ae086"></a><!-- doxytag: member="gtx_compatibility::double3x3" ref="ga5dfb1357edcef48fcfdf9908906ae086" args="" -->
89 typedef detail::tmat3x3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga5dfb1357edcef48fcfdf9908906ae086">double3x3</a></td></tr>
90 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3b83eafbc284acce070855469c39b991"></a><!-- doxytag: member="gtx_compatibility::double3x4" ref="ga3b83eafbc284acce070855469c39b991" args="" -->
91 typedef detail::tmat3x4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga3b83eafbc284acce070855469c39b991">double3x4</a></td></tr>
92 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gace0ba846c7443d0d56abb0ca3e61469d"></a><!-- doxytag: member="gtx_compatibility::double4" ref="gace0ba846c7443d0d56abb0ca3e61469d" args="" -->
93 typedef detail::tvec4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gace0ba846c7443d0d56abb0ca3e61469d">double4</a></td></tr>
94 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga19c9ec02aa62b78e9709c4b2e2ae6f35"></a><!-- doxytag: member="gtx_compatibility::double4x2" ref="ga19c9ec02aa62b78e9709c4b2e2ae6f35" args="" -->
95 typedef detail::tmat4x2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga19c9ec02aa62b78e9709c4b2e2ae6f35">double4x2</a></td></tr>
96 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga53c7dc9532c324aefb75a5f08033cd12"></a><!-- doxytag: member="gtx_compatibility::double4x3" ref="ga53c7dc9532c324aefb75a5f08033cd12" args="" -->
97 typedef detail::tmat4x3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga53c7dc9532c324aefb75a5f08033cd12">double4x3</a></td></tr>
98 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2cc8e4fa772bfc5c1cada72ee5cadaf8"></a><!-- doxytag: member="gtx_compatibility::double4x4" ref="ga2cc8e4fa772bfc5c1cada72ee5cadaf8" args="" -->
99 typedef detail::tmat4x4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga2cc8e4fa772bfc5c1cada72ee5cadaf8">double4x4</a></td></tr>
100 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf5208d01f6c6fbcb7bb55d610b9c0ead"></a><!-- doxytag: member="gtx_compatibility::float1" ref="gaf5208d01f6c6fbcb7bb55d610b9c0ead" args="" -->
101 typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a></td></tr>
102 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73720b8dc4620835b17f74d428f98c0c"></a><!-- doxytag: member="gtx_compatibility::float1x1" ref="ga73720b8dc4620835b17f74d428f98c0c" args="" -->
103 typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a></td></tr>
104 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga36aed7f41ff3a1be99f215754f43376f"></a><!-- doxytag: member="gtx_compatibility::float2" ref="ga36aed7f41ff3a1be99f215754f43376f" args="" -->
105 typedef detail::tvec2&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga36aed7f41ff3a1be99f215754f43376f">float2</a></td></tr>
106 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf8d19b6f81f5cb8151f37c66c15691fa"></a><!-- doxytag: member="gtx_compatibility::float2x2" ref="gaf8d19b6f81f5cb8151f37c66c15691fa" args="" -->
107 typedef detail::tmat2x2&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaf8d19b6f81f5cb8151f37c66c15691fa">float2x2</a></td></tr>
108 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaafc2b478b36de8b9da6fe1e0f88f68d4"></a><!-- doxytag: member="gtx_compatibility::float2x3" ref="gaafc2b478b36de8b9da6fe1e0f88f68d4" args="" -->
109 typedef detail::tmat2x3&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaafc2b478b36de8b9da6fe1e0f88f68d4">float2x3</a></td></tr>
110 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga77d14ba22d90b0af72a1572ee1bd9458"></a><!-- doxytag: member="gtx_compatibility::float2x4" ref="ga77d14ba22d90b0af72a1572ee1bd9458" args="" -->
111 typedef detail::tmat2x4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga77d14ba22d90b0af72a1572ee1bd9458">float2x4</a></td></tr>
112 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1fe9cc8caced9aa000c36ca3c0a046ab"></a><!-- doxytag: member="gtx_compatibility::float3" ref="ga1fe9cc8caced9aa000c36ca3c0a046ab" args="" -->
113 typedef detail::tvec3&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga1fe9cc8caced9aa000c36ca3c0a046ab">float3</a></td></tr>
114 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga46c62307ff5e8418d27be225c1187e25"></a><!-- doxytag: member="gtx_compatibility::float3x2" ref="ga46c62307ff5e8418d27be225c1187e25" args="" -->
115 typedef detail::tmat3x2&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga46c62307ff5e8418d27be225c1187e25">float3x2</a></td></tr>
116 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5e6e08a42341c82268a4a94a02f7b016"></a><!-- doxytag: member="gtx_compatibility::float3x3" ref="ga5e6e08a42341c82268a4a94a02f7b016" args="" -->
117 typedef detail::tmat3x3&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga5e6e08a42341c82268a4a94a02f7b016">float3x3</a></td></tr>
118 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga14a4142cbea2f8ade68c6c4ca0bca2e6"></a><!-- doxytag: member="gtx_compatibility::float3x4" ref="ga14a4142cbea2f8ade68c6c4ca0bca2e6" args="" -->
119 typedef detail::tmat3x4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga14a4142cbea2f8ade68c6c4ca0bca2e6">float3x4</a></td></tr>
120 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1b1ca9850faf4c3ffddf95093a17b49c"></a><!-- doxytag: member="gtx_compatibility::float4" ref="ga1b1ca9850faf4c3ffddf95093a17b49c" args="" -->
121 typedef detail::tvec4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga1b1ca9850faf4c3ffddf95093a17b49c">float4</a></td></tr>
122 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7d53a0bdb8ce3ea6f26483d03a93309c"></a><!-- doxytag: member="gtx_compatibility::float4x2" ref="ga7d53a0bdb8ce3ea6f26483d03a93309c" args="" -->
123 typedef detail::tmat4x2&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga7d53a0bdb8ce3ea6f26483d03a93309c">float4x2</a></td></tr>
124 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga90ec9566c9961638c70e2ba2e3fd94fc"></a><!-- doxytag: member="gtx_compatibility::float4x3" ref="ga90ec9566c9961638c70e2ba2e3fd94fc" args="" -->
125 typedef detail::tmat4x3&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga90ec9566c9961638c70e2ba2e3fd94fc">float4x3</a></td></tr>
126 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1ab661a1b315e963ce81a7ebfb110aa7"></a><!-- doxytag: member="gtx_compatibility::float4x4" ref="ga1ab661a1b315e963ce81a7ebfb110aa7" args="" -->
127 typedef detail::tmat4x4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga1ab661a1b315e963ce81a7ebfb110aa7">float4x4</a></td></tr>
128 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac92f2c2693fb34285be07e772fcf0a53"></a><!-- doxytag: member="gtx_compatibility::half1" ref="gac92f2c2693fb34285be07e772fcf0a53" args="" -->
129 typedef gtc::half_float::half&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gac92f2c2693fb34285be07e772fcf0a53">half1</a></td></tr>
130 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9117ea66da761db845b445c4e7e1c745"></a><!-- doxytag: member="gtx_compatibility::half1x1" ref="ga9117ea66da761db845b445c4e7e1c745" args="" -->
131 typedef gtc::half_float::half&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga9117ea66da761db845b445c4e7e1c745">half1x1</a></td></tr>
132 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf768e8598259bc50119150ebea01fdbb"></a><!-- doxytag: member="gtx_compatibility::half2" ref="gaf768e8598259bc50119150ebea01fdbb" args="" -->
133 typedef detail::tvec2<br class="typebreak"/>
134 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaf768e8598259bc50119150ebea01fdbb">half2</a></td></tr>
135 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae04667191899a90d334e7585f341c523"></a><!-- doxytag: member="gtx_compatibility::half2x2" ref="gae04667191899a90d334e7585f341c523" args="" -->
136 typedef detail::tmat2x2<br class="typebreak"/>
137 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gae04667191899a90d334e7585f341c523">half2x2</a></td></tr>
138 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga44334615025353ffd16946ee83c96ebe"></a><!-- doxytag: member="gtx_compatibility::half2x3" ref="ga44334615025353ffd16946ee83c96ebe" args="" -->
139 typedef detail::tmat2x3<br class="typebreak"/>
140 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga44334615025353ffd16946ee83c96ebe">half2x3</a></td></tr>
141 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae0b63041228648f9223a421429c5a243"></a><!-- doxytag: member="gtx_compatibility::half2x4" ref="gae0b63041228648f9223a421429c5a243" args="" -->
142 typedef detail::tmat2x4<br class="typebreak"/>
143 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gae0b63041228648f9223a421429c5a243">half2x4</a></td></tr>
144 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadb391aad07ab3f0a00d53a0a322fe52e"></a><!-- doxytag: member="gtx_compatibility::half3" ref="gadb391aad07ab3f0a00d53a0a322fe52e" args="" -->
145 typedef detail::tvec3<br class="typebreak"/>
146 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gadb391aad07ab3f0a00d53a0a322fe52e">half3</a></td></tr>
147 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabb94c5e2a5c5091b7c65e132a02b2e55"></a><!-- doxytag: member="gtx_compatibility::half3x2" ref="gabb94c5e2a5c5091b7c65e132a02b2e55" args="" -->
148 typedef detail::tmat3x2<br class="typebreak"/>
149 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gabb94c5e2a5c5091b7c65e132a02b2e55">half3x2</a></td></tr>
150 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2a4cf36c30efcd3358d617840ed8a3f2"></a><!-- doxytag: member="gtx_compatibility::half3x3" ref="ga2a4cf36c30efcd3358d617840ed8a3f2" args="" -->
151 typedef detail::tmat3x3<br class="typebreak"/>
152 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga2a4cf36c30efcd3358d617840ed8a3f2">half3x3</a></td></tr>
153 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadecf6b2be379805949e6e74a24e2bdbd"></a><!-- doxytag: member="gtx_compatibility::half3x4" ref="gadecf6b2be379805949e6e74a24e2bdbd" args="" -->
154 typedef detail::tmat3x4<br class="typebreak"/>
155 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gadecf6b2be379805949e6e74a24e2bdbd">half3x4</a></td></tr>
156 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa4906c782e978976545039046ed3d629"></a><!-- doxytag: member="gtx_compatibility::half4" ref="gaa4906c782e978976545039046ed3d629" args="" -->
157 typedef detail::tvec4<br class="typebreak"/>
158 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaa4906c782e978976545039046ed3d629">half4</a></td></tr>
159 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga34877ae24fd35deb8001cc358366e47f"></a><!-- doxytag: member="gtx_compatibility::half4x2" ref="ga34877ae24fd35deb8001cc358366e47f" args="" -->
160 typedef detail::tmat4x2<br class="typebreak"/>
161 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga34877ae24fd35deb8001cc358366e47f">half4x2</a></td></tr>
162 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaae1ce7ae382a802a08180c21bfb2d863"></a><!-- doxytag: member="gtx_compatibility::half4x3" ref="gaae1ce7ae382a802a08180c21bfb2d863" args="" -->
163 typedef detail::tmat4x3<br class="typebreak"/>
164 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaae1ce7ae382a802a08180c21bfb2d863">half4x3</a></td></tr>
165 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad5c6e0603afbcd8ccf217fe2dca50cc1"></a><!-- doxytag: member="gtx_compatibility::half4x4" ref="gad5c6e0603afbcd8ccf217fe2dca50cc1" args="" -->
166 typedef detail::tmat4x4<br class="typebreak"/>
167 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gad5c6e0603afbcd8ccf217fe2dca50cc1">half4x4</a></td></tr>
168 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0670a2111b5e4a6410bd027fa0232fc3"></a><!-- doxytag: member="gtx_compatibility::int1" ref="ga0670a2111b5e4a6410bd027fa0232fc3" args="" -->
169 typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a></td></tr>
170 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga056ffe02d3a45af626f8e62221881c7a"></a><!-- doxytag: member="gtx_compatibility::int1x1" ref="ga056ffe02d3a45af626f8e62221881c7a" args="" -->
171 typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a></td></tr>
172 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga96b72b048dd3d9eb7caa93f9589b46a0"></a><!-- doxytag: member="gtx_compatibility::int2" ref="ga96b72b048dd3d9eb7caa93f9589b46a0" args="" -->
173 typedef detail::tvec2&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga96b72b048dd3d9eb7caa93f9589b46a0">int2</a></td></tr>
174 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab7644293a70c1e329624f556b779edde"></a><!-- doxytag: member="gtx_compatibility::int2x2" ref="gab7644293a70c1e329624f556b779edde" args="" -->
175 typedef detail::tmat2x2&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gab7644293a70c1e329624f556b779edde">int2x2</a></td></tr>
176 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf2c5ace70f19d3916b43f25ab7ffbc95"></a><!-- doxytag: member="gtx_compatibility::int2x3" ref="gaf2c5ace70f19d3916b43f25ab7ffbc95" args="" -->
177 typedef detail::tmat2x3&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gaf2c5ace70f19d3916b43f25ab7ffbc95">int2x3</a></td></tr>
178 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20ba14d42f3856221a0eb5194184bcf9"></a><!-- doxytag: member="gtx_compatibility::int2x4" ref="ga20ba14d42f3856221a0eb5194184bcf9" args="" -->
179 typedef detail::tmat2x4&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga20ba14d42f3856221a0eb5194184bcf9">int2x4</a></td></tr>
180 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0e57fa71b1be1f6501d3985b7b7d4dac"></a><!-- doxytag: member="gtx_compatibility::int3" ref="ga0e57fa71b1be1f6501d3985b7b7d4dac" args="" -->
181 typedef detail::tvec3&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga0e57fa71b1be1f6501d3985b7b7d4dac">int3</a></td></tr>
182 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga75bc457489f7d23f5ea56445c0b3fa3f"></a><!-- doxytag: member="gtx_compatibility::int3x2" ref="ga75bc457489f7d23f5ea56445c0b3fa3f" args="" -->
183 typedef detail::tmat3x2&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga75bc457489f7d23f5ea56445c0b3fa3f">int3x2</a></td></tr>
184 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga90d6b84bdde0d8247774aac30909ed03"></a><!-- doxytag: member="gtx_compatibility::int3x3" ref="ga90d6b84bdde0d8247774aac30909ed03" args="" -->
185 typedef detail::tmat3x3&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga90d6b84bdde0d8247774aac30909ed03">int3x3</a></td></tr>
186 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga91da3b288518f40c78ee1d0e1fb1cdb3"></a><!-- doxytag: member="gtx_compatibility::int3x4" ref="ga91da3b288518f40c78ee1d0e1fb1cdb3" args="" -->
187 typedef detail::tmat3x4&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga91da3b288518f40c78ee1d0e1fb1cdb3">int3x4</a></td></tr>
188 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga827bb0abe63248b0ae292a83ff55097a"></a><!-- doxytag: member="gtx_compatibility::int4" ref="ga827bb0abe63248b0ae292a83ff55097a" args="" -->
189 typedef detail::tvec4&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga827bb0abe63248b0ae292a83ff55097a">int4</a></td></tr>
190 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9101cda6ad27c3d5aa596ef9baeca75d"></a><!-- doxytag: member="gtx_compatibility::int4x2" ref="ga9101cda6ad27c3d5aa596ef9baeca75d" args="" -->
191 typedef detail::tmat4x2&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga9101cda6ad27c3d5aa596ef9baeca75d">int4x2</a></td></tr>
192 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5f93d57c0c99fd11c353e952b107b036"></a><!-- doxytag: member="gtx_compatibility::int4x3" ref="ga5f93d57c0c99fd11c353e952b107b036" args="" -->
193 typedef detail::tmat4x3&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#ga5f93d57c0c99fd11c353e952b107b036">int4x3</a></td></tr>
194 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacd4827b69f52f6486625bf65d23fe53f"></a><!-- doxytag: member="gtx_compatibility::int4x4" ref="gacd4827b69f52f6486625bf65d23fe53f" args="" -->
195 typedef detail::tmat4x4&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00254.html#gacd4827b69f52f6486625bf65d23fe53f">int4x4</a></td></tr>
41196 <tr><td colspan="2"><h2><a name="func-members"></a>
42197 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga41820be771f6edb66eec3d3376bae693">rgb2YCoCg</a> (detail::tvec3&lt; valType &gt; const &amp;rgbColor)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga3c8d61f4ce259ce76b44fe70f472c766">rgb2YCoCgR</a> (detail::tvec3&lt; valType &gt; const &amp;rgbColor)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga638451b1492ea464bcda5d1abb0db614">YCoCg2rgb</a> (detail::tvec3&lt; valType &gt; const &amp;YCoCgColor)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga75497f0965bd4834d39a88c10dee12c4">YCoCgR2rgb</a> (detail::tvec3&lt; valType &gt; const &amp;YCoCgColor)</td></tr>
198 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gacea44c6ab8e09b0616c58a514b1a9a81"></a><!-- doxytag: member="gtx_compatibility::atan2" ref="gacea44c6ab8e09b0616c58a514b1a9a81" args="(T x, T y)" -->
199 template&lt;typename T &gt; </td></tr>
200 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gacea44c6ab8e09b0616c58a514b1a9a81">atan2</a> (T x, T y)</td></tr>
201 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7aa5d9aae622970abb85b946ded2c64e"></a><!-- doxytag: member="gtx_compatibility::atan2" ref="ga7aa5d9aae622970abb85b946ded2c64e" args="(const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y)" -->
202 template&lt;typename T &gt; </td></tr>
203 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
204 detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga7aa5d9aae622970abb85b946ded2c64e">atan2</a> (const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y)</td></tr>
205 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4af7333865c906a5199342ec99ab6002"></a><!-- doxytag: member="gtx_compatibility::atan2" ref="ga4af7333865c906a5199342ec99ab6002" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)" -->
206 template&lt;typename T &gt; </td></tr>
207 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
208 detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga4af7333865c906a5199342ec99ab6002">atan2</a> (const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)</td></tr>
209 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga83dab39f1f74ed90e9511a5f88805a08"></a><!-- doxytag: member="gtx_compatibility::atan2" ref="ga83dab39f1f74ed90e9511a5f88805a08" args="(const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y)" -->
210 template&lt;typename T &gt; </td></tr>
211 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
212 detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga83dab39f1f74ed90e9511a5f88805a08">atan2</a> (const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y)</td></tr>
213 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga048f613527d6146d30bd45cfb9593ba4"></a><!-- doxytag: member="gtx_compatibility::isfinite" ref="ga048f613527d6146d30bd45cfb9593ba4" args="(genType const &amp;x)" -->
214 template&lt;typename genType &gt; </td></tr>
215 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga048f613527d6146d30bd45cfb9593ba4">isfinite</a> (genType const &amp;x)</td></tr>
216 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga12215da84a440c62e35e7154afc81459"></a><!-- doxytag: member="gtx_compatibility::isfinite" ref="ga12215da84a440c62e35e7154afc81459" args="(const detail::tvec2&lt; valType &gt; &amp;x)" -->
217 template&lt;typename valType &gt; </td></tr>
218 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga12215da84a440c62e35e7154afc81459">isfinite</a> (const detail::tvec2&lt; valType &gt; &amp;x)</td></tr>
219 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga70bf5b8e7026d0dd0dafbb0be71749c1"></a><!-- doxytag: member="gtx_compatibility::isfinite" ref="ga70bf5b8e7026d0dd0dafbb0be71749c1" args="(const detail::tvec3&lt; valType &gt; &amp;x)" -->
220 template&lt;typename valType &gt; </td></tr>
221 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga70bf5b8e7026d0dd0dafbb0be71749c1">isfinite</a> (const detail::tvec3&lt; valType &gt; &amp;x)</td></tr>
222 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaac16c71a3143a79662e84917163d6f62"></a><!-- doxytag: member="gtx_compatibility::isfinite" ref="gaac16c71a3143a79662e84917163d6f62" args="(const detail::tvec4&lt; valType &gt; &amp;x)" -->
223 template&lt;typename valType &gt; </td></tr>
224 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gaac16c71a3143a79662e84917163d6f62">isfinite</a> (const detail::tvec4&lt; valType &gt; &amp;x)</td></tr>
225 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga80ff18eeb665e1ae21650040192cb723"></a><!-- doxytag: member="gtx_compatibility::isinf" ref="ga80ff18eeb665e1ae21650040192cb723" args="(const detail::tvec4&lt; genType &gt; &amp;x)" -->
226 template&lt;typename genType &gt; </td></tr>
227 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga80ff18eeb665e1ae21650040192cb723">isinf</a> (const detail::tvec4&lt; genType &gt; &amp;x)</td></tr>
228 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab262f10a801ed389ab19f064f7dee84d"></a><!-- doxytag: member="gtx_compatibility::isinf" ref="gab262f10a801ed389ab19f064f7dee84d" args="(genType const &amp;x)" -->
229 template&lt;typename genType &gt; </td></tr>
230 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gab262f10a801ed389ab19f064f7dee84d">isinf</a> (genType const &amp;x)</td></tr>
231 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga729b78525d42f823537d1c438cf0f1aa"></a><!-- doxytag: member="gtx_compatibility::isinf" ref="ga729b78525d42f823537d1c438cf0f1aa" args="(const detail::tvec2&lt; genType &gt; &amp;x)" -->
232 template&lt;typename genType &gt; </td></tr>
233 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga729b78525d42f823537d1c438cf0f1aa">isinf</a> (const detail::tvec2&lt; genType &gt; &amp;x)</td></tr>
234 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac819e4811ec43828734e60e828b303eb"></a><!-- doxytag: member="gtx_compatibility::isinf" ref="gac819e4811ec43828734e60e828b303eb" args="(const detail::tvec3&lt; genType &gt; &amp;x)" -->
235 template&lt;typename genType &gt; </td></tr>
236 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gac819e4811ec43828734e60e828b303eb">isinf</a> (const detail::tvec3&lt; genType &gt; &amp;x)</td></tr>
237 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab221b862baf158dabffa0b6b5d3bee6d"></a><!-- doxytag: member="gtx_compatibility::isnan" ref="gab221b862baf158dabffa0b6b5d3bee6d" args="(genType const &amp;x)" -->
238 template&lt;typename genType &gt; </td></tr>
239 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gab221b862baf158dabffa0b6b5d3bee6d">isnan</a> (genType const &amp;x)</td></tr>
240 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa2f960030123937941320d6e570c9ed3"></a><!-- doxytag: member="gtx_compatibility::isnan" ref="gaa2f960030123937941320d6e570c9ed3" args="(const detail::tvec2&lt; genType &gt; &amp;x)" -->
241 template&lt;typename genType &gt; </td></tr>
242 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gaa2f960030123937941320d6e570c9ed3">isnan</a> (const detail::tvec2&lt; genType &gt; &amp;x)</td></tr>
243 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga75b72c912102e33256b2d0100edd23dc"></a><!-- doxytag: member="gtx_compatibility::isnan" ref="ga75b72c912102e33256b2d0100edd23dc" args="(const detail::tvec3&lt; genType &gt; &amp;x)" -->
244 template&lt;typename genType &gt; </td></tr>
245 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga75b72c912102e33256b2d0100edd23dc">isnan</a> (const detail::tvec3&lt; genType &gt; &amp;x)</td></tr>
246 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga17ed6a80235a6906e902ce6350740a32"></a><!-- doxytag: member="gtx_compatibility::isnan" ref="ga17ed6a80235a6906e902ce6350740a32" args="(const detail::tvec4&lt; genType &gt; &amp;x)" -->
247 template&lt;typename genType &gt; </td></tr>
248 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga17ed6a80235a6906e902ce6350740a32">isnan</a> (const detail::tvec4&lt; genType &gt; &amp;x)</td></tr>
249 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gafe1e12ad09189be637164559d225db78"></a><!-- doxytag: member="gtx_compatibility::lerp" ref="gafe1e12ad09189be637164559d225db78" args="(const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y, T a)" -->
250 template&lt;typename T &gt; </td></tr>
251 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
252 detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gafe1e12ad09189be637164559d225db78">lerp</a> (const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y, T a)</td></tr>
253 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga221f6378c8c9f710edaceccb748f5b18"></a><!-- doxytag: member="gtx_compatibility::lerp" ref="ga221f6378c8c9f710edaceccb748f5b18" args="(const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y, const detail::tvec2&lt; T &gt; &amp;a)" -->
254 template&lt;typename T &gt; </td></tr>
255 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
256 detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga221f6378c8c9f710edaceccb748f5b18">lerp</a> (const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y, const detail::tvec2&lt; T &gt; &amp;a)</td></tr>
257 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5f7bfd8f1e917fd897a738177492c59a"></a><!-- doxytag: member="gtx_compatibility::lerp" ref="ga5f7bfd8f1e917fd897a738177492c59a" args="(const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y, T a)" -->
258 template&lt;typename T &gt; </td></tr>
259 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
260 detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga5f7bfd8f1e917fd897a738177492c59a">lerp</a> (const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y, T a)</td></tr>
261 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac6fa04956f007fbb8b4c51ba93d3a13a"></a><!-- doxytag: member="gtx_compatibility::lerp" ref="gac6fa04956f007fbb8b4c51ba93d3a13a" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y, const detail::tvec3&lt; T &gt; &amp;a)" -->
262 template&lt;typename T &gt; </td></tr>
263 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
264 detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gac6fa04956f007fbb8b4c51ba93d3a13a">lerp</a> (const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y, const detail::tvec3&lt; T &gt; &amp;a)</td></tr>
265 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae7298450eb0c1489eda07ccdfdcbf205"></a><!-- doxytag: member="gtx_compatibility::lerp" ref="gae7298450eb0c1489eda07ccdfdcbf205" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y, T a)" -->
266 template&lt;typename T &gt; </td></tr>
267 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
268 detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gae7298450eb0c1489eda07ccdfdcbf205">lerp</a> (const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y, T a)</td></tr>
269 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga466cc6c042c517982f69db928fd697cf"></a><!-- doxytag: member="gtx_compatibility::lerp" ref="ga466cc6c042c517982f69db928fd697cf" args="(const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y, const detail::tvec4&lt; T &gt; &amp;a)" -->
270 template&lt;typename T &gt; </td></tr>
271 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
272 detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga466cc6c042c517982f69db928fd697cf">lerp</a> (const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y, const detail::tvec4&lt; T &gt; &amp;a)</td></tr>
273 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga56463ea9166068ab33107e1cea942023"></a><!-- doxytag: member="gtx_compatibility::lerp" ref="ga56463ea9166068ab33107e1cea942023" args="(T x, T y, T a)" -->
274 template&lt;typename T &gt; </td></tr>
275 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga56463ea9166068ab33107e1cea942023">lerp</a> (T x, T y, T a)</td></tr>
276 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadcd5e59d930f0e9b26a78740b403412b"></a><!-- doxytag: member="gtx_compatibility::saturate" ref="gadcd5e59d930f0e9b26a78740b403412b" args="(const detail::tvec2&lt; T &gt; &amp;x)" -->
277 template&lt;typename T &gt; </td></tr>
278 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
279 detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gadcd5e59d930f0e9b26a78740b403412b">saturate</a> (const detail::tvec2&lt; T &gt; &amp;x)</td></tr>
280 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga30791379500c2646301973bc133cb240"></a><!-- doxytag: member="gtx_compatibility::saturate" ref="ga30791379500c2646301973bc133cb240" args="(const detail::tvec3&lt; T &gt; &amp;x)" -->
281 template&lt;typename T &gt; </td></tr>
282 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
283 detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga30791379500c2646301973bc133cb240">saturate</a> (const detail::tvec3&lt; T &gt; &amp;x)</td></tr>
284 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa2afedf17ac7da10d95f383ea6be3124"></a><!-- doxytag: member="gtx_compatibility::saturate" ref="gaa2afedf17ac7da10d95f383ea6be3124" args="(T x)" -->
285 template&lt;typename T &gt; </td></tr>
286 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#gaa2afedf17ac7da10d95f383ea6be3124">saturate</a> (T x)</td></tr>
287 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga10a1c2401e1051008c551c3a0eadf6e4"></a><!-- doxytag: member="gtx_compatibility::saturate" ref="ga10a1c2401e1051008c551c3a0eadf6e4" args="(const detail::tvec4&lt; T &gt; &amp;x)" -->
288 template&lt;typename T &gt; </td></tr>
289 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
290 detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00254.html#ga10a1c2401e1051008c551c3a0eadf6e4">saturate</a> (const detail::tvec4&lt; T &gt; &amp;x)</td></tr>
51291 </table>
52292 <hr/><a name="_details"></a><h2>Detailed Description</h2>
53 <p>RGB to YCoCg conversions and operations. </p>
54 <p>&lt;<a class="el" href="a00031_source.html">glm/gtx/color_space_YCoCg.hpp</a>&gt; need to be included to use these functionalities. </p>
55 <hr/><h2>Function Documentation</h2>
56 <a class="anchor" id="ga41820be771f6edb66eec3d3376bae693"></a><!-- doxytag: member="glm::gtx::color_space_YCoCg::rgb2YCoCg" ref="ga41820be771f6edb66eec3d3376bae693" args="(detail::tvec3&lt; valType &gt; const &amp;rgbColor)" -->
57 <div class="memitem">
58 <div class="memproto">
59 <table class="memname">
60 <tr>
61 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::color_space_YCoCg::rgb2YCoCg </td>
62 <td>(</td>
63 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
64 <td class="paramname"><em>rgbColor</em></td><td>)</td>
65 <td></td>
66 </tr>
67 </table>
68 </div>
69 <div class="memdoc">
70
71 <p>Convert a color from RGB color space to YCoCg color space. </p>
72 <p>From GLM_GTX_color_space_YCoCg extension. </p>
73
74 </div>
75 </div>
76 <a class="anchor" id="ga3c8d61f4ce259ce76b44fe70f472c766"></a><!-- doxytag: member="glm::gtx::color_space_YCoCg::rgb2YCoCgR" ref="ga3c8d61f4ce259ce76b44fe70f472c766" args="(detail::tvec3&lt; valType &gt; const &amp;rgbColor)" -->
77 <div class="memitem">
78 <div class="memproto">
79 <table class="memname">
80 <tr>
81 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::color_space_YCoCg::rgb2YCoCgR </td>
82 <td>(</td>
83 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
84 <td class="paramname"><em>rgbColor</em></td><td>)</td>
85 <td></td>
86 </tr>
87 </table>
88 </div>
89 <div class="memdoc">
90
91 <p>Convert a color from RGB color space to YCoCgR color space. </p>
92 <dl class="see"><dt><b>See also:</b></dt><dd>"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range" From GLM_GTX_color_space_YCoCg extension. </dd></dl>
93
94 </div>
95 </div>
96 <a class="anchor" id="ga638451b1492ea464bcda5d1abb0db614"></a><!-- doxytag: member="glm::gtx::color_space_YCoCg::YCoCg2rgb" ref="ga638451b1492ea464bcda5d1abb0db614" args="(detail::tvec3&lt; valType &gt; const &amp;YCoCgColor)" -->
97 <div class="memitem">
98 <div class="memproto">
99 <table class="memname">
100 <tr>
101 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::color_space_YCoCg::YCoCg2rgb </td>
102 <td>(</td>
103 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
104 <td class="paramname"><em>YCoCgColor</em></td><td>)</td>
105 <td></td>
106 </tr>
107 </table>
108 </div>
109 <div class="memdoc">
110
111 <p>Convert a color from YCoCg color space to RGB color space. </p>
112 <p>From GLM_GTX_color_space_YCoCg extension. </p>
113
114 </div>
115 </div>
116 <a class="anchor" id="ga75497f0965bd4834d39a88c10dee12c4"></a><!-- doxytag: member="glm::gtx::color_space_YCoCg::YCoCgR2rgb" ref="ga75497f0965bd4834d39a88c10dee12c4" args="(detail::tvec3&lt; valType &gt; const &amp;YCoCgColor)" -->
117 <div class="memitem">
118 <div class="memproto">
119 <table class="memname">
120 <tr>
121 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::color_space_YCoCg::YCoCgR2rgb </td>
122 <td>(</td>
123 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
124 <td class="paramname"><em>YCoCgColor</em></td><td>)</td>
125 <td></td>
126 </tr>
127 </table>
128 </div>
129 <div class="memdoc">
130
131 <p>Convert a color from YCoCgR color space to RGB color space. </p>
132 <dl class="see"><dt><b>See also:</b></dt><dd>"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range" From GLM_GTX_color_space_YCoCg extension. </dd></dl>
133
134 </div>
135 </div>
293 <p>Provide functions to increase the compatibility with Cg and HLSL languages. </p>
294 <p>&lt;<a class="el" href="a00032_source.html">glm/gtx/compatibility.hpp</a>&gt; need to be included to use these functionalities. </p>
136295 </div>
137296 <hr class="footer"/><address class="footer"><small>Generated by&#160;
138297 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_compatibility: Cg and HLSL compatibility</title>
4 <title>GLM_GTX_component_wise: Component wise</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#typedef-members">Typedefs</a> &#124;
3332 <a href="#func-members">Functions</a> </div>
3433 <div class="headertitle">
35 <h1>GLM_GTX_compatibility: Cg and HLSL compatibility</h1> </div>
36 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_component_wise: Component wise</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3736 <div class="contents">
3837
39 <p>Provide functions to increase the compatibility with Cg and HLSL languages.
38 <p>Operations between components of a type.
4039 <a href="#_details">More...</a></p>
4140 <table class="memberdecls">
42 <tr><td colspan="2"><h2><a name="typedef-members"></a>
43 Typedefs</h2></td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaddcd7aa2e30e61af5b38660613d3979e"></a><!-- doxytag: member="gtx_compatibility::bool1" ref="gaddcd7aa2e30e61af5b38660613d3979e" args="" -->
45 typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f895c936f0c29c8729afbbf22806090"></a><!-- doxytag: member="gtx_compatibility::bool1x1" ref="ga7f895c936f0c29c8729afbbf22806090" args="" -->
47 typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a></td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga88cfb6bf63a7fd1f03fe5abeae2aec1d"></a><!-- doxytag: member="gtx_compatibility::bool2" ref="ga88cfb6bf63a7fd1f03fe5abeae2aec1d" args="" -->
49 typedef detail::tvec2&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga88cfb6bf63a7fd1f03fe5abeae2aec1d">bool2</a></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga51dfdd84c191d9433ebf5e626af2c1f9"></a><!-- doxytag: member="gtx_compatibility::bool2x2" ref="ga51dfdd84c191d9433ebf5e626af2c1f9" args="" -->
51 typedef detail::tmat2x2&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga51dfdd84c191d9433ebf5e626af2c1f9">bool2x2</a></td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3982a05435c6c2d492b747f8adf6b9e0"></a><!-- doxytag: member="gtx_compatibility::bool2x3" ref="ga3982a05435c6c2d492b747f8adf6b9e0" args="" -->
53 typedef detail::tmat2x3&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga3982a05435c6c2d492b747f8adf6b9e0">bool2x3</a></td></tr>
54 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga78a505943e47244f4495d07e4884c318"></a><!-- doxytag: member="gtx_compatibility::bool2x4" ref="ga78a505943e47244f4495d07e4884c318" args="" -->
55 typedef detail::tmat2x4&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga78a505943e47244f4495d07e4884c318">bool2x4</a></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gade36f151806e985eec29fdf96ae6a2bb"></a><!-- doxytag: member="gtx_compatibility::bool3" ref="gade36f151806e985eec29fdf96ae6a2bb" args="" -->
57 typedef detail::tvec3&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gade36f151806e985eec29fdf96ae6a2bb">bool3</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf4e8c9209cfd75ac029f8d95e9520e2d"></a><!-- doxytag: member="gtx_compatibility::bool3x2" ref="gaf4e8c9209cfd75ac029f8d95e9520e2d" args="" -->
59 typedef detail::tmat3x2&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaf4e8c9209cfd75ac029f8d95e9520e2d">bool3x2</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga977c0274e9364b129774aedb65b3dcbd"></a><!-- doxytag: member="gtx_compatibility::bool3x3" ref="ga977c0274e9364b129774aedb65b3dcbd" args="" -->
61 typedef detail::tmat3x3&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga977c0274e9364b129774aedb65b3dcbd">bool3x3</a></td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5174a0758ee4bc91a51b1eb7b100a416"></a><!-- doxytag: member="gtx_compatibility::bool3x4" ref="ga5174a0758ee4bc91a51b1eb7b100a416" args="" -->
63 typedef detail::tmat3x4&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga5174a0758ee4bc91a51b1eb7b100a416">bool3x4</a></td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1ee8c362caed549a5a83fdd9db6ec6c2"></a><!-- doxytag: member="gtx_compatibility::bool4" ref="ga1ee8c362caed549a5a83fdd9db6ec6c2" args="" -->
65 typedef detail::tvec4&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga1ee8c362caed549a5a83fdd9db6ec6c2">bool4</a></td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga590198580792550bff2a6bd7f811c8d9"></a><!-- doxytag: member="gtx_compatibility::bool4x2" ref="ga590198580792550bff2a6bd7f811c8d9" args="" -->
67 typedef detail::tmat4x2&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga590198580792550bff2a6bd7f811c8d9">bool4x2</a></td></tr>
68 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac8ac5c2c5db2f164ae2e25d1b9898a6b"></a><!-- doxytag: member="gtx_compatibility::bool4x3" ref="gac8ac5c2c5db2f164ae2e25d1b9898a6b" args="" -->
69 typedef detail::tmat4x3&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gac8ac5c2c5db2f164ae2e25d1b9898a6b">bool4x3</a></td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac437f71eba4fabf6d7551f1889af2ea5"></a><!-- doxytag: member="gtx_compatibility::bool4x4" ref="gac437f71eba4fabf6d7551f1889af2ea5" args="" -->
71 typedef detail::tmat4x4&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gac437f71eba4fabf6d7551f1889af2ea5">bool4x4</a></td></tr>
72 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20b861a9b6e2a300323671c57a02525b"></a><!-- doxytag: member="gtx_compatibility::double1" ref="ga20b861a9b6e2a300323671c57a02525b" args="" -->
73 typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga20b861a9b6e2a300323671c57a02525b">double1</a></td></tr>
74 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga45f16a4dd0db1f199afaed9fd12fe9a8"></a><!-- doxytag: member="gtx_compatibility::double1x1" ref="ga45f16a4dd0db1f199afaed9fd12fe9a8" args="" -->
75 typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a></td></tr>
76 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7a2bed57d1cc7209ee6d027010bc96b6"></a><!-- doxytag: member="gtx_compatibility::double2" ref="ga7a2bed57d1cc7209ee6d027010bc96b6" args="" -->
77 typedef detail::tvec2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga7a2bed57d1cc7209ee6d027010bc96b6">double2</a></td></tr>
78 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga96772f5981821b9e80c572481e37f220"></a><!-- doxytag: member="gtx_compatibility::double2x2" ref="ga96772f5981821b9e80c572481e37f220" args="" -->
79 typedef detail::tmat2x2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga96772f5981821b9e80c572481e37f220">double2x2</a></td></tr>
80 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07bbc143dfea7838be68d63c114317f4"></a><!-- doxytag: member="gtx_compatibility::double2x3" ref="ga07bbc143dfea7838be68d63c114317f4" args="" -->
81 typedef detail::tmat2x3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga07bbc143dfea7838be68d63c114317f4">double2x3</a></td></tr>
82 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1e68c0a16e5684f44d86faac2a7d6810"></a><!-- doxytag: member="gtx_compatibility::double2x4" ref="ga1e68c0a16e5684f44d86faac2a7d6810" args="" -->
83 typedef detail::tmat2x4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga1e68c0a16e5684f44d86faac2a7d6810">double2x4</a></td></tr>
84 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaed0358fe1eb696b655a13eac4ececb2a"></a><!-- doxytag: member="gtx_compatibility::double3" ref="gaed0358fe1eb696b655a13eac4ececb2a" args="" -->
85 typedef detail::tvec3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaed0358fe1eb696b655a13eac4ececb2a">double3</a></td></tr>
86 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e8dd2531703ce00b253ddd3c0c6eaca"></a><!-- doxytag: member="gtx_compatibility::double3x2" ref="ga6e8dd2531703ce00b253ddd3c0c6eaca" args="" -->
87 typedef detail::tmat3x2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga6e8dd2531703ce00b253ddd3c0c6eaca">double3x2</a></td></tr>
88 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5dfb1357edcef48fcfdf9908906ae086"></a><!-- doxytag: member="gtx_compatibility::double3x3" ref="ga5dfb1357edcef48fcfdf9908906ae086" args="" -->
89 typedef detail::tmat3x3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga5dfb1357edcef48fcfdf9908906ae086">double3x3</a></td></tr>
90 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3b83eafbc284acce070855469c39b991"></a><!-- doxytag: member="gtx_compatibility::double3x4" ref="ga3b83eafbc284acce070855469c39b991" args="" -->
91 typedef detail::tmat3x4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga3b83eafbc284acce070855469c39b991">double3x4</a></td></tr>
92 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gace0ba846c7443d0d56abb0ca3e61469d"></a><!-- doxytag: member="gtx_compatibility::double4" ref="gace0ba846c7443d0d56abb0ca3e61469d" args="" -->
93 typedef detail::tvec4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gace0ba846c7443d0d56abb0ca3e61469d">double4</a></td></tr>
94 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga19c9ec02aa62b78e9709c4b2e2ae6f35"></a><!-- doxytag: member="gtx_compatibility::double4x2" ref="ga19c9ec02aa62b78e9709c4b2e2ae6f35" args="" -->
95 typedef detail::tmat4x2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga19c9ec02aa62b78e9709c4b2e2ae6f35">double4x2</a></td></tr>
96 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga53c7dc9532c324aefb75a5f08033cd12"></a><!-- doxytag: member="gtx_compatibility::double4x3" ref="ga53c7dc9532c324aefb75a5f08033cd12" args="" -->
97 typedef detail::tmat4x3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga53c7dc9532c324aefb75a5f08033cd12">double4x3</a></td></tr>
98 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2cc8e4fa772bfc5c1cada72ee5cadaf8"></a><!-- doxytag: member="gtx_compatibility::double4x4" ref="ga2cc8e4fa772bfc5c1cada72ee5cadaf8" args="" -->
99 typedef detail::tmat4x4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga2cc8e4fa772bfc5c1cada72ee5cadaf8">double4x4</a></td></tr>
100 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf5208d01f6c6fbcb7bb55d610b9c0ead"></a><!-- doxytag: member="gtx_compatibility::float1" ref="gaf5208d01f6c6fbcb7bb55d610b9c0ead" args="" -->
101 typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a></td></tr>
102 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73720b8dc4620835b17f74d428f98c0c"></a><!-- doxytag: member="gtx_compatibility::float1x1" ref="ga73720b8dc4620835b17f74d428f98c0c" args="" -->
103 typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a></td></tr>
104 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga36aed7f41ff3a1be99f215754f43376f"></a><!-- doxytag: member="gtx_compatibility::float2" ref="ga36aed7f41ff3a1be99f215754f43376f" args="" -->
105 typedef detail::tvec2&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga36aed7f41ff3a1be99f215754f43376f">float2</a></td></tr>
106 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf8d19b6f81f5cb8151f37c66c15691fa"></a><!-- doxytag: member="gtx_compatibility::float2x2" ref="gaf8d19b6f81f5cb8151f37c66c15691fa" args="" -->
107 typedef detail::tmat2x2&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaf8d19b6f81f5cb8151f37c66c15691fa">float2x2</a></td></tr>
108 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaafc2b478b36de8b9da6fe1e0f88f68d4"></a><!-- doxytag: member="gtx_compatibility::float2x3" ref="gaafc2b478b36de8b9da6fe1e0f88f68d4" args="" -->
109 typedef detail::tmat2x3&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaafc2b478b36de8b9da6fe1e0f88f68d4">float2x3</a></td></tr>
110 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga77d14ba22d90b0af72a1572ee1bd9458"></a><!-- doxytag: member="gtx_compatibility::float2x4" ref="ga77d14ba22d90b0af72a1572ee1bd9458" args="" -->
111 typedef detail::tmat2x4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga77d14ba22d90b0af72a1572ee1bd9458">float2x4</a></td></tr>
112 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1fe9cc8caced9aa000c36ca3c0a046ab"></a><!-- doxytag: member="gtx_compatibility::float3" ref="ga1fe9cc8caced9aa000c36ca3c0a046ab" args="" -->
113 typedef detail::tvec3&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga1fe9cc8caced9aa000c36ca3c0a046ab">float3</a></td></tr>
114 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga46c62307ff5e8418d27be225c1187e25"></a><!-- doxytag: member="gtx_compatibility::float3x2" ref="ga46c62307ff5e8418d27be225c1187e25" args="" -->
115 typedef detail::tmat3x2&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga46c62307ff5e8418d27be225c1187e25">float3x2</a></td></tr>
116 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5e6e08a42341c82268a4a94a02f7b016"></a><!-- doxytag: member="gtx_compatibility::float3x3" ref="ga5e6e08a42341c82268a4a94a02f7b016" args="" -->
117 typedef detail::tmat3x3&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga5e6e08a42341c82268a4a94a02f7b016">float3x3</a></td></tr>
118 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga14a4142cbea2f8ade68c6c4ca0bca2e6"></a><!-- doxytag: member="gtx_compatibility::float3x4" ref="ga14a4142cbea2f8ade68c6c4ca0bca2e6" args="" -->
119 typedef detail::tmat3x4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga14a4142cbea2f8ade68c6c4ca0bca2e6">float3x4</a></td></tr>
120 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1b1ca9850faf4c3ffddf95093a17b49c"></a><!-- doxytag: member="gtx_compatibility::float4" ref="ga1b1ca9850faf4c3ffddf95093a17b49c" args="" -->
121 typedef detail::tvec4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga1b1ca9850faf4c3ffddf95093a17b49c">float4</a></td></tr>
122 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7d53a0bdb8ce3ea6f26483d03a93309c"></a><!-- doxytag: member="gtx_compatibility::float4x2" ref="ga7d53a0bdb8ce3ea6f26483d03a93309c" args="" -->
123 typedef detail::tmat4x2&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga7d53a0bdb8ce3ea6f26483d03a93309c">float4x2</a></td></tr>
124 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga90ec9566c9961638c70e2ba2e3fd94fc"></a><!-- doxytag: member="gtx_compatibility::float4x3" ref="ga90ec9566c9961638c70e2ba2e3fd94fc" args="" -->
125 typedef detail::tmat4x3&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga90ec9566c9961638c70e2ba2e3fd94fc">float4x3</a></td></tr>
126 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1ab661a1b315e963ce81a7ebfb110aa7"></a><!-- doxytag: member="gtx_compatibility::float4x4" ref="ga1ab661a1b315e963ce81a7ebfb110aa7" args="" -->
127 typedef detail::tmat4x4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga1ab661a1b315e963ce81a7ebfb110aa7">float4x4</a></td></tr>
128 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac92f2c2693fb34285be07e772fcf0a53"></a><!-- doxytag: member="gtx_compatibility::half1" ref="gac92f2c2693fb34285be07e772fcf0a53" args="" -->
129 typedef gtc::half_float::half&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gac92f2c2693fb34285be07e772fcf0a53">half1</a></td></tr>
130 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9117ea66da761db845b445c4e7e1c745"></a><!-- doxytag: member="gtx_compatibility::half1x1" ref="ga9117ea66da761db845b445c4e7e1c745" args="" -->
131 typedef gtc::half_float::half&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga9117ea66da761db845b445c4e7e1c745">half1x1</a></td></tr>
132 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf768e8598259bc50119150ebea01fdbb"></a><!-- doxytag: member="gtx_compatibility::half2" ref="gaf768e8598259bc50119150ebea01fdbb" args="" -->
133 typedef detail::tvec2<br class="typebreak"/>
134 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaf768e8598259bc50119150ebea01fdbb">half2</a></td></tr>
135 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae04667191899a90d334e7585f341c523"></a><!-- doxytag: member="gtx_compatibility::half2x2" ref="gae04667191899a90d334e7585f341c523" args="" -->
136 typedef detail::tmat2x2<br class="typebreak"/>
137 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gae04667191899a90d334e7585f341c523">half2x2</a></td></tr>
138 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga44334615025353ffd16946ee83c96ebe"></a><!-- doxytag: member="gtx_compatibility::half2x3" ref="ga44334615025353ffd16946ee83c96ebe" args="" -->
139 typedef detail::tmat2x3<br class="typebreak"/>
140 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga44334615025353ffd16946ee83c96ebe">half2x3</a></td></tr>
141 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae0b63041228648f9223a421429c5a243"></a><!-- doxytag: member="gtx_compatibility::half2x4" ref="gae0b63041228648f9223a421429c5a243" args="" -->
142 typedef detail::tmat2x4<br class="typebreak"/>
143 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gae0b63041228648f9223a421429c5a243">half2x4</a></td></tr>
144 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadb391aad07ab3f0a00d53a0a322fe52e"></a><!-- doxytag: member="gtx_compatibility::half3" ref="gadb391aad07ab3f0a00d53a0a322fe52e" args="" -->
145 typedef detail::tvec3<br class="typebreak"/>
146 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gadb391aad07ab3f0a00d53a0a322fe52e">half3</a></td></tr>
147 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabb94c5e2a5c5091b7c65e132a02b2e55"></a><!-- doxytag: member="gtx_compatibility::half3x2" ref="gabb94c5e2a5c5091b7c65e132a02b2e55" args="" -->
148 typedef detail::tmat3x2<br class="typebreak"/>
149 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gabb94c5e2a5c5091b7c65e132a02b2e55">half3x2</a></td></tr>
150 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2a4cf36c30efcd3358d617840ed8a3f2"></a><!-- doxytag: member="gtx_compatibility::half3x3" ref="ga2a4cf36c30efcd3358d617840ed8a3f2" args="" -->
151 typedef detail::tmat3x3<br class="typebreak"/>
152 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga2a4cf36c30efcd3358d617840ed8a3f2">half3x3</a></td></tr>
153 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadecf6b2be379805949e6e74a24e2bdbd"></a><!-- doxytag: member="gtx_compatibility::half3x4" ref="gadecf6b2be379805949e6e74a24e2bdbd" args="" -->
154 typedef detail::tmat3x4<br class="typebreak"/>
155 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gadecf6b2be379805949e6e74a24e2bdbd">half3x4</a></td></tr>
156 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa4906c782e978976545039046ed3d629"></a><!-- doxytag: member="gtx_compatibility::half4" ref="gaa4906c782e978976545039046ed3d629" args="" -->
157 typedef detail::tvec4<br class="typebreak"/>
158 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaa4906c782e978976545039046ed3d629">half4</a></td></tr>
159 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga34877ae24fd35deb8001cc358366e47f"></a><!-- doxytag: member="gtx_compatibility::half4x2" ref="ga34877ae24fd35deb8001cc358366e47f" args="" -->
160 typedef detail::tmat4x2<br class="typebreak"/>
161 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga34877ae24fd35deb8001cc358366e47f">half4x2</a></td></tr>
162 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaae1ce7ae382a802a08180c21bfb2d863"></a><!-- doxytag: member="gtx_compatibility::half4x3" ref="gaae1ce7ae382a802a08180c21bfb2d863" args="" -->
163 typedef detail::tmat4x3<br class="typebreak"/>
164 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaae1ce7ae382a802a08180c21bfb2d863">half4x3</a></td></tr>
165 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad5c6e0603afbcd8ccf217fe2dca50cc1"></a><!-- doxytag: member="gtx_compatibility::half4x4" ref="gad5c6e0603afbcd8ccf217fe2dca50cc1" args="" -->
166 typedef detail::tmat4x4<br class="typebreak"/>
167 &lt; gtc::half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gad5c6e0603afbcd8ccf217fe2dca50cc1">half4x4</a></td></tr>
168 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0670a2111b5e4a6410bd027fa0232fc3"></a><!-- doxytag: member="gtx_compatibility::int1" ref="ga0670a2111b5e4a6410bd027fa0232fc3" args="" -->
169 typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a></td></tr>
170 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga056ffe02d3a45af626f8e62221881c7a"></a><!-- doxytag: member="gtx_compatibility::int1x1" ref="ga056ffe02d3a45af626f8e62221881c7a" args="" -->
171 typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a></td></tr>
172 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga96b72b048dd3d9eb7caa93f9589b46a0"></a><!-- doxytag: member="gtx_compatibility::int2" ref="ga96b72b048dd3d9eb7caa93f9589b46a0" args="" -->
173 typedef detail::tvec2&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga96b72b048dd3d9eb7caa93f9589b46a0">int2</a></td></tr>
174 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab7644293a70c1e329624f556b779edde"></a><!-- doxytag: member="gtx_compatibility::int2x2" ref="gab7644293a70c1e329624f556b779edde" args="" -->
175 typedef detail::tmat2x2&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gab7644293a70c1e329624f556b779edde">int2x2</a></td></tr>
176 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf2c5ace70f19d3916b43f25ab7ffbc95"></a><!-- doxytag: member="gtx_compatibility::int2x3" ref="gaf2c5ace70f19d3916b43f25ab7ffbc95" args="" -->
177 typedef detail::tmat2x3&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gaf2c5ace70f19d3916b43f25ab7ffbc95">int2x3</a></td></tr>
178 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20ba14d42f3856221a0eb5194184bcf9"></a><!-- doxytag: member="gtx_compatibility::int2x4" ref="ga20ba14d42f3856221a0eb5194184bcf9" args="" -->
179 typedef detail::tmat2x4&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga20ba14d42f3856221a0eb5194184bcf9">int2x4</a></td></tr>
180 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0e57fa71b1be1f6501d3985b7b7d4dac"></a><!-- doxytag: member="gtx_compatibility::int3" ref="ga0e57fa71b1be1f6501d3985b7b7d4dac" args="" -->
181 typedef detail::tvec3&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga0e57fa71b1be1f6501d3985b7b7d4dac">int3</a></td></tr>
182 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga75bc457489f7d23f5ea56445c0b3fa3f"></a><!-- doxytag: member="gtx_compatibility::int3x2" ref="ga75bc457489f7d23f5ea56445c0b3fa3f" args="" -->
183 typedef detail::tmat3x2&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga75bc457489f7d23f5ea56445c0b3fa3f">int3x2</a></td></tr>
184 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga90d6b84bdde0d8247774aac30909ed03"></a><!-- doxytag: member="gtx_compatibility::int3x3" ref="ga90d6b84bdde0d8247774aac30909ed03" args="" -->
185 typedef detail::tmat3x3&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga90d6b84bdde0d8247774aac30909ed03">int3x3</a></td></tr>
186 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga91da3b288518f40c78ee1d0e1fb1cdb3"></a><!-- doxytag: member="gtx_compatibility::int3x4" ref="ga91da3b288518f40c78ee1d0e1fb1cdb3" args="" -->
187 typedef detail::tmat3x4&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga91da3b288518f40c78ee1d0e1fb1cdb3">int3x4</a></td></tr>
188 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga827bb0abe63248b0ae292a83ff55097a"></a><!-- doxytag: member="gtx_compatibility::int4" ref="ga827bb0abe63248b0ae292a83ff55097a" args="" -->
189 typedef detail::tvec4&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga827bb0abe63248b0ae292a83ff55097a">int4</a></td></tr>
190 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9101cda6ad27c3d5aa596ef9baeca75d"></a><!-- doxytag: member="gtx_compatibility::int4x2" ref="ga9101cda6ad27c3d5aa596ef9baeca75d" args="" -->
191 typedef detail::tmat4x2&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga9101cda6ad27c3d5aa596ef9baeca75d">int4x2</a></td></tr>
192 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5f93d57c0c99fd11c353e952b107b036"></a><!-- doxytag: member="gtx_compatibility::int4x3" ref="ga5f93d57c0c99fd11c353e952b107b036" args="" -->
193 typedef detail::tmat4x3&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#ga5f93d57c0c99fd11c353e952b107b036">int4x3</a></td></tr>
194 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacd4827b69f52f6486625bf65d23fe53f"></a><!-- doxytag: member="gtx_compatibility::int4x4" ref="gacd4827b69f52f6486625bf65d23fe53f" args="" -->
195 typedef detail::tmat4x4&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html#gacd4827b69f52f6486625bf65d23fe53f">int4x4</a></td></tr>
19641 <tr><td colspan="2"><h2><a name="func-members"></a>
19742 Functions</h2></td></tr>
198 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gacea44c6ab8e09b0616c58a514b1a9a81"></a><!-- doxytag: member="gtx_compatibility::atan2" ref="gacea44c6ab8e09b0616c58a514b1a9a81" args="(T x, T y)" -->
199 template&lt;typename T &gt; </td></tr>
200 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gacea44c6ab8e09b0616c58a514b1a9a81">atan2</a> (T x, T y)</td></tr>
201 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7aa5d9aae622970abb85b946ded2c64e"></a><!-- doxytag: member="gtx_compatibility::atan2" ref="ga7aa5d9aae622970abb85b946ded2c64e" args="(const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y)" -->
202 template&lt;typename T &gt; </td></tr>
203 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
204 detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga7aa5d9aae622970abb85b946ded2c64e">atan2</a> (const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y)</td></tr>
205 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4af7333865c906a5199342ec99ab6002"></a><!-- doxytag: member="gtx_compatibility::atan2" ref="ga4af7333865c906a5199342ec99ab6002" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)" -->
206 template&lt;typename T &gt; </td></tr>
207 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
208 detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga4af7333865c906a5199342ec99ab6002">atan2</a> (const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)</td></tr>
209 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga83dab39f1f74ed90e9511a5f88805a08"></a><!-- doxytag: member="gtx_compatibility::atan2" ref="ga83dab39f1f74ed90e9511a5f88805a08" args="(const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y)" -->
210 template&lt;typename T &gt; </td></tr>
211 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
212 detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga83dab39f1f74ed90e9511a5f88805a08">atan2</a> (const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y)</td></tr>
213 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga048f613527d6146d30bd45cfb9593ba4"></a><!-- doxytag: member="gtx_compatibility::isfinite" ref="ga048f613527d6146d30bd45cfb9593ba4" args="(genType const &amp;x)" -->
214 template&lt;typename genType &gt; </td></tr>
215 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga048f613527d6146d30bd45cfb9593ba4">isfinite</a> (genType const &amp;x)</td></tr>
216 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga12215da84a440c62e35e7154afc81459"></a><!-- doxytag: member="gtx_compatibility::isfinite" ref="ga12215da84a440c62e35e7154afc81459" args="(const detail::tvec2&lt; valType &gt; &amp;x)" -->
217 template&lt;typename valType &gt; </td></tr>
218 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga12215da84a440c62e35e7154afc81459">isfinite</a> (const detail::tvec2&lt; valType &gt; &amp;x)</td></tr>
219 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga70bf5b8e7026d0dd0dafbb0be71749c1"></a><!-- doxytag: member="gtx_compatibility::isfinite" ref="ga70bf5b8e7026d0dd0dafbb0be71749c1" args="(const detail::tvec3&lt; valType &gt; &amp;x)" -->
220 template&lt;typename valType &gt; </td></tr>
221 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga70bf5b8e7026d0dd0dafbb0be71749c1">isfinite</a> (const detail::tvec3&lt; valType &gt; &amp;x)</td></tr>
222 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaac16c71a3143a79662e84917163d6f62"></a><!-- doxytag: member="gtx_compatibility::isfinite" ref="gaac16c71a3143a79662e84917163d6f62" args="(const detail::tvec4&lt; valType &gt; &amp;x)" -->
223 template&lt;typename valType &gt; </td></tr>
224 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gaac16c71a3143a79662e84917163d6f62">isfinite</a> (const detail::tvec4&lt; valType &gt; &amp;x)</td></tr>
225 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga80ff18eeb665e1ae21650040192cb723"></a><!-- doxytag: member="gtx_compatibility::isinf" ref="ga80ff18eeb665e1ae21650040192cb723" args="(const detail::tvec4&lt; genType &gt; &amp;x)" -->
226 template&lt;typename genType &gt; </td></tr>
227 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga80ff18eeb665e1ae21650040192cb723">isinf</a> (const detail::tvec4&lt; genType &gt; &amp;x)</td></tr>
228 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab262f10a801ed389ab19f064f7dee84d"></a><!-- doxytag: member="gtx_compatibility::isinf" ref="gab262f10a801ed389ab19f064f7dee84d" args="(genType const &amp;x)" -->
229 template&lt;typename genType &gt; </td></tr>
230 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gab262f10a801ed389ab19f064f7dee84d">isinf</a> (genType const &amp;x)</td></tr>
231 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga729b78525d42f823537d1c438cf0f1aa"></a><!-- doxytag: member="gtx_compatibility::isinf" ref="ga729b78525d42f823537d1c438cf0f1aa" args="(const detail::tvec2&lt; genType &gt; &amp;x)" -->
232 template&lt;typename genType &gt; </td></tr>
233 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga729b78525d42f823537d1c438cf0f1aa">isinf</a> (const detail::tvec2&lt; genType &gt; &amp;x)</td></tr>
234 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac819e4811ec43828734e60e828b303eb"></a><!-- doxytag: member="gtx_compatibility::isinf" ref="gac819e4811ec43828734e60e828b303eb" args="(const detail::tvec3&lt; genType &gt; &amp;x)" -->
235 template&lt;typename genType &gt; </td></tr>
236 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gac819e4811ec43828734e60e828b303eb">isinf</a> (const detail::tvec3&lt; genType &gt; &amp;x)</td></tr>
237 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab221b862baf158dabffa0b6b5d3bee6d"></a><!-- doxytag: member="gtx_compatibility::isnan" ref="gab221b862baf158dabffa0b6b5d3bee6d" args="(genType const &amp;x)" -->
238 template&lt;typename genType &gt; </td></tr>
239 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gab221b862baf158dabffa0b6b5d3bee6d">isnan</a> (genType const &amp;x)</td></tr>
240 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa2f960030123937941320d6e570c9ed3"></a><!-- doxytag: member="gtx_compatibility::isnan" ref="gaa2f960030123937941320d6e570c9ed3" args="(const detail::tvec2&lt; genType &gt; &amp;x)" -->
241 template&lt;typename genType &gt; </td></tr>
242 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gaa2f960030123937941320d6e570c9ed3">isnan</a> (const detail::tvec2&lt; genType &gt; &amp;x)</td></tr>
243 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga75b72c912102e33256b2d0100edd23dc"></a><!-- doxytag: member="gtx_compatibility::isnan" ref="ga75b72c912102e33256b2d0100edd23dc" args="(const detail::tvec3&lt; genType &gt; &amp;x)" -->
244 template&lt;typename genType &gt; </td></tr>
245 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga75b72c912102e33256b2d0100edd23dc">isnan</a> (const detail::tvec3&lt; genType &gt; &amp;x)</td></tr>
246 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga17ed6a80235a6906e902ce6350740a32"></a><!-- doxytag: member="gtx_compatibility::isnan" ref="ga17ed6a80235a6906e902ce6350740a32" args="(const detail::tvec4&lt; genType &gt; &amp;x)" -->
247 template&lt;typename genType &gt; </td></tr>
248 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga17ed6a80235a6906e902ce6350740a32">isnan</a> (const detail::tvec4&lt; genType &gt; &amp;x)</td></tr>
249 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gafe1e12ad09189be637164559d225db78"></a><!-- doxytag: member="gtx_compatibility::lerp" ref="gafe1e12ad09189be637164559d225db78" args="(const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y, T a)" -->
250 template&lt;typename T &gt; </td></tr>
251 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
252 detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gafe1e12ad09189be637164559d225db78">lerp</a> (const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y, T a)</td></tr>
253 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga221f6378c8c9f710edaceccb748f5b18"></a><!-- doxytag: member="gtx_compatibility::lerp" ref="ga221f6378c8c9f710edaceccb748f5b18" args="(const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y, const detail::tvec2&lt; T &gt; &amp;a)" -->
254 template&lt;typename T &gt; </td></tr>
255 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
256 detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga221f6378c8c9f710edaceccb748f5b18">lerp</a> (const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y, const detail::tvec2&lt; T &gt; &amp;a)</td></tr>
257 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5f7bfd8f1e917fd897a738177492c59a"></a><!-- doxytag: member="gtx_compatibility::lerp" ref="ga5f7bfd8f1e917fd897a738177492c59a" args="(const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y, T a)" -->
258 template&lt;typename T &gt; </td></tr>
259 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
260 detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga5f7bfd8f1e917fd897a738177492c59a">lerp</a> (const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y, T a)</td></tr>
261 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac6fa04956f007fbb8b4c51ba93d3a13a"></a><!-- doxytag: member="gtx_compatibility::lerp" ref="gac6fa04956f007fbb8b4c51ba93d3a13a" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y, const detail::tvec3&lt; T &gt; &amp;a)" -->
262 template&lt;typename T &gt; </td></tr>
263 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
264 detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gac6fa04956f007fbb8b4c51ba93d3a13a">lerp</a> (const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y, const detail::tvec3&lt; T &gt; &amp;a)</td></tr>
265 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae7298450eb0c1489eda07ccdfdcbf205"></a><!-- doxytag: member="gtx_compatibility::lerp" ref="gae7298450eb0c1489eda07ccdfdcbf205" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y, T a)" -->
266 template&lt;typename T &gt; </td></tr>
267 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
268 detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gae7298450eb0c1489eda07ccdfdcbf205">lerp</a> (const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y, T a)</td></tr>
269 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga466cc6c042c517982f69db928fd697cf"></a><!-- doxytag: member="gtx_compatibility::lerp" ref="ga466cc6c042c517982f69db928fd697cf" args="(const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y, const detail::tvec4&lt; T &gt; &amp;a)" -->
270 template&lt;typename T &gt; </td></tr>
271 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
272 detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga466cc6c042c517982f69db928fd697cf">lerp</a> (const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y, const detail::tvec4&lt; T &gt; &amp;a)</td></tr>
273 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga56463ea9166068ab33107e1cea942023"></a><!-- doxytag: member="gtx_compatibility::lerp" ref="ga56463ea9166068ab33107e1cea942023" args="(T x, T y, T a)" -->
274 template&lt;typename T &gt; </td></tr>
275 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga56463ea9166068ab33107e1cea942023">lerp</a> (T x, T y, T a)</td></tr>
276 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadcd5e59d930f0e9b26a78740b403412b"></a><!-- doxytag: member="gtx_compatibility::saturate" ref="gadcd5e59d930f0e9b26a78740b403412b" args="(const detail::tvec2&lt; T &gt; &amp;x)" -->
277 template&lt;typename T &gt; </td></tr>
278 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
279 detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gadcd5e59d930f0e9b26a78740b403412b">saturate</a> (const detail::tvec2&lt; T &gt; &amp;x)</td></tr>
280 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga30791379500c2646301973bc133cb240"></a><!-- doxytag: member="gtx_compatibility::saturate" ref="ga30791379500c2646301973bc133cb240" args="(const detail::tvec3&lt; T &gt; &amp;x)" -->
281 template&lt;typename T &gt; </td></tr>
282 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
283 detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga30791379500c2646301973bc133cb240">saturate</a> (const detail::tvec3&lt; T &gt; &amp;x)</td></tr>
284 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa2afedf17ac7da10d95f383ea6be3124"></a><!-- doxytag: member="gtx_compatibility::saturate" ref="gaa2afedf17ac7da10d95f383ea6be3124" args="(T x)" -->
285 template&lt;typename T &gt; </td></tr>
286 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gaa2afedf17ac7da10d95f383ea6be3124">saturate</a> (T x)</td></tr>
287 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga10a1c2401e1051008c551c3a0eadf6e4"></a><!-- doxytag: member="gtx_compatibility::saturate" ref="ga10a1c2401e1051008c551c3a0eadf6e4" args="(const detail::tvec4&lt; T &gt; &amp;x)" -->
288 template&lt;typename T &gt; </td></tr>
289 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
290 detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga10a1c2401e1051008c551c3a0eadf6e4">saturate</a> (const detail::tvec4&lt; T &gt; &amp;x)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga67c4614f0fc500f0d0f9db9b2d7f8c00">compAdd</a> (genType const &amp;v)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#gaf5600944ec0e04504a9577a483f05a50">compMax</a> (genType const &amp;v)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga62000aa6f70f216f84b771caeb64ea1d">compMin</a> (genType const &amp;v)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00255.html#ga5a504b61c83eb400b0b253b9984af52f">compMul</a> (genType const &amp;v)</td></tr>
29151 </table>
29252 <hr/><a name="_details"></a><h2>Detailed Description</h2>
293 <p>Provide functions to increase the compatibility with Cg and HLSL languages. </p>
294 <p>&lt;<a class="el" href="a00032_source.html">glm/gtx/compatibility.hpp</a>&gt; need to be included to use these functionalities. </p>
53 <p>Operations between components of a type. </p>
54 <p>&lt;<a class="el" href="a00033_source.html">glm/gtx/component_wise.hpp</a>&gt; need to be included to use these functionalities. </p>
55 <hr/><h2>Function Documentation</h2>
56 <a class="anchor" id="ga67c4614f0fc500f0d0f9db9b2d7f8c00"></a><!-- doxytag: member="glm::gtx::component_wise::compAdd" ref="ga67c4614f0fc500f0d0f9db9b2d7f8c00" args="(genType const &amp;v)" -->
57 <div class="memitem">
58 <div class="memproto">
59 <table class="memname">
60 <tr>
61 <td class="memname">genType::value_type glm::gtx::component_wise::compAdd </td>
62 <td>(</td>
63 <td class="paramtype">genType const &amp;&#160;</td>
64 <td class="paramname"><em>v</em></td><td>)</td>
65 <td></td>
66 </tr>
67 </table>
68 </div>
69 <div class="memdoc">
70
71 <p>Add all vector components together. </p>
72 <p>From GLM_GTX_component_wise extension. </p>
73
74 </div>
75 </div>
76 <a class="anchor" id="gaf5600944ec0e04504a9577a483f05a50"></a><!-- doxytag: member="glm::gtx::component_wise::compMax" ref="gaf5600944ec0e04504a9577a483f05a50" args="(genType const &amp;v)" -->
77 <div class="memitem">
78 <div class="memproto">
79 <table class="memname">
80 <tr>
81 <td class="memname">genType::value_type glm::gtx::component_wise::compMax </td>
82 <td>(</td>
83 <td class="paramtype">genType const &amp;&#160;</td>
84 <td class="paramname"><em>v</em></td><td>)</td>
85 <td></td>
86 </tr>
87 </table>
88 </div>
89 <div class="memdoc">
90
91 <p>Find the maximum value between single vector components. </p>
92 <p>From GLM_GTX_component_wise extension. </p>
93
94 </div>
95 </div>
96 <a class="anchor" id="ga62000aa6f70f216f84b771caeb64ea1d"></a><!-- doxytag: member="glm::gtx::component_wise::compMin" ref="ga62000aa6f70f216f84b771caeb64ea1d" args="(genType const &amp;v)" -->
97 <div class="memitem">
98 <div class="memproto">
99 <table class="memname">
100 <tr>
101 <td class="memname">genType::value_type glm::gtx::component_wise::compMin </td>
102 <td>(</td>
103 <td class="paramtype">genType const &amp;&#160;</td>
104 <td class="paramname"><em>v</em></td><td>)</td>
105 <td></td>
106 </tr>
107 </table>
108 </div>
109 <div class="memdoc">
110
111 <p>Find the minimum value between single vector components. </p>
112 <p>From GLM_GTX_component_wise extension. </p>
113
114 </div>
115 </div>
116 <a class="anchor" id="ga5a504b61c83eb400b0b253b9984af52f"></a><!-- doxytag: member="glm::gtx::component_wise::compMul" ref="ga5a504b61c83eb400b0b253b9984af52f" args="(genType const &amp;v)" -->
117 <div class="memitem">
118 <div class="memproto">
119 <table class="memname">
120 <tr>
121 <td class="memname">genType::value_type glm::gtx::component_wise::compMul </td>
122 <td>(</td>
123 <td class="paramtype">genType const &amp;&#160;</td>
124 <td class="paramname"><em>v</em></td><td>)</td>
125 <td></td>
126 </tr>
127 </table>
128 </div>
129 <div class="memdoc">
130
131 <p>Multiply all vector components together. </p>
132 <p>From GLM_GTX_component_wise extension. </p>
133
134 </div>
135 </div>
295136 </div>
296137 <hr class="footer"/><address class="footer"><small>Generated by&#160;
297138 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_component_wise: Component wise</title>
4 <title>GLM_GTX_epsilon: Epsilon comparison</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_component_wise: Component wise</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_epsilon: Epsilon comparison</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Operations between components of a type.
38 <p>Comparison functions for a user defined epsilon values.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00256.html#ga67c4614f0fc500f0d0f9db9b2d7f8c00">compAdd</a> (genType const &amp;v)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00256.html#gaf5600944ec0e04504a9577a483f05a50">compMax</a> (genType const &amp;v)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00256.html#ga62000aa6f70f216f84b771caeb64ea1d">compMin</a> (genType const &amp;v)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00256.html#ga5a504b61c83eb400b0b253b9984af52f">compMul</a> (genType const &amp;v)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00256.html#gae56f18f757e2d08bae0d5ce0d8e59980">equalEpsilon</a> (genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;epsilon)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00256.html#ga2f60f387fd69452ec68d5b38682d87b8">notEqualEpsilon</a> (genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;epsilon)</td></tr>
5147 </table>
5248 <hr/><a name="_details"></a><h2>Detailed Description</h2>
53 <p>Operations between components of a type. </p>
54 <p>&lt;<a class="el" href="a00033_source.html">glm/gtx/component_wise.hpp</a>&gt; need to be included to use these functionalities. </p>
49 <p>Comparison functions for a user defined epsilon values. </p>
50 <p>&lt;<a class="el" href="a00035_source.html">glm/gtx/epsilon.hpp</a>&gt; need to be included to use these functionalities. </p>
5551 <hr/><h2>Function Documentation</h2>
56 <a class="anchor" id="ga67c4614f0fc500f0d0f9db9b2d7f8c00"></a><!-- doxytag: member="glm::gtx::component_wise::compAdd" ref="ga67c4614f0fc500f0d0f9db9b2d7f8c00" args="(genType const &amp;v)" -->
52 <a class="anchor" id="gae56f18f757e2d08bae0d5ce0d8e59980"></a><!-- doxytag: member="glm::gtx::epsilon::equalEpsilon" ref="gae56f18f757e2d08bae0d5ce0d8e59980" args="(genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;epsilon)" -->
5753 <div class="memitem">
5854 <div class="memproto">
5955 <table class="memname">
6056 <tr>
61 <td class="memname">genType::value_type glm::gtx::component_wise::compAdd </td>
57 <td class="memname">bool glm::gtx::epsilon::equalEpsilon </td>
6258 <td>(</td>
63 <td class="paramtype">genType const &amp;&#160;</td>
64 <td class="paramname"><em>v</em></td><td>)</td>
59 <td class="paramtype">genTypeT const &amp;&#160;</td>
60 <td class="paramname"><em>x</em>, </td>
61 </tr>
62 <tr>
63 <td class="paramkey"></td>
6564 <td></td>
65 <td class="paramtype">genTypeT const &amp;&#160;</td>
66 <td class="paramname"><em>y</em>, </td>
67 </tr>
68 <tr>
69 <td class="paramkey"></td>
70 <td></td>
71 <td class="paramtype">genTypeU const &amp;&#160;</td>
72 <td class="paramname"><em>epsilon</em>&#160;</td>
73 </tr>
74 <tr>
75 <td></td>
76 <td>)</td>
77 <td></td><td></td>
6678 </tr>
6779 </table>
6880 </div>
6981 <div class="memdoc">
7082
71 <p>Add all vector components together. </p>
72 <p>From GLM_GTX_component_wise extension. </p>
83 <p>Returns the component-wise compare of |x - y| &lt; epsilon. </p>
84 <p>From GLM_GTX_epsilon extension. </p>
7385
7486 </div>
7587 </div>
76 <a class="anchor" id="gaf5600944ec0e04504a9577a483f05a50"></a><!-- doxytag: member="glm::gtx::component_wise::compMax" ref="gaf5600944ec0e04504a9577a483f05a50" args="(genType const &amp;v)" -->
88 <a class="anchor" id="ga2f60f387fd69452ec68d5b38682d87b8"></a><!-- doxytag: member="glm::gtx::epsilon::notEqualEpsilon" ref="ga2f60f387fd69452ec68d5b38682d87b8" args="(genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;epsilon)" -->
7789 <div class="memitem">
7890 <div class="memproto">
7991 <table class="memname">
8092 <tr>
81 <td class="memname">genType::value_type glm::gtx::component_wise::compMax </td>
93 <td class="memname">bool glm::gtx::epsilon::notEqualEpsilon </td>
8294 <td>(</td>
83 <td class="paramtype">genType const &amp;&#160;</td>
84 <td class="paramname"><em>v</em></td><td>)</td>
95 <td class="paramtype">genTypeT const &amp;&#160;</td>
96 <td class="paramname"><em>x</em>, </td>
97 </tr>
98 <tr>
99 <td class="paramkey"></td>
85100 <td></td>
101 <td class="paramtype">genTypeT const &amp;&#160;</td>
102 <td class="paramname"><em>y</em>, </td>
103 </tr>
104 <tr>
105 <td class="paramkey"></td>
106 <td></td>
107 <td class="paramtype">genTypeU const &amp;&#160;</td>
108 <td class="paramname"><em>epsilon</em>&#160;</td>
109 </tr>
110 <tr>
111 <td></td>
112 <td>)</td>
113 <td></td><td></td>
86114 </tr>
87115 </table>
88116 </div>
89117 <div class="memdoc">
90118
91 <p>Find the maximum value between single vector components. </p>
92 <p>From GLM_GTX_component_wise extension. </p>
93
94 </div>
95 </div>
96 <a class="anchor" id="ga62000aa6f70f216f84b771caeb64ea1d"></a><!-- doxytag: member="glm::gtx::component_wise::compMin" ref="ga62000aa6f70f216f84b771caeb64ea1d" args="(genType const &amp;v)" -->
97 <div class="memitem">
98 <div class="memproto">
99 <table class="memname">
100 <tr>
101 <td class="memname">genType::value_type glm::gtx::component_wise::compMin </td>
102 <td>(</td>
103 <td class="paramtype">genType const &amp;&#160;</td>
104 <td class="paramname"><em>v</em></td><td>)</td>
105 <td></td>
106 </tr>
107 </table>
108 </div>
109 <div class="memdoc">
110
111 <p>Find the minimum value between single vector components. </p>
112 <p>From GLM_GTX_component_wise extension. </p>
113
114 </div>
115 </div>
116 <a class="anchor" id="ga5a504b61c83eb400b0b253b9984af52f"></a><!-- doxytag: member="glm::gtx::component_wise::compMul" ref="ga5a504b61c83eb400b0b253b9984af52f" args="(genType const &amp;v)" -->
117 <div class="memitem">
118 <div class="memproto">
119 <table class="memname">
120 <tr>
121 <td class="memname">genType::value_type glm::gtx::component_wise::compMul </td>
122 <td>(</td>
123 <td class="paramtype">genType const &amp;&#160;</td>
124 <td class="paramname"><em>v</em></td><td>)</td>
125 <td></td>
126 </tr>
127 </table>
128 </div>
129 <div class="memdoc">
130
131 <p>Multiply all vector components together. </p>
132 <p>From GLM_GTX_component_wise extension. </p>
119 <p>Returns the component-wise compare of |x - y| &gt;= epsilon. </p>
120 <p>From GLM_GTX_epsilon extension. </p>
133121
134122 </div>
135123 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_epsilon: Epsilon comparison</title>
4 <title>GLM_GTX_euler_angles: Matrix from euler angles</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_epsilon: Epsilon comparison</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_euler_angles: Matrix from euler angles</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Comparison functions for a user defined epsilon values.
38 <p>Build matrices from Euler angles.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gae56f18f757e2d08bae0d5ce0d8e59980">equalEpsilon</a> (genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;epsilon)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#ga2f60f387fd69452ec68d5b38682d87b8">notEqualEpsilon</a> (genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;epsilon)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#ga383b615b7c516d129d8a569caeb02e60">eulerAngleX</a> (valType const &amp;angleX)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gab31953fcb1febf66c095f80928c11880">eulerAngleXY</a> (valType const &amp;angleX, valType const &amp;angleY)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gaacdf1305fa3190de23ebff5f717d5b1a">eulerAngleXZ</a> (valType const &amp;angleX, valType const &amp;angleZ)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#ga19efbeee8e1e51be3424fad187aada03">eulerAngleY</a> (valType const &amp;angleY)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gac7eb231dc5b6519dcd1e28f8662d0db6">eulerAngleYX</a> (valType const &amp;angleY, valType const &amp;angleX)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#ga9a1c23259481176631e5910b8a294c0c">eulerAngleYXZ</a> (valType const &amp;yaw, valType const &amp;pitch, valType const &amp;roll)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gac528b349b40a8c1d1b34c4a17221bb48">eulerAngleYZ</a> (valType const &amp;angleY, valType const &amp;angleZ)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#ga950aebf621ca275949b90845a1e76d79">eulerAngleZ</a> (valType const &amp;angleZ)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#ga5afd9174575eab4105c9e3c07a9f68f7">eulerAngleZX</a> (valType const &amp;angleZ, valType const &amp;angleX)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gade7193b3d889285671cdfafd62339a87">eulerAngleZY</a> (valType const &amp;angleZ, valType const &amp;angleY)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#ga6b666a8d6dede8301520d023d0e96470">orientate2</a> (T const &amp;angle)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#ga765fa54166b360a715735a67cbea28c0">orientate3</a> (detail::tvec3&lt; T &gt; const &amp;angles)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gaabc9340ff9d773e8117f2bed0b1bcacd">orientate3</a> (T const &amp;angle)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gac9b9ee10382d273e6f2497f0c34ba125">orientate4</a> (detail::tvec3&lt; T &gt; const &amp;angles)</td></tr>
71 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00257.html#gab21847188e03d21037f895642252dcc7">yawPitchRoll</a> (valType const &amp;yaw, valType const &amp;pitch, valType const &amp;roll)</td></tr>
4773 </table>
4874 <hr/><a name="_details"></a><h2>Detailed Description</h2>
49 <p>Comparison functions for a user defined epsilon values. </p>
50 <p>&lt;<a class="el" href="a00035_source.html">glm/gtx/epsilon.hpp</a>&gt; need to be included to use these functionalities. </p>
75 <p>Build matrices from Euler angles. </p>
76 <p>&lt;<a class="el" href="a00036_source.html">glm/gtx/euler_angles.hpp</a>&gt; need to be included to use these functionalities. </p>
5177 <hr/><h2>Function Documentation</h2>
52 <a class="anchor" id="gae56f18f757e2d08bae0d5ce0d8e59980"></a><!-- doxytag: member="glm::gtx::epsilon::equalEpsilon" ref="gae56f18f757e2d08bae0d5ce0d8e59980" args="(genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;epsilon)" -->
53 <div class="memitem">
54 <div class="memproto">
55 <table class="memname">
56 <tr>
57 <td class="memname">bool glm::gtx::epsilon::equalEpsilon </td>
58 <td>(</td>
59 <td class="paramtype">genTypeT const &amp;&#160;</td>
60 <td class="paramname"><em>x</em>, </td>
61 </tr>
62 <tr>
63 <td class="paramkey"></td>
64 <td></td>
65 <td class="paramtype">genTypeT const &amp;&#160;</td>
66 <td class="paramname"><em>y</em>, </td>
67 </tr>
68 <tr>
69 <td class="paramkey"></td>
70 <td></td>
71 <td class="paramtype">genTypeU const &amp;&#160;</td>
72 <td class="paramname"><em>epsilon</em>&#160;</td>
73 </tr>
74 <tr>
75 <td></td>
76 <td>)</td>
77 <td></td><td></td>
78 </tr>
79 </table>
80 </div>
81 <div class="memdoc">
82
83 <p>Returns the component-wise compare of |x - y| &lt; epsilon. </p>
84 <p>From GLM_GTX_epsilon extension. </p>
85
86 </div>
87 </div>
88 <a class="anchor" id="ga2f60f387fd69452ec68d5b38682d87b8"></a><!-- doxytag: member="glm::gtx::epsilon::notEqualEpsilon" ref="ga2f60f387fd69452ec68d5b38682d87b8" args="(genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;epsilon)" -->
89 <div class="memitem">
90 <div class="memproto">
91 <table class="memname">
92 <tr>
93 <td class="memname">bool glm::gtx::epsilon::notEqualEpsilon </td>
94 <td>(</td>
95 <td class="paramtype">genTypeT const &amp;&#160;</td>
96 <td class="paramname"><em>x</em>, </td>
97 </tr>
98 <tr>
99 <td class="paramkey"></td>
100 <td></td>
101 <td class="paramtype">genTypeT const &amp;&#160;</td>
102 <td class="paramname"><em>y</em>, </td>
103 </tr>
104 <tr>
105 <td class="paramkey"></td>
106 <td></td>
107 <td class="paramtype">genTypeU const &amp;&#160;</td>
108 <td class="paramname"><em>epsilon</em>&#160;</td>
109 </tr>
110 <tr>
111 <td></td>
112 <td>)</td>
113 <td></td><td></td>
114 </tr>
115 </table>
116 </div>
117 <div class="memdoc">
118
119 <p>Returns the component-wise compare of |x - y| &gt;= epsilon. </p>
120 <p>From GLM_GTX_epsilon extension. </p>
78 <a class="anchor" id="ga383b615b7c516d129d8a569caeb02e60"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleX" ref="ga383b615b7c516d129d8a569caeb02e60" args="(valType const &amp;angleX)" -->
79 <div class="memitem">
80 <div class="memproto">
81 <table class="memname">
82 <tr>
83 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleX </td>
84 <td>(</td>
85 <td class="paramtype">valType const &amp;&#160;</td>
86 <td class="paramname"><em>angleX</em></td><td>)</td>
87 <td></td>
88 </tr>
89 </table>
90 </div>
91 <div class="memdoc">
92
93 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. </p>
94 <p>From GLM_GTX_euler_angles extension. </p>
95
96 </div>
97 </div>
98 <a class="anchor" id="gab31953fcb1febf66c095f80928c11880"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleXY" ref="gab31953fcb1febf66c095f80928c11880" args="(valType const &amp;angleX, valType const &amp;angleY)" -->
99 <div class="memitem">
100 <div class="memproto">
101 <table class="memname">
102 <tr>
103 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleXY </td>
104 <td>(</td>
105 <td class="paramtype">valType const &amp;&#160;</td>
106 <td class="paramname"><em>angleX</em>, </td>
107 </tr>
108 <tr>
109 <td class="paramkey"></td>
110 <td></td>
111 <td class="paramtype">valType const &amp;&#160;</td>
112 <td class="paramname"><em>angleY</em>&#160;</td>
113 </tr>
114 <tr>
115 <td></td>
116 <td>)</td>
117 <td></td><td></td>
118 </tr>
119 </table>
120 </div>
121 <div class="memdoc">
122
123 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y). </p>
124 <p>From GLM_GTX_euler_angles extension. </p>
125
126 </div>
127 </div>
128 <a class="anchor" id="gaacdf1305fa3190de23ebff5f717d5b1a"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleXZ" ref="gaacdf1305fa3190de23ebff5f717d5b1a" args="(valType const &amp;angleX, valType const &amp;angleZ)" -->
129 <div class="memitem">
130 <div class="memproto">
131 <table class="memname">
132 <tr>
133 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleXZ </td>
134 <td>(</td>
135 <td class="paramtype">valType const &amp;&#160;</td>
136 <td class="paramname"><em>angleX</em>, </td>
137 </tr>
138 <tr>
139 <td class="paramkey"></td>
140 <td></td>
141 <td class="paramtype">valType const &amp;&#160;</td>
142 <td class="paramname"><em>angleZ</em>&#160;</td>
143 </tr>
144 <tr>
145 <td></td>
146 <td>)</td>
147 <td></td><td></td>
148 </tr>
149 </table>
150 </div>
151 <div class="memdoc">
152
153 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z). </p>
154 <p>From GLM_GTX_euler_angles extension. </p>
155
156 </div>
157 </div>
158 <a class="anchor" id="ga19efbeee8e1e51be3424fad187aada03"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleY" ref="ga19efbeee8e1e51be3424fad187aada03" args="(valType const &amp;angleY)" -->
159 <div class="memitem">
160 <div class="memproto">
161 <table class="memname">
162 <tr>
163 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleY </td>
164 <td>(</td>
165 <td class="paramtype">valType const &amp;&#160;</td>
166 <td class="paramname"><em>angleY</em></td><td>)</td>
167 <td></td>
168 </tr>
169 </table>
170 </div>
171 <div class="memdoc">
172
173 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y. </p>
174 <p>From GLM_GTX_euler_angles extension. </p>
175
176 </div>
177 </div>
178 <a class="anchor" id="gac7eb231dc5b6519dcd1e28f8662d0db6"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleYX" ref="gac7eb231dc5b6519dcd1e28f8662d0db6" args="(valType const &amp;angleY, valType const &amp;angleX)" -->
179 <div class="memitem">
180 <div class="memproto">
181 <table class="memname">
182 <tr>
183 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleYX </td>
184 <td>(</td>
185 <td class="paramtype">valType const &amp;&#160;</td>
186 <td class="paramname"><em>angleY</em>, </td>
187 </tr>
188 <tr>
189 <td class="paramkey"></td>
190 <td></td>
191 <td class="paramtype">valType const &amp;&#160;</td>
192 <td class="paramname"><em>angleX</em>&#160;</td>
193 </tr>
194 <tr>
195 <td></td>
196 <td>)</td>
197 <td></td><td></td>
198 </tr>
199 </table>
200 </div>
201 <div class="memdoc">
202
203 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X). </p>
204 <p>From GLM_GTX_euler_angles extension. </p>
205
206 </div>
207 </div>
208 <a class="anchor" id="ga9a1c23259481176631e5910b8a294c0c"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleYXZ" ref="ga9a1c23259481176631e5910b8a294c0c" args="(valType const &amp;yaw, valType const &amp;pitch, valType const &amp;roll)" -->
209 <div class="memitem">
210 <div class="memproto">
211 <table class="memname">
212 <tr>
213 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleYXZ </td>
214 <td>(</td>
215 <td class="paramtype">valType const &amp;&#160;</td>
216 <td class="paramname"><em>yaw</em>, </td>
217 </tr>
218 <tr>
219 <td class="paramkey"></td>
220 <td></td>
221 <td class="paramtype">valType const &amp;&#160;</td>
222 <td class="paramname"><em>pitch</em>, </td>
223 </tr>
224 <tr>
225 <td class="paramkey"></td>
226 <td></td>
227 <td class="paramtype">valType const &amp;&#160;</td>
228 <td class="paramname"><em>roll</em>&#160;</td>
229 </tr>
230 <tr>
231 <td></td>
232 <td>)</td>
233 <td></td><td></td>
234 </tr>
235 </table>
236 </div>
237 <div class="memdoc">
238
239 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
240 <p>From GLM_GTX_euler_angles extension. </p>
241
242 </div>
243 </div>
244 <a class="anchor" id="gac528b349b40a8c1d1b34c4a17221bb48"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleYZ" ref="gac528b349b40a8c1d1b34c4a17221bb48" args="(valType const &amp;angleY, valType const &amp;angleZ)" -->
245 <div class="memitem">
246 <div class="memproto">
247 <table class="memname">
248 <tr>
249 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleYZ </td>
250 <td>(</td>
251 <td class="paramtype">valType const &amp;&#160;</td>
252 <td class="paramname"><em>angleY</em>, </td>
253 </tr>
254 <tr>
255 <td class="paramkey"></td>
256 <td></td>
257 <td class="paramtype">valType const &amp;&#160;</td>
258 <td class="paramname"><em>angleZ</em>&#160;</td>
259 </tr>
260 <tr>
261 <td></td>
262 <td>)</td>
263 <td></td><td></td>
264 </tr>
265 </table>
266 </div>
267 <div class="memdoc">
268
269 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z). </p>
270 <p>From GLM_GTX_euler_angles extension. </p>
271
272 </div>
273 </div>
274 <a class="anchor" id="ga950aebf621ca275949b90845a1e76d79"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleZ" ref="ga950aebf621ca275949b90845a1e76d79" args="(valType const &amp;angleZ)" -->
275 <div class="memitem">
276 <div class="memproto">
277 <table class="memname">
278 <tr>
279 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleZ </td>
280 <td>(</td>
281 <td class="paramtype">valType const &amp;&#160;</td>
282 <td class="paramname"><em>angleZ</em></td><td>)</td>
283 <td></td>
284 </tr>
285 </table>
286 </div>
287 <div class="memdoc">
288
289 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z. </p>
290 <p>From GLM_GTX_euler_angles extension. </p>
291
292 </div>
293 </div>
294 <a class="anchor" id="ga5afd9174575eab4105c9e3c07a9f68f7"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleZX" ref="ga5afd9174575eab4105c9e3c07a9f68f7" args="(valType const &amp;angleZ, valType const &amp;angleX)" -->
295 <div class="memitem">
296 <div class="memproto">
297 <table class="memname">
298 <tr>
299 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleZX </td>
300 <td>(</td>
301 <td class="paramtype">valType const &amp;&#160;</td>
302 <td class="paramname"><em>angleZ</em>, </td>
303 </tr>
304 <tr>
305 <td class="paramkey"></td>
306 <td></td>
307 <td class="paramtype">valType const &amp;&#160;</td>
308 <td class="paramname"><em>angleX</em>&#160;</td>
309 </tr>
310 <tr>
311 <td></td>
312 <td>)</td>
313 <td></td><td></td>
314 </tr>
315 </table>
316 </div>
317 <div class="memdoc">
318
319 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X). </p>
320 <p>From GLM_GTX_euler_angles extension. </p>
321
322 </div>
323 </div>
324 <a class="anchor" id="gade7193b3d889285671cdfafd62339a87"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleZY" ref="gade7193b3d889285671cdfafd62339a87" args="(valType const &amp;angleZ, valType const &amp;angleY)" -->
325 <div class="memitem">
326 <div class="memproto">
327 <table class="memname">
328 <tr>
329 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleZY </td>
330 <td>(</td>
331 <td class="paramtype">valType const &amp;&#160;</td>
332 <td class="paramname"><em>angleZ</em>, </td>
333 </tr>
334 <tr>
335 <td class="paramkey"></td>
336 <td></td>
337 <td class="paramtype">valType const &amp;&#160;</td>
338 <td class="paramname"><em>angleY</em>&#160;</td>
339 </tr>
340 <tr>
341 <td></td>
342 <td>)</td>
343 <td></td><td></td>
344 </tr>
345 </table>
346 </div>
347 <div class="memdoc">
348
349 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y). </p>
350 <p>From GLM_GTX_euler_angles extension. </p>
351
352 </div>
353 </div>
354 <a class="anchor" id="ga6b666a8d6dede8301520d023d0e96470"></a><!-- doxytag: member="glm::gtx::euler_angles::orientate2" ref="ga6b666a8d6dede8301520d023d0e96470" args="(T const &amp;angle)" -->
355 <div class="memitem">
356 <div class="memproto">
357 <table class="memname">
358 <tr>
359 <td class="memname">detail::tmat2x2&lt;T&gt; glm::gtx::euler_angles::orientate2 </td>
360 <td>(</td>
361 <td class="paramtype">T const &amp;&#160;</td>
362 <td class="paramname"><em>angle</em></td><td>)</td>
363 <td></td>
364 </tr>
365 </table>
366 </div>
367 <div class="memdoc">
368
369 <p>Creates a 2D 2 * 2 rotation matrix from an euler angle. </p>
370 <p>From GLM_GTX_euler_angles extension. </p>
371
372 </div>
373 </div>
374 <a class="anchor" id="ga765fa54166b360a715735a67cbea28c0"></a><!-- doxytag: member="glm::gtx::euler_angles::orientate3" ref="ga765fa54166b360a715735a67cbea28c0" args="(detail::tvec3&lt; T &gt; const &amp;angles)" -->
375 <div class="memitem">
376 <div class="memproto">
377 <table class="memname">
378 <tr>
379 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::euler_angles::orientate3 </td>
380 <td>(</td>
381 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
382 <td class="paramname"><em>angles</em></td><td>)</td>
383 <td></td>
384 </tr>
385 </table>
386 </div>
387 <div class="memdoc">
388
389 <p>Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z). </p>
390 <p>From GLM_GTX_euler_angles extension. </p>
391
392 </div>
393 </div>
394 <a class="anchor" id="gaabc9340ff9d773e8117f2bed0b1bcacd"></a><!-- doxytag: member="glm::gtx::euler_angles::orientate3" ref="gaabc9340ff9d773e8117f2bed0b1bcacd" args="(T const &amp;angle)" -->
395 <div class="memitem">
396 <div class="memproto">
397 <table class="memname">
398 <tr>
399 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::euler_angles::orientate3 </td>
400 <td>(</td>
401 <td class="paramtype">T const &amp;&#160;</td>
402 <td class="paramname"><em>angle</em></td><td>)</td>
403 <td></td>
404 </tr>
405 </table>
406 </div>
407 <div class="memdoc">
408
409 <p>Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle. </p>
410 <p>From GLM_GTX_euler_angles extension. </p>
411
412 </div>
413 </div>
414 <a class="anchor" id="gac9b9ee10382d273e6f2497f0c34ba125"></a><!-- doxytag: member="glm::gtx::euler_angles::orientate4" ref="gac9b9ee10382d273e6f2497f0c34ba125" args="(detail::tvec3&lt; T &gt; const &amp;angles)" -->
415 <div class="memitem">
416 <div class="memproto">
417 <table class="memname">
418 <tr>
419 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::euler_angles::orientate4 </td>
420 <td>(</td>
421 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
422 <td class="paramname"><em>angles</em></td><td>)</td>
423 <td></td>
424 </tr>
425 </table>
426 </div>
427 <div class="memdoc">
428
429 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
430 <p>From GLM_GTX_euler_angles extension. </p>
431
432 </div>
433 </div>
434 <a class="anchor" id="gab21847188e03d21037f895642252dcc7"></a><!-- doxytag: member="glm::gtx::euler_angles::yawPitchRoll" ref="gab21847188e03d21037f895642252dcc7" args="(valType const &amp;yaw, valType const &amp;pitch, valType const &amp;roll)" -->
435 <div class="memitem">
436 <div class="memproto">
437 <table class="memname">
438 <tr>
439 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::yawPitchRoll </td>
440 <td>(</td>
441 <td class="paramtype">valType const &amp;&#160;</td>
442 <td class="paramname"><em>yaw</em>, </td>
443 </tr>
444 <tr>
445 <td class="paramkey"></td>
446 <td></td>
447 <td class="paramtype">valType const &amp;&#160;</td>
448 <td class="paramname"><em>pitch</em>, </td>
449 </tr>
450 <tr>
451 <td class="paramkey"></td>
452 <td></td>
453 <td class="paramtype">valType const &amp;&#160;</td>
454 <td class="paramname"><em>roll</em>&#160;</td>
455 </tr>
456 <tr>
457 <td></td>
458 <td>)</td>
459 <td></td><td></td>
460 </tr>
461 </table>
462 </div>
463 <div class="memdoc">
464
465 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
466 <p>From GLM_GTX_euler_angles extension. </p>
121467
122468 </div>
123469 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_euler_angles: Matrix from euler angles</title>
4 <title>GLM_GTX_extend: Position extending</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_euler_angles: Matrix from euler angles</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_extend: Position extending</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Build matrices from Euler angles.
38 <p>Extend a position from a source to a position at a defined length.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#ga383b615b7c516d129d8a569caeb02e60">eulerAngleX</a> (valType const &amp;angleX)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#gab31953fcb1febf66c095f80928c11880">eulerAngleXY</a> (valType const &amp;angleX, valType const &amp;angleY)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#gaacdf1305fa3190de23ebff5f717d5b1a">eulerAngleXZ</a> (valType const &amp;angleX, valType const &amp;angleZ)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#ga19efbeee8e1e51be3424fad187aada03">eulerAngleY</a> (valType const &amp;angleY)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#gac7eb231dc5b6519dcd1e28f8662d0db6">eulerAngleYX</a> (valType const &amp;angleY, valType const &amp;angleX)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#ga9a1c23259481176631e5910b8a294c0c">eulerAngleYXZ</a> (valType const &amp;yaw, valType const &amp;pitch, valType const &amp;roll)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#gac528b349b40a8c1d1b34c4a17221bb48">eulerAngleYZ</a> (valType const &amp;angleY, valType const &amp;angleZ)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#ga950aebf621ca275949b90845a1e76d79">eulerAngleZ</a> (valType const &amp;angleZ)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#ga5afd9174575eab4105c9e3c07a9f68f7">eulerAngleZX</a> (valType const &amp;angleZ, valType const &amp;angleX)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#gade7193b3d889285671cdfafd62339a87">eulerAngleZY</a> (valType const &amp;angleZ, valType const &amp;angleY)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#ga6b666a8d6dede8301520d023d0e96470">orientate2</a> (T const &amp;angle)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#ga765fa54166b360a715735a67cbea28c0">orientate3</a> (detail::tvec3&lt; T &gt; const &amp;angles)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#gaabc9340ff9d773e8117f2bed0b1bcacd">orientate3</a> (T const &amp;angle)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#gac9b9ee10382d273e6f2497f0c34ba125">orientate4</a> (detail::tvec3&lt; T &gt; const &amp;angles)</td></tr>
71 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#gab21847188e03d21037f895642252dcc7">yawPitchRoll</a> (valType const &amp;yaw, valType const &amp;pitch, valType const &amp;roll)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00258.html#ga9fe82185d36e8136fb2656bacf3d4a86">extend</a> (genType const &amp;Origin, genType const &amp;Source, typename genType::value_type const Length)</td></tr>
7345 </table>
7446 <hr/><a name="_details"></a><h2>Detailed Description</h2>
75 <p>Build matrices from Euler angles. </p>
76 <p>&lt;<a class="el" href="a00036_source.html">glm/gtx/euler_angles.hpp</a>&gt; need to be included to use these functionalities. </p>
47 <p>Extend a position from a source to a position at a defined length. </p>
48 <p>&lt;<a class="el" href="a00038_source.html">glm/gtx/extend.hpp</a>&gt; need to be included to use these functionalities. </p>
7749 <hr/><h2>Function Documentation</h2>
78 <a class="anchor" id="ga383b615b7c516d129d8a569caeb02e60"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleX" ref="ga383b615b7c516d129d8a569caeb02e60" args="(valType const &amp;angleX)" -->
50 <a class="anchor" id="ga9fe82185d36e8136fb2656bacf3d4a86"></a><!-- doxytag: member="glm::gtx::extend::extend" ref="ga9fe82185d36e8136fb2656bacf3d4a86" args="(genType const &amp;Origin, genType const &amp;Source, typename genType::value_type const Length)" -->
7951 <div class="memitem">
8052 <div class="memproto">
8153 <table class="memname">
8254 <tr>
83 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleX </td>
55 <td class="memname">genType glm::gtx::extend::extend </td>
8456 <td>(</td>
85 <td class="paramtype">valType const &amp;&#160;</td>
86 <td class="paramname"><em>angleX</em></td><td>)</td>
87 <td></td>
88 </tr>
89 </table>
90 </div>
91 <div class="memdoc">
92
93 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. </p>
94 <p>From GLM_GTX_euler_angles extension. </p>
95
96 </div>
97 </div>
98 <a class="anchor" id="gab31953fcb1febf66c095f80928c11880"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleXY" ref="gab31953fcb1febf66c095f80928c11880" args="(valType const &amp;angleX, valType const &amp;angleY)" -->
99 <div class="memitem">
100 <div class="memproto">
101 <table class="memname">
102 <tr>
103 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleXY </td>
104 <td>(</td>
105 <td class="paramtype">valType const &amp;&#160;</td>
106 <td class="paramname"><em>angleX</em>, </td>
57 <td class="paramtype">genType const &amp;&#160;</td>
58 <td class="paramname"><em>Origin</em>, </td>
10759 </tr>
10860 <tr>
10961 <td class="paramkey"></td>
11062 <td></td>
111 <td class="paramtype">valType const &amp;&#160;</td>
112 <td class="paramname"><em>angleY</em>&#160;</td>
63 <td class="paramtype">genType const &amp;&#160;</td>
64 <td class="paramname"><em>Source</em>, </td>
65 </tr>
66 <tr>
67 <td class="paramkey"></td>
68 <td></td>
69 <td class="paramtype">typename genType::value_type const&#160;</td>
70 <td class="paramname"><em>Length</em>&#160;</td>
11371 </tr>
11472 <tr>
11573 <td></td>
12078 </div>
12179 <div class="memdoc">
12280
123 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y). </p>
124 <p>From GLM_GTX_euler_angles extension. </p>
125
126 </div>
127 </div>
128 <a class="anchor" id="gaacdf1305fa3190de23ebff5f717d5b1a"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleXZ" ref="gaacdf1305fa3190de23ebff5f717d5b1a" args="(valType const &amp;angleX, valType const &amp;angleZ)" -->
129 <div class="memitem">
130 <div class="memproto">
131 <table class="memname">
132 <tr>
133 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleXZ </td>
134 <td>(</td>
135 <td class="paramtype">valType const &amp;&#160;</td>
136 <td class="paramname"><em>angleX</em>, </td>
137 </tr>
138 <tr>
139 <td class="paramkey"></td>
140 <td></td>
141 <td class="paramtype">valType const &amp;&#160;</td>
142 <td class="paramname"><em>angleZ</em>&#160;</td>
143 </tr>
144 <tr>
145 <td></td>
146 <td>)</td>
147 <td></td><td></td>
148 </tr>
149 </table>
150 </div>
151 <div class="memdoc">
152
153 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z). </p>
154 <p>From GLM_GTX_euler_angles extension. </p>
155
156 </div>
157 </div>
158 <a class="anchor" id="ga19efbeee8e1e51be3424fad187aada03"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleY" ref="ga19efbeee8e1e51be3424fad187aada03" args="(valType const &amp;angleY)" -->
159 <div class="memitem">
160 <div class="memproto">
161 <table class="memname">
162 <tr>
163 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleY </td>
164 <td>(</td>
165 <td class="paramtype">valType const &amp;&#160;</td>
166 <td class="paramname"><em>angleY</em></td><td>)</td>
167 <td></td>
168 </tr>
169 </table>
170 </div>
171 <div class="memdoc">
172
173 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y. </p>
174 <p>From GLM_GTX_euler_angles extension. </p>
175
176 </div>
177 </div>
178 <a class="anchor" id="gac7eb231dc5b6519dcd1e28f8662d0db6"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleYX" ref="gac7eb231dc5b6519dcd1e28f8662d0db6" args="(valType const &amp;angleY, valType const &amp;angleX)" -->
179 <div class="memitem">
180 <div class="memproto">
181 <table class="memname">
182 <tr>
183 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleYX </td>
184 <td>(</td>
185 <td class="paramtype">valType const &amp;&#160;</td>
186 <td class="paramname"><em>angleY</em>, </td>
187 </tr>
188 <tr>
189 <td class="paramkey"></td>
190 <td></td>
191 <td class="paramtype">valType const &amp;&#160;</td>
192 <td class="paramname"><em>angleX</em>&#160;</td>
193 </tr>
194 <tr>
195 <td></td>
196 <td>)</td>
197 <td></td><td></td>
198 </tr>
199 </table>
200 </div>
201 <div class="memdoc">
202
203 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X). </p>
204 <p>From GLM_GTX_euler_angles extension. </p>
205
206 </div>
207 </div>
208 <a class="anchor" id="ga9a1c23259481176631e5910b8a294c0c"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleYXZ" ref="ga9a1c23259481176631e5910b8a294c0c" args="(valType const &amp;yaw, valType const &amp;pitch, valType const &amp;roll)" -->
209 <div class="memitem">
210 <div class="memproto">
211 <table class="memname">
212 <tr>
213 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleYXZ </td>
214 <td>(</td>
215 <td class="paramtype">valType const &amp;&#160;</td>
216 <td class="paramname"><em>yaw</em>, </td>
217 </tr>
218 <tr>
219 <td class="paramkey"></td>
220 <td></td>
221 <td class="paramtype">valType const &amp;&#160;</td>
222 <td class="paramname"><em>pitch</em>, </td>
223 </tr>
224 <tr>
225 <td class="paramkey"></td>
226 <td></td>
227 <td class="paramtype">valType const &amp;&#160;</td>
228 <td class="paramname"><em>roll</em>&#160;</td>
229 </tr>
230 <tr>
231 <td></td>
232 <td>)</td>
233 <td></td><td></td>
234 </tr>
235 </table>
236 </div>
237 <div class="memdoc">
238
239 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
240 <p>From GLM_GTX_euler_angles extension. </p>
241
242 </div>
243 </div>
244 <a class="anchor" id="gac528b349b40a8c1d1b34c4a17221bb48"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleYZ" ref="gac528b349b40a8c1d1b34c4a17221bb48" args="(valType const &amp;angleY, valType const &amp;angleZ)" -->
245 <div class="memitem">
246 <div class="memproto">
247 <table class="memname">
248 <tr>
249 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleYZ </td>
250 <td>(</td>
251 <td class="paramtype">valType const &amp;&#160;</td>
252 <td class="paramname"><em>angleY</em>, </td>
253 </tr>
254 <tr>
255 <td class="paramkey"></td>
256 <td></td>
257 <td class="paramtype">valType const &amp;&#160;</td>
258 <td class="paramname"><em>angleZ</em>&#160;</td>
259 </tr>
260 <tr>
261 <td></td>
262 <td>)</td>
263 <td></td><td></td>
264 </tr>
265 </table>
266 </div>
267 <div class="memdoc">
268
269 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z). </p>
270 <p>From GLM_GTX_euler_angles extension. </p>
271
272 </div>
273 </div>
274 <a class="anchor" id="ga950aebf621ca275949b90845a1e76d79"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleZ" ref="ga950aebf621ca275949b90845a1e76d79" args="(valType const &amp;angleZ)" -->
275 <div class="memitem">
276 <div class="memproto">
277 <table class="memname">
278 <tr>
279 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleZ </td>
280 <td>(</td>
281 <td class="paramtype">valType const &amp;&#160;</td>
282 <td class="paramname"><em>angleZ</em></td><td>)</td>
283 <td></td>
284 </tr>
285 </table>
286 </div>
287 <div class="memdoc">
288
289 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z. </p>
290 <p>From GLM_GTX_euler_angles extension. </p>
291
292 </div>
293 </div>
294 <a class="anchor" id="ga5afd9174575eab4105c9e3c07a9f68f7"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleZX" ref="ga5afd9174575eab4105c9e3c07a9f68f7" args="(valType const &amp;angleZ, valType const &amp;angleX)" -->
295 <div class="memitem">
296 <div class="memproto">
297 <table class="memname">
298 <tr>
299 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleZX </td>
300 <td>(</td>
301 <td class="paramtype">valType const &amp;&#160;</td>
302 <td class="paramname"><em>angleZ</em>, </td>
303 </tr>
304 <tr>
305 <td class="paramkey"></td>
306 <td></td>
307 <td class="paramtype">valType const &amp;&#160;</td>
308 <td class="paramname"><em>angleX</em>&#160;</td>
309 </tr>
310 <tr>
311 <td></td>
312 <td>)</td>
313 <td></td><td></td>
314 </tr>
315 </table>
316 </div>
317 <div class="memdoc">
318
319 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X). </p>
320 <p>From GLM_GTX_euler_angles extension. </p>
321
322 </div>
323 </div>
324 <a class="anchor" id="gade7193b3d889285671cdfafd62339a87"></a><!-- doxytag: member="glm::gtx::euler_angles::eulerAngleZY" ref="gade7193b3d889285671cdfafd62339a87" args="(valType const &amp;angleZ, valType const &amp;angleY)" -->
325 <div class="memitem">
326 <div class="memproto">
327 <table class="memname">
328 <tr>
329 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::eulerAngleZY </td>
330 <td>(</td>
331 <td class="paramtype">valType const &amp;&#160;</td>
332 <td class="paramname"><em>angleZ</em>, </td>
333 </tr>
334 <tr>
335 <td class="paramkey"></td>
336 <td></td>
337 <td class="paramtype">valType const &amp;&#160;</td>
338 <td class="paramname"><em>angleY</em>&#160;</td>
339 </tr>
340 <tr>
341 <td></td>
342 <td>)</td>
343 <td></td><td></td>
344 </tr>
345 </table>
346 </div>
347 <div class="memdoc">
348
349 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y). </p>
350 <p>From GLM_GTX_euler_angles extension. </p>
351
352 </div>
353 </div>
354 <a class="anchor" id="ga6b666a8d6dede8301520d023d0e96470"></a><!-- doxytag: member="glm::gtx::euler_angles::orientate2" ref="ga6b666a8d6dede8301520d023d0e96470" args="(T const &amp;angle)" -->
355 <div class="memitem">
356 <div class="memproto">
357 <table class="memname">
358 <tr>
359 <td class="memname">detail::tmat2x2&lt;T&gt; glm::gtx::euler_angles::orientate2 </td>
360 <td>(</td>
361 <td class="paramtype">T const &amp;&#160;</td>
362 <td class="paramname"><em>angle</em></td><td>)</td>
363 <td></td>
364 </tr>
365 </table>
366 </div>
367 <div class="memdoc">
368
369 <p>Creates a 2D 2 * 2 rotation matrix from an euler angle. </p>
370 <p>From GLM_GTX_euler_angles extension. </p>
371
372 </div>
373 </div>
374 <a class="anchor" id="ga765fa54166b360a715735a67cbea28c0"></a><!-- doxytag: member="glm::gtx::euler_angles::orientate3" ref="ga765fa54166b360a715735a67cbea28c0" args="(detail::tvec3&lt; T &gt; const &amp;angles)" -->
375 <div class="memitem">
376 <div class="memproto">
377 <table class="memname">
378 <tr>
379 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::euler_angles::orientate3 </td>
380 <td>(</td>
381 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
382 <td class="paramname"><em>angles</em></td><td>)</td>
383 <td></td>
384 </tr>
385 </table>
386 </div>
387 <div class="memdoc">
388
389 <p>Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z). </p>
390 <p>From GLM_GTX_euler_angles extension. </p>
391
392 </div>
393 </div>
394 <a class="anchor" id="gaabc9340ff9d773e8117f2bed0b1bcacd"></a><!-- doxytag: member="glm::gtx::euler_angles::orientate3" ref="gaabc9340ff9d773e8117f2bed0b1bcacd" args="(T const &amp;angle)" -->
395 <div class="memitem">
396 <div class="memproto">
397 <table class="memname">
398 <tr>
399 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::euler_angles::orientate3 </td>
400 <td>(</td>
401 <td class="paramtype">T const &amp;&#160;</td>
402 <td class="paramname"><em>angle</em></td><td>)</td>
403 <td></td>
404 </tr>
405 </table>
406 </div>
407 <div class="memdoc">
408
409 <p>Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle. </p>
410 <p>From GLM_GTX_euler_angles extension. </p>
411
412 </div>
413 </div>
414 <a class="anchor" id="gac9b9ee10382d273e6f2497f0c34ba125"></a><!-- doxytag: member="glm::gtx::euler_angles::orientate4" ref="gac9b9ee10382d273e6f2497f0c34ba125" args="(detail::tvec3&lt; T &gt; const &amp;angles)" -->
415 <div class="memitem">
416 <div class="memproto">
417 <table class="memname">
418 <tr>
419 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::euler_angles::orientate4 </td>
420 <td>(</td>
421 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
422 <td class="paramname"><em>angles</em></td><td>)</td>
423 <td></td>
424 </tr>
425 </table>
426 </div>
427 <div class="memdoc">
428
429 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
430 <p>From GLM_GTX_euler_angles extension. </p>
431
432 </div>
433 </div>
434 <a class="anchor" id="gab21847188e03d21037f895642252dcc7"></a><!-- doxytag: member="glm::gtx::euler_angles::yawPitchRoll" ref="gab21847188e03d21037f895642252dcc7" args="(valType const &amp;yaw, valType const &amp;pitch, valType const &amp;roll)" -->
435 <div class="memitem">
436 <div class="memproto">
437 <table class="memname">
438 <tr>
439 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::euler_angles::yawPitchRoll </td>
440 <td>(</td>
441 <td class="paramtype">valType const &amp;&#160;</td>
442 <td class="paramname"><em>yaw</em>, </td>
443 </tr>
444 <tr>
445 <td class="paramkey"></td>
446 <td></td>
447 <td class="paramtype">valType const &amp;&#160;</td>
448 <td class="paramname"><em>pitch</em>, </td>
449 </tr>
450 <tr>
451 <td class="paramkey"></td>
452 <td></td>
453 <td class="paramtype">valType const &amp;&#160;</td>
454 <td class="paramname"><em>roll</em>&#160;</td>
455 </tr>
456 <tr>
457 <td></td>
458 <td>)</td>
459 <td></td><td></td>
460 </tr>
461 </table>
462 </div>
463 <div class="memdoc">
464
465 <p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
466 <p>From GLM_GTX_euler_angles extension. </p>
81 <p>Extends of Length the Origin position using the (Source - Origin) direction. </p>
82 <p>From GLM_GTX_extend extension. </p>
46783
46884 </div>
46985 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_extend: Position extending</title>
4 <title>GLM_GTX_extented_min_max: Extended min max</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2828 </div>
2929 </div>
3030 <div class="header">
31 <div class="summary">
32 <a href="#func-members">Functions</a> </div>
3331 <div class="headertitle">
34 <h1>GLM_GTX_extend: Position extending</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
32 <h1>GLM_GTX_extented_min_max: Extended min max</h1> </div>
33 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3634 <div class="contents">
3735
38 <p>Extend a position from a source to a position at a defined length.
36 <p>Min and max functions for 3 to 4 parameters.
3937 <a href="#_details">More...</a></p>
4038 <table class="memberdecls">
41 <tr><td colspan="2"><h2><a name="func-members"></a>
42 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00259.html#ga9fe82185d36e8136fb2656bacf3d4a86">extend</a> (genType const &amp;Origin, genType const &amp;Source, typename genType::value_type const Length)</td></tr>
4539 </table>
4640 <hr/><a name="_details"></a><h2>Detailed Description</h2>
47 <p>Extend a position from a source to a position at a defined length. </p>
48 <p>&lt;<a class="el" href="a00038_source.html">glm/gtx/extend.hpp</a>&gt; need to be included to use these functionalities. </p>
49 <hr/><h2>Function Documentation</h2>
50 <a class="anchor" id="ga9fe82185d36e8136fb2656bacf3d4a86"></a><!-- doxytag: member="glm::gtx::extend::extend" ref="ga9fe82185d36e8136fb2656bacf3d4a86" args="(genType const &amp;Origin, genType const &amp;Source, typename genType::value_type const Length)" -->
51 <div class="memitem">
52 <div class="memproto">
53 <table class="memname">
54 <tr>
55 <td class="memname">genType glm::gtx::extend::extend </td>
56 <td>(</td>
57 <td class="paramtype">genType const &amp;&#160;</td>
58 <td class="paramname"><em>Origin</em>, </td>
59 </tr>
60 <tr>
61 <td class="paramkey"></td>
62 <td></td>
63 <td class="paramtype">genType const &amp;&#160;</td>
64 <td class="paramname"><em>Source</em>, </td>
65 </tr>
66 <tr>
67 <td class="paramkey"></td>
68 <td></td>
69 <td class="paramtype">typename genType::value_type const&#160;</td>
70 <td class="paramname"><em>Length</em>&#160;</td>
71 </tr>
72 <tr>
73 <td></td>
74 <td>)</td>
75 <td></td><td></td>
76 </tr>
77 </table>
78 </div>
79 <div class="memdoc">
80
81 <p>Extends of Length the Origin position using the (Source - Origin) direction. </p>
82 <p>From GLM_GTX_extend extension. </p>
83
84 </div>
85 </div>
41 <p>Min and max functions for 3 to 4 parameters. </p>
42 <p>&lt;<a class="el" href="a00039_source.html">glm/gtx/extented_min_max.hpp</a>&gt; need to be included to use these functionalities. </p>
8643 </div>
8744 <hr class="footer"/><address class="footer"><small>Generated by&#160;
8845 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_extented_min_max: Extended min max</title>
4 <title>GLM_GTX_fast_exponential: Fast exponentiation functions</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2828 </div>
2929 </div>
3030 <div class="header">
31 <div class="summary">
32 <a href="#func-members">Functions</a> </div>
3133 <div class="headertitle">
32 <h1>GLM_GTX_extented_min_max: Extended min max</h1> </div>
33 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_fast_exponential: Fast exponentiation functions</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3436 <div class="contents">
3537
36 <p>Min and max functions for 3 to 4 parameters.
38 <p>Fast but less accurate implementations of exponential based functions.
3739 <a href="#_details">More...</a></p>
3840 <table class="memberdecls">
41 <tr><td colspan="2"><h2><a name="func-members"></a>
42 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00260.html#ga10df16993c31fda159ebe8fc0d95167f">fastExp</a> (const T &amp;x)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00260.html#ga12669721e13e183233ed5c6025dce5e4">fastExp2</a> (const T &amp;x)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00260.html#ga23893e648b441fb48f8c0ab504cf8aeb">fastLn</a> (const T &amp;x)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00260.html#gaf0c2539c6843c1e0e514445bd4c4a72b">fastLog</a> (const T &amp;x)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00260.html#gaef27f6ec081ab71024019faa178d4506">fastLog2</a> (const T &amp;x)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00260.html#gaaf77117ea021fa1ece715d0b94dd8a2b">fastPow</a> (valType const &amp;x, valType const &amp;y)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00260.html#gaf19f293cf66712dc015880ef7645ec1e">fastPow</a> (const T &amp;x, const U &amp;y)</td></tr>
3957 </table>
4058 <hr/><a name="_details"></a><h2>Detailed Description</h2>
41 <p>Min and max functions for 3 to 4 parameters. </p>
42 <p>&lt;<a class="el" href="a00039_source.html">glm/gtx/extented_min_max.hpp</a>&gt; need to be included to use these functionalities. </p>
59 <p>Fast but less accurate implementations of exponential based functions. </p>
60 <p>&lt;<a class="el" href="a00040_source.html">glm/gtx/fast_exponential.hpp</a>&gt; need to be included to use these functionalities. </p>
61 <hr/><h2>Function Documentation</h2>
62 <a class="anchor" id="ga10df16993c31fda159ebe8fc0d95167f"></a><!-- doxytag: member="glm::gtx::fast_exponential::fastExp" ref="ga10df16993c31fda159ebe8fc0d95167f" args="(const T &amp;x)" -->
63 <div class="memitem">
64 <div class="memproto">
65 <table class="memname">
66 <tr>
67 <td class="memname">T glm::gtx::fast_exponential::fastExp </td>
68 <td>(</td>
69 <td class="paramtype">const T &amp;&#160;</td>
70 <td class="paramname"><em>x</em></td><td>)</td>
71 <td></td>
72 </tr>
73 </table>
74 </div>
75 <div class="memdoc">
76
77 <p>Faster than the common exp function but less accurate. </p>
78 <p>From GLM_GTX_fast_exponential extension. </p>
79
80 </div>
81 </div>
82 <a class="anchor" id="ga12669721e13e183233ed5c6025dce5e4"></a><!-- doxytag: member="glm::gtx::fast_exponential::fastExp2" ref="ga12669721e13e183233ed5c6025dce5e4" args="(const T &amp;x)" -->
83 <div class="memitem">
84 <div class="memproto">
85 <table class="memname">
86 <tr>
87 <td class="memname">T glm::gtx::fast_exponential::fastExp2 </td>
88 <td>(</td>
89 <td class="paramtype">const T &amp;&#160;</td>
90 <td class="paramname"><em>x</em></td><td>)</td>
91 <td></td>
92 </tr>
93 </table>
94 </div>
95 <div class="memdoc">
96
97 <p>Faster than the common exp2 function but less accurate. </p>
98 <p>From GLM_GTX_fast_exponential extension. </p>
99
100 </div>
101 </div>
102 <a class="anchor" id="ga23893e648b441fb48f8c0ab504cf8aeb"></a><!-- doxytag: member="glm::gtx::fast_exponential::fastLn" ref="ga23893e648b441fb48f8c0ab504cf8aeb" args="(const T &amp;x)" -->
103 <div class="memitem">
104 <div class="memproto">
105 <table class="memname">
106 <tr>
107 <td class="memname">T glm::gtx::fast_exponential::fastLn </td>
108 <td>(</td>
109 <td class="paramtype">const T &amp;&#160;</td>
110 <td class="paramname"><em>x</em></td><td>)</td>
111 <td></td>
112 </tr>
113 </table>
114 </div>
115 <div class="memdoc">
116
117 <p>Faster than the common ln function but less accurate. </p>
118 <p>From GLM_GTX_fast_exponential extension. </p>
119
120 </div>
121 </div>
122 <a class="anchor" id="gaf0c2539c6843c1e0e514445bd4c4a72b"></a><!-- doxytag: member="glm::gtx::fast_exponential::fastLog" ref="gaf0c2539c6843c1e0e514445bd4c4a72b" args="(const T &amp;x)" -->
123 <div class="memitem">
124 <div class="memproto">
125 <table class="memname">
126 <tr>
127 <td class="memname">T glm::gtx::fast_exponential::fastLog </td>
128 <td>(</td>
129 <td class="paramtype">const T &amp;&#160;</td>
130 <td class="paramname"><em>x</em></td><td>)</td>
131 <td></td>
132 </tr>
133 </table>
134 </div>
135 <div class="memdoc">
136
137 <p>Faster than the common log function but less accurate. </p>
138 <p>From GLM_GTX_fast_exponential extension. </p>
139
140 </div>
141 </div>
142 <a class="anchor" id="gaef27f6ec081ab71024019faa178d4506"></a><!-- doxytag: member="glm::gtx::fast_exponential::fastLog2" ref="gaef27f6ec081ab71024019faa178d4506" args="(const T &amp;x)" -->
143 <div class="memitem">
144 <div class="memproto">
145 <table class="memname">
146 <tr>
147 <td class="memname">T glm::gtx::fast_exponential::fastLog2 </td>
148 <td>(</td>
149 <td class="paramtype">const T &amp;&#160;</td>
150 <td class="paramname"><em>x</em></td><td>)</td>
151 <td></td>
152 </tr>
153 </table>
154 </div>
155 <div class="memdoc">
156
157 <p>Faster than the common log2 function but less accurate. </p>
158 <p>From GLM_GTX_fast_exponential extension. </p>
159
160 </div>
161 </div>
162 <a class="anchor" id="gaaf77117ea021fa1ece715d0b94dd8a2b"></a><!-- doxytag: member="glm::gtx::fast_exponential::fastPow" ref="gaaf77117ea021fa1ece715d0b94dd8a2b" args="(valType const &amp;x, valType const &amp;y)" -->
163 <div class="memitem">
164 <div class="memproto">
165 <table class="memname">
166 <tr>
167 <td class="memname">valType glm::gtx::fast_exponential::fastPow </td>
168 <td>(</td>
169 <td class="paramtype">valType const &amp;&#160;</td>
170 <td class="paramname"><em>x</em>, </td>
171 </tr>
172 <tr>
173 <td class="paramkey"></td>
174 <td></td>
175 <td class="paramtype">valType const &amp;&#160;</td>
176 <td class="paramname"><em>y</em>&#160;</td>
177 </tr>
178 <tr>
179 <td></td>
180 <td>)</td>
181 <td></td><td></td>
182 </tr>
183 </table>
184 </div>
185 <div class="memdoc">
186
187 <p>Faster than the common pow function but less accurate. </p>
188 <p>From GLM_GTX_fast_exponential extension. </p>
189
190 </div>
191 </div>
192 <a class="anchor" id="gaf19f293cf66712dc015880ef7645ec1e"></a><!-- doxytag: member="glm::gtx::fast_exponential::fastPow" ref="gaf19f293cf66712dc015880ef7645ec1e" args="(const T &amp;x, const U &amp;y)" -->
193 <div class="memitem">
194 <div class="memproto">
195 <table class="memname">
196 <tr>
197 <td class="memname">T glm::gtx::fast_exponential::fastPow </td>
198 <td>(</td>
199 <td class="paramtype">const T &amp;&#160;</td>
200 <td class="paramname"><em>x</em>, </td>
201 </tr>
202 <tr>
203 <td class="paramkey"></td>
204 <td></td>
205 <td class="paramtype">const U &amp;&#160;</td>
206 <td class="paramname"><em>y</em>&#160;</td>
207 </tr>
208 <tr>
209 <td></td>
210 <td>)</td>
211 <td></td><td></td>
212 </tr>
213 </table>
214 </div>
215 <div class="memdoc">
216
217 <p>Faster than the common pow function but less accurate. </p>
218 <p>From GLM_GTX_fast_exponential extension. </p>
219
220 </div>
221 </div>
43222 </div>
44223 <hr class="footer"/><address class="footer"><small>Generated by&#160;
45224 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_fast_exponential: Fast exponentiation functions</title>
4 <title>GLM_GTX_fast_square_root: Fast square root functions</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_fast_exponential: Fast exponentiation functions</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_fast_square_root: Fast square root functions</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Fast but less accurate implementations of exponential based functions.
38 <p>Fast but less accurate implementations of square root based functions.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#ga10df16993c31fda159ebe8fc0d95167f">fastExp</a> (const T &amp;x)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#ga12669721e13e183233ed5c6025dce5e4">fastExp2</a> (const T &amp;x)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#ga23893e648b441fb48f8c0ab504cf8aeb">fastLn</a> (const T &amp;x)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#gaf0c2539c6843c1e0e514445bd4c4a72b">fastLog</a> (const T &amp;x)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#gaef27f6ec081ab71024019faa178d4506">fastLog2</a> (const T &amp;x)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#gaaf77117ea021fa1ece715d0b94dd8a2b">fastPow</a> (valType const &amp;x, valType const &amp;y)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#gaf19f293cf66712dc015880ef7645ec1e">fastPow</a> (const T &amp;x, const U &amp;y)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#ga68162c92de0e592216be943345169da7">fastDistance</a> (genType const &amp;x, genType const &amp;y)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#ga1858a37f06c79e17f287bbaa8f75b08e">fastInverseSqrt</a> (genType const &amp;x)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#gada4490e940c0c4e08beab6db793f8934">fastLength</a> (genType const &amp;x)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#ga7e785d24d7bbac63f273baf9af1160da">fastNormalize</a> (genType const &amp;x)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00261.html#gaced2a1b7a161290e4d401967607d56db">fastSqrt</a> (genType const &amp;x)</td></tr>
5753 </table>
5854 <hr/><a name="_details"></a><h2>Detailed Description</h2>
59 <p>Fast but less accurate implementations of exponential based functions. </p>
60 <p>&lt;<a class="el" href="a00040_source.html">glm/gtx/fast_exponential.hpp</a>&gt; need to be included to use these functionalities. </p>
55 <p>Fast but less accurate implementations of square root based functions. </p>
56 <p>&lt;<a class="el" href="a00041_source.html">glm/gtx/fast_square_root.hpp</a>&gt; need to be included to use these functionalities. </p>
6157 <hr/><h2>Function Documentation</h2>
62 <a class="anchor" id="ga10df16993c31fda159ebe8fc0d95167f"></a><!-- doxytag: member="glm::gtx::fast_exponential::fastExp" ref="ga10df16993c31fda159ebe8fc0d95167f" args="(const T &amp;x)" -->
58 <a class="anchor" id="ga68162c92de0e592216be943345169da7"></a><!-- doxytag: member="glm::gtx::fast_square_root::fastDistance" ref="ga68162c92de0e592216be943345169da7" args="(genType const &amp;x, genType const &amp;y)" -->
6359 <div class="memitem">
6460 <div class="memproto">
6561 <table class="memname">
6662 <tr>
67 <td class="memname">T glm::gtx::fast_exponential::fastExp </td>
63 <td class="memname">genType::value_type glm::gtx::fast_square_root::fastDistance </td>
6864 <td>(</td>
69 <td class="paramtype">const T &amp;&#160;</td>
70 <td class="paramname"><em>x</em></td><td>)</td>
71 <td></td>
72 </tr>
73 </table>
74 </div>
75 <div class="memdoc">
76
77 <p>Faster than the common exp function but less accurate. </p>
78 <p>From GLM_GTX_fast_exponential extension. </p>
79
80 </div>
81 </div>
82 <a class="anchor" id="ga12669721e13e183233ed5c6025dce5e4"></a><!-- doxytag: member="glm::gtx::fast_exponential::fastExp2" ref="ga12669721e13e183233ed5c6025dce5e4" args="(const T &amp;x)" -->
83 <div class="memitem">
84 <div class="memproto">
85 <table class="memname">
86 <tr>
87 <td class="memname">T glm::gtx::fast_exponential::fastExp2 </td>
88 <td>(</td>
89 <td class="paramtype">const T &amp;&#160;</td>
90 <td class="paramname"><em>x</em></td><td>)</td>
91 <td></td>
92 </tr>
93 </table>
94 </div>
95 <div class="memdoc">
96
97 <p>Faster than the common exp2 function but less accurate. </p>
98 <p>From GLM_GTX_fast_exponential extension. </p>
99
100 </div>
101 </div>
102 <a class="anchor" id="ga23893e648b441fb48f8c0ab504cf8aeb"></a><!-- doxytag: member="glm::gtx::fast_exponential::fastLn" ref="ga23893e648b441fb48f8c0ab504cf8aeb" args="(const T &amp;x)" -->
103 <div class="memitem">
104 <div class="memproto">
105 <table class="memname">
106 <tr>
107 <td class="memname">T glm::gtx::fast_exponential::fastLn </td>
108 <td>(</td>
109 <td class="paramtype">const T &amp;&#160;</td>
110 <td class="paramname"><em>x</em></td><td>)</td>
111 <td></td>
112 </tr>
113 </table>
114 </div>
115 <div class="memdoc">
116
117 <p>Faster than the common ln function but less accurate. </p>
118 <p>From GLM_GTX_fast_exponential extension. </p>
119
120 </div>
121 </div>
122 <a class="anchor" id="gaf0c2539c6843c1e0e514445bd4c4a72b"></a><!-- doxytag: member="glm::gtx::fast_exponential::fastLog" ref="gaf0c2539c6843c1e0e514445bd4c4a72b" args="(const T &amp;x)" -->
123 <div class="memitem">
124 <div class="memproto">
125 <table class="memname">
126 <tr>
127 <td class="memname">T glm::gtx::fast_exponential::fastLog </td>
128 <td>(</td>
129 <td class="paramtype">const T &amp;&#160;</td>
130 <td class="paramname"><em>x</em></td><td>)</td>
131 <td></td>
132 </tr>
133 </table>
134 </div>
135 <div class="memdoc">
136
137 <p>Faster than the common log function but less accurate. </p>
138 <p>From GLM_GTX_fast_exponential extension. </p>
139
140 </div>
141 </div>
142 <a class="anchor" id="gaef27f6ec081ab71024019faa178d4506"></a><!-- doxytag: member="glm::gtx::fast_exponential::fastLog2" ref="gaef27f6ec081ab71024019faa178d4506" args="(const T &amp;x)" -->
143 <div class="memitem">
144 <div class="memproto">
145 <table class="memname">
146 <tr>
147 <td class="memname">T glm::gtx::fast_exponential::fastLog2 </td>
148 <td>(</td>
149 <td class="paramtype">const T &amp;&#160;</td>
150 <td class="paramname"><em>x</em></td><td>)</td>
151 <td></td>
152 </tr>
153 </table>
154 </div>
155 <div class="memdoc">
156
157 <p>Faster than the common log2 function but less accurate. </p>
158 <p>From GLM_GTX_fast_exponential extension. </p>
159
160 </div>
161 </div>
162 <a class="anchor" id="gaaf77117ea021fa1ece715d0b94dd8a2b"></a><!-- doxytag: member="glm::gtx::fast_exponential::fastPow" ref="gaaf77117ea021fa1ece715d0b94dd8a2b" args="(valType const &amp;x, valType const &amp;y)" -->
163 <div class="memitem">
164 <div class="memproto">
165 <table class="memname">
166 <tr>
167 <td class="memname">valType glm::gtx::fast_exponential::fastPow </td>
168 <td>(</td>
169 <td class="paramtype">valType const &amp;&#160;</td>
65 <td class="paramtype">genType const &amp;&#160;</td>
17066 <td class="paramname"><em>x</em>, </td>
17167 </tr>
17268 <tr>
17369 <td class="paramkey"></td>
17470 <td></td>
175 <td class="paramtype">valType const &amp;&#160;</td>
71 <td class="paramtype">genType const &amp;&#160;</td>
17672 <td class="paramname"><em>y</em>&#160;</td>
17773 </tr>
17874 <tr>
18480 </div>
18581 <div class="memdoc">
18682
187 <p>Faster than the common pow function but less accurate. </p>
188 <p>From GLM_GTX_fast_exponential extension. </p>
83 <p>Faster than the common distance function but less accurate. </p>
84 <p>From GLM_GTX_fast_square_root extension. </p>
18985
19086 </div>
19187 </div>
192 <a class="anchor" id="gaf19f293cf66712dc015880ef7645ec1e"></a><!-- doxytag: member="glm::gtx::fast_exponential::fastPow" ref="gaf19f293cf66712dc015880ef7645ec1e" args="(const T &amp;x, const U &amp;y)" -->
88 <a class="anchor" id="ga1858a37f06c79e17f287bbaa8f75b08e"></a><!-- doxytag: member="glm::gtx::fast_square_root::fastInverseSqrt" ref="ga1858a37f06c79e17f287bbaa8f75b08e" args="(genType const &amp;x)" -->
19389 <div class="memitem">
19490 <div class="memproto">
19591 <table class="memname">
19692 <tr>
197 <td class="memname">T glm::gtx::fast_exponential::fastPow </td>
93 <td class="memname">genType glm::gtx::fast_square_root::fastInverseSqrt </td>
19894 <td>(</td>
199 <td class="paramtype">const T &amp;&#160;</td>
200 <td class="paramname"><em>x</em>, </td>
201 </tr>
202 <tr>
203 <td class="paramkey"></td>
95 <td class="paramtype">genType const &amp;&#160;</td>
96 <td class="paramname"><em>x</em></td><td>)</td>
20497 <td></td>
205 <td class="paramtype">const U &amp;&#160;</td>
206 <td class="paramname"><em>y</em>&#160;</td>
207 </tr>
208 <tr>
209 <td></td>
210 <td>)</td>
211 <td></td><td></td>
21298 </tr>
21399 </table>
214100 </div>
215101 <div class="memdoc">
216102
217 <p>Faster than the common pow function but less accurate. </p>
218 <p>From GLM_GTX_fast_exponential extension. </p>
103 <p>Faster than the common inversesqrt function but less accurate. </p>
104 <p>From GLM_GTX_fast_square_root extension. </p>
105
106 </div>
107 </div>
108 <a class="anchor" id="gada4490e940c0c4e08beab6db793f8934"></a><!-- doxytag: member="glm::gtx::fast_square_root::fastLength" ref="gada4490e940c0c4e08beab6db793f8934" args="(genType const &amp;x)" -->
109 <div class="memitem">
110 <div class="memproto">
111 <table class="memname">
112 <tr>
113 <td class="memname">genType::value_type glm::gtx::fast_square_root::fastLength </td>
114 <td>(</td>
115 <td class="paramtype">genType const &amp;&#160;</td>
116 <td class="paramname"><em>x</em></td><td>)</td>
117 <td></td>
118 </tr>
119 </table>
120 </div>
121 <div class="memdoc">
122
123 <p>Faster than the common length function but less accurate. </p>
124 <p>From GLM_GTX_fast_square_root extension. </p>
125
126 </div>
127 </div>
128 <a class="anchor" id="ga7e785d24d7bbac63f273baf9af1160da"></a><!-- doxytag: member="glm::gtx::fast_square_root::fastNormalize" ref="ga7e785d24d7bbac63f273baf9af1160da" args="(genType const &amp;x)" -->
129 <div class="memitem">
130 <div class="memproto">
131 <table class="memname">
132 <tr>
133 <td class="memname">genType glm::gtx::fast_square_root::fastNormalize </td>
134 <td>(</td>
135 <td class="paramtype">genType const &amp;&#160;</td>
136 <td class="paramname"><em>x</em></td><td>)</td>
137 <td></td>
138 </tr>
139 </table>
140 </div>
141 <div class="memdoc">
142
143 <p>Faster than the common normalize function but less accurate. </p>
144 <p>From GLM_GTX_fast_square_root extension. </p>
145
146 </div>
147 </div>
148 <a class="anchor" id="gaced2a1b7a161290e4d401967607d56db"></a><!-- doxytag: member="glm::gtx::fast_square_root::fastSqrt" ref="gaced2a1b7a161290e4d401967607d56db" args="(genType const &amp;x)" -->
149 <div class="memitem">
150 <div class="memproto">
151 <table class="memname">
152 <tr>
153 <td class="memname">genType glm::gtx::fast_square_root::fastSqrt </td>
154 <td>(</td>
155 <td class="paramtype">genType const &amp;&#160;</td>
156 <td class="paramname"><em>x</em></td><td>)</td>
157 <td></td>
158 </tr>
159 </table>
160 </div>
161 <div class="memdoc">
162
163 <p>Faster than the common sqrt function but less accurate. </p>
164 <p>From GLM_GTX_fast_square_root extension. </p>
219165
220166 </div>
221167 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_fast_square_root: Fast square root functions</title>
4 <title>GLM_GTX_fast_trigonometry: Fast trigonometric functions</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_fast_square_root: Fast square root functions</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_fast_trigonometry: Fast trigonometric functions</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Fast but less accurate implementations of square root based functions.
38 <p>Fast but less accurate implementations of trigonometric functions.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga68162c92de0e592216be943345169da7">fastDistance</a> (genType const &amp;x, genType const &amp;y)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga1858a37f06c79e17f287bbaa8f75b08e">fastInverseSqrt</a> (genType const &amp;x)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#gada4490e940c0c4e08beab6db793f8934">fastLength</a> (genType const &amp;x)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga7e785d24d7bbac63f273baf9af1160da">fastNormalize</a> (genType const &amp;x)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#gaced2a1b7a161290e4d401967607d56db">fastSqrt</a> (genType const &amp;x)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga4a704d388edfa3912257b69184d730ba">fastAcos</a> (const T &amp;angle)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga73073afdd18dce08727f232c892c5dcd">fastAsin</a> (const T &amp;angle)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga0288bb1ab677dec79ad89e9551c168c5">fastAtan</a> (const T &amp;angle)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#gafae71c7958e50cf435f9e73ee4e579f7">fastAtan</a> (const T &amp;y, const T &amp;x)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga53a9033f33561a2b7133326d721a05cc">fastCos</a> (const T &amp;angle)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga0844ea62ea81d215b56449f1b3b4968a">fastSin</a> (const T &amp;angle)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00262.html#ga311fc8d0d067bf3d229566aae8f81a1a">fastTan</a> (const T &amp;angle)</td></tr>
5357 </table>
5458 <hr/><a name="_details"></a><h2>Detailed Description</h2>
55 <p>Fast but less accurate implementations of square root based functions. </p>
56 <p>&lt;<a class="el" href="a00041_source.html">glm/gtx/fast_square_root.hpp</a>&gt; need to be included to use these functionalities. </p>
59 <p>Fast but less accurate implementations of trigonometric functions. </p>
60 <p>&lt;<a class="el" href="a00042_source.html">glm/gtx/fast_trigonometry.hpp</a>&gt; need to be included to use these functionalities. </p>
5761 <hr/><h2>Function Documentation</h2>
58 <a class="anchor" id="ga68162c92de0e592216be943345169da7"></a><!-- doxytag: member="glm::gtx::fast_square_root::fastDistance" ref="ga68162c92de0e592216be943345169da7" args="(genType const &amp;x, genType const &amp;y)" -->
59 <div class="memitem">
60 <div class="memproto">
61 <table class="memname">
62 <tr>
63 <td class="memname">genType::value_type glm::gtx::fast_square_root::fastDistance </td>
64 <td>(</td>
65 <td class="paramtype">genType const &amp;&#160;</td>
66 <td class="paramname"><em>x</em>, </td>
62 <a class="anchor" id="ga4a704d388edfa3912257b69184d730ba"></a><!-- doxytag: member="glm::gtx::fast_trigonometry::fastAcos" ref="ga4a704d388edfa3912257b69184d730ba" args="(const T &amp;angle)" -->
63 <div class="memitem">
64 <div class="memproto">
65 <table class="memname">
66 <tr>
67 <td class="memname">T glm::gtx::fast_trigonometry::fastAcos </td>
68 <td>(</td>
69 <td class="paramtype">const T &amp;&#160;</td>
70 <td class="paramname"><em>angle</em></td><td>)</td>
71 <td></td>
72 </tr>
73 </table>
74 </div>
75 <div class="memdoc">
76
77 <p>Faster than the common acos function but less accurate. </p>
78 <p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
79
80 </div>
81 </div>
82 <a class="anchor" id="ga73073afdd18dce08727f232c892c5dcd"></a><!-- doxytag: member="glm::gtx::fast_trigonometry::fastAsin" ref="ga73073afdd18dce08727f232c892c5dcd" args="(const T &amp;angle)" -->
83 <div class="memitem">
84 <div class="memproto">
85 <table class="memname">
86 <tr>
87 <td class="memname">T glm::gtx::fast_trigonometry::fastAsin </td>
88 <td>(</td>
89 <td class="paramtype">const T &amp;&#160;</td>
90 <td class="paramname"><em>angle</em></td><td>)</td>
91 <td></td>
92 </tr>
93 </table>
94 </div>
95 <div class="memdoc">
96
97 <p>Faster than the common asin function but less accurate. </p>
98 <p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
99
100 </div>
101 </div>
102 <a class="anchor" id="ga0288bb1ab677dec79ad89e9551c168c5"></a><!-- doxytag: member="glm::gtx::fast_trigonometry::fastAtan" ref="ga0288bb1ab677dec79ad89e9551c168c5" args="(const T &amp;angle)" -->
103 <div class="memitem">
104 <div class="memproto">
105 <table class="memname">
106 <tr>
107 <td class="memname">T glm::gtx::fast_trigonometry::fastAtan </td>
108 <td>(</td>
109 <td class="paramtype">const T &amp;&#160;</td>
110 <td class="paramname"><em>angle</em></td><td>)</td>
111 <td></td>
112 </tr>
113 </table>
114 </div>
115 <div class="memdoc">
116
117 <p>Faster than the common atan function but less accurate. </p>
118 <p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
119
120 </div>
121 </div>
122 <a class="anchor" id="gafae71c7958e50cf435f9e73ee4e579f7"></a><!-- doxytag: member="glm::gtx::fast_trigonometry::fastAtan" ref="gafae71c7958e50cf435f9e73ee4e579f7" args="(const T &amp;y, const T &amp;x)" -->
123 <div class="memitem">
124 <div class="memproto">
125 <table class="memname">
126 <tr>
127 <td class="memname">T glm::gtx::fast_trigonometry::fastAtan </td>
128 <td>(</td>
129 <td class="paramtype">const T &amp;&#160;</td>
130 <td class="paramname"><em>y</em>, </td>
67131 </tr>
68132 <tr>
69133 <td class="paramkey"></td>
70134 <td></td>
71 <td class="paramtype">genType const &amp;&#160;</td>
72 <td class="paramname"><em>y</em>&#160;</td>
135 <td class="paramtype">const T &amp;&#160;</td>
136 <td class="paramname"><em>x</em>&#160;</td>
73137 </tr>
74138 <tr>
75139 <td></td>
80144 </div>
81145 <div class="memdoc">
82146
83 <p>Faster than the common distance function but less accurate. </p>
84 <p>From GLM_GTX_fast_square_root extension. </p>
85
86 </div>
87 </div>
88 <a class="anchor" id="ga1858a37f06c79e17f287bbaa8f75b08e"></a><!-- doxytag: member="glm::gtx::fast_square_root::fastInverseSqrt" ref="ga1858a37f06c79e17f287bbaa8f75b08e" args="(genType const &amp;x)" -->
89 <div class="memitem">
90 <div class="memproto">
91 <table class="memname">
92 <tr>
93 <td class="memname">genType glm::gtx::fast_square_root::fastInverseSqrt </td>
94 <td>(</td>
95 <td class="paramtype">genType const &amp;&#160;</td>
96 <td class="paramname"><em>x</em></td><td>)</td>
97 <td></td>
98 </tr>
99 </table>
100 </div>
101 <div class="memdoc">
102
103 <p>Faster than the common inversesqrt function but less accurate. </p>
104 <p>From GLM_GTX_fast_square_root extension. </p>
105
106 </div>
107 </div>
108 <a class="anchor" id="gada4490e940c0c4e08beab6db793f8934"></a><!-- doxytag: member="glm::gtx::fast_square_root::fastLength" ref="gada4490e940c0c4e08beab6db793f8934" args="(genType const &amp;x)" -->
109 <div class="memitem">
110 <div class="memproto">
111 <table class="memname">
112 <tr>
113 <td class="memname">genType::value_type glm::gtx::fast_square_root::fastLength </td>
114 <td>(</td>
115 <td class="paramtype">genType const &amp;&#160;</td>
116 <td class="paramname"><em>x</em></td><td>)</td>
117 <td></td>
118 </tr>
119 </table>
120 </div>
121 <div class="memdoc">
122
123 <p>Faster than the common length function but less accurate. </p>
124 <p>From GLM_GTX_fast_square_root extension. </p>
125
126 </div>
127 </div>
128 <a class="anchor" id="ga7e785d24d7bbac63f273baf9af1160da"></a><!-- doxytag: member="glm::gtx::fast_square_root::fastNormalize" ref="ga7e785d24d7bbac63f273baf9af1160da" args="(genType const &amp;x)" -->
129 <div class="memitem">
130 <div class="memproto">
131 <table class="memname">
132 <tr>
133 <td class="memname">genType glm::gtx::fast_square_root::fastNormalize </td>
134 <td>(</td>
135 <td class="paramtype">genType const &amp;&#160;</td>
136 <td class="paramname"><em>x</em></td><td>)</td>
137 <td></td>
138 </tr>
139 </table>
140 </div>
141 <div class="memdoc">
142
143 <p>Faster than the common normalize function but less accurate. </p>
144 <p>From GLM_GTX_fast_square_root extension. </p>
145
146 </div>
147 </div>
148 <a class="anchor" id="gaced2a1b7a161290e4d401967607d56db"></a><!-- doxytag: member="glm::gtx::fast_square_root::fastSqrt" ref="gaced2a1b7a161290e4d401967607d56db" args="(genType const &amp;x)" -->
149 <div class="memitem">
150 <div class="memproto">
151 <table class="memname">
152 <tr>
153 <td class="memname">genType glm::gtx::fast_square_root::fastSqrt </td>
154 <td>(</td>
155 <td class="paramtype">genType const &amp;&#160;</td>
156 <td class="paramname"><em>x</em></td><td>)</td>
157 <td></td>
158 </tr>
159 </table>
160 </div>
161 <div class="memdoc">
162
163 <p>Faster than the common sqrt function but less accurate. </p>
164 <p>From GLM_GTX_fast_square_root extension. </p>
147 <p>Faster than the common atan function but less accurate. </p>
148 <p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
149
150 </div>
151 </div>
152 <a class="anchor" id="ga53a9033f33561a2b7133326d721a05cc"></a><!-- doxytag: member="glm::gtx::fast_trigonometry::fastCos" ref="ga53a9033f33561a2b7133326d721a05cc" args="(const T &amp;angle)" -->
153 <div class="memitem">
154 <div class="memproto">
155 <table class="memname">
156 <tr>
157 <td class="memname">T glm::gtx::fast_trigonometry::fastCos </td>
158 <td>(</td>
159 <td class="paramtype">const T &amp;&#160;</td>
160 <td class="paramname"><em>angle</em></td><td>)</td>
161 <td></td>
162 </tr>
163 </table>
164 </div>
165 <div class="memdoc">
166
167 <p>Faster than the common cos function but less accurate. </p>
168 <p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
169
170 </div>
171 </div>
172 <a class="anchor" id="ga0844ea62ea81d215b56449f1b3b4968a"></a><!-- doxytag: member="glm::gtx::fast_trigonometry::fastSin" ref="ga0844ea62ea81d215b56449f1b3b4968a" args="(const T &amp;angle)" -->
173 <div class="memitem">
174 <div class="memproto">
175 <table class="memname">
176 <tr>
177 <td class="memname">T glm::gtx::fast_trigonometry::fastSin </td>
178 <td>(</td>
179 <td class="paramtype">const T &amp;&#160;</td>
180 <td class="paramname"><em>angle</em></td><td>)</td>
181 <td></td>
182 </tr>
183 </table>
184 </div>
185 <div class="memdoc">
186
187 <p>Faster than the common sin function but less accurate. </p>
188 <p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
189
190 </div>
191 </div>
192 <a class="anchor" id="ga311fc8d0d067bf3d229566aae8f81a1a"></a><!-- doxytag: member="glm::gtx::fast_trigonometry::fastTan" ref="ga311fc8d0d067bf3d229566aae8f81a1a" args="(const T &amp;angle)" -->
193 <div class="memitem">
194 <div class="memproto">
195 <table class="memname">
196 <tr>
197 <td class="memname">T glm::gtx::fast_trigonometry::fastTan </td>
198 <td>(</td>
199 <td class="paramtype">const T &amp;&#160;</td>
200 <td class="paramname"><em>angle</em></td><td>)</td>
201 <td></td>
202 </tr>
203 </table>
204 </div>
205 <div class="memdoc">
206
207 <p>Faster than the common tan function but less accurate. </p>
208 <p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
165209
166210 </div>
167211 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_fast_trigonometry: Fast trigonometric functions</title>
4 <title>GLM_GTX_handed_coordinate_space: Space Handedness</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_fast_trigonometry: Fast trigonometric functions</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_handed_coordinate_space: Space Handedness</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Fast but less accurate implementations of trigonometric functions.
38 <p>To know if a set of three basis vectors defines a right or left-handed coordinate system.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
4343 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#ga4a704d388edfa3912257b69184d730ba">fastAcos</a> (const T &amp;angle)</td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#gac222c8dd989fe9fb2142f18320bd683c">leftHanded</a> (detail::tvec3&lt; T &gt; const &amp;tangent, detail::tvec3&lt; T &gt; const &amp;binormal, detail::tvec3&lt; T &gt; const &amp;normal)</td></tr>
4545 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#ga73073afdd18dce08727f232c892c5dcd">fastAsin</a> (const T &amp;angle)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#ga0288bb1ab677dec79ad89e9551c168c5">fastAtan</a> (const T &amp;angle)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#gafae71c7958e50cf435f9e73ee4e579f7">fastAtan</a> (const T &amp;y, const T &amp;x)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#ga53a9033f33561a2b7133326d721a05cc">fastCos</a> (const T &amp;angle)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#ga0844ea62ea81d215b56449f1b3b4968a">fastSin</a> (const T &amp;angle)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#ga311fc8d0d067bf3d229566aae8f81a1a">fastTan</a> (const T &amp;angle)</td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00263.html#ga472eb0d6e9fcf9b503d3c1a74fdee645">rightHanded</a> (detail::tvec3&lt; T &gt; const &amp;tangent, detail::tvec3&lt; T &gt; const &amp;binormal, detail::tvec3&lt; T &gt; const &amp;normal)</td></tr>
5747 </table>
5848 <hr/><a name="_details"></a><h2>Detailed Description</h2>
59 <p>Fast but less accurate implementations of trigonometric functions. </p>
60 <p>&lt;<a class="el" href="a00042_source.html">glm/gtx/fast_trigonometry.hpp</a>&gt; need to be included to use these functionalities. </p>
49 <p>To know if a set of three basis vectors defines a right or left-handed coordinate system. </p>
50 <p>&lt;glm/gtx/handed_coordinate_system.hpp&gt; need to be included to use these functionalities. </p>
6151 <hr/><h2>Function Documentation</h2>
62 <a class="anchor" id="ga4a704d388edfa3912257b69184d730ba"></a><!-- doxytag: member="glm::gtx::fast_trigonometry::fastAcos" ref="ga4a704d388edfa3912257b69184d730ba" args="(const T &amp;angle)" -->
52 <a class="anchor" id="gac222c8dd989fe9fb2142f18320bd683c"></a><!-- doxytag: member="glm::gtx::handed_coordinate_space::leftHanded" ref="gac222c8dd989fe9fb2142f18320bd683c" args="(detail::tvec3&lt; T &gt; const &amp;tangent, detail::tvec3&lt; T &gt; const &amp;binormal, detail::tvec3&lt; T &gt; const &amp;normal)" -->
6353 <div class="memitem">
6454 <div class="memproto">
6555 <table class="memname">
6656 <tr>
67 <td class="memname">T glm::gtx::fast_trigonometry::fastAcos </td>
57 <td class="memname">bool glm::gtx::handed_coordinate_space::leftHanded </td>
6858 <td>(</td>
69 <td class="paramtype">const T &amp;&#160;</td>
70 <td class="paramname"><em>angle</em></td><td>)</td>
71 <td></td>
72 </tr>
73 </table>
74 </div>
75 <div class="memdoc">
76
77 <p>Faster than the common acos function but less accurate. </p>
78 <p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
79
80 </div>
81 </div>
82 <a class="anchor" id="ga73073afdd18dce08727f232c892c5dcd"></a><!-- doxytag: member="glm::gtx::fast_trigonometry::fastAsin" ref="ga73073afdd18dce08727f232c892c5dcd" args="(const T &amp;angle)" -->
83 <div class="memitem">
84 <div class="memproto">
85 <table class="memname">
86 <tr>
87 <td class="memname">T glm::gtx::fast_trigonometry::fastAsin </td>
88 <td>(</td>
89 <td class="paramtype">const T &amp;&#160;</td>
90 <td class="paramname"><em>angle</em></td><td>)</td>
91 <td></td>
92 </tr>
93 </table>
94 </div>
95 <div class="memdoc">
96
97 <p>Faster than the common asin function but less accurate. </p>
98 <p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
99
100 </div>
101 </div>
102 <a class="anchor" id="ga0288bb1ab677dec79ad89e9551c168c5"></a><!-- doxytag: member="glm::gtx::fast_trigonometry::fastAtan" ref="ga0288bb1ab677dec79ad89e9551c168c5" args="(const T &amp;angle)" -->
103 <div class="memitem">
104 <div class="memproto">
105 <table class="memname">
106 <tr>
107 <td class="memname">T glm::gtx::fast_trigonometry::fastAtan </td>
108 <td>(</td>
109 <td class="paramtype">const T &amp;&#160;</td>
110 <td class="paramname"><em>angle</em></td><td>)</td>
111 <td></td>
112 </tr>
113 </table>
114 </div>
115 <div class="memdoc">
116
117 <p>Faster than the common atan function but less accurate. </p>
118 <p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
119
120 </div>
121 </div>
122 <a class="anchor" id="gafae71c7958e50cf435f9e73ee4e579f7"></a><!-- doxytag: member="glm::gtx::fast_trigonometry::fastAtan" ref="gafae71c7958e50cf435f9e73ee4e579f7" args="(const T &amp;y, const T &amp;x)" -->
123 <div class="memitem">
124 <div class="memproto">
125 <table class="memname">
126 <tr>
127 <td class="memname">T glm::gtx::fast_trigonometry::fastAtan </td>
128 <td>(</td>
129 <td class="paramtype">const T &amp;&#160;</td>
130 <td class="paramname"><em>y</em>, </td>
59 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
60 <td class="paramname"><em>tangent</em>, </td>
13161 </tr>
13262 <tr>
13363 <td class="paramkey"></td>
13464 <td></td>
135 <td class="paramtype">const T &amp;&#160;</td>
136 <td class="paramname"><em>x</em>&#160;</td>
65 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
66 <td class="paramname"><em>binormal</em>, </td>
67 </tr>
68 <tr>
69 <td class="paramkey"></td>
70 <td></td>
71 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
72 <td class="paramname"><em>normal</em>&#160;</td>
13773 </tr>
13874 <tr>
13975 <td></td>
14480 </div>
14581 <div class="memdoc">
14682
147 <p>Faster than the common atan function but less accurate. </p>
148 <p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
83 <p>Return if a trihedron left handed or not. </p>
84 <p>From GLM_GTX_handed_coordinate_space extension. </p>
14985
15086 </div>
15187 </div>
152 <a class="anchor" id="ga53a9033f33561a2b7133326d721a05cc"></a><!-- doxytag: member="glm::gtx::fast_trigonometry::fastCos" ref="ga53a9033f33561a2b7133326d721a05cc" args="(const T &amp;angle)" -->
88 <a class="anchor" id="ga472eb0d6e9fcf9b503d3c1a74fdee645"></a><!-- doxytag: member="glm::gtx::handed_coordinate_space::rightHanded" ref="ga472eb0d6e9fcf9b503d3c1a74fdee645" args="(detail::tvec3&lt; T &gt; const &amp;tangent, detail::tvec3&lt; T &gt; const &amp;binormal, detail::tvec3&lt; T &gt; const &amp;normal)" -->
15389 <div class="memitem">
15490 <div class="memproto">
15591 <table class="memname">
15692 <tr>
157 <td class="memname">T glm::gtx::fast_trigonometry::fastCos </td>
93 <td class="memname">bool glm::gtx::handed_coordinate_space::rightHanded </td>
15894 <td>(</td>
159 <td class="paramtype">const T &amp;&#160;</td>
160 <td class="paramname"><em>angle</em></td><td>)</td>
95 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
96 <td class="paramname"><em>tangent</em>, </td>
97 </tr>
98 <tr>
99 <td class="paramkey"></td>
161100 <td></td>
101 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
102 <td class="paramname"><em>binormal</em>, </td>
103 </tr>
104 <tr>
105 <td class="paramkey"></td>
106 <td></td>
107 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
108 <td class="paramname"><em>normal</em>&#160;</td>
109 </tr>
110 <tr>
111 <td></td>
112 <td>)</td>
113 <td></td><td></td>
162114 </tr>
163115 </table>
164116 </div>
165117 <div class="memdoc">
166118
167 <p>Faster than the common cos function but less accurate. </p>
168 <p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
169
170 </div>
171 </div>
172 <a class="anchor" id="ga0844ea62ea81d215b56449f1b3b4968a"></a><!-- doxytag: member="glm::gtx::fast_trigonometry::fastSin" ref="ga0844ea62ea81d215b56449f1b3b4968a" args="(const T &amp;angle)" -->
173 <div class="memitem">
174 <div class="memproto">
175 <table class="memname">
176 <tr>
177 <td class="memname">T glm::gtx::fast_trigonometry::fastSin </td>
178 <td>(</td>
179 <td class="paramtype">const T &amp;&#160;</td>
180 <td class="paramname"><em>angle</em></td><td>)</td>
181 <td></td>
182 </tr>
183 </table>
184 </div>
185 <div class="memdoc">
186
187 <p>Faster than the common sin function but less accurate. </p>
188 <p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
189
190 </div>
191 </div>
192 <a class="anchor" id="ga311fc8d0d067bf3d229566aae8f81a1a"></a><!-- doxytag: member="glm::gtx::fast_trigonometry::fastTan" ref="ga311fc8d0d067bf3d229566aae8f81a1a" args="(const T &amp;angle)" -->
193 <div class="memitem">
194 <div class="memproto">
195 <table class="memname">
196 <tr>
197 <td class="memname">T glm::gtx::fast_trigonometry::fastTan </td>
198 <td>(</td>
199 <td class="paramtype">const T &amp;&#160;</td>
200 <td class="paramname"><em>angle</em></td><td>)</td>
201 <td></td>
202 </tr>
203 </table>
204 </div>
205 <div class="memdoc">
206
207 <p>Faster than the common tan function but less accurate. </p>
208 <p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
119 <p>Return if a trihedron right handed or not. </p>
120 <p>From GLM_GTX_handed_coordinate_space extension. </p>
209121
210122 </div>
211123 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_handed_coordinate_space: Space Handedness</title>
4 <title>GLM_GTX_inertia: Intertial matrix</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_handed_coordinate_space: Space Handedness</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_inertia: Intertial matrix</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>To know if a set of three basis vectors defines a right or left-handed coordinate system.
38 <p>Create inertia matrices.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
4343 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#gac222c8dd989fe9fb2142f18320bd683c">leftHanded</a> (detail::tvec3&lt; T &gt; const &amp;tangent, detail::tvec3&lt; T &gt; const &amp;binormal, detail::tvec3&lt; T &gt; const &amp;normal)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#ga472eb0d6e9fcf9b503d3c1a74fdee645">rightHanded</a> (detail::tvec3&lt; T &gt; const &amp;tangent, detail::tvec3&lt; T &gt; const &amp;binormal, detail::tvec3&lt; T &gt; const &amp;normal)</td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#gac855b3f388128290af0b3016f5e644e4">ballInertia3</a> (const T Mass, const T Radius)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#ga33e5d8cfae7d8d2ee4369bbc68b20304">ballInertia4</a> (const T Mass, const T Radius)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#ga2bc514c4c44559a1f76776ad723833b8">boxInertia3</a> (const T Mass, const detail::tvec3&lt; T &gt; &amp;Scale)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#ga02d62ab1fe6c9eaaac001f0c73c787f2">boxInertia4</a> (const T Mass, const detail::tvec3&lt; T &gt; &amp;Scale)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#gaceea61bf41a4cc6f934543bb42c30ab2">diskInertia3</a> (const T Mass, const T Radius)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#ga0f6f854161239bed615b5cba1cd85d8a">diskInertia4</a> (const T Mass, const T Radius)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#gad3bcd1a2ac02d030f6b774f5692aee01">sphereInertia3</a> (const T Mass, const T Radius)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00264.html#ga3d50f9cd04751451b22d712f1ce26351">sphereInertia4</a> (const T Mass, const T Radius)</td></tr>
4759 </table>
4860 <hr/><a name="_details"></a><h2>Detailed Description</h2>
49 <p>To know if a set of three basis vectors defines a right or left-handed coordinate system. </p>
50 <p>&lt;glm/gtx/handed_coordinate_system.hpp&gt; need to be included to use these functionalities. </p>
61 <p>Create inertia matrices. </p>
62 <p>&lt;<a class="el" href="a00059_source.html">glm/gtx/inertia.hpp</a>&gt; need to be included to use these functionalities. </p>
5163 <hr/><h2>Function Documentation</h2>
52 <a class="anchor" id="gac222c8dd989fe9fb2142f18320bd683c"></a><!-- doxytag: member="glm::gtx::handed_coordinate_space::leftHanded" ref="gac222c8dd989fe9fb2142f18320bd683c" args="(detail::tvec3&lt; T &gt; const &amp;tangent, detail::tvec3&lt; T &gt; const &amp;binormal, detail::tvec3&lt; T &gt; const &amp;normal)" -->
53 <div class="memitem">
54 <div class="memproto">
55 <table class="memname">
56 <tr>
57 <td class="memname">bool glm::gtx::handed_coordinate_space::leftHanded </td>
58 <td>(</td>
59 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
60 <td class="paramname"><em>tangent</em>, </td>
61 </tr>
62 <tr>
63 <td class="paramkey"></td>
64 <td></td>
65 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
66 <td class="paramname"><em>binormal</em>, </td>
67 </tr>
68 <tr>
69 <td class="paramkey"></td>
70 <td></td>
71 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
72 <td class="paramname"><em>normal</em>&#160;</td>
73 </tr>
74 <tr>
75 <td></td>
76 <td>)</td>
77 <td></td><td></td>
78 </tr>
79 </table>
80 </div>
81 <div class="memdoc">
82
83 <p>Return if a trihedron left handed or not. </p>
84 <p>From GLM_GTX_handed_coordinate_space extension. </p>
85
86 </div>
87 </div>
88 <a class="anchor" id="ga472eb0d6e9fcf9b503d3c1a74fdee645"></a><!-- doxytag: member="glm::gtx::handed_coordinate_space::rightHanded" ref="ga472eb0d6e9fcf9b503d3c1a74fdee645" args="(detail::tvec3&lt; T &gt; const &amp;tangent, detail::tvec3&lt; T &gt; const &amp;binormal, detail::tvec3&lt; T &gt; const &amp;normal)" -->
89 <div class="memitem">
90 <div class="memproto">
91 <table class="memname">
92 <tr>
93 <td class="memname">bool glm::gtx::handed_coordinate_space::rightHanded </td>
94 <td>(</td>
95 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
96 <td class="paramname"><em>tangent</em>, </td>
97 </tr>
98 <tr>
99 <td class="paramkey"></td>
100 <td></td>
101 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
102 <td class="paramname"><em>binormal</em>, </td>
103 </tr>
104 <tr>
105 <td class="paramkey"></td>
106 <td></td>
107 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
108 <td class="paramname"><em>normal</em>&#160;</td>
109 </tr>
110 <tr>
111 <td></td>
112 <td>)</td>
113 <td></td><td></td>
114 </tr>
115 </table>
116 </div>
117 <div class="memdoc">
118
119 <p>Return if a trihedron right handed or not. </p>
120 <p>From GLM_GTX_handed_coordinate_space extension. </p>
64 <a class="anchor" id="gac855b3f388128290af0b3016f5e644e4"></a><!-- doxytag: member="glm::gtx::inertia::ballInertia3" ref="gac855b3f388128290af0b3016f5e644e4" args="(const T Mass, const T Radius)" -->
65 <div class="memitem">
66 <div class="memproto">
67 <table class="memname">
68 <tr>
69 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::inertia::ballInertia3 </td>
70 <td>(</td>
71 <td class="paramtype">const T&#160;</td>
72 <td class="paramname"><em>Mass</em>, </td>
73 </tr>
74 <tr>
75 <td class="paramkey"></td>
76 <td></td>
77 <td class="paramtype">const T&#160;</td>
78 <td class="paramname"><em>Radius</em>&#160;</td>
79 </tr>
80 <tr>
81 <td></td>
82 <td>)</td>
83 <td></td><td></td>
84 </tr>
85 </table>
86 </div>
87 <div class="memdoc">
88
89 <p>Build an inertia matrix for a ball. </p>
90 <p>From GLM_GTX_inertia extension. </p>
91
92 </div>
93 </div>
94 <a class="anchor" id="ga33e5d8cfae7d8d2ee4369bbc68b20304"></a><!-- doxytag: member="glm::gtx::inertia::ballInertia4" ref="ga33e5d8cfae7d8d2ee4369bbc68b20304" args="(const T Mass, const T Radius)" -->
95 <div class="memitem">
96 <div class="memproto">
97 <table class="memname">
98 <tr>
99 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::inertia::ballInertia4 </td>
100 <td>(</td>
101 <td class="paramtype">const T&#160;</td>
102 <td class="paramname"><em>Mass</em>, </td>
103 </tr>
104 <tr>
105 <td class="paramkey"></td>
106 <td></td>
107 <td class="paramtype">const T&#160;</td>
108 <td class="paramname"><em>Radius</em>&#160;</td>
109 </tr>
110 <tr>
111 <td></td>
112 <td>)</td>
113 <td></td><td></td>
114 </tr>
115 </table>
116 </div>
117 <div class="memdoc">
118
119 <p>Build an inertia matrix for a ball. </p>
120 <p>From GLM_GTX_inertia extension. </p>
121
122 </div>
123 </div>
124 <a class="anchor" id="ga2bc514c4c44559a1f76776ad723833b8"></a><!-- doxytag: member="glm::gtx::inertia::boxInertia3" ref="ga2bc514c4c44559a1f76776ad723833b8" args="(const T Mass, const detail::tvec3&lt; T &gt; &amp;Scale)" -->
125 <div class="memitem">
126 <div class="memproto">
127 <table class="memname">
128 <tr>
129 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::inertia::boxInertia3 </td>
130 <td>(</td>
131 <td class="paramtype">const T&#160;</td>
132 <td class="paramname"><em>Mass</em>, </td>
133 </tr>
134 <tr>
135 <td class="paramkey"></td>
136 <td></td>
137 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
138 <td class="paramname"><em>Scale</em>&#160;</td>
139 </tr>
140 <tr>
141 <td></td>
142 <td>)</td>
143 <td></td><td></td>
144 </tr>
145 </table>
146 </div>
147 <div class="memdoc">
148
149 <p>Build an inertia matrix for a box. </p>
150 <p>From GLM_GTX_inertia extension. </p>
151
152 </div>
153 </div>
154 <a class="anchor" id="ga02d62ab1fe6c9eaaac001f0c73c787f2"></a><!-- doxytag: member="glm::gtx::inertia::boxInertia4" ref="ga02d62ab1fe6c9eaaac001f0c73c787f2" args="(const T Mass, const detail::tvec3&lt; T &gt; &amp;Scale)" -->
155 <div class="memitem">
156 <div class="memproto">
157 <table class="memname">
158 <tr>
159 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::inertia::boxInertia4 </td>
160 <td>(</td>
161 <td class="paramtype">const T&#160;</td>
162 <td class="paramname"><em>Mass</em>, </td>
163 </tr>
164 <tr>
165 <td class="paramkey"></td>
166 <td></td>
167 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
168 <td class="paramname"><em>Scale</em>&#160;</td>
169 </tr>
170 <tr>
171 <td></td>
172 <td>)</td>
173 <td></td><td></td>
174 </tr>
175 </table>
176 </div>
177 <div class="memdoc">
178
179 <p>Build an inertia matrix for a box. </p>
180 <p>From GLM_GTX_inertia extension. </p>
181
182 </div>
183 </div>
184 <a class="anchor" id="gaceea61bf41a4cc6f934543bb42c30ab2"></a><!-- doxytag: member="glm::gtx::inertia::diskInertia3" ref="gaceea61bf41a4cc6f934543bb42c30ab2" args="(const T Mass, const T Radius)" -->
185 <div class="memitem">
186 <div class="memproto">
187 <table class="memname">
188 <tr>
189 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::inertia::diskInertia3 </td>
190 <td>(</td>
191 <td class="paramtype">const T&#160;</td>
192 <td class="paramname"><em>Mass</em>, </td>
193 </tr>
194 <tr>
195 <td class="paramkey"></td>
196 <td></td>
197 <td class="paramtype">const T&#160;</td>
198 <td class="paramname"><em>Radius</em>&#160;</td>
199 </tr>
200 <tr>
201 <td></td>
202 <td>)</td>
203 <td></td><td></td>
204 </tr>
205 </table>
206 </div>
207 <div class="memdoc">
208
209 <p>Build an inertia matrix for a disk. </p>
210 <p>From GLM_GTX_inertia extension. </p>
211
212 </div>
213 </div>
214 <a class="anchor" id="ga0f6f854161239bed615b5cba1cd85d8a"></a><!-- doxytag: member="glm::gtx::inertia::diskInertia4" ref="ga0f6f854161239bed615b5cba1cd85d8a" args="(const T Mass, const T Radius)" -->
215 <div class="memitem">
216 <div class="memproto">
217 <table class="memname">
218 <tr>
219 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::inertia::diskInertia4 </td>
220 <td>(</td>
221 <td class="paramtype">const T&#160;</td>
222 <td class="paramname"><em>Mass</em>, </td>
223 </tr>
224 <tr>
225 <td class="paramkey"></td>
226 <td></td>
227 <td class="paramtype">const T&#160;</td>
228 <td class="paramname"><em>Radius</em>&#160;</td>
229 </tr>
230 <tr>
231 <td></td>
232 <td>)</td>
233 <td></td><td></td>
234 </tr>
235 </table>
236 </div>
237 <div class="memdoc">
238
239 <p>Build an inertia matrix for a disk. </p>
240 <p>From GLM_GTX_inertia extension. </p>
241
242 </div>
243 </div>
244 <a class="anchor" id="gad3bcd1a2ac02d030f6b774f5692aee01"></a><!-- doxytag: member="glm::gtx::inertia::sphereInertia3" ref="gad3bcd1a2ac02d030f6b774f5692aee01" args="(const T Mass, const T Radius)" -->
245 <div class="memitem">
246 <div class="memproto">
247 <table class="memname">
248 <tr>
249 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::inertia::sphereInertia3 </td>
250 <td>(</td>
251 <td class="paramtype">const T&#160;</td>
252 <td class="paramname"><em>Mass</em>, </td>
253 </tr>
254 <tr>
255 <td class="paramkey"></td>
256 <td></td>
257 <td class="paramtype">const T&#160;</td>
258 <td class="paramname"><em>Radius</em>&#160;</td>
259 </tr>
260 <tr>
261 <td></td>
262 <td>)</td>
263 <td></td><td></td>
264 </tr>
265 </table>
266 </div>
267 <div class="memdoc">
268
269 <p>Build an inertia matrix for a sphere. </p>
270 <p>From GLM_GTX_inertia extension. </p>
271
272 </div>
273 </div>
274 <a class="anchor" id="ga3d50f9cd04751451b22d712f1ce26351"></a><!-- doxytag: member="glm::gtx::inertia::sphereInertia4" ref="ga3d50f9cd04751451b22d712f1ce26351" args="(const T Mass, const T Radius)" -->
275 <div class="memitem">
276 <div class="memproto">
277 <table class="memname">
278 <tr>
279 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::inertia::sphereInertia4 </td>
280 <td>(</td>
281 <td class="paramtype">const T&#160;</td>
282 <td class="paramname"><em>Mass</em>, </td>
283 </tr>
284 <tr>
285 <td class="paramkey"></td>
286 <td></td>
287 <td class="paramtype">const T&#160;</td>
288 <td class="paramname"><em>Radius</em>&#160;</td>
289 </tr>
290 <tr>
291 <td></td>
292 <td>)</td>
293 <td></td><td></td>
294 </tr>
295 </table>
296 </div>
297 <div class="memdoc">
298
299 <p>Build an inertia matrix for a sphere. </p>
300 <p>From GLM_GTX_inertia extension. </p>
121301
122302 </div>
123303 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_inertia: Intertial matrix</title>
4 <title>GLM_GTX_int_10_10_10_2: Packed integer</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_inertia: Intertial matrix</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_int_10_10_10_2: Packed integer</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Create inertia matrices.
38 <p>Pack vector to 1010102 integers. Storage only.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00265.html#gac855b3f388128290af0b3016f5e644e4">ballInertia3</a> (const T Mass, const T Radius)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00265.html#ga33e5d8cfae7d8d2ee4369bbc68b20304">ballInertia4</a> (const T Mass, const T Radius)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00265.html#ga2bc514c4c44559a1f76776ad723833b8">boxInertia3</a> (const T Mass, const detail::tvec3&lt; T &gt; &amp;Scale)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00265.html#ga02d62ab1fe6c9eaaac001f0c73c787f2">boxInertia4</a> (const T Mass, const detail::tvec3&lt; T &gt; &amp;Scale)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00265.html#gaceea61bf41a4cc6f934543bb42c30ab2">diskInertia3</a> (const T Mass, const T Radius)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00265.html#ga0f6f854161239bed615b5cba1cd85d8a">diskInertia4</a> (const T Mass, const T Radius)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00265.html#gad3bcd1a2ac02d030f6b774f5692aee01">sphereInertia3</a> (const T Mass, const T Radius)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00265.html#ga3d50f9cd04751451b22d712f1ce26351">sphereInertia4</a> (const T Mass, const T Radius)</td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">dword&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00265.html#ga01b292ff461ea3d8e90a916c5b374fb1">uint10_10_10_2_cast</a> (<a class="el" href="a00022.html">glm::vec4</a> const &amp;v)</td></tr>
5944 </table>
6045 <hr/><a name="_details"></a><h2>Detailed Description</h2>
61 <p>Create inertia matrices. </p>
62 <p>&lt;<a class="el" href="a00059_source.html">glm/gtx/inertia.hpp</a>&gt; need to be included to use these functionalities. </p>
46 <p>Pack vector to 1010102 integers. Storage only. </p>
47 <p>&lt;<a class="el" href="a00060_source.html">glm/gtx/int_10_10_10_2.hpp</a>&gt; need to be included to use these functionalities. </p>
6348 <hr/><h2>Function Documentation</h2>
64 <a class="anchor" id="gac855b3f388128290af0b3016f5e644e4"></a><!-- doxytag: member="glm::gtx::inertia::ballInertia3" ref="gac855b3f388128290af0b3016f5e644e4" args="(const T Mass, const T Radius)" -->
49 <a class="anchor" id="ga01b292ff461ea3d8e90a916c5b374fb1"></a><!-- doxytag: member="glm::gtx::int_10_10_10_2::uint10_10_10_2_cast" ref="ga01b292ff461ea3d8e90a916c5b374fb1" args="(glm::vec4 const &amp;v)" -->
6550 <div class="memitem">
6651 <div class="memproto">
6752 <table class="memname">
6853 <tr>
69 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::inertia::ballInertia3 </td>
54 <td class="memname">dword glm::gtx::int_10_10_10_2::uint10_10_10_2_cast </td>
7055 <td>(</td>
71 <td class="paramtype">const T&#160;</td>
72 <td class="paramname"><em>Mass</em>, </td>
73 </tr>
74 <tr>
75 <td class="paramkey"></td>
56 <td class="paramtype"><a class="el" href="a00022.html">glm::vec4</a> const &amp;&#160;</td>
57 <td class="paramname"><em>v</em></td><td>)</td>
7658 <td></td>
77 <td class="paramtype">const T&#160;</td>
78 <td class="paramname"><em>Radius</em>&#160;</td>
79 </tr>
80 <tr>
81 <td></td>
82 <td>)</td>
83 <td></td><td></td>
8459 </tr>
8560 </table>
8661 </div>
8762 <div class="memdoc">
8863
89 <p>Build an inertia matrix for a ball. </p>
90 <p>From GLM_GTX_inertia extension. </p>
91
92 </div>
93 </div>
94 <a class="anchor" id="ga33e5d8cfae7d8d2ee4369bbc68b20304"></a><!-- doxytag: member="glm::gtx::inertia::ballInertia4" ref="ga33e5d8cfae7d8d2ee4369bbc68b20304" args="(const T Mass, const T Radius)" -->
95 <div class="memitem">
96 <div class="memproto">
97 <table class="memname">
98 <tr>
99 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::inertia::ballInertia4 </td>
100 <td>(</td>
101 <td class="paramtype">const T&#160;</td>
102 <td class="paramname"><em>Mass</em>, </td>
103 </tr>
104 <tr>
105 <td class="paramkey"></td>
106 <td></td>
107 <td class="paramtype">const T&#160;</td>
108 <td class="paramname"><em>Radius</em>&#160;</td>
109 </tr>
110 <tr>
111 <td></td>
112 <td>)</td>
113 <td></td><td></td>
114 </tr>
115 </table>
116 </div>
117 <div class="memdoc">
118
119 <p>Build an inertia matrix for a ball. </p>
120 <p>From GLM_GTX_inertia extension. </p>
121
122 </div>
123 </div>
124 <a class="anchor" id="ga2bc514c4c44559a1f76776ad723833b8"></a><!-- doxytag: member="glm::gtx::inertia::boxInertia3" ref="ga2bc514c4c44559a1f76776ad723833b8" args="(const T Mass, const detail::tvec3&lt; T &gt; &amp;Scale)" -->
125 <div class="memitem">
126 <div class="memproto">
127 <table class="memname">
128 <tr>
129 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::inertia::boxInertia3 </td>
130 <td>(</td>
131 <td class="paramtype">const T&#160;</td>
132 <td class="paramname"><em>Mass</em>, </td>
133 </tr>
134 <tr>
135 <td class="paramkey"></td>
136 <td></td>
137 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
138 <td class="paramname"><em>Scale</em>&#160;</td>
139 </tr>
140 <tr>
141 <td></td>
142 <td>)</td>
143 <td></td><td></td>
144 </tr>
145 </table>
146 </div>
147 <div class="memdoc">
148
149 <p>Build an inertia matrix for a box. </p>
150 <p>From GLM_GTX_inertia extension. </p>
151
152 </div>
153 </div>
154 <a class="anchor" id="ga02d62ab1fe6c9eaaac001f0c73c787f2"></a><!-- doxytag: member="glm::gtx::inertia::boxInertia4" ref="ga02d62ab1fe6c9eaaac001f0c73c787f2" args="(const T Mass, const detail::tvec3&lt; T &gt; &amp;Scale)" -->
155 <div class="memitem">
156 <div class="memproto">
157 <table class="memname">
158 <tr>
159 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::inertia::boxInertia4 </td>
160 <td>(</td>
161 <td class="paramtype">const T&#160;</td>
162 <td class="paramname"><em>Mass</em>, </td>
163 </tr>
164 <tr>
165 <td class="paramkey"></td>
166 <td></td>
167 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
168 <td class="paramname"><em>Scale</em>&#160;</td>
169 </tr>
170 <tr>
171 <td></td>
172 <td>)</td>
173 <td></td><td></td>
174 </tr>
175 </table>
176 </div>
177 <div class="memdoc">
178
179 <p>Build an inertia matrix for a box. </p>
180 <p>From GLM_GTX_inertia extension. </p>
181
182 </div>
183 </div>
184 <a class="anchor" id="gaceea61bf41a4cc6f934543bb42c30ab2"></a><!-- doxytag: member="glm::gtx::inertia::diskInertia3" ref="gaceea61bf41a4cc6f934543bb42c30ab2" args="(const T Mass, const T Radius)" -->
185 <div class="memitem">
186 <div class="memproto">
187 <table class="memname">
188 <tr>
189 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::inertia::diskInertia3 </td>
190 <td>(</td>
191 <td class="paramtype">const T&#160;</td>
192 <td class="paramname"><em>Mass</em>, </td>
193 </tr>
194 <tr>
195 <td class="paramkey"></td>
196 <td></td>
197 <td class="paramtype">const T&#160;</td>
198 <td class="paramname"><em>Radius</em>&#160;</td>
199 </tr>
200 <tr>
201 <td></td>
202 <td>)</td>
203 <td></td><td></td>
204 </tr>
205 </table>
206 </div>
207 <div class="memdoc">
208
209 <p>Build an inertia matrix for a disk. </p>
210 <p>From GLM_GTX_inertia extension. </p>
211
212 </div>
213 </div>
214 <a class="anchor" id="ga0f6f854161239bed615b5cba1cd85d8a"></a><!-- doxytag: member="glm::gtx::inertia::diskInertia4" ref="ga0f6f854161239bed615b5cba1cd85d8a" args="(const T Mass, const T Radius)" -->
215 <div class="memitem">
216 <div class="memproto">
217 <table class="memname">
218 <tr>
219 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::inertia::diskInertia4 </td>
220 <td>(</td>
221 <td class="paramtype">const T&#160;</td>
222 <td class="paramname"><em>Mass</em>, </td>
223 </tr>
224 <tr>
225 <td class="paramkey"></td>
226 <td></td>
227 <td class="paramtype">const T&#160;</td>
228 <td class="paramname"><em>Radius</em>&#160;</td>
229 </tr>
230 <tr>
231 <td></td>
232 <td>)</td>
233 <td></td><td></td>
234 </tr>
235 </table>
236 </div>
237 <div class="memdoc">
238
239 <p>Build an inertia matrix for a disk. </p>
240 <p>From GLM_GTX_inertia extension. </p>
241
242 </div>
243 </div>
244 <a class="anchor" id="gad3bcd1a2ac02d030f6b774f5692aee01"></a><!-- doxytag: member="glm::gtx::inertia::sphereInertia3" ref="gad3bcd1a2ac02d030f6b774f5692aee01" args="(const T Mass, const T Radius)" -->
245 <div class="memitem">
246 <div class="memproto">
247 <table class="memname">
248 <tr>
249 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::inertia::sphereInertia3 </td>
250 <td>(</td>
251 <td class="paramtype">const T&#160;</td>
252 <td class="paramname"><em>Mass</em>, </td>
253 </tr>
254 <tr>
255 <td class="paramkey"></td>
256 <td></td>
257 <td class="paramtype">const T&#160;</td>
258 <td class="paramname"><em>Radius</em>&#160;</td>
259 </tr>
260 <tr>
261 <td></td>
262 <td>)</td>
263 <td></td><td></td>
264 </tr>
265 </table>
266 </div>
267 <div class="memdoc">
268
269 <p>Build an inertia matrix for a sphere. </p>
270 <p>From GLM_GTX_inertia extension. </p>
271
272 </div>
273 </div>
274 <a class="anchor" id="ga3d50f9cd04751451b22d712f1ce26351"></a><!-- doxytag: member="glm::gtx::inertia::sphereInertia4" ref="ga3d50f9cd04751451b22d712f1ce26351" args="(const T Mass, const T Radius)" -->
275 <div class="memitem">
276 <div class="memproto">
277 <table class="memname">
278 <tr>
279 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::inertia::sphereInertia4 </td>
280 <td>(</td>
281 <td class="paramtype">const T&#160;</td>
282 <td class="paramname"><em>Mass</em>, </td>
283 </tr>
284 <tr>
285 <td class="paramkey"></td>
286 <td></td>
287 <td class="paramtype">const T&#160;</td>
288 <td class="paramname"><em>Radius</em>&#160;</td>
289 </tr>
290 <tr>
291 <td></td>
292 <td>)</td>
293 <td></td><td></td>
294 </tr>
295 </table>
296 </div>
297 <div class="memdoc">
298
299 <p>Build an inertia matrix for a sphere. </p>
300 <p>From GLM_GTX_inertia extension. </p>
64 <p>From GLM_GTX_int_10_10_10_2 extension. </p>
65 <p>Cast a vec4 to an u_10_10_10_2. </p>
30166
30267 </div>
30368 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_int_10_10_10_2: Packed integer</title>
4 <title>GLM_GTX_integer: Extended integer functions</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_int_10_10_10_2: Packed integer</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_integer: Extended integer functions</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Pack vector to 1010102 integers. Storage only.
38 <p>Add support for integer for core functions.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">dword&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00266.html#ga01b292ff461ea3d8e90a916c5b374fb1">uint10_10_10_2_cast</a> (<a class="el" href="a00022.html">glm::vec4</a> const &amp;v)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00266.html#gab45d1385cbb477a5684f80b0e24807e4">factorial</a> (genType const &amp;x)</td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00266.html#gaf48bc86895ab82c0e1f6f282d5cb6861">mod</a> (int x, int y)</td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00266.html#gaf34adb6543aab76a364f40bb77dbaeb8">pow</a> (int x, int y)</td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00266.html#gac6ee2be886e1f3be68adc5ee0552bad7">sqrt</a> (int x)</td></tr>
4448 </table>
4549 <hr/><a name="_details"></a><h2>Detailed Description</h2>
46 <p>Pack vector to 1010102 integers. Storage only. </p>
47 <p>&lt;<a class="el" href="a00060_source.html">glm/gtx/int_10_10_10_2.hpp</a>&gt; need to be included to use these functionalities. </p>
50 <p>Add support for integer for core functions. </p>
51 <p>&lt;<a class="el" href="a00061_source.html">glm/gtx/integer.hpp</a>&gt; need to be included to use these functionalities. </p>
4852 <hr/><h2>Function Documentation</h2>
49 <a class="anchor" id="ga01b292ff461ea3d8e90a916c5b374fb1"></a><!-- doxytag: member="glm::gtx::int_10_10_10_2::uint10_10_10_2_cast" ref="ga01b292ff461ea3d8e90a916c5b374fb1" args="(glm::vec4 const &amp;v)" -->
53 <a class="anchor" id="gab45d1385cbb477a5684f80b0e24807e4"></a><!-- doxytag: member="glm::gtx::integer::factorial" ref="gab45d1385cbb477a5684f80b0e24807e4" args="(genType const &amp;x)" -->
5054 <div class="memitem">
5155 <div class="memproto">
5256 <table class="memname">
5357 <tr>
54 <td class="memname">dword glm::gtx::int_10_10_10_2::uint10_10_10_2_cast </td>
58 <td class="memname">genType glm::gtx::integer::factorial </td>
5559 <td>(</td>
56 <td class="paramtype"><a class="el" href="a00022.html">glm::vec4</a> const &amp;&#160;</td>
57 <td class="paramname"><em>v</em></td><td>)</td>
60 <td class="paramtype">genType const &amp;&#160;</td>
61 <td class="paramname"><em>x</em></td><td>)</td>
5862 <td></td>
5963 </tr>
6064 </table>
6165 </div>
6266 <div class="memdoc">
6367
64 <p>From GLM_GTX_int_10_10_10_2 extension. </p>
65 <p>Cast a vec4 to an u_10_10_10_2. </p>
68 <p>Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension. </p>
69
70 </div>
71 </div>
72 <a class="anchor" id="gaf48bc86895ab82c0e1f6f282d5cb6861"></a><!-- doxytag: member="glm::gtx::integer::mod" ref="gaf48bc86895ab82c0e1f6f282d5cb6861" args="(int x, int y)" -->
73 <div class="memitem">
74 <div class="memproto">
75 <table class="memname">
76 <tr>
77 <td class="memname">int glm::gtx::integer::mod </td>
78 <td>(</td>
79 <td class="paramtype">int&#160;</td>
80 <td class="paramname"><em>x</em>, </td>
81 </tr>
82 <tr>
83 <td class="paramkey"></td>
84 <td></td>
85 <td class="paramtype">int&#160;</td>
86 <td class="paramname"><em>y</em>&#160;</td>
87 </tr>
88 <tr>
89 <td></td>
90 <td>)</td>
91 <td></td><td></td>
92 </tr>
93 </table>
94 </div>
95 <div class="memdoc">
96
97 <p>Modulus. </p>
98 <p>Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension. </p>
99
100 </div>
101 </div>
102 <a class="anchor" id="gaf34adb6543aab76a364f40bb77dbaeb8"></a><!-- doxytag: member="glm::gtx::integer::pow" ref="gaf34adb6543aab76a364f40bb77dbaeb8" args="(int x, int y)" -->
103 <div class="memitem">
104 <div class="memproto">
105 <table class="memname">
106 <tr>
107 <td class="memname">int glm::gtx::integer::pow </td>
108 <td>(</td>
109 <td class="paramtype">int&#160;</td>
110 <td class="paramname"><em>x</em>, </td>
111 </tr>
112 <tr>
113 <td class="paramkey"></td>
114 <td></td>
115 <td class="paramtype">int&#160;</td>
116 <td class="paramname"><em>y</em>&#160;</td>
117 </tr>
118 <tr>
119 <td></td>
120 <td>)</td>
121 <td></td><td></td>
122 </tr>
123 </table>
124 </div>
125 <div class="memdoc">
126
127 <p>Returns x raised to the y power. </p>
128 <p>From GLM_GTX_integer extension. </p>
129
130 </div>
131 </div>
132 <a class="anchor" id="gac6ee2be886e1f3be68adc5ee0552bad7"></a><!-- doxytag: member="glm::gtx::integer::sqrt" ref="gac6ee2be886e1f3be68adc5ee0552bad7" args="(int x)" -->
133 <div class="memitem">
134 <div class="memproto">
135 <table class="memname">
136 <tr>
137 <td class="memname">int glm::gtx::integer::sqrt </td>
138 <td>(</td>
139 <td class="paramtype">int&#160;</td>
140 <td class="paramname"><em>x</em></td><td>)</td>
141 <td></td>
142 </tr>
143 </table>
144 </div>
145 <div class="memdoc">
146
147 <p>Returns the positive square root of x. </p>
148 <p>From GLM_GTX_integer extension. </p>
66149
67150 </div>
68151 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_integer: Extended integer functions</title>
4 <title>GLM_GTX_intersect: Intersection tests</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_integer: Extended integer functions</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_intersect: Intersection tests</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Add support for integer for core functions.
38 <p>Add intersection functions.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
4343 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00267.html#gab45d1385cbb477a5684f80b0e24807e4">factorial</a> (genType const &amp;x)</td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00267.html#gaf48bc86895ab82c0e1f6f282d5cb6861">mod</a> (int x, int y)</td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00267.html#gaf34adb6543aab76a364f40bb77dbaeb8">pow</a> (int x, int y)</td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00267.html#gac6ee2be886e1f3be68adc5ee0552bad7">sqrt</a> (int x)</td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00267.html#ga33f0584acca58d7446daf594c3b8295f">intersectLineSphere</a> (genType const &amp;point0, genType const &amp;point1, genType const &amp;center, typename genType::value_type radius, genType &amp;position, genType &amp;normal)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00267.html#ga0922c431baec628c6955011c79d39cd9">intersectLineTriangle</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;position)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00267.html#gaa03b236dbd4df6b0519b1f2ceea7ef8c">intersectRaySphere</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;center, typename genType::value_type radius, genType &amp;position, genType &amp;normal)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00267.html#ga6ce58ac1371605381abb3e00cfe36d78">intersectRayTriangle</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;baryPosition)</td></tr>
4851 </table>
4952 <hr/><a name="_details"></a><h2>Detailed Description</h2>
50 <p>Add support for integer for core functions. </p>
51 <p>&lt;<a class="el" href="a00061_source.html">glm/gtx/integer.hpp</a>&gt; need to be included to use these functionalities. </p>
53 <p>Add intersection functions. </p>
54 <p>&lt;<a class="el" href="a00062_source.html">glm/gtx/intersect.hpp</a>&gt; need to be included to use these functionalities. </p>
5255 <hr/><h2>Function Documentation</h2>
53 <a class="anchor" id="gab45d1385cbb477a5684f80b0e24807e4"></a><!-- doxytag: member="glm::gtx::integer::factorial" ref="gab45d1385cbb477a5684f80b0e24807e4" args="(genType const &amp;x)" -->
54 <div class="memitem">
55 <div class="memproto">
56 <table class="memname">
57 <tr>
58 <td class="memname">genType glm::gtx::integer::factorial </td>
59 <td>(</td>
60 <td class="paramtype">genType const &amp;&#160;</td>
61 <td class="paramname"><em>x</em></td><td>)</td>
62 <td></td>
63 </tr>
64 </table>
65 </div>
66 <div class="memdoc">
67
68 <p>Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension. </p>
69
70 </div>
71 </div>
72 <a class="anchor" id="gaf48bc86895ab82c0e1f6f282d5cb6861"></a><!-- doxytag: member="glm::gtx::integer::mod" ref="gaf48bc86895ab82c0e1f6f282d5cb6861" args="(int x, int y)" -->
73 <div class="memitem">
74 <div class="memproto">
75 <table class="memname">
76 <tr>
77 <td class="memname">int glm::gtx::integer::mod </td>
78 <td>(</td>
79 <td class="paramtype">int&#160;</td>
80 <td class="paramname"><em>x</em>, </td>
81 </tr>
82 <tr>
83 <td class="paramkey"></td>
84 <td></td>
85 <td class="paramtype">int&#160;</td>
86 <td class="paramname"><em>y</em>&#160;</td>
87 </tr>
88 <tr>
89 <td></td>
90 <td>)</td>
91 <td></td><td></td>
92 </tr>
93 </table>
94 </div>
95 <div class="memdoc">
96
97 <p>Modulus. </p>
98 <p>Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension. </p>
99
100 </div>
101 </div>
102 <a class="anchor" id="gaf34adb6543aab76a364f40bb77dbaeb8"></a><!-- doxytag: member="glm::gtx::integer::pow" ref="gaf34adb6543aab76a364f40bb77dbaeb8" args="(int x, int y)" -->
103 <div class="memitem">
104 <div class="memproto">
105 <table class="memname">
106 <tr>
107 <td class="memname">int glm::gtx::integer::pow </td>
108 <td>(</td>
109 <td class="paramtype">int&#160;</td>
110 <td class="paramname"><em>x</em>, </td>
111 </tr>
112 <tr>
113 <td class="paramkey"></td>
114 <td></td>
115 <td class="paramtype">int&#160;</td>
116 <td class="paramname"><em>y</em>&#160;</td>
117 </tr>
118 <tr>
119 <td></td>
120 <td>)</td>
121 <td></td><td></td>
122 </tr>
123 </table>
124 </div>
125 <div class="memdoc">
126
127 <p>Returns x raised to the y power. </p>
128 <p>From GLM_GTX_integer extension. </p>
129
130 </div>
131 </div>
132 <a class="anchor" id="gac6ee2be886e1f3be68adc5ee0552bad7"></a><!-- doxytag: member="glm::gtx::integer::sqrt" ref="gac6ee2be886e1f3be68adc5ee0552bad7" args="(int x)" -->
133 <div class="memitem">
134 <div class="memproto">
135 <table class="memname">
136 <tr>
137 <td class="memname">int glm::gtx::integer::sqrt </td>
138 <td>(</td>
139 <td class="paramtype">int&#160;</td>
140 <td class="paramname"><em>x</em></td><td>)</td>
141 <td></td>
142 </tr>
143 </table>
144 </div>
145 <div class="memdoc">
146
147 <p>Returns the positive square root of x. </p>
148 <p>From GLM_GTX_integer extension. </p>
56 <a class="anchor" id="ga33f0584acca58d7446daf594c3b8295f"></a><!-- doxytag: member="glm::gtx::intersect::intersectLineSphere" ref="ga33f0584acca58d7446daf594c3b8295f" args="(genType const &amp;point0, genType const &amp;point1, genType const &amp;center, typename genType::value_type radius, genType &amp;position, genType &amp;normal)" -->
57 <div class="memitem">
58 <div class="memproto">
59 <table class="memname">
60 <tr>
61 <td class="memname">bool glm::gtx::intersect::intersectLineSphere </td>
62 <td>(</td>
63 <td class="paramtype">genType const &amp;&#160;</td>
64 <td class="paramname"><em>point0</em>, </td>
65 </tr>
66 <tr>
67 <td class="paramkey"></td>
68 <td></td>
69 <td class="paramtype">genType const &amp;&#160;</td>
70 <td class="paramname"><em>point1</em>, </td>
71 </tr>
72 <tr>
73 <td class="paramkey"></td>
74 <td></td>
75 <td class="paramtype">genType const &amp;&#160;</td>
76 <td class="paramname"><em>center</em>, </td>
77 </tr>
78 <tr>
79 <td class="paramkey"></td>
80 <td></td>
81 <td class="paramtype">typename genType::value_type&#160;</td>
82 <td class="paramname"><em>radius</em>, </td>
83 </tr>
84 <tr>
85 <td class="paramkey"></td>
86 <td></td>
87 <td class="paramtype">genType &amp;&#160;</td>
88 <td class="paramname"><em>position</em>, </td>
89 </tr>
90 <tr>
91 <td class="paramkey"></td>
92 <td></td>
93 <td class="paramtype">genType &amp;&#160;</td>
94 <td class="paramname"><em>normal</em>&#160;</td>
95 </tr>
96 <tr>
97 <td></td>
98 <td>)</td>
99 <td></td><td></td>
100 </tr>
101 </table>
102 </div>
103 <div class="memdoc">
104
105 <p>Compute the intersection of a line and a sphere. </p>
106 <p>From GLM_GTX_intersect extension </p>
107
108 </div>
109 </div>
110 <a class="anchor" id="ga0922c431baec628c6955011c79d39cd9"></a><!-- doxytag: member="glm::gtx::intersect::intersectLineTriangle" ref="ga0922c431baec628c6955011c79d39cd9" args="(genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;position)" -->
111 <div class="memitem">
112 <div class="memproto">
113 <table class="memname">
114 <tr>
115 <td class="memname">bool glm::gtx::intersect::intersectLineTriangle </td>
116 <td>(</td>
117 <td class="paramtype">genType const &amp;&#160;</td>
118 <td class="paramname"><em>orig</em>, </td>
119 </tr>
120 <tr>
121 <td class="paramkey"></td>
122 <td></td>
123 <td class="paramtype">genType const &amp;&#160;</td>
124 <td class="paramname"><em>dir</em>, </td>
125 </tr>
126 <tr>
127 <td class="paramkey"></td>
128 <td></td>
129 <td class="paramtype">genType const &amp;&#160;</td>
130 <td class="paramname"><em>vert0</em>, </td>
131 </tr>
132 <tr>
133 <td class="paramkey"></td>
134 <td></td>
135 <td class="paramtype">genType const &amp;&#160;</td>
136 <td class="paramname"><em>vert1</em>, </td>
137 </tr>
138 <tr>
139 <td class="paramkey"></td>
140 <td></td>
141 <td class="paramtype">genType const &amp;&#160;</td>
142 <td class="paramname"><em>vert2</em>, </td>
143 </tr>
144 <tr>
145 <td class="paramkey"></td>
146 <td></td>
147 <td class="paramtype">genType &amp;&#160;</td>
148 <td class="paramname"><em>position</em>&#160;</td>
149 </tr>
150 <tr>
151 <td></td>
152 <td>)</td>
153 <td></td><td></td>
154 </tr>
155 </table>
156 </div>
157 <div class="memdoc">
158
159 <p>Compute the intersection of a line and a triangle. </p>
160 <p>From GLM_GTX_intersect extension. </p>
161
162 </div>
163 </div>
164 <a class="anchor" id="gaa03b236dbd4df6b0519b1f2ceea7ef8c"></a><!-- doxytag: member="glm::gtx::intersect::intersectRaySphere" ref="gaa03b236dbd4df6b0519b1f2ceea7ef8c" args="(genType const &amp;orig, genType const &amp;dir, genType const &amp;center, typename genType::value_type radius, genType &amp;position, genType &amp;normal)" -->
165 <div class="memitem">
166 <div class="memproto">
167 <table class="memname">
168 <tr>
169 <td class="memname">bool glm::gtx::intersect::intersectRaySphere </td>
170 <td>(</td>
171 <td class="paramtype">genType const &amp;&#160;</td>
172 <td class="paramname"><em>orig</em>, </td>
173 </tr>
174 <tr>
175 <td class="paramkey"></td>
176 <td></td>
177 <td class="paramtype">genType const &amp;&#160;</td>
178 <td class="paramname"><em>dir</em>, </td>
179 </tr>
180 <tr>
181 <td class="paramkey"></td>
182 <td></td>
183 <td class="paramtype">genType const &amp;&#160;</td>
184 <td class="paramname"><em>center</em>, </td>
185 </tr>
186 <tr>
187 <td class="paramkey"></td>
188 <td></td>
189 <td class="paramtype">typename genType::value_type&#160;</td>
190 <td class="paramname"><em>radius</em>, </td>
191 </tr>
192 <tr>
193 <td class="paramkey"></td>
194 <td></td>
195 <td class="paramtype">genType &amp;&#160;</td>
196 <td class="paramname"><em>position</em>, </td>
197 </tr>
198 <tr>
199 <td class="paramkey"></td>
200 <td></td>
201 <td class="paramtype">genType &amp;&#160;</td>
202 <td class="paramname"><em>normal</em>&#160;</td>
203 </tr>
204 <tr>
205 <td></td>
206 <td>)</td>
207 <td></td><td></td>
208 </tr>
209 </table>
210 </div>
211 <div class="memdoc">
212
213 <p>Compute the intersection of a ray and a sphere. </p>
214 <p>From GLM_GTX_intersect extension. </p>
215
216 </div>
217 </div>
218 <a class="anchor" id="ga6ce58ac1371605381abb3e00cfe36d78"></a><!-- doxytag: member="glm::gtx::intersect::intersectRayTriangle" ref="ga6ce58ac1371605381abb3e00cfe36d78" args="(genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;baryPosition)" -->
219 <div class="memitem">
220 <div class="memproto">
221 <table class="memname">
222 <tr>
223 <td class="memname">bool glm::gtx::intersect::intersectRayTriangle </td>
224 <td>(</td>
225 <td class="paramtype">genType const &amp;&#160;</td>
226 <td class="paramname"><em>orig</em>, </td>
227 </tr>
228 <tr>
229 <td class="paramkey"></td>
230 <td></td>
231 <td class="paramtype">genType const &amp;&#160;</td>
232 <td class="paramname"><em>dir</em>, </td>
233 </tr>
234 <tr>
235 <td class="paramkey"></td>
236 <td></td>
237 <td class="paramtype">genType const &amp;&#160;</td>
238 <td class="paramname"><em>vert0</em>, </td>
239 </tr>
240 <tr>
241 <td class="paramkey"></td>
242 <td></td>
243 <td class="paramtype">genType const &amp;&#160;</td>
244 <td class="paramname"><em>vert1</em>, </td>
245 </tr>
246 <tr>
247 <td class="paramkey"></td>
248 <td></td>
249 <td class="paramtype">genType const &amp;&#160;</td>
250 <td class="paramname"><em>vert2</em>, </td>
251 </tr>
252 <tr>
253 <td class="paramkey"></td>
254 <td></td>
255 <td class="paramtype">genType &amp;&#160;</td>
256 <td class="paramname"><em>baryPosition</em>&#160;</td>
257 </tr>
258 <tr>
259 <td></td>
260 <td>)</td>
261 <td></td><td></td>
262 </tr>
263 </table>
264 </div>
265 <div class="memdoc">
266
267 <p>Compute the intersection of a ray and a triangle. </p>
268 <p>From GLM_GTX_intersect extension. </p>
149269
150270 </div>
151271 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_intersect: Intersection tests</title>
4 <title>GLM_GTX_log_base: Log with base</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_intersect: Intersection tests</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_log_base: Log with base</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Add intersection functions.
38 <p>Logarithm for any base. base can be a vector or a scalar.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
4343 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00268.html#ga33f0584acca58d7446daf594c3b8295f">intersectLineSphere</a> (genType const &amp;point0, genType const &amp;point1, genType const &amp;center, typename genType::value_type radius, genType &amp;position, genType &amp;normal)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00268.html#ga0922c431baec628c6955011c79d39cd9">intersectLineTriangle</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;position)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00268.html#gaa03b236dbd4df6b0519b1f2ceea7ef8c">intersectRaySphere</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;center, typename genType::value_type radius, genType &amp;position, genType &amp;normal)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00268.html#ga6ce58ac1371605381abb3e00cfe36d78">intersectRayTriangle</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;baryPosition)</td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00268.html#ga78c6b55186a549948b9783bdee1dd5e0">log</a> (genType const &amp;x, genType const &amp;base)</td></tr>
5145 </table>
5246 <hr/><a name="_details"></a><h2>Detailed Description</h2>
53 <p>Add intersection functions. </p>
54 <p>&lt;<a class="el" href="a00062_source.html">glm/gtx/intersect.hpp</a>&gt; need to be included to use these functionalities. </p>
47 <p>Logarithm for any base. base can be a vector or a scalar. </p>
48 <p>&lt;<a class="el" href="a00069_source.html">glm/gtx/log_base.hpp</a>&gt; need to be included to use these functionalities. </p>
5549 <hr/><h2>Function Documentation</h2>
56 <a class="anchor" id="ga33f0584acca58d7446daf594c3b8295f"></a><!-- doxytag: member="glm::gtx::intersect::intersectLineSphere" ref="ga33f0584acca58d7446daf594c3b8295f" args="(genType const &amp;point0, genType const &amp;point1, genType const &amp;center, typename genType::value_type radius, genType &amp;position, genType &amp;normal)" -->
50 <a class="anchor" id="ga78c6b55186a549948b9783bdee1dd5e0"></a><!-- doxytag: member="glm::gtx::log_base::log" ref="ga78c6b55186a549948b9783bdee1dd5e0" args="(genType const &amp;x, genType const &amp;base)" -->
5751 <div class="memitem">
5852 <div class="memproto">
5953 <table class="memname">
6054 <tr>
61 <td class="memname">bool glm::gtx::intersect::intersectLineSphere </td>
55 <td class="memname">genType glm::gtx::log_base::log </td>
6256 <td>(</td>
6357 <td class="paramtype">genType const &amp;&#160;</td>
64 <td class="paramname"><em>point0</em>, </td>
58 <td class="paramname"><em>x</em>, </td>
6559 </tr>
6660 <tr>
6761 <td class="paramkey"></td>
6862 <td></td>
6963 <td class="paramtype">genType const &amp;&#160;</td>
70 <td class="paramname"><em>point1</em>, </td>
71 </tr>
72 <tr>
73 <td class="paramkey"></td>
74 <td></td>
75 <td class="paramtype">genType const &amp;&#160;</td>
76 <td class="paramname"><em>center</em>, </td>
77 </tr>
78 <tr>
79 <td class="paramkey"></td>
80 <td></td>
81 <td class="paramtype">typename genType::value_type&#160;</td>
82 <td class="paramname"><em>radius</em>, </td>
83 </tr>
84 <tr>
85 <td class="paramkey"></td>
86 <td></td>
87 <td class="paramtype">genType &amp;&#160;</td>
88 <td class="paramname"><em>position</em>, </td>
89 </tr>
90 <tr>
91 <td class="paramkey"></td>
92 <td></td>
93 <td class="paramtype">genType &amp;&#160;</td>
94 <td class="paramname"><em>normal</em>&#160;</td>
64 <td class="paramname"><em>base</em>&#160;</td>
9565 </tr>
9666 <tr>
9767 <td></td>
10272 </div>
10373 <div class="memdoc">
10474
105 <p>Compute the intersection of a line and a sphere. </p>
106 <p>From GLM_GTX_intersect extension </p>
107
108 </div>
109 </div>
110 <a class="anchor" id="ga0922c431baec628c6955011c79d39cd9"></a><!-- doxytag: member="glm::gtx::intersect::intersectLineTriangle" ref="ga0922c431baec628c6955011c79d39cd9" args="(genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;position)" -->
111 <div class="memitem">
112 <div class="memproto">
113 <table class="memname">
114 <tr>
115 <td class="memname">bool glm::gtx::intersect::intersectLineTriangle </td>
116 <td>(</td>
117 <td class="paramtype">genType const &amp;&#160;</td>
118 <td class="paramname"><em>orig</em>, </td>
119 </tr>
120 <tr>
121 <td class="paramkey"></td>
122 <td></td>
123 <td class="paramtype">genType const &amp;&#160;</td>
124 <td class="paramname"><em>dir</em>, </td>
125 </tr>
126 <tr>
127 <td class="paramkey"></td>
128 <td></td>
129 <td class="paramtype">genType const &amp;&#160;</td>
130 <td class="paramname"><em>vert0</em>, </td>
131 </tr>
132 <tr>
133 <td class="paramkey"></td>
134 <td></td>
135 <td class="paramtype">genType const &amp;&#160;</td>
136 <td class="paramname"><em>vert1</em>, </td>
137 </tr>
138 <tr>
139 <td class="paramkey"></td>
140 <td></td>
141 <td class="paramtype">genType const &amp;&#160;</td>
142 <td class="paramname"><em>vert2</em>, </td>
143 </tr>
144 <tr>
145 <td class="paramkey"></td>
146 <td></td>
147 <td class="paramtype">genType &amp;&#160;</td>
148 <td class="paramname"><em>position</em>&#160;</td>
149 </tr>
150 <tr>
151 <td></td>
152 <td>)</td>
153 <td></td><td></td>
154 </tr>
155 </table>
156 </div>
157 <div class="memdoc">
158
159 <p>Compute the intersection of a line and a triangle. </p>
160 <p>From GLM_GTX_intersect extension. </p>
161
162 </div>
163 </div>
164 <a class="anchor" id="gaa03b236dbd4df6b0519b1f2ceea7ef8c"></a><!-- doxytag: member="glm::gtx::intersect::intersectRaySphere" ref="gaa03b236dbd4df6b0519b1f2ceea7ef8c" args="(genType const &amp;orig, genType const &amp;dir, genType const &amp;center, typename genType::value_type radius, genType &amp;position, genType &amp;normal)" -->
165 <div class="memitem">
166 <div class="memproto">
167 <table class="memname">
168 <tr>
169 <td class="memname">bool glm::gtx::intersect::intersectRaySphere </td>
170 <td>(</td>
171 <td class="paramtype">genType const &amp;&#160;</td>
172 <td class="paramname"><em>orig</em>, </td>
173 </tr>
174 <tr>
175 <td class="paramkey"></td>
176 <td></td>
177 <td class="paramtype">genType const &amp;&#160;</td>
178 <td class="paramname"><em>dir</em>, </td>
179 </tr>
180 <tr>
181 <td class="paramkey"></td>
182 <td></td>
183 <td class="paramtype">genType const &amp;&#160;</td>
184 <td class="paramname"><em>center</em>, </td>
185 </tr>
186 <tr>
187 <td class="paramkey"></td>
188 <td></td>
189 <td class="paramtype">typename genType::value_type&#160;</td>
190 <td class="paramname"><em>radius</em>, </td>
191 </tr>
192 <tr>
193 <td class="paramkey"></td>
194 <td></td>
195 <td class="paramtype">genType &amp;&#160;</td>
196 <td class="paramname"><em>position</em>, </td>
197 </tr>
198 <tr>
199 <td class="paramkey"></td>
200 <td></td>
201 <td class="paramtype">genType &amp;&#160;</td>
202 <td class="paramname"><em>normal</em>&#160;</td>
203 </tr>
204 <tr>
205 <td></td>
206 <td>)</td>
207 <td></td><td></td>
208 </tr>
209 </table>
210 </div>
211 <div class="memdoc">
212
213 <p>Compute the intersection of a ray and a sphere. </p>
214 <p>From GLM_GTX_intersect extension. </p>
215
216 </div>
217 </div>
218 <a class="anchor" id="ga6ce58ac1371605381abb3e00cfe36d78"></a><!-- doxytag: member="glm::gtx::intersect::intersectRayTriangle" ref="ga6ce58ac1371605381abb3e00cfe36d78" args="(genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;baryPosition)" -->
219 <div class="memitem">
220 <div class="memproto">
221 <table class="memname">
222 <tr>
223 <td class="memname">bool glm::gtx::intersect::intersectRayTriangle </td>
224 <td>(</td>
225 <td class="paramtype">genType const &amp;&#160;</td>
226 <td class="paramname"><em>orig</em>, </td>
227 </tr>
228 <tr>
229 <td class="paramkey"></td>
230 <td></td>
231 <td class="paramtype">genType const &amp;&#160;</td>
232 <td class="paramname"><em>dir</em>, </td>
233 </tr>
234 <tr>
235 <td class="paramkey"></td>
236 <td></td>
237 <td class="paramtype">genType const &amp;&#160;</td>
238 <td class="paramname"><em>vert0</em>, </td>
239 </tr>
240 <tr>
241 <td class="paramkey"></td>
242 <td></td>
243 <td class="paramtype">genType const &amp;&#160;</td>
244 <td class="paramname"><em>vert1</em>, </td>
245 </tr>
246 <tr>
247 <td class="paramkey"></td>
248 <td></td>
249 <td class="paramtype">genType const &amp;&#160;</td>
250 <td class="paramname"><em>vert2</em>, </td>
251 </tr>
252 <tr>
253 <td class="paramkey"></td>
254 <td></td>
255 <td class="paramtype">genType &amp;&#160;</td>
256 <td class="paramname"><em>baryPosition</em>&#160;</td>
257 </tr>
258 <tr>
259 <td></td>
260 <td>)</td>
261 <td></td><td></td>
262 </tr>
263 </table>
264 </div>
265 <div class="memdoc">
266
267 <p>Compute the intersection of a ray and a triangle. </p>
268 <p>From GLM_GTX_intersect extension. </p>
75 <p>Logarithm for any base. </p>
76 <p>From GLM_GTX_log_base. </p>
26977
27078 </div>
27179 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_log_base: Log with base</title>
4 <title>GLM_GTX_matrix_cross_product: Cross product matrix form</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_log_base: Log with base</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_matrix_cross_product: Cross product matrix form</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Logarithm for any base. base can be a vector or a scalar.
38 <p>Build cross product matrices.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00269.html#ga78c6b55186a549948b9783bdee1dd5e0">log</a> (genType const &amp;x, genType const &amp;base)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00269.html#gaa153d0f2600403c659a81a39b59b0f2c">matrixCross3</a> (detail::tvec3&lt; T &gt; const &amp;x)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00269.html#ga8cb94c98874b9b3deff5ad590e0cac23">matrixCross4</a> (detail::tvec3&lt; T &gt; const &amp;x)</td></tr>
4547 </table>
4648 <hr/><a name="_details"></a><h2>Detailed Description</h2>
47 <p>Logarithm for any base. base can be a vector or a scalar. </p>
48 <p>&lt;<a class="el" href="a00069_source.html">glm/gtx/log_base.hpp</a>&gt; need to be included to use these functionalities. </p>
49 <p>Build cross product matrices. </p>
50 <p>&lt;<a class="el" href="a00072_source.html">glm/gtx/matrix_cross_product.hpp</a>&gt; need to be included to use these functionalities. </p>
4951 <hr/><h2>Function Documentation</h2>
50 <a class="anchor" id="ga78c6b55186a549948b9783bdee1dd5e0"></a><!-- doxytag: member="glm::gtx::log_base::log" ref="ga78c6b55186a549948b9783bdee1dd5e0" args="(genType const &amp;x, genType const &amp;base)" -->
52 <a class="anchor" id="gaa153d0f2600403c659a81a39b59b0f2c"></a><!-- doxytag: member="glm::gtx::matrix_cross_product::matrixCross3" ref="gaa153d0f2600403c659a81a39b59b0f2c" args="(detail::tvec3&lt; T &gt; const &amp;x)" -->
5153 <div class="memitem">
5254 <div class="memproto">
5355 <table class="memname">
5456 <tr>
55 <td class="memname">genType glm::gtx::log_base::log </td>
57 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::matrix_cross_product::matrixCross3 </td>
5658 <td>(</td>
57 <td class="paramtype">genType const &amp;&#160;</td>
58 <td class="paramname"><em>x</em>, </td>
59 </tr>
60 <tr>
61 <td class="paramkey"></td>
59 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
60 <td class="paramname"><em>x</em></td><td>)</td>
6261 <td></td>
63 <td class="paramtype">genType const &amp;&#160;</td>
64 <td class="paramname"><em>base</em>&#160;</td>
65 </tr>
66 <tr>
67 <td></td>
68 <td>)</td>
69 <td></td><td></td>
7062 </tr>
7163 </table>
7264 </div>
7365 <div class="memdoc">
7466
75 <p>Logarithm for any base. </p>
76 <p>From GLM_GTX_log_base. </p>
67 <p>Build a cross product matrix. </p>
68 <p>From GLM_GTX_matrix_cross_product extension. </p>
69
70 </div>
71 </div>
72 <a class="anchor" id="ga8cb94c98874b9b3deff5ad590e0cac23"></a><!-- doxytag: member="glm::gtx::matrix_cross_product::matrixCross4" ref="ga8cb94c98874b9b3deff5ad590e0cac23" args="(detail::tvec3&lt; T &gt; const &amp;x)" -->
73 <div class="memitem">
74 <div class="memproto">
75 <table class="memname">
76 <tr>
77 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::matrix_cross_product::matrixCross4 </td>
78 <td>(</td>
79 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
80 <td class="paramname"><em>x</em></td><td>)</td>
81 <td></td>
82 </tr>
83 </table>
84 </div>
85 <div class="memdoc">
86
87 <p>Build a cross product matrix. </p>
88 <p>From GLM_GTX_matrix_cross_product extension. </p>
7789
7890 </div>
7991 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_matrix_cross_product: Cross product matrix form</title>
4 <title>GLM_GTX_matrix_major_storage: Build matrix</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_matrix_cross_product: Cross product matrix form</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_matrix_major_storage: Build matrix</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Build cross product matrices.
38 <p>Build matrices with specific matrix order, row or column.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
4343 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#gaa153d0f2600403c659a81a39b59b0f2c">matrixCross3</a> (detail::tvec3&lt; T &gt; const &amp;x)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#ga8cb94c98874b9b3deff5ad590e0cac23">matrixCross4</a> (detail::tvec3&lt; T &gt; const &amp;x)</td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#ga340582d0baf34cf642a6f2ffa34d1d12">colMajor2</a> (const detail::tvec2&lt; T &gt; &amp;v1, const detail::tvec2&lt; T &gt; &amp;v2)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#ga790e5da0b14c7e16485316a744053f1a">colMajor2</a> (const detail::tmat2x2&lt; T &gt; &amp;m)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#ga2951b0d82dcc941092fcca1035d789e1">colMajor3</a> (const detail::tvec3&lt; T &gt; &amp;v1, const detail::tvec3&lt; T &gt; &amp;v2, const detail::tvec3&lt; T &gt; &amp;v3)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#gabe588fc41bddce04701dbf3a1ac05e27">colMajor3</a> (const detail::tmat3x3&lt; T &gt; &amp;m)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#ga03d1d5a138cc0b75a380376e6c114d6c">colMajor4</a> (const detail::tvec4&lt; T &gt; &amp;v1, const detail::tvec4&lt; T &gt; &amp;v2, const detail::tvec4&lt; T &gt; &amp;v3, const detail::tvec4&lt; T &gt; &amp;v4)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#ga5eb07557f70bf4c8de34260bfd7290e7">colMajor4</a> (const detail::tmat4x4&lt; T &gt; &amp;m)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#gac567549fa1a74fe436290181c1a59850">rowMajor2</a> (const detail::tmat2x2&lt; T &gt; &amp;m)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#ga136490f7562fa59d7733e2664f8c9fbb">rowMajor2</a> (const detail::tvec2&lt; T &gt; &amp;v1, const detail::tvec2&lt; T &gt; &amp;v2)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#ga276a9398b180d8028b4a73fb9e675a23">rowMajor3</a> (const detail::tvec3&lt; T &gt; &amp;v1, const detail::tvec3&lt; T &gt; &amp;v2, const detail::tvec3&lt; T &gt; &amp;v3)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#gafa70a1af7982d99ad6842684dde3c663">rowMajor3</a> (const detail::tmat3x3&lt; T &gt; &amp;m)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#gab834e851140a115bad912ebac8335bc6">rowMajor4</a> (const detail::tmat4x4&lt; T &gt; &amp;m)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00270.html#gae1d60e551ab2912d6bb32a999c65b932">rowMajor4</a> (const detail::tvec4&lt; T &gt; &amp;v1, const detail::tvec4&lt; T &gt; &amp;v2, const detail::tvec4&lt; T &gt; &amp;v3, const detail::tvec4&lt; T &gt; &amp;v4)</td></tr>
4767 </table>
4868 <hr/><a name="_details"></a><h2>Detailed Description</h2>
49 <p>Build cross product matrices. </p>
50 <p>&lt;<a class="el" href="a00072_source.html">glm/gtx/matrix_cross_product.hpp</a>&gt; need to be included to use these functionalities. </p>
69 <p>Build matrices with specific matrix order, row or column. </p>
70 <p>&lt;<a class="el" href="a00076_source.html">glm/gtx/matrix_major_storage.hpp</a>&gt; need to be included to use these functionalities. </p>
5171 <hr/><h2>Function Documentation</h2>
52 <a class="anchor" id="gaa153d0f2600403c659a81a39b59b0f2c"></a><!-- doxytag: member="glm::gtx::matrix_cross_product::matrixCross3" ref="gaa153d0f2600403c659a81a39b59b0f2c" args="(detail::tvec3&lt; T &gt; const &amp;x)" -->
53 <div class="memitem">
54 <div class="memproto">
55 <table class="memname">
56 <tr>
57 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::matrix_cross_product::matrixCross3 </td>
58 <td>(</td>
59 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
60 <td class="paramname"><em>x</em></td><td>)</td>
61 <td></td>
62 </tr>
63 </table>
64 </div>
65 <div class="memdoc">
66
67 <p>Build a cross product matrix. </p>
68 <p>From GLM_GTX_matrix_cross_product extension. </p>
69
70 </div>
71 </div>
72 <a class="anchor" id="ga8cb94c98874b9b3deff5ad590e0cac23"></a><!-- doxytag: member="glm::gtx::matrix_cross_product::matrixCross4" ref="ga8cb94c98874b9b3deff5ad590e0cac23" args="(detail::tvec3&lt; T &gt; const &amp;x)" -->
73 <div class="memitem">
74 <div class="memproto">
75 <table class="memname">
76 <tr>
77 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::matrix_cross_product::matrixCross4 </td>
78 <td>(</td>
79 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
80 <td class="paramname"><em>x</em></td><td>)</td>
81 <td></td>
82 </tr>
83 </table>
84 </div>
85 <div class="memdoc">
86
87 <p>Build a cross product matrix. </p>
88 <p>From GLM_GTX_matrix_cross_product extension. </p>
72 <a class="anchor" id="ga340582d0baf34cf642a6f2ffa34d1d12"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::colMajor2" ref="ga340582d0baf34cf642a6f2ffa34d1d12" args="(const detail::tvec2&lt; T &gt; &amp;v1, const detail::tvec2&lt; T &gt; &amp;v2)" -->
73 <div class="memitem">
74 <div class="memproto">
75 <table class="memname">
76 <tr>
77 <td class="memname">detail::tmat2x2&lt;T&gt; glm::gtx::matrix_major_storage::colMajor2 </td>
78 <td>(</td>
79 <td class="paramtype">const detail::tvec2&lt; T &gt; &amp;&#160;</td>
80 <td class="paramname"><em>v1</em>, </td>
81 </tr>
82 <tr>
83 <td class="paramkey"></td>
84 <td></td>
85 <td class="paramtype">const detail::tvec2&lt; T &gt; &amp;&#160;</td>
86 <td class="paramname"><em>v2</em>&#160;</td>
87 </tr>
88 <tr>
89 <td></td>
90 <td>)</td>
91 <td></td><td></td>
92 </tr>
93 </table>
94 </div>
95 <div class="memdoc">
96
97 <p>Build a column major matrix from column vectors. </p>
98 <p>From GLM_GTX_matrix_major_storage extension. </p>
99
100 </div>
101 </div>
102 <a class="anchor" id="ga790e5da0b14c7e16485316a744053f1a"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::colMajor2" ref="ga790e5da0b14c7e16485316a744053f1a" args="(const detail::tmat2x2&lt; T &gt; &amp;m)" -->
103 <div class="memitem">
104 <div class="memproto">
105 <table class="memname">
106 <tr>
107 <td class="memname">detail::tmat2x2&lt;T&gt; glm::gtx::matrix_major_storage::colMajor2 </td>
108 <td>(</td>
109 <td class="paramtype">const detail::tmat2x2&lt; T &gt; &amp;&#160;</td>
110 <td class="paramname"><em>m</em></td><td>)</td>
111 <td></td>
112 </tr>
113 </table>
114 </div>
115 <div class="memdoc">
116
117 <p>Build a column major matrix from other matrix. </p>
118 <p>From GLM_GTX_matrix_major_storage extension. </p>
119
120 </div>
121 </div>
122 <a class="anchor" id="ga2951b0d82dcc941092fcca1035d789e1"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::colMajor3" ref="ga2951b0d82dcc941092fcca1035d789e1" args="(const detail::tvec3&lt; T &gt; &amp;v1, const detail::tvec3&lt; T &gt; &amp;v2, const detail::tvec3&lt; T &gt; &amp;v3)" -->
123 <div class="memitem">
124 <div class="memproto">
125 <table class="memname">
126 <tr>
127 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::matrix_major_storage::colMajor3 </td>
128 <td>(</td>
129 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
130 <td class="paramname"><em>v1</em>, </td>
131 </tr>
132 <tr>
133 <td class="paramkey"></td>
134 <td></td>
135 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
136 <td class="paramname"><em>v2</em>, </td>
137 </tr>
138 <tr>
139 <td class="paramkey"></td>
140 <td></td>
141 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
142 <td class="paramname"><em>v3</em>&#160;</td>
143 </tr>
144 <tr>
145 <td></td>
146 <td>)</td>
147 <td></td><td></td>
148 </tr>
149 </table>
150 </div>
151 <div class="memdoc">
152
153 <p>Build a column major matrix from column vectors. </p>
154 <p>From GLM_GTX_matrix_major_storage extension. </p>
155
156 </div>
157 </div>
158 <a class="anchor" id="gabe588fc41bddce04701dbf3a1ac05e27"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::colMajor3" ref="gabe588fc41bddce04701dbf3a1ac05e27" args="(const detail::tmat3x3&lt; T &gt; &amp;m)" -->
159 <div class="memitem">
160 <div class="memproto">
161 <table class="memname">
162 <tr>
163 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::matrix_major_storage::colMajor3 </td>
164 <td>(</td>
165 <td class="paramtype">const detail::tmat3x3&lt; T &gt; &amp;&#160;</td>
166 <td class="paramname"><em>m</em></td><td>)</td>
167 <td></td>
168 </tr>
169 </table>
170 </div>
171 <div class="memdoc">
172
173 <p>Build a column major matrix from other matrix. </p>
174 <p>From GLM_GTX_matrix_major_storage extension. </p>
175
176 </div>
177 </div>
178 <a class="anchor" id="ga03d1d5a138cc0b75a380376e6c114d6c"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::colMajor4" ref="ga03d1d5a138cc0b75a380376e6c114d6c" args="(const detail::tvec4&lt; T &gt; &amp;v1, const detail::tvec4&lt; T &gt; &amp;v2, const detail::tvec4&lt; T &gt; &amp;v3, const detail::tvec4&lt; T &gt; &amp;v4)" -->
179 <div class="memitem">
180 <div class="memproto">
181 <table class="memname">
182 <tr>
183 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::matrix_major_storage::colMajor4 </td>
184 <td>(</td>
185 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
186 <td class="paramname"><em>v1</em>, </td>
187 </tr>
188 <tr>
189 <td class="paramkey"></td>
190 <td></td>
191 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
192 <td class="paramname"><em>v2</em>, </td>
193 </tr>
194 <tr>
195 <td class="paramkey"></td>
196 <td></td>
197 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
198 <td class="paramname"><em>v3</em>, </td>
199 </tr>
200 <tr>
201 <td class="paramkey"></td>
202 <td></td>
203 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
204 <td class="paramname"><em>v4</em>&#160;</td>
205 </tr>
206 <tr>
207 <td></td>
208 <td>)</td>
209 <td></td><td></td>
210 </tr>
211 </table>
212 </div>
213 <div class="memdoc">
214
215 <p>Build a column major matrix from column vectors. </p>
216 <p>From GLM_GTX_matrix_major_storage extension. </p>
217
218 </div>
219 </div>
220 <a class="anchor" id="ga5eb07557f70bf4c8de34260bfd7290e7"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::colMajor4" ref="ga5eb07557f70bf4c8de34260bfd7290e7" args="(const detail::tmat4x4&lt; T &gt; &amp;m)" -->
221 <div class="memitem">
222 <div class="memproto">
223 <table class="memname">
224 <tr>
225 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::matrix_major_storage::colMajor4 </td>
226 <td>(</td>
227 <td class="paramtype">const detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
228 <td class="paramname"><em>m</em></td><td>)</td>
229 <td></td>
230 </tr>
231 </table>
232 </div>
233 <div class="memdoc">
234
235 <p>Build a column major matrix from other matrix. </p>
236 <p>From GLM_GTX_matrix_major_storage extension. </p>
237
238 </div>
239 </div>
240 <a class="anchor" id="gac567549fa1a74fe436290181c1a59850"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::rowMajor2" ref="gac567549fa1a74fe436290181c1a59850" args="(const detail::tmat2x2&lt; T &gt; &amp;m)" -->
241 <div class="memitem">
242 <div class="memproto">
243 <table class="memname">
244 <tr>
245 <td class="memname">detail::tmat2x2&lt;T&gt; glm::gtx::matrix_major_storage::rowMajor2 </td>
246 <td>(</td>
247 <td class="paramtype">const detail::tmat2x2&lt; T &gt; &amp;&#160;</td>
248 <td class="paramname"><em>m</em></td><td>)</td>
249 <td></td>
250 </tr>
251 </table>
252 </div>
253 <div class="memdoc">
254
255 <p>Build a row major matrix from other matrix. </p>
256 <p>From GLM_GTX_matrix_major_storage extension. </p>
257
258 </div>
259 </div>
260 <a class="anchor" id="ga136490f7562fa59d7733e2664f8c9fbb"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::rowMajor2" ref="ga136490f7562fa59d7733e2664f8c9fbb" args="(const detail::tvec2&lt; T &gt; &amp;v1, const detail::tvec2&lt; T &gt; &amp;v2)" -->
261 <div class="memitem">
262 <div class="memproto">
263 <table class="memname">
264 <tr>
265 <td class="memname">detail::tmat2x2&lt;T&gt; glm::gtx::matrix_major_storage::rowMajor2 </td>
266 <td>(</td>
267 <td class="paramtype">const detail::tvec2&lt; T &gt; &amp;&#160;</td>
268 <td class="paramname"><em>v1</em>, </td>
269 </tr>
270 <tr>
271 <td class="paramkey"></td>
272 <td></td>
273 <td class="paramtype">const detail::tvec2&lt; T &gt; &amp;&#160;</td>
274 <td class="paramname"><em>v2</em>&#160;</td>
275 </tr>
276 <tr>
277 <td></td>
278 <td>)</td>
279 <td></td><td></td>
280 </tr>
281 </table>
282 </div>
283 <div class="memdoc">
284
285 <p>Build a row major matrix from row vectors. </p>
286 <p>From GLM_GTX_matrix_major_storage extension. </p>
287
288 </div>
289 </div>
290 <a class="anchor" id="ga276a9398b180d8028b4a73fb9e675a23"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::rowMajor3" ref="ga276a9398b180d8028b4a73fb9e675a23" args="(const detail::tvec3&lt; T &gt; &amp;v1, const detail::tvec3&lt; T &gt; &amp;v2, const detail::tvec3&lt; T &gt; &amp;v3)" -->
291 <div class="memitem">
292 <div class="memproto">
293 <table class="memname">
294 <tr>
295 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::matrix_major_storage::rowMajor3 </td>
296 <td>(</td>
297 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
298 <td class="paramname"><em>v1</em>, </td>
299 </tr>
300 <tr>
301 <td class="paramkey"></td>
302 <td></td>
303 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
304 <td class="paramname"><em>v2</em>, </td>
305 </tr>
306 <tr>
307 <td class="paramkey"></td>
308 <td></td>
309 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
310 <td class="paramname"><em>v3</em>&#160;</td>
311 </tr>
312 <tr>
313 <td></td>
314 <td>)</td>
315 <td></td><td></td>
316 </tr>
317 </table>
318 </div>
319 <div class="memdoc">
320
321 <p>Build a row major matrix from row vectors. </p>
322 <p>From GLM_GTX_matrix_major_storage extension. </p>
323
324 </div>
325 </div>
326 <a class="anchor" id="gafa70a1af7982d99ad6842684dde3c663"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::rowMajor3" ref="gafa70a1af7982d99ad6842684dde3c663" args="(const detail::tmat3x3&lt; T &gt; &amp;m)" -->
327 <div class="memitem">
328 <div class="memproto">
329 <table class="memname">
330 <tr>
331 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::matrix_major_storage::rowMajor3 </td>
332 <td>(</td>
333 <td class="paramtype">const detail::tmat3x3&lt; T &gt; &amp;&#160;</td>
334 <td class="paramname"><em>m</em></td><td>)</td>
335 <td></td>
336 </tr>
337 </table>
338 </div>
339 <div class="memdoc">
340
341 <p>Build a row major matrix from other matrix. </p>
342 <p>From GLM_GTX_matrix_major_storage extension. </p>
343
344 </div>
345 </div>
346 <a class="anchor" id="gab834e851140a115bad912ebac8335bc6"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::rowMajor4" ref="gab834e851140a115bad912ebac8335bc6" args="(const detail::tmat4x4&lt; T &gt; &amp;m)" -->
347 <div class="memitem">
348 <div class="memproto">
349 <table class="memname">
350 <tr>
351 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::matrix_major_storage::rowMajor4 </td>
352 <td>(</td>
353 <td class="paramtype">const detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
354 <td class="paramname"><em>m</em></td><td>)</td>
355 <td></td>
356 </tr>
357 </table>
358 </div>
359 <div class="memdoc">
360
361 <p>Build a row major matrix from other matrix. </p>
362 <p>From GLM_GTX_matrix_major_storage extension. </p>
363
364 </div>
365 </div>
366 <a class="anchor" id="gae1d60e551ab2912d6bb32a999c65b932"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::rowMajor4" ref="gae1d60e551ab2912d6bb32a999c65b932" args="(const detail::tvec4&lt; T &gt; &amp;v1, const detail::tvec4&lt; T &gt; &amp;v2, const detail::tvec4&lt; T &gt; &amp;v3, const detail::tvec4&lt; T &gt; &amp;v4)" -->
367 <div class="memitem">
368 <div class="memproto">
369 <table class="memname">
370 <tr>
371 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::matrix_major_storage::rowMajor4 </td>
372 <td>(</td>
373 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
374 <td class="paramname"><em>v1</em>, </td>
375 </tr>
376 <tr>
377 <td class="paramkey"></td>
378 <td></td>
379 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
380 <td class="paramname"><em>v2</em>, </td>
381 </tr>
382 <tr>
383 <td class="paramkey"></td>
384 <td></td>
385 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
386 <td class="paramname"><em>v3</em>, </td>
387 </tr>
388 <tr>
389 <td class="paramkey"></td>
390 <td></td>
391 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
392 <td class="paramname"><em>v4</em>&#160;</td>
393 </tr>
394 <tr>
395 <td></td>
396 <td>)</td>
397 <td></td><td></td>
398 </tr>
399 </table>
400 </div>
401 <div class="memdoc">
402
403 <p>Build a row major matrix from row vectors. </p>
404 <p>From GLM_GTX_matrix_major_storage extension. </p>
89405
90406 </div>
91407 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_matrix_major_storage: Build matrix</title>
4 <title>GLM_GTX_matrix_operation: Extended matrix operations</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_matrix_major_storage: Build matrix</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_matrix_operation: Extended matrix operations</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Build matrices with specific matrix order, row or column.
38 <p>Build diagonal matrices from vectors.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga340582d0baf34cf642a6f2ffa34d1d12">colMajor2</a> (const detail::tvec2&lt; T &gt; &amp;v1, const detail::tvec2&lt; T &gt; &amp;v2)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga790e5da0b14c7e16485316a744053f1a">colMajor2</a> (const detail::tmat2x2&lt; T &gt; &amp;m)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga2951b0d82dcc941092fcca1035d789e1">colMajor3</a> (const detail::tvec3&lt; T &gt; &amp;v1, const detail::tvec3&lt; T &gt; &amp;v2, const detail::tvec3&lt; T &gt; &amp;v3)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#gabe588fc41bddce04701dbf3a1ac05e27">colMajor3</a> (const detail::tmat3x3&lt; T &gt; &amp;m)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga03d1d5a138cc0b75a380376e6c114d6c">colMajor4</a> (const detail::tvec4&lt; T &gt; &amp;v1, const detail::tvec4&lt; T &gt; &amp;v2, const detail::tvec4&lt; T &gt; &amp;v3, const detail::tvec4&lt; T &gt; &amp;v4)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga5eb07557f70bf4c8de34260bfd7290e7">colMajor4</a> (const detail::tmat4x4&lt; T &gt; &amp;m)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#gac567549fa1a74fe436290181c1a59850">rowMajor2</a> (const detail::tmat2x2&lt; T &gt; &amp;m)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga136490f7562fa59d7733e2664f8c9fbb">rowMajor2</a> (const detail::tvec2&lt; T &gt; &amp;v1, const detail::tvec2&lt; T &gt; &amp;v2)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga276a9398b180d8028b4a73fb9e675a23">rowMajor3</a> (const detail::tvec3&lt; T &gt; &amp;v1, const detail::tvec3&lt; T &gt; &amp;v2, const detail::tvec3&lt; T &gt; &amp;v3)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#gafa70a1af7982d99ad6842684dde3c663">rowMajor3</a> (const detail::tmat3x3&lt; T &gt; &amp;m)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#gab834e851140a115bad912ebac8335bc6">rowMajor4</a> (const detail::tmat4x4&lt; T &gt; &amp;m)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#gae1d60e551ab2912d6bb32a999c65b932">rowMajor4</a> (const detail::tvec4&lt; T &gt; &amp;v1, const detail::tvec4&lt; T &gt; &amp;v2, const detail::tvec4&lt; T &gt; &amp;v3, const detail::tvec4&lt; T &gt; &amp;v4)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#gae2848e38a4533d20f5e7af384440d4d6">diagonal2x2</a> (detail::tvec2&lt; valType &gt; const &amp;v)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga61c9061e742d63c52cde17c0bc47a9f3">diagonal2x3</a> (detail::tvec2&lt; valType &gt; const &amp;v)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga1a2d2575b5a228370228d0ab34e704aa">diagonal2x4</a> (detail::tvec2&lt; valType &gt; const &amp;v)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x2&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga5e0245ab431bc049e69abeaaaaf2f455">diagonal3x2</a> (detail::tvec2&lt; valType &gt; const &amp;v)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#gacdd60defc29a8d1aa6be63387d3da76a">diagonal3x3</a> (detail::tvec3&lt; valType &gt; const &amp;v)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga3fb59fa3dd6a1db3a8712bcc0c92c926">diagonal3x4</a> (detail::tvec3&lt; valType &gt; const &amp;v)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x2&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga25edcc4359dc5a420df609bec1a83289">diagonal4x2</a> (detail::tvec2&lt; valType &gt; const &amp;v)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga7b855b1e9e014561a5edcd8cfd928fcc">diagonal4x3</a> (detail::tvec3&lt; valType &gt; const &amp;v)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00271.html#ga2b8a31afd6c7a64309810db58a35a6e8">diagonal4x4</a> (detail::tvec4&lt; valType &gt; const &amp;v)</td></tr>
6761 </table>
6862 <hr/><a name="_details"></a><h2>Detailed Description</h2>
69 <p>Build matrices with specific matrix order, row or column. </p>
70 <p>&lt;<a class="el" href="a00076_source.html">glm/gtx/matrix_major_storage.hpp</a>&gt; need to be included to use these functionalities. </p>
63 <p>Build diagonal matrices from vectors. </p>
64 <p>&lt;<a class="el" href="a00077_source.html">glm/gtx/matrix_operation.hpp</a>&gt; need to be included to use these functionalities. </p>
7165 <hr/><h2>Function Documentation</h2>
72 <a class="anchor" id="ga340582d0baf34cf642a6f2ffa34d1d12"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::colMajor2" ref="ga340582d0baf34cf642a6f2ffa34d1d12" args="(const detail::tvec2&lt; T &gt; &amp;v1, const detail::tvec2&lt; T &gt; &amp;v2)" -->
73 <div class="memitem">
74 <div class="memproto">
75 <table class="memname">
76 <tr>
77 <td class="memname">detail::tmat2x2&lt;T&gt; glm::gtx::matrix_major_storage::colMajor2 </td>
78 <td>(</td>
79 <td class="paramtype">const detail::tvec2&lt; T &gt; &amp;&#160;</td>
80 <td class="paramname"><em>v1</em>, </td>
81 </tr>
82 <tr>
83 <td class="paramkey"></td>
84 <td></td>
85 <td class="paramtype">const detail::tvec2&lt; T &gt; &amp;&#160;</td>
86 <td class="paramname"><em>v2</em>&#160;</td>
87 </tr>
88 <tr>
89 <td></td>
90 <td>)</td>
91 <td></td><td></td>
92 </tr>
93 </table>
94 </div>
95 <div class="memdoc">
96
97 <p>Build a column major matrix from column vectors. </p>
98 <p>From GLM_GTX_matrix_major_storage extension. </p>
99
100 </div>
101 </div>
102 <a class="anchor" id="ga790e5da0b14c7e16485316a744053f1a"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::colMajor2" ref="ga790e5da0b14c7e16485316a744053f1a" args="(const detail::tmat2x2&lt; T &gt; &amp;m)" -->
103 <div class="memitem">
104 <div class="memproto">
105 <table class="memname">
106 <tr>
107 <td class="memname">detail::tmat2x2&lt;T&gt; glm::gtx::matrix_major_storage::colMajor2 </td>
108 <td>(</td>
109 <td class="paramtype">const detail::tmat2x2&lt; T &gt; &amp;&#160;</td>
110 <td class="paramname"><em>m</em></td><td>)</td>
111 <td></td>
112 </tr>
113 </table>
114 </div>
115 <div class="memdoc">
116
117 <p>Build a column major matrix from other matrix. </p>
118 <p>From GLM_GTX_matrix_major_storage extension. </p>
119
120 </div>
121 </div>
122 <a class="anchor" id="ga2951b0d82dcc941092fcca1035d789e1"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::colMajor3" ref="ga2951b0d82dcc941092fcca1035d789e1" args="(const detail::tvec3&lt; T &gt; &amp;v1, const detail::tvec3&lt; T &gt; &amp;v2, const detail::tvec3&lt; T &gt; &amp;v3)" -->
123 <div class="memitem">
124 <div class="memproto">
125 <table class="memname">
126 <tr>
127 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::matrix_major_storage::colMajor3 </td>
128 <td>(</td>
129 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
130 <td class="paramname"><em>v1</em>, </td>
131 </tr>
132 <tr>
133 <td class="paramkey"></td>
134 <td></td>
135 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
136 <td class="paramname"><em>v2</em>, </td>
137 </tr>
138 <tr>
139 <td class="paramkey"></td>
140 <td></td>
141 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
142 <td class="paramname"><em>v3</em>&#160;</td>
143 </tr>
144 <tr>
145 <td></td>
146 <td>)</td>
147 <td></td><td></td>
148 </tr>
149 </table>
150 </div>
151 <div class="memdoc">
152
153 <p>Build a column major matrix from column vectors. </p>
154 <p>From GLM_GTX_matrix_major_storage extension. </p>
155
156 </div>
157 </div>
158 <a class="anchor" id="gabe588fc41bddce04701dbf3a1ac05e27"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::colMajor3" ref="gabe588fc41bddce04701dbf3a1ac05e27" args="(const detail::tmat3x3&lt; T &gt; &amp;m)" -->
159 <div class="memitem">
160 <div class="memproto">
161 <table class="memname">
162 <tr>
163 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::matrix_major_storage::colMajor3 </td>
164 <td>(</td>
165 <td class="paramtype">const detail::tmat3x3&lt; T &gt; &amp;&#160;</td>
166 <td class="paramname"><em>m</em></td><td>)</td>
167 <td></td>
168 </tr>
169 </table>
170 </div>
171 <div class="memdoc">
172
173 <p>Build a column major matrix from other matrix. </p>
174 <p>From GLM_GTX_matrix_major_storage extension. </p>
175
176 </div>
177 </div>
178 <a class="anchor" id="ga03d1d5a138cc0b75a380376e6c114d6c"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::colMajor4" ref="ga03d1d5a138cc0b75a380376e6c114d6c" args="(const detail::tvec4&lt; T &gt; &amp;v1, const detail::tvec4&lt; T &gt; &amp;v2, const detail::tvec4&lt; T &gt; &amp;v3, const detail::tvec4&lt; T &gt; &amp;v4)" -->
179 <div class="memitem">
180 <div class="memproto">
181 <table class="memname">
182 <tr>
183 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::matrix_major_storage::colMajor4 </td>
184 <td>(</td>
185 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
186 <td class="paramname"><em>v1</em>, </td>
187 </tr>
188 <tr>
189 <td class="paramkey"></td>
190 <td></td>
191 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
192 <td class="paramname"><em>v2</em>, </td>
193 </tr>
194 <tr>
195 <td class="paramkey"></td>
196 <td></td>
197 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
198 <td class="paramname"><em>v3</em>, </td>
199 </tr>
200 <tr>
201 <td class="paramkey"></td>
202 <td></td>
203 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
204 <td class="paramname"><em>v4</em>&#160;</td>
205 </tr>
206 <tr>
207 <td></td>
208 <td>)</td>
209 <td></td><td></td>
210 </tr>
211 </table>
212 </div>
213 <div class="memdoc">
214
215 <p>Build a column major matrix from column vectors. </p>
216 <p>From GLM_GTX_matrix_major_storage extension. </p>
217
218 </div>
219 </div>
220 <a class="anchor" id="ga5eb07557f70bf4c8de34260bfd7290e7"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::colMajor4" ref="ga5eb07557f70bf4c8de34260bfd7290e7" args="(const detail::tmat4x4&lt; T &gt; &amp;m)" -->
221 <div class="memitem">
222 <div class="memproto">
223 <table class="memname">
224 <tr>
225 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::matrix_major_storage::colMajor4 </td>
226 <td>(</td>
227 <td class="paramtype">const detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
228 <td class="paramname"><em>m</em></td><td>)</td>
229 <td></td>
230 </tr>
231 </table>
232 </div>
233 <div class="memdoc">
234
235 <p>Build a column major matrix from other matrix. </p>
236 <p>From GLM_GTX_matrix_major_storage extension. </p>
237
238 </div>
239 </div>
240 <a class="anchor" id="gac567549fa1a74fe436290181c1a59850"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::rowMajor2" ref="gac567549fa1a74fe436290181c1a59850" args="(const detail::tmat2x2&lt; T &gt; &amp;m)" -->
241 <div class="memitem">
242 <div class="memproto">
243 <table class="memname">
244 <tr>
245 <td class="memname">detail::tmat2x2&lt;T&gt; glm::gtx::matrix_major_storage::rowMajor2 </td>
246 <td>(</td>
247 <td class="paramtype">const detail::tmat2x2&lt; T &gt; &amp;&#160;</td>
248 <td class="paramname"><em>m</em></td><td>)</td>
249 <td></td>
250 </tr>
251 </table>
252 </div>
253 <div class="memdoc">
254
255 <p>Build a row major matrix from other matrix. </p>
256 <p>From GLM_GTX_matrix_major_storage extension. </p>
257
258 </div>
259 </div>
260 <a class="anchor" id="ga136490f7562fa59d7733e2664f8c9fbb"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::rowMajor2" ref="ga136490f7562fa59d7733e2664f8c9fbb" args="(const detail::tvec2&lt; T &gt; &amp;v1, const detail::tvec2&lt; T &gt; &amp;v2)" -->
261 <div class="memitem">
262 <div class="memproto">
263 <table class="memname">
264 <tr>
265 <td class="memname">detail::tmat2x2&lt;T&gt; glm::gtx::matrix_major_storage::rowMajor2 </td>
266 <td>(</td>
267 <td class="paramtype">const detail::tvec2&lt; T &gt; &amp;&#160;</td>
268 <td class="paramname"><em>v1</em>, </td>
269 </tr>
270 <tr>
271 <td class="paramkey"></td>
272 <td></td>
273 <td class="paramtype">const detail::tvec2&lt; T &gt; &amp;&#160;</td>
274 <td class="paramname"><em>v2</em>&#160;</td>
275 </tr>
276 <tr>
277 <td></td>
278 <td>)</td>
279 <td></td><td></td>
280 </tr>
281 </table>
282 </div>
283 <div class="memdoc">
284
285 <p>Build a row major matrix from row vectors. </p>
286 <p>From GLM_GTX_matrix_major_storage extension. </p>
287
288 </div>
289 </div>
290 <a class="anchor" id="ga276a9398b180d8028b4a73fb9e675a23"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::rowMajor3" ref="ga276a9398b180d8028b4a73fb9e675a23" args="(const detail::tvec3&lt; T &gt; &amp;v1, const detail::tvec3&lt; T &gt; &amp;v2, const detail::tvec3&lt; T &gt; &amp;v3)" -->
291 <div class="memitem">
292 <div class="memproto">
293 <table class="memname">
294 <tr>
295 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::matrix_major_storage::rowMajor3 </td>
296 <td>(</td>
297 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
298 <td class="paramname"><em>v1</em>, </td>
299 </tr>
300 <tr>
301 <td class="paramkey"></td>
302 <td></td>
303 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
304 <td class="paramname"><em>v2</em>, </td>
305 </tr>
306 <tr>
307 <td class="paramkey"></td>
308 <td></td>
309 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
310 <td class="paramname"><em>v3</em>&#160;</td>
311 </tr>
312 <tr>
313 <td></td>
314 <td>)</td>
315 <td></td><td></td>
316 </tr>
317 </table>
318 </div>
319 <div class="memdoc">
320
321 <p>Build a row major matrix from row vectors. </p>
322 <p>From GLM_GTX_matrix_major_storage extension. </p>
323
324 </div>
325 </div>
326 <a class="anchor" id="gafa70a1af7982d99ad6842684dde3c663"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::rowMajor3" ref="gafa70a1af7982d99ad6842684dde3c663" args="(const detail::tmat3x3&lt; T &gt; &amp;m)" -->
327 <div class="memitem">
328 <div class="memproto">
329 <table class="memname">
330 <tr>
331 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::matrix_major_storage::rowMajor3 </td>
332 <td>(</td>
333 <td class="paramtype">const detail::tmat3x3&lt; T &gt; &amp;&#160;</td>
334 <td class="paramname"><em>m</em></td><td>)</td>
335 <td></td>
336 </tr>
337 </table>
338 </div>
339 <div class="memdoc">
340
341 <p>Build a row major matrix from other matrix. </p>
342 <p>From GLM_GTX_matrix_major_storage extension. </p>
343
344 </div>
345 </div>
346 <a class="anchor" id="gab834e851140a115bad912ebac8335bc6"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::rowMajor4" ref="gab834e851140a115bad912ebac8335bc6" args="(const detail::tmat4x4&lt; T &gt; &amp;m)" -->
347 <div class="memitem">
348 <div class="memproto">
349 <table class="memname">
350 <tr>
351 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::matrix_major_storage::rowMajor4 </td>
352 <td>(</td>
353 <td class="paramtype">const detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
354 <td class="paramname"><em>m</em></td><td>)</td>
355 <td></td>
356 </tr>
357 </table>
358 </div>
359 <div class="memdoc">
360
361 <p>Build a row major matrix from other matrix. </p>
362 <p>From GLM_GTX_matrix_major_storage extension. </p>
363
364 </div>
365 </div>
366 <a class="anchor" id="gae1d60e551ab2912d6bb32a999c65b932"></a><!-- doxytag: member="glm::gtx::matrix_major_storage::rowMajor4" ref="gae1d60e551ab2912d6bb32a999c65b932" args="(const detail::tvec4&lt; T &gt; &amp;v1, const detail::tvec4&lt; T &gt; &amp;v2, const detail::tvec4&lt; T &gt; &amp;v3, const detail::tvec4&lt; T &gt; &amp;v4)" -->
367 <div class="memitem">
368 <div class="memproto">
369 <table class="memname">
370 <tr>
371 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::matrix_major_storage::rowMajor4 </td>
372 <td>(</td>
373 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
374 <td class="paramname"><em>v1</em>, </td>
375 </tr>
376 <tr>
377 <td class="paramkey"></td>
378 <td></td>
379 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
380 <td class="paramname"><em>v2</em>, </td>
381 </tr>
382 <tr>
383 <td class="paramkey"></td>
384 <td></td>
385 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
386 <td class="paramname"><em>v3</em>, </td>
387 </tr>
388 <tr>
389 <td class="paramkey"></td>
390 <td></td>
391 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
392 <td class="paramname"><em>v4</em>&#160;</td>
393 </tr>
394 <tr>
395 <td></td>
396 <td>)</td>
397 <td></td><td></td>
398 </tr>
399 </table>
400 </div>
401 <div class="memdoc">
402
403 <p>Build a row major matrix from row vectors. </p>
404 <p>From GLM_GTX_matrix_major_storage extension. </p>
66 <a class="anchor" id="gae2848e38a4533d20f5e7af384440d4d6"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal2x2" ref="gae2848e38a4533d20f5e7af384440d4d6" args="(detail::tvec2&lt; valType &gt; const &amp;v)" -->
67 <div class="memitem">
68 <div class="memproto">
69 <table class="memname">
70 <tr>
71 <td class="memname">detail::tmat2x2&lt;valType&gt; glm::gtx::matrix_operation::diagonal2x2 </td>
72 <td>(</td>
73 <td class="paramtype">detail::tvec2&lt; valType &gt; const &amp;&#160;</td>
74 <td class="paramname"><em>v</em></td><td>)</td>
75 <td></td>
76 </tr>
77 </table>
78 </div>
79 <div class="memdoc">
80
81 <p>Build a diagonal matrix. </p>
82 <p>From GLM_GTX_matrix_operation extension. </p>
83
84 </div>
85 </div>
86 <a class="anchor" id="ga61c9061e742d63c52cde17c0bc47a9f3"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal2x3" ref="ga61c9061e742d63c52cde17c0bc47a9f3" args="(detail::tvec2&lt; valType &gt; const &amp;v)" -->
87 <div class="memitem">
88 <div class="memproto">
89 <table class="memname">
90 <tr>
91 <td class="memname">detail::tmat2x3&lt;valType&gt; glm::gtx::matrix_operation::diagonal2x3 </td>
92 <td>(</td>
93 <td class="paramtype">detail::tvec2&lt; valType &gt; const &amp;&#160;</td>
94 <td class="paramname"><em>v</em></td><td>)</td>
95 <td></td>
96 </tr>
97 </table>
98 </div>
99 <div class="memdoc">
100
101 <p>Build a diagonal matrix. </p>
102 <p>From GLM_GTX_matrix_operation extension. </p>
103
104 </div>
105 </div>
106 <a class="anchor" id="ga1a2d2575b5a228370228d0ab34e704aa"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal2x4" ref="ga1a2d2575b5a228370228d0ab34e704aa" args="(detail::tvec2&lt; valType &gt; const &amp;v)" -->
107 <div class="memitem">
108 <div class="memproto">
109 <table class="memname">
110 <tr>
111 <td class="memname">detail::tmat2x4&lt;valType&gt; glm::gtx::matrix_operation::diagonal2x4 </td>
112 <td>(</td>
113 <td class="paramtype">detail::tvec2&lt; valType &gt; const &amp;&#160;</td>
114 <td class="paramname"><em>v</em></td><td>)</td>
115 <td></td>
116 </tr>
117 </table>
118 </div>
119 <div class="memdoc">
120
121 <p>Build a diagonal matrix. </p>
122 <p>From GLM_GTX_matrix_operation extension. </p>
123
124 </div>
125 </div>
126 <a class="anchor" id="ga5e0245ab431bc049e69abeaaaaf2f455"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal3x2" ref="ga5e0245ab431bc049e69abeaaaaf2f455" args="(detail::tvec2&lt; valType &gt; const &amp;v)" -->
127 <div class="memitem">
128 <div class="memproto">
129 <table class="memname">
130 <tr>
131 <td class="memname">detail::tmat3x2&lt;valType&gt; glm::gtx::matrix_operation::diagonal3x2 </td>
132 <td>(</td>
133 <td class="paramtype">detail::tvec2&lt; valType &gt; const &amp;&#160;</td>
134 <td class="paramname"><em>v</em></td><td>)</td>
135 <td></td>
136 </tr>
137 </table>
138 </div>
139 <div class="memdoc">
140
141 <p>Build a diagonal matrix. </p>
142 <p>From GLM_GTX_matrix_operation extension. </p>
143
144 </div>
145 </div>
146 <a class="anchor" id="gacdd60defc29a8d1aa6be63387d3da76a"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal3x3" ref="gacdd60defc29a8d1aa6be63387d3da76a" args="(detail::tvec3&lt; valType &gt; const &amp;v)" -->
147 <div class="memitem">
148 <div class="memproto">
149 <table class="memname">
150 <tr>
151 <td class="memname">detail::tmat3x3&lt;valType&gt; glm::gtx::matrix_operation::diagonal3x3 </td>
152 <td>(</td>
153 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
154 <td class="paramname"><em>v</em></td><td>)</td>
155 <td></td>
156 </tr>
157 </table>
158 </div>
159 <div class="memdoc">
160
161 <p>Build a diagonal matrix. </p>
162 <p>From GLM_GTX_matrix_operation extension. </p>
163
164 </div>
165 </div>
166 <a class="anchor" id="ga3fb59fa3dd6a1db3a8712bcc0c92c926"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal3x4" ref="ga3fb59fa3dd6a1db3a8712bcc0c92c926" args="(detail::tvec3&lt; valType &gt; const &amp;v)" -->
167 <div class="memitem">
168 <div class="memproto">
169 <table class="memname">
170 <tr>
171 <td class="memname">detail::tmat3x4&lt;valType&gt; glm::gtx::matrix_operation::diagonal3x4 </td>
172 <td>(</td>
173 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
174 <td class="paramname"><em>v</em></td><td>)</td>
175 <td></td>
176 </tr>
177 </table>
178 </div>
179 <div class="memdoc">
180
181 <p>Build a diagonal matrix. </p>
182 <p>From GLM_GTX_matrix_operation extension. </p>
183
184 </div>
185 </div>
186 <a class="anchor" id="ga25edcc4359dc5a420df609bec1a83289"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal4x2" ref="ga25edcc4359dc5a420df609bec1a83289" args="(detail::tvec2&lt; valType &gt; const &amp;v)" -->
187 <div class="memitem">
188 <div class="memproto">
189 <table class="memname">
190 <tr>
191 <td class="memname">detail::tmat4x2&lt;valType&gt; glm::gtx::matrix_operation::diagonal4x2 </td>
192 <td>(</td>
193 <td class="paramtype">detail::tvec2&lt; valType &gt; const &amp;&#160;</td>
194 <td class="paramname"><em>v</em></td><td>)</td>
195 <td></td>
196 </tr>
197 </table>
198 </div>
199 <div class="memdoc">
200
201 <p>Build a diagonal matrix. </p>
202 <p>From GLM_GTX_matrix_operation extension. </p>
203
204 </div>
205 </div>
206 <a class="anchor" id="ga7b855b1e9e014561a5edcd8cfd928fcc"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal4x3" ref="ga7b855b1e9e014561a5edcd8cfd928fcc" args="(detail::tvec3&lt; valType &gt; const &amp;v)" -->
207 <div class="memitem">
208 <div class="memproto">
209 <table class="memname">
210 <tr>
211 <td class="memname">detail::tmat4x3&lt;valType&gt; glm::gtx::matrix_operation::diagonal4x3 </td>
212 <td>(</td>
213 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
214 <td class="paramname"><em>v</em></td><td>)</td>
215 <td></td>
216 </tr>
217 </table>
218 </div>
219 <div class="memdoc">
220
221 <p>Build a diagonal matrix. </p>
222 <p>From GLM_GTX_matrix_operation extension. </p>
223
224 </div>
225 </div>
226 <a class="anchor" id="ga2b8a31afd6c7a64309810db58a35a6e8"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal4x4" ref="ga2b8a31afd6c7a64309810db58a35a6e8" args="(detail::tvec4&lt; valType &gt; const &amp;v)" -->
227 <div class="memitem">
228 <div class="memproto">
229 <table class="memname">
230 <tr>
231 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::matrix_operation::diagonal4x4 </td>
232 <td>(</td>
233 <td class="paramtype">detail::tvec4&lt; valType &gt; const &amp;&#160;</td>
234 <td class="paramname"><em>v</em></td><td>)</td>
235 <td></td>
236 </tr>
237 </table>
238 </div>
239 <div class="memdoc">
240
241 <p>Build a diagonal matrix. </p>
242 <p>From GLM_GTX_matrix_operation extension. </p>
405243
406244 </div>
407245 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_matrix_operation: Extended matrix operations</title>
4 <title>GLM_GTX_matrix_query: Query matrix properties</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_matrix_operation: Extended matrix operations</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_matrix_query: Query matrix properties</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Build diagonal matrices from vectors.
38 <p>Query to evaluate matrix properties.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#gae2848e38a4533d20f5e7af384440d4d6">diagonal2x2</a> (detail::tvec2&lt; valType &gt; const &amp;v)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga61c9061e742d63c52cde17c0bc47a9f3">diagonal2x3</a> (detail::tvec2&lt; valType &gt; const &amp;v)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga1a2d2575b5a228370228d0ab34e704aa">diagonal2x4</a> (detail::tvec2&lt; valType &gt; const &amp;v)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x2&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga5e0245ab431bc049e69abeaaaaf2f455">diagonal3x2</a> (detail::tvec2&lt; valType &gt; const &amp;v)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#gacdd60defc29a8d1aa6be63387d3da76a">diagonal3x3</a> (detail::tvec3&lt; valType &gt; const &amp;v)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga3fb59fa3dd6a1db3a8712bcc0c92c926">diagonal3x4</a> (detail::tvec3&lt; valType &gt; const &amp;v)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x2&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga25edcc4359dc5a420df609bec1a83289">diagonal4x2</a> (detail::tvec2&lt; valType &gt; const &amp;v)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga7b855b1e9e014561a5edcd8cfd928fcc">diagonal4x3</a> (detail::tvec3&lt; valType &gt; const &amp;v)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga2b8a31afd6c7a64309810db58a35a6e8">diagonal4x4</a> (detail::tvec4&lt; valType &gt; const &amp;v)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga131e3e65bd8a1ac035f849483631f122">isIdentity</a> (const genType &amp;m, const typename genType::value_type epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga4c3e999f20d9b74852a61ef5772f3f02">isNormalized</a> (const detail::tmat2x2&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga249b7a2cc71db930e512f2a3ad9c9cc8">isNormalized</a> (const detail::tmat4x4&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga84fd1f76999aa657ca27f44725b8cc79">isNormalized</a> (const detail::tmat3x3&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga3ea08cf50837874a590ef71c78500b5e">isNull</a> (const detail::tmat2x2&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga87d08d0f7cef6d818414b7c69ce8e0fc">isNull</a> (const detail::tmat3x3&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#gaaecd78d1c5c5f361a763979311e3d115">isNull</a> (const detail::tmat4x4&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00272.html#ga87823a9c3fb605773789866fc31f60e8">isOrthogonal</a> (const genType &amp;m, const typename genType::value_type epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
6159 </table>
6260 <hr/><a name="_details"></a><h2>Detailed Description</h2>
63 <p>Build diagonal matrices from vectors. </p>
64 <p>&lt;<a class="el" href="a00077_source.html">glm/gtx/matrix_operation.hpp</a>&gt; need to be included to use these functionalities. </p>
61 <p>Query to evaluate matrix properties. </p>
62 <p>&lt;<a class="el" href="a00078_source.html">glm/gtx/matrix_query.hpp</a>&gt; need to be included to use these functionalities. </p>
6563 <hr/><h2>Function Documentation</h2>
66 <a class="anchor" id="gae2848e38a4533d20f5e7af384440d4d6"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal2x2" ref="gae2848e38a4533d20f5e7af384440d4d6" args="(detail::tvec2&lt; valType &gt; const &amp;v)" -->
67 <div class="memitem">
68 <div class="memproto">
69 <table class="memname">
70 <tr>
71 <td class="memname">detail::tmat2x2&lt;valType&gt; glm::gtx::matrix_operation::diagonal2x2 </td>
72 <td>(</td>
73 <td class="paramtype">detail::tvec2&lt; valType &gt; const &amp;&#160;</td>
74 <td class="paramname"><em>v</em></td><td>)</td>
75 <td></td>
76 </tr>
77 </table>
78 </div>
79 <div class="memdoc">
80
81 <p>Build a diagonal matrix. </p>
82 <p>From GLM_GTX_matrix_operation extension. </p>
83
84 </div>
85 </div>
86 <a class="anchor" id="ga61c9061e742d63c52cde17c0bc47a9f3"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal2x3" ref="ga61c9061e742d63c52cde17c0bc47a9f3" args="(detail::tvec2&lt; valType &gt; const &amp;v)" -->
87 <div class="memitem">
88 <div class="memproto">
89 <table class="memname">
90 <tr>
91 <td class="memname">detail::tmat2x3&lt;valType&gt; glm::gtx::matrix_operation::diagonal2x3 </td>
92 <td>(</td>
93 <td class="paramtype">detail::tvec2&lt; valType &gt; const &amp;&#160;</td>
94 <td class="paramname"><em>v</em></td><td>)</td>
95 <td></td>
96 </tr>
97 </table>
98 </div>
99 <div class="memdoc">
100
101 <p>Build a diagonal matrix. </p>
102 <p>From GLM_GTX_matrix_operation extension. </p>
103
104 </div>
105 </div>
106 <a class="anchor" id="ga1a2d2575b5a228370228d0ab34e704aa"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal2x4" ref="ga1a2d2575b5a228370228d0ab34e704aa" args="(detail::tvec2&lt; valType &gt; const &amp;v)" -->
107 <div class="memitem">
108 <div class="memproto">
109 <table class="memname">
110 <tr>
111 <td class="memname">detail::tmat2x4&lt;valType&gt; glm::gtx::matrix_operation::diagonal2x4 </td>
112 <td>(</td>
113 <td class="paramtype">detail::tvec2&lt; valType &gt; const &amp;&#160;</td>
114 <td class="paramname"><em>v</em></td><td>)</td>
115 <td></td>
116 </tr>
117 </table>
118 </div>
119 <div class="memdoc">
120
121 <p>Build a diagonal matrix. </p>
122 <p>From GLM_GTX_matrix_operation extension. </p>
123
124 </div>
125 </div>
126 <a class="anchor" id="ga5e0245ab431bc049e69abeaaaaf2f455"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal3x2" ref="ga5e0245ab431bc049e69abeaaaaf2f455" args="(detail::tvec2&lt; valType &gt; const &amp;v)" -->
127 <div class="memitem">
128 <div class="memproto">
129 <table class="memname">
130 <tr>
131 <td class="memname">detail::tmat3x2&lt;valType&gt; glm::gtx::matrix_operation::diagonal3x2 </td>
132 <td>(</td>
133 <td class="paramtype">detail::tvec2&lt; valType &gt; const &amp;&#160;</td>
134 <td class="paramname"><em>v</em></td><td>)</td>
135 <td></td>
136 </tr>
137 </table>
138 </div>
139 <div class="memdoc">
140
141 <p>Build a diagonal matrix. </p>
142 <p>From GLM_GTX_matrix_operation extension. </p>
143
144 </div>
145 </div>
146 <a class="anchor" id="gacdd60defc29a8d1aa6be63387d3da76a"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal3x3" ref="gacdd60defc29a8d1aa6be63387d3da76a" args="(detail::tvec3&lt; valType &gt; const &amp;v)" -->
147 <div class="memitem">
148 <div class="memproto">
149 <table class="memname">
150 <tr>
151 <td class="memname">detail::tmat3x3&lt;valType&gt; glm::gtx::matrix_operation::diagonal3x3 </td>
152 <td>(</td>
153 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
154 <td class="paramname"><em>v</em></td><td>)</td>
155 <td></td>
156 </tr>
157 </table>
158 </div>
159 <div class="memdoc">
160
161 <p>Build a diagonal matrix. </p>
162 <p>From GLM_GTX_matrix_operation extension. </p>
163
164 </div>
165 </div>
166 <a class="anchor" id="ga3fb59fa3dd6a1db3a8712bcc0c92c926"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal3x4" ref="ga3fb59fa3dd6a1db3a8712bcc0c92c926" args="(detail::tvec3&lt; valType &gt; const &amp;v)" -->
167 <div class="memitem">
168 <div class="memproto">
169 <table class="memname">
170 <tr>
171 <td class="memname">detail::tmat3x4&lt;valType&gt; glm::gtx::matrix_operation::diagonal3x4 </td>
172 <td>(</td>
173 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
174 <td class="paramname"><em>v</em></td><td>)</td>
175 <td></td>
176 </tr>
177 </table>
178 </div>
179 <div class="memdoc">
180
181 <p>Build a diagonal matrix. </p>
182 <p>From GLM_GTX_matrix_operation extension. </p>
183
184 </div>
185 </div>
186 <a class="anchor" id="ga25edcc4359dc5a420df609bec1a83289"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal4x2" ref="ga25edcc4359dc5a420df609bec1a83289" args="(detail::tvec2&lt; valType &gt; const &amp;v)" -->
187 <div class="memitem">
188 <div class="memproto">
189 <table class="memname">
190 <tr>
191 <td class="memname">detail::tmat4x2&lt;valType&gt; glm::gtx::matrix_operation::diagonal4x2 </td>
192 <td>(</td>
193 <td class="paramtype">detail::tvec2&lt; valType &gt; const &amp;&#160;</td>
194 <td class="paramname"><em>v</em></td><td>)</td>
195 <td></td>
196 </tr>
197 </table>
198 </div>
199 <div class="memdoc">
200
201 <p>Build a diagonal matrix. </p>
202 <p>From GLM_GTX_matrix_operation extension. </p>
203
204 </div>
205 </div>
206 <a class="anchor" id="ga7b855b1e9e014561a5edcd8cfd928fcc"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal4x3" ref="ga7b855b1e9e014561a5edcd8cfd928fcc" args="(detail::tvec3&lt; valType &gt; const &amp;v)" -->
207 <div class="memitem">
208 <div class="memproto">
209 <table class="memname">
210 <tr>
211 <td class="memname">detail::tmat4x3&lt;valType&gt; glm::gtx::matrix_operation::diagonal4x3 </td>
212 <td>(</td>
213 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
214 <td class="paramname"><em>v</em></td><td>)</td>
215 <td></td>
216 </tr>
217 </table>
218 </div>
219 <div class="memdoc">
220
221 <p>Build a diagonal matrix. </p>
222 <p>From GLM_GTX_matrix_operation extension. </p>
223
224 </div>
225 </div>
226 <a class="anchor" id="ga2b8a31afd6c7a64309810db58a35a6e8"></a><!-- doxytag: member="glm::gtx::matrix_operation::diagonal4x4" ref="ga2b8a31afd6c7a64309810db58a35a6e8" args="(detail::tvec4&lt; valType &gt; const &amp;v)" -->
227 <div class="memitem">
228 <div class="memproto">
229 <table class="memname">
230 <tr>
231 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::matrix_operation::diagonal4x4 </td>
232 <td>(</td>
233 <td class="paramtype">detail::tvec4&lt; valType &gt; const &amp;&#160;</td>
234 <td class="paramname"><em>v</em></td><td>)</td>
235 <td></td>
236 </tr>
237 </table>
238 </div>
239 <div class="memdoc">
240
241 <p>Build a diagonal matrix. </p>
242 <p>From GLM_GTX_matrix_operation extension. </p>
64 <a class="anchor" id="ga131e3e65bd8a1ac035f849483631f122"></a><!-- doxytag: member="glm::gtx::matrix_query::isIdentity" ref="ga131e3e65bd8a1ac035f849483631f122" args="(const genType &amp;m, const typename genType::value_type epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
65 <div class="memitem">
66 <div class="memproto">
67 <table class="memname">
68 <tr>
69 <td class="memname">bool glm::gtx::matrix_query::isIdentity </td>
70 <td>(</td>
71 <td class="paramtype">const genType &amp;&#160;</td>
72 <td class="paramname"><em>m</em>, </td>
73 </tr>
74 <tr>
75 <td class="paramkey"></td>
76 <td></td>
77 <td class="paramtype">const typename genType::value_type&#160;</td>
78 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
79 </tr>
80 <tr>
81 <td></td>
82 <td>)</td>
83 <td></td><td></td>
84 </tr>
85 </table>
86 </div>
87 <div class="memdoc">
88
89 <p>Return if a matrix an identity matrix. </p>
90 <p>From GLM_GTX_matrix_query extension. </p>
91
92 </div>
93 </div>
94 <a class="anchor" id="ga4c3e999f20d9b74852a61ef5772f3f02"></a><!-- doxytag: member="glm::gtx::matrix_query::isNormalized" ref="ga4c3e999f20d9b74852a61ef5772f3f02" args="(const detail::tmat2x2&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())" -->
95 <div class="memitem">
96 <div class="memproto">
97 <table class="memname">
98 <tr>
99 <td class="memname">bool glm::gtx::matrix_query::isNormalized </td>
100 <td>(</td>
101 <td class="paramtype">const detail::tmat2x2&lt; T &gt; &amp;&#160;</td>
102 <td class="paramname"><em>m</em>, </td>
103 </tr>
104 <tr>
105 <td class="paramkey"></td>
106 <td></td>
107 <td class="paramtype">const T&#160;</td>
108 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;T&#160;&gt;::epsilon()</code>&#160;</td>
109 </tr>
110 <tr>
111 <td></td>
112 <td>)</td>
113 <td></td><td></td>
114 </tr>
115 </table>
116 </div>
117 <div class="memdoc">
118
119 <p>Return if a matrix a normalized matrix. </p>
120 <p>From GLM_GTX_matrix_query extension. </p>
121
122 </div>
123 </div>
124 <a class="anchor" id="ga249b7a2cc71db930e512f2a3ad9c9cc8"></a><!-- doxytag: member="glm::gtx::matrix_query::isNormalized" ref="ga249b7a2cc71db930e512f2a3ad9c9cc8" args="(const detail::tmat4x4&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())" -->
125 <div class="memitem">
126 <div class="memproto">
127 <table class="memname">
128 <tr>
129 <td class="memname">bool glm::gtx::matrix_query::isNormalized </td>
130 <td>(</td>
131 <td class="paramtype">const detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
132 <td class="paramname"><em>m</em>, </td>
133 </tr>
134 <tr>
135 <td class="paramkey"></td>
136 <td></td>
137 <td class="paramtype">const T&#160;</td>
138 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;T&#160;&gt;::epsilon()</code>&#160;</td>
139 </tr>
140 <tr>
141 <td></td>
142 <td>)</td>
143 <td></td><td></td>
144 </tr>
145 </table>
146 </div>
147 <div class="memdoc">
148
149 <p>Return if a matrix a normalized matrix. </p>
150 <p>From GLM_GTX_matrix_query extension. </p>
151
152 </div>
153 </div>
154 <a class="anchor" id="ga84fd1f76999aa657ca27f44725b8cc79"></a><!-- doxytag: member="glm::gtx::matrix_query::isNormalized" ref="ga84fd1f76999aa657ca27f44725b8cc79" args="(const detail::tmat3x3&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())" -->
155 <div class="memitem">
156 <div class="memproto">
157 <table class="memname">
158 <tr>
159 <td class="memname">bool glm::gtx::matrix_query::isNormalized </td>
160 <td>(</td>
161 <td class="paramtype">const detail::tmat3x3&lt; T &gt; &amp;&#160;</td>
162 <td class="paramname"><em>m</em>, </td>
163 </tr>
164 <tr>
165 <td class="paramkey"></td>
166 <td></td>
167 <td class="paramtype">const T&#160;</td>
168 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;T&#160;&gt;::epsilon()</code>&#160;</td>
169 </tr>
170 <tr>
171 <td></td>
172 <td>)</td>
173 <td></td><td></td>
174 </tr>
175 </table>
176 </div>
177 <div class="memdoc">
178
179 <p>Return if a matrix a normalized matrix. </p>
180 <p>From GLM_GTX_matrix_query extension. </p>
181
182 </div>
183 </div>
184 <a class="anchor" id="ga3ea08cf50837874a590ef71c78500b5e"></a><!-- doxytag: member="glm::gtx::matrix_query::isNull" ref="ga3ea08cf50837874a590ef71c78500b5e" args="(const detail::tmat2x2&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())" -->
185 <div class="memitem">
186 <div class="memproto">
187 <table class="memname">
188 <tr>
189 <td class="memname">bool glm::gtx::matrix_query::isNull </td>
190 <td>(</td>
191 <td class="paramtype">const detail::tmat2x2&lt; T &gt; &amp;&#160;</td>
192 <td class="paramname"><em>m</em>, </td>
193 </tr>
194 <tr>
195 <td class="paramkey"></td>
196 <td></td>
197 <td class="paramtype">const T&#160;</td>
198 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;T&#160;&gt;::epsilon()</code>&#160;</td>
199 </tr>
200 <tr>
201 <td></td>
202 <td>)</td>
203 <td></td><td></td>
204 </tr>
205 </table>
206 </div>
207 <div class="memdoc">
208
209 <p>Return if a matrix a null matrix. </p>
210 <p>From GLM_GTX_matrix_query extension. </p>
211
212 </div>
213 </div>
214 <a class="anchor" id="ga87d08d0f7cef6d818414b7c69ce8e0fc"></a><!-- doxytag: member="glm::gtx::matrix_query::isNull" ref="ga87d08d0f7cef6d818414b7c69ce8e0fc" args="(const detail::tmat3x3&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())" -->
215 <div class="memitem">
216 <div class="memproto">
217 <table class="memname">
218 <tr>
219 <td class="memname">bool glm::gtx::matrix_query::isNull </td>
220 <td>(</td>
221 <td class="paramtype">const detail::tmat3x3&lt; T &gt; &amp;&#160;</td>
222 <td class="paramname"><em>m</em>, </td>
223 </tr>
224 <tr>
225 <td class="paramkey"></td>
226 <td></td>
227 <td class="paramtype">const T&#160;</td>
228 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;T&#160;&gt;::epsilon()</code>&#160;</td>
229 </tr>
230 <tr>
231 <td></td>
232 <td>)</td>
233 <td></td><td></td>
234 </tr>
235 </table>
236 </div>
237 <div class="memdoc">
238
239 <p>Return if a matrix a null matrix. </p>
240 <p>From GLM_GTX_matrix_query extension. </p>
241
242 </div>
243 </div>
244 <a class="anchor" id="gaaecd78d1c5c5f361a763979311e3d115"></a><!-- doxytag: member="glm::gtx::matrix_query::isNull" ref="gaaecd78d1c5c5f361a763979311e3d115" args="(const detail::tmat4x4&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())" -->
245 <div class="memitem">
246 <div class="memproto">
247 <table class="memname">
248 <tr>
249 <td class="memname">bool glm::gtx::matrix_query::isNull </td>
250 <td>(</td>
251 <td class="paramtype">const detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
252 <td class="paramname"><em>m</em>, </td>
253 </tr>
254 <tr>
255 <td class="paramkey"></td>
256 <td></td>
257 <td class="paramtype">const T&#160;</td>
258 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;T&#160;&gt;::epsilon()</code>&#160;</td>
259 </tr>
260 <tr>
261 <td></td>
262 <td>)</td>
263 <td></td><td></td>
264 </tr>
265 </table>
266 </div>
267 <div class="memdoc">
268
269 <p>Return if a matrix a null matrix. </p>
270 <p>From GLM_GTX_matrix_query extension. </p>
271
272 </div>
273 </div>
274 <a class="anchor" id="ga87823a9c3fb605773789866fc31f60e8"></a><!-- doxytag: member="glm::gtx::matrix_query::isOrthogonal" ref="ga87823a9c3fb605773789866fc31f60e8" args="(const genType &amp;m, const typename genType::value_type epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
275 <div class="memitem">
276 <div class="memproto">
277 <table class="memname">
278 <tr>
279 <td class="memname">bool glm::gtx::matrix_query::isOrthogonal </td>
280 <td>(</td>
281 <td class="paramtype">const genType &amp;&#160;</td>
282 <td class="paramname"><em>m</em>, </td>
283 </tr>
284 <tr>
285 <td class="paramkey"></td>
286 <td></td>
287 <td class="paramtype">const typename genType::value_type&#160;</td>
288 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
289 </tr>
290 <tr>
291 <td></td>
292 <td>)</td>
293 <td></td><td></td>
294 </tr>
295 </table>
296 </div>
297 <div class="memdoc">
298
299 <p>Return if a matrix an orthonormalized matrix. </p>
300 <p>From GLM_GTX_matrix_query extension. </p>
243301
244302 </div>
245303 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_matrix_query: Query matrix properties</title>
4 <title>GLM_GTX_mixed_producte: Mixed product</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_matrix_query: Query matrix properties</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_mixed_producte: Mixed product</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Query to evaluate matrix properties.
38 <p>Mixed product of 3 vectors.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#ga131e3e65bd8a1ac035f849483631f122">isIdentity</a> (const genType &amp;m, const typename genType::value_type epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#ga4c3e999f20d9b74852a61ef5772f3f02">isNormalized</a> (const detail::tmat2x2&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#ga249b7a2cc71db930e512f2a3ad9c9cc8">isNormalized</a> (const detail::tmat4x4&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#ga84fd1f76999aa657ca27f44725b8cc79">isNormalized</a> (const detail::tmat3x3&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#ga3ea08cf50837874a590ef71c78500b5e">isNull</a> (const detail::tmat2x2&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#ga87d08d0f7cef6d818414b7c69ce8e0fc">isNull</a> (const detail::tmat3x3&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#gaaecd78d1c5c5f361a763979311e3d115">isNull</a> (const detail::tmat4x4&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#ga87823a9c3fb605773789866fc31f60e8">isOrthogonal</a> (const genType &amp;m, const typename genType::value_type epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
43 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gacd91c1d0c25c158ab83965b98553970d"></a><!-- doxytag: member="gtx_mixed_product::mixedProduct" ref="gacd91c1d0c25c158ab83965b98553970d" args="(detail::tvec3&lt; valType &gt; const &amp;v1, detail::tvec3&lt; valType &gt; const &amp;v2, detail::tvec3&lt; valType &gt; const &amp;v3)" -->
44 template&lt;typename valType &gt; </td></tr>
45 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00273.html#gacd91c1d0c25c158ab83965b98553970d">mixedProduct</a> (detail::tvec3&lt; valType &gt; const &amp;v1, detail::tvec3&lt; valType &gt; const &amp;v2, detail::tvec3&lt; valType &gt; const &amp;v3)</td></tr>
5946 </table>
6047 <hr/><a name="_details"></a><h2>Detailed Description</h2>
61 <p>Query to evaluate matrix properties. </p>
62 <p>&lt;<a class="el" href="a00078_source.html">glm/gtx/matrix_query.hpp</a>&gt; need to be included to use these functionalities. </p>
63 <hr/><h2>Function Documentation</h2>
64 <a class="anchor" id="ga131e3e65bd8a1ac035f849483631f122"></a><!-- doxytag: member="glm::gtx::matrix_query::isIdentity" ref="ga131e3e65bd8a1ac035f849483631f122" args="(const genType &amp;m, const typename genType::value_type epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
65 <div class="memitem">
66 <div class="memproto">
67 <table class="memname">
68 <tr>
69 <td class="memname">bool glm::gtx::matrix_query::isIdentity </td>
70 <td>(</td>
71 <td class="paramtype">const genType &amp;&#160;</td>
72 <td class="paramname"><em>m</em>, </td>
73 </tr>
74 <tr>
75 <td class="paramkey"></td>
76 <td></td>
77 <td class="paramtype">const typename genType::value_type&#160;</td>
78 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
79 </tr>
80 <tr>
81 <td></td>
82 <td>)</td>
83 <td></td><td></td>
84 </tr>
85 </table>
86 </div>
87 <div class="memdoc">
88
89 <p>Return if a matrix an identity matrix. </p>
90 <p>From GLM_GTX_matrix_query extension. </p>
91
92 </div>
93 </div>
94 <a class="anchor" id="ga4c3e999f20d9b74852a61ef5772f3f02"></a><!-- doxytag: member="glm::gtx::matrix_query::isNormalized" ref="ga4c3e999f20d9b74852a61ef5772f3f02" args="(const detail::tmat2x2&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())" -->
95 <div class="memitem">
96 <div class="memproto">
97 <table class="memname">
98 <tr>
99 <td class="memname">bool glm::gtx::matrix_query::isNormalized </td>
100 <td>(</td>
101 <td class="paramtype">const detail::tmat2x2&lt; T &gt; &amp;&#160;</td>
102 <td class="paramname"><em>m</em>, </td>
103 </tr>
104 <tr>
105 <td class="paramkey"></td>
106 <td></td>
107 <td class="paramtype">const T&#160;</td>
108 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;T&#160;&gt;::epsilon()</code>&#160;</td>
109 </tr>
110 <tr>
111 <td></td>
112 <td>)</td>
113 <td></td><td></td>
114 </tr>
115 </table>
116 </div>
117 <div class="memdoc">
118
119 <p>Return if a matrix a normalized matrix. </p>
120 <p>From GLM_GTX_matrix_query extension. </p>
121
122 </div>
123 </div>
124 <a class="anchor" id="ga249b7a2cc71db930e512f2a3ad9c9cc8"></a><!-- doxytag: member="glm::gtx::matrix_query::isNormalized" ref="ga249b7a2cc71db930e512f2a3ad9c9cc8" args="(const detail::tmat4x4&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())" -->
125 <div class="memitem">
126 <div class="memproto">
127 <table class="memname">
128 <tr>
129 <td class="memname">bool glm::gtx::matrix_query::isNormalized </td>
130 <td>(</td>
131 <td class="paramtype">const detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
132 <td class="paramname"><em>m</em>, </td>
133 </tr>
134 <tr>
135 <td class="paramkey"></td>
136 <td></td>
137 <td class="paramtype">const T&#160;</td>
138 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;T&#160;&gt;::epsilon()</code>&#160;</td>
139 </tr>
140 <tr>
141 <td></td>
142 <td>)</td>
143 <td></td><td></td>
144 </tr>
145 </table>
146 </div>
147 <div class="memdoc">
148
149 <p>Return if a matrix a normalized matrix. </p>
150 <p>From GLM_GTX_matrix_query extension. </p>
151
152 </div>
153 </div>
154 <a class="anchor" id="ga84fd1f76999aa657ca27f44725b8cc79"></a><!-- doxytag: member="glm::gtx::matrix_query::isNormalized" ref="ga84fd1f76999aa657ca27f44725b8cc79" args="(const detail::tmat3x3&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())" -->
155 <div class="memitem">
156 <div class="memproto">
157 <table class="memname">
158 <tr>
159 <td class="memname">bool glm::gtx::matrix_query::isNormalized </td>
160 <td>(</td>
161 <td class="paramtype">const detail::tmat3x3&lt; T &gt; &amp;&#160;</td>
162 <td class="paramname"><em>m</em>, </td>
163 </tr>
164 <tr>
165 <td class="paramkey"></td>
166 <td></td>
167 <td class="paramtype">const T&#160;</td>
168 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;T&#160;&gt;::epsilon()</code>&#160;</td>
169 </tr>
170 <tr>
171 <td></td>
172 <td>)</td>
173 <td></td><td></td>
174 </tr>
175 </table>
176 </div>
177 <div class="memdoc">
178
179 <p>Return if a matrix a normalized matrix. </p>
180 <p>From GLM_GTX_matrix_query extension. </p>
181
182 </div>
183 </div>
184 <a class="anchor" id="ga3ea08cf50837874a590ef71c78500b5e"></a><!-- doxytag: member="glm::gtx::matrix_query::isNull" ref="ga3ea08cf50837874a590ef71c78500b5e" args="(const detail::tmat2x2&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())" -->
185 <div class="memitem">
186 <div class="memproto">
187 <table class="memname">
188 <tr>
189 <td class="memname">bool glm::gtx::matrix_query::isNull </td>
190 <td>(</td>
191 <td class="paramtype">const detail::tmat2x2&lt; T &gt; &amp;&#160;</td>
192 <td class="paramname"><em>m</em>, </td>
193 </tr>
194 <tr>
195 <td class="paramkey"></td>
196 <td></td>
197 <td class="paramtype">const T&#160;</td>
198 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;T&#160;&gt;::epsilon()</code>&#160;</td>
199 </tr>
200 <tr>
201 <td></td>
202 <td>)</td>
203 <td></td><td></td>
204 </tr>
205 </table>
206 </div>
207 <div class="memdoc">
208
209 <p>Return if a matrix a null matrix. </p>
210 <p>From GLM_GTX_matrix_query extension. </p>
211
212 </div>
213 </div>
214 <a class="anchor" id="ga87d08d0f7cef6d818414b7c69ce8e0fc"></a><!-- doxytag: member="glm::gtx::matrix_query::isNull" ref="ga87d08d0f7cef6d818414b7c69ce8e0fc" args="(const detail::tmat3x3&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())" -->
215 <div class="memitem">
216 <div class="memproto">
217 <table class="memname">
218 <tr>
219 <td class="memname">bool glm::gtx::matrix_query::isNull </td>
220 <td>(</td>
221 <td class="paramtype">const detail::tmat3x3&lt; T &gt; &amp;&#160;</td>
222 <td class="paramname"><em>m</em>, </td>
223 </tr>
224 <tr>
225 <td class="paramkey"></td>
226 <td></td>
227 <td class="paramtype">const T&#160;</td>
228 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;T&#160;&gt;::epsilon()</code>&#160;</td>
229 </tr>
230 <tr>
231 <td></td>
232 <td>)</td>
233 <td></td><td></td>
234 </tr>
235 </table>
236 </div>
237 <div class="memdoc">
238
239 <p>Return if a matrix a null matrix. </p>
240 <p>From GLM_GTX_matrix_query extension. </p>
241
242 </div>
243 </div>
244 <a class="anchor" id="gaaecd78d1c5c5f361a763979311e3d115"></a><!-- doxytag: member="glm::gtx::matrix_query::isNull" ref="gaaecd78d1c5c5f361a763979311e3d115" args="(const detail::tmat4x4&lt; T &gt; &amp;m, const T epsilon=std::numeric_limits&lt; T &gt;::epsilon())" -->
245 <div class="memitem">
246 <div class="memproto">
247 <table class="memname">
248 <tr>
249 <td class="memname">bool glm::gtx::matrix_query::isNull </td>
250 <td>(</td>
251 <td class="paramtype">const detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
252 <td class="paramname"><em>m</em>, </td>
253 </tr>
254 <tr>
255 <td class="paramkey"></td>
256 <td></td>
257 <td class="paramtype">const T&#160;</td>
258 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;T&#160;&gt;::epsilon()</code>&#160;</td>
259 </tr>
260 <tr>
261 <td></td>
262 <td>)</td>
263 <td></td><td></td>
264 </tr>
265 </table>
266 </div>
267 <div class="memdoc">
268
269 <p>Return if a matrix a null matrix. </p>
270 <p>From GLM_GTX_matrix_query extension. </p>
271
272 </div>
273 </div>
274 <a class="anchor" id="ga87823a9c3fb605773789866fc31f60e8"></a><!-- doxytag: member="glm::gtx::matrix_query::isOrthogonal" ref="ga87823a9c3fb605773789866fc31f60e8" args="(const genType &amp;m, const typename genType::value_type epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
275 <div class="memitem">
276 <div class="memproto">
277 <table class="memname">
278 <tr>
279 <td class="memname">bool glm::gtx::matrix_query::isOrthogonal </td>
280 <td>(</td>
281 <td class="paramtype">const genType &amp;&#160;</td>
282 <td class="paramname"><em>m</em>, </td>
283 </tr>
284 <tr>
285 <td class="paramkey"></td>
286 <td></td>
287 <td class="paramtype">const typename genType::value_type&#160;</td>
288 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
289 </tr>
290 <tr>
291 <td></td>
292 <td>)</td>
293 <td></td><td></td>
294 </tr>
295 </table>
296 </div>
297 <div class="memdoc">
298
299 <p>Return if a matrix an orthonormalized matrix. </p>
300 <p>From GLM_GTX_matrix_query extension. </p>
301
302 </div>
303 </div>
48 <p>Mixed product of 3 vectors. </p>
49 <p>&lt;<a class="el" href="a00080_source.html">glm/gtx/mixed_product.hpp</a>&gt; need to be included to use these functionalities. </p>
30450 </div>
30551 <hr class="footer"/><address class="footer"><small>Generated by&#160;
30652 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_mixed_producte: Mixed product</title>
4 <title>GLM_GTX_multiple: Multiples</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_mixed_producte: Mixed product</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_multiple: Multiples</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Mixed product of 3 vectors.
38 <p>Find the closest number of a number multiple of other number.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gacd91c1d0c25c158ab83965b98553970d"></a><!-- doxytag: member="gtx_mixed_product::mixedProduct" ref="gacd91c1d0c25c158ab83965b98553970d" args="(detail::tvec3&lt; valType &gt; const &amp;v1, detail::tvec3&lt; valType &gt; const &amp;v2, detail::tvec3&lt; valType &gt; const &amp;v3)" -->
44 template&lt;typename valType &gt; </td></tr>
45 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00274.html#gacd91c1d0c25c158ab83965b98553970d">mixedProduct</a> (detail::tvec3&lt; valType &gt; const &amp;v1, detail::tvec3&lt; valType &gt; const &amp;v2, detail::tvec3&lt; valType &gt; const &amp;v3)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00274.html#ga417f3ba2d04c2fa9ffdeca47b0ad0443">higherMultiple</a> (genType const &amp;Source, genType const &amp;Multiple)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00274.html#ga28760c297ccc5f54111d4469dc1bd1f6">lowerMultiple</a> (genType const &amp;Source, genType const &amp;Multiple)</td></tr>
4647 </table>
4748 <hr/><a name="_details"></a><h2>Detailed Description</h2>
48 <p>Mixed product of 3 vectors. </p>
49 <p>&lt;<a class="el" href="a00080_source.html">glm/gtx/mixed_product.hpp</a>&gt; need to be included to use these functionalities. </p>
49 <p>Find the closest number of a number multiple of other number. </p>
50 <p>&lt;<a class="el" href="a00081_source.html">glm/gtx/multiple.hpp</a>&gt; need to be included to use these functionalities. </p>
51 <hr/><h2>Function Documentation</h2>
52 <a class="anchor" id="ga417f3ba2d04c2fa9ffdeca47b0ad0443"></a><!-- doxytag: member="glm::gtx::multiple::higherMultiple" ref="ga417f3ba2d04c2fa9ffdeca47b0ad0443" args="(genType const &amp;Source, genType const &amp;Multiple)" -->
53 <div class="memitem">
54 <div class="memproto">
55 <table class="memname">
56 <tr>
57 <td class="memname">genType glm::gtx::multiple::higherMultiple </td>
58 <td>(</td>
59 <td class="paramtype">genType const &amp;&#160;</td>
60 <td class="paramname"><em>Source</em>, </td>
61 </tr>
62 <tr>
63 <td class="paramkey"></td>
64 <td></td>
65 <td class="paramtype">genType const &amp;&#160;</td>
66 <td class="paramname"><em>Multiple</em>&#160;</td>
67 </tr>
68 <tr>
69 <td></td>
70 <td>)</td>
71 <td></td><td></td>
72 </tr>
73 </table>
74 </div>
75 <div class="memdoc">
76
77 <p>Higher Multiple number of Source. </p>
78 <p>From GLM_GTX_multiple extension. </p>
79
80 </div>
81 </div>
82 <a class="anchor" id="ga28760c297ccc5f54111d4469dc1bd1f6"></a><!-- doxytag: member="glm::gtx::multiple::lowerMultiple" ref="ga28760c297ccc5f54111d4469dc1bd1f6" args="(genType const &amp;Source, genType const &amp;Multiple)" -->
83 <div class="memitem">
84 <div class="memproto">
85 <table class="memname">
86 <tr>
87 <td class="memname">genType glm::gtx::multiple::lowerMultiple </td>
88 <td>(</td>
89 <td class="paramtype">genType const &amp;&#160;</td>
90 <td class="paramname"><em>Source</em>, </td>
91 </tr>
92 <tr>
93 <td class="paramkey"></td>
94 <td></td>
95 <td class="paramtype">genType const &amp;&#160;</td>
96 <td class="paramname"><em>Multiple</em>&#160;</td>
97 </tr>
98 <tr>
99 <td></td>
100 <td>)</td>
101 <td></td><td></td>
102 </tr>
103 </table>
104 </div>
105 <div class="memdoc">
106
107 <p>Lower Multiple number of Source. </p>
108 <p>From GLM_GTX_multiple extension. </p>
109
110 </div>
111 </div>
50112 </div>
51113 <hr class="footer"/><address class="footer"><small>Generated by&#160;
52114 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_multiple: Multiples</title>
4 <title>GLM_GTX_norm: Vector norm calculations</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_multiple: Multiples</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_norm: Vector norm calculations</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Find the closest number of a number multiple of other number.
38 <p>Various way to compute vector norms.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga417f3ba2d04c2fa9ffdeca47b0ad0443">higherMultiple</a> (genType const &amp;Source, genType const &amp;Multiple)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga28760c297ccc5f54111d4469dc1bd1f6">lowerMultiple</a> (genType const &amp;Source, genType const &amp;Multiple)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga8ced68108693319d844c896d3e8a2887">distance2</a> (const T p0, const T p1)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#gada108564c8942d3ef4764000dd594a9e">distance2</a> (const detail::tvec3&lt; T &gt; &amp;p0, const detail::tvec3&lt; T &gt; &amp;p1)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga98e5a19ff47fa12f7706625348ef42db">distance2</a> (const detail::tvec4&lt; T &gt; &amp;p0, const detail::tvec4&lt; T &gt; &amp;p1)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga33760ddfae66d50cc5068e132086aa23">distance2</a> (const detail::tvec2&lt; T &gt; &amp;p0, const detail::tvec2&lt; T &gt; &amp;p1)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#gab9942ce9c9a3de0fcb2b2d1a7eea5d1b">l1Norm</a> (const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga98acb7ecd07cedacaff9af8b4085a29a">l1Norm</a> (const detail::tvec3&lt; T &gt; &amp;v)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga281fb89a1b196753973cb6932ed43042">l2Norm</a> (const detail::tvec3&lt; T &gt; &amp;x)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga2963700ea5540e339e021733f9b1c285">l2Norm</a> (const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga0ba79b01a2b7935086007d58357acea3">length2</a> (const detail::tvec4&lt; T &gt; &amp;x)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga461cea3ee3b98f8fcfea856def1f0ede">length2</a> (const T x)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#gac7f1bcdfe9c78e388cffd45683fa7fdd">length2</a> (const detail::tvec2&lt; T &gt; &amp;x)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#ga812dd3800d13ed6c2808041d34c5f6a0">length2</a> (const detail::tvec3&lt; T &gt; &amp;x)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#gae70a605bad6c714a2e091db043408d99">length2</a> (const detail::tquat&lt; T &gt; &amp;q)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#gacfed1ae105bff09745f86d8789503776">lxNorm</a> (const detail::tvec3&lt; T &gt; &amp;x, unsigned int Depth)</td></tr>
71 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00275.html#gab6b384000fdc1a560fd927684f4f3a2a">lxNorm</a> (const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y, unsigned int Depth)</td></tr>
4773 </table>
4874 <hr/><a name="_details"></a><h2>Detailed Description</h2>
49 <p>Find the closest number of a number multiple of other number. </p>
50 <p>&lt;<a class="el" href="a00081_source.html">glm/gtx/multiple.hpp</a>&gt; need to be included to use these functionalities. </p>
75 <p>Various way to compute vector norms. </p>
76 <p>&lt;<a class="el" href="a00083_source.html">glm/gtx/norm.hpp</a>&gt; need to be included to use these functionalities. </p>
5177 <hr/><h2>Function Documentation</h2>
52 <a class="anchor" id="ga417f3ba2d04c2fa9ffdeca47b0ad0443"></a><!-- doxytag: member="glm::gtx::multiple::higherMultiple" ref="ga417f3ba2d04c2fa9ffdeca47b0ad0443" args="(genType const &amp;Source, genType const &amp;Multiple)" -->
53 <div class="memitem">
54 <div class="memproto">
55 <table class="memname">
56 <tr>
57 <td class="memname">genType glm::gtx::multiple::higherMultiple </td>
58 <td>(</td>
59 <td class="paramtype">genType const &amp;&#160;</td>
60 <td class="paramname"><em>Source</em>, </td>
61 </tr>
62 <tr>
63 <td class="paramkey"></td>
64 <td></td>
65 <td class="paramtype">genType const &amp;&#160;</td>
66 <td class="paramname"><em>Multiple</em>&#160;</td>
67 </tr>
68 <tr>
69 <td></td>
70 <td>)</td>
71 <td></td><td></td>
72 </tr>
73 </table>
74 </div>
75 <div class="memdoc">
76
77 <p>Higher Multiple number of Source. </p>
78 <p>From GLM_GTX_multiple extension. </p>
79
80 </div>
81 </div>
82 <a class="anchor" id="ga28760c297ccc5f54111d4469dc1bd1f6"></a><!-- doxytag: member="glm::gtx::multiple::lowerMultiple" ref="ga28760c297ccc5f54111d4469dc1bd1f6" args="(genType const &amp;Source, genType const &amp;Multiple)" -->
83 <div class="memitem">
84 <div class="memproto">
85 <table class="memname">
86 <tr>
87 <td class="memname">genType glm::gtx::multiple::lowerMultiple </td>
88 <td>(</td>
89 <td class="paramtype">genType const &amp;&#160;</td>
90 <td class="paramname"><em>Source</em>, </td>
91 </tr>
92 <tr>
93 <td class="paramkey"></td>
94 <td></td>
95 <td class="paramtype">genType const &amp;&#160;</td>
96 <td class="paramname"><em>Multiple</em>&#160;</td>
97 </tr>
98 <tr>
99 <td></td>
100 <td>)</td>
101 <td></td><td></td>
102 </tr>
103 </table>
104 </div>
105 <div class="memdoc">
106
107 <p>Lower Multiple number of Source. </p>
108 <p>From GLM_GTX_multiple extension. </p>
78 <a class="anchor" id="ga8ced68108693319d844c896d3e8a2887"></a><!-- doxytag: member="glm::gtx::norm::distance2" ref="ga8ced68108693319d844c896d3e8a2887" args="(const T p0, const T p1)" -->
79 <div class="memitem">
80 <div class="memproto">
81 <table class="memname">
82 <tr>
83 <td class="memname">T glm::gtx::norm::distance2 </td>
84 <td>(</td>
85 <td class="paramtype">const T&#160;</td>
86 <td class="paramname"><em>p0</em>, </td>
87 </tr>
88 <tr>
89 <td class="paramkey"></td>
90 <td></td>
91 <td class="paramtype">const T&#160;</td>
92 <td class="paramname"><em>p1</em>&#160;</td>
93 </tr>
94 <tr>
95 <td></td>
96 <td>)</td>
97 <td></td><td></td>
98 </tr>
99 </table>
100 </div>
101 <div class="memdoc">
102
103 <p>Returns the squared distance between p0 and p1, i.e., length(p0 - p1). </p>
104 <p>From GLM_GTX_norm extension. </p>
105
106 </div>
107 </div>
108 <a class="anchor" id="gada108564c8942d3ef4764000dd594a9e"></a><!-- doxytag: member="glm::gtx::norm::distance2" ref="gada108564c8942d3ef4764000dd594a9e" args="(const detail::tvec3&lt; T &gt; &amp;p0, const detail::tvec3&lt; T &gt; &amp;p1)" -->
109 <div class="memitem">
110 <div class="memproto">
111 <table class="memname">
112 <tr>
113 <td class="memname">T glm::gtx::norm::distance2 </td>
114 <td>(</td>
115 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
116 <td class="paramname"><em>p0</em>, </td>
117 </tr>
118 <tr>
119 <td class="paramkey"></td>
120 <td></td>
121 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
122 <td class="paramname"><em>p1</em>&#160;</td>
123 </tr>
124 <tr>
125 <td></td>
126 <td>)</td>
127 <td></td><td></td>
128 </tr>
129 </table>
130 </div>
131 <div class="memdoc">
132
133 <p>Returns the squared distance between p0 and p1, i.e., length(p0 - p1). </p>
134 <p>From GLM_GTX_norm extension. </p>
135
136 </div>
137 </div>
138 <a class="anchor" id="ga98e5a19ff47fa12f7706625348ef42db"></a><!-- doxytag: member="glm::gtx::norm::distance2" ref="ga98e5a19ff47fa12f7706625348ef42db" args="(const detail::tvec4&lt; T &gt; &amp;p0, const detail::tvec4&lt; T &gt; &amp;p1)" -->
139 <div class="memitem">
140 <div class="memproto">
141 <table class="memname">
142 <tr>
143 <td class="memname">T glm::gtx::norm::distance2 </td>
144 <td>(</td>
145 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
146 <td class="paramname"><em>p0</em>, </td>
147 </tr>
148 <tr>
149 <td class="paramkey"></td>
150 <td></td>
151 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
152 <td class="paramname"><em>p1</em>&#160;</td>
153 </tr>
154 <tr>
155 <td></td>
156 <td>)</td>
157 <td></td><td></td>
158 </tr>
159 </table>
160 </div>
161 <div class="memdoc">
162
163 <p>Returns the squared distance between p0 and p1, i.e., length(p0 - p1). </p>
164 <p>From GLM_GTX_norm extension. </p>
165
166 </div>
167 </div>
168 <a class="anchor" id="ga33760ddfae66d50cc5068e132086aa23"></a><!-- doxytag: member="glm::gtx::norm::distance2" ref="ga33760ddfae66d50cc5068e132086aa23" args="(const detail::tvec2&lt; T &gt; &amp;p0, const detail::tvec2&lt; T &gt; &amp;p1)" -->
169 <div class="memitem">
170 <div class="memproto">
171 <table class="memname">
172 <tr>
173 <td class="memname">T glm::gtx::norm::distance2 </td>
174 <td>(</td>
175 <td class="paramtype">const detail::tvec2&lt; T &gt; &amp;&#160;</td>
176 <td class="paramname"><em>p0</em>, </td>
177 </tr>
178 <tr>
179 <td class="paramkey"></td>
180 <td></td>
181 <td class="paramtype">const detail::tvec2&lt; T &gt; &amp;&#160;</td>
182 <td class="paramname"><em>p1</em>&#160;</td>
183 </tr>
184 <tr>
185 <td></td>
186 <td>)</td>
187 <td></td><td></td>
188 </tr>
189 </table>
190 </div>
191 <div class="memdoc">
192
193 <p>Returns the squared distance between p0 and p1, i.e., length(p0 - p1). </p>
194 <p>From GLM_GTX_norm extension. </p>
195
196 </div>
197 </div>
198 <a class="anchor" id="gab9942ce9c9a3de0fcb2b2d1a7eea5d1b"></a><!-- doxytag: member="glm::gtx::norm::l1Norm" ref="gab9942ce9c9a3de0fcb2b2d1a7eea5d1b" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)" -->
199 <div class="memitem">
200 <div class="memproto">
201 <table class="memname">
202 <tr>
203 <td class="memname">T glm::gtx::norm::l1Norm </td>
204 <td>(</td>
205 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
206 <td class="paramname"><em>x</em>, </td>
207 </tr>
208 <tr>
209 <td class="paramkey"></td>
210 <td></td>
211 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
212 <td class="paramname"><em>y</em>&#160;</td>
213 </tr>
214 <tr>
215 <td></td>
216 <td>)</td>
217 <td></td><td></td>
218 </tr>
219 </table>
220 </div>
221 <div class="memdoc">
222
223 <p>Returns the L1 norm between x and y. </p>
224 <p>From GLM_GTX_norm extension. </p>
225
226 </div>
227 </div>
228 <a class="anchor" id="ga98acb7ecd07cedacaff9af8b4085a29a"></a><!-- doxytag: member="glm::gtx::norm::l1Norm" ref="ga98acb7ecd07cedacaff9af8b4085a29a" args="(const detail::tvec3&lt; T &gt; &amp;v)" -->
229 <div class="memitem">
230 <div class="memproto">
231 <table class="memname">
232 <tr>
233 <td class="memname">T glm::gtx::norm::l1Norm </td>
234 <td>(</td>
235 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
236 <td class="paramname"><em>v</em></td><td>)</td>
237 <td></td>
238 </tr>
239 </table>
240 </div>
241 <div class="memdoc">
242
243 <p>Returns the L1 norm of v. </p>
244 <p>From GLM_GTX_norm extension. </p>
245
246 </div>
247 </div>
248 <a class="anchor" id="ga281fb89a1b196753973cb6932ed43042"></a><!-- doxytag: member="glm::gtx::norm::l2Norm" ref="ga281fb89a1b196753973cb6932ed43042" args="(const detail::tvec3&lt; T &gt; &amp;x)" -->
249 <div class="memitem">
250 <div class="memproto">
251 <table class="memname">
252 <tr>
253 <td class="memname">T glm::gtx::norm::l2Norm </td>
254 <td>(</td>
255 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
256 <td class="paramname"><em>x</em></td><td>)</td>
257 <td></td>
258 </tr>
259 </table>
260 </div>
261 <div class="memdoc">
262
263 <p>Returns the L2 norm of v. </p>
264 <p>From GLM_GTX_norm extension. </p>
265
266 </div>
267 </div>
268 <a class="anchor" id="ga2963700ea5540e339e021733f9b1c285"></a><!-- doxytag: member="glm::gtx::norm::l2Norm" ref="ga2963700ea5540e339e021733f9b1c285" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)" -->
269 <div class="memitem">
270 <div class="memproto">
271 <table class="memname">
272 <tr>
273 <td class="memname">T glm::gtx::norm::l2Norm </td>
274 <td>(</td>
275 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
276 <td class="paramname"><em>x</em>, </td>
277 </tr>
278 <tr>
279 <td class="paramkey"></td>
280 <td></td>
281 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
282 <td class="paramname"><em>y</em>&#160;</td>
283 </tr>
284 <tr>
285 <td></td>
286 <td>)</td>
287 <td></td><td></td>
288 </tr>
289 </table>
290 </div>
291 <div class="memdoc">
292
293 <p>Returns the L2 norm between x and y. </p>
294 <p>From GLM_GTX_norm extension. </p>
295
296 </div>
297 </div>
298 <a class="anchor" id="ga0ba79b01a2b7935086007d58357acea3"></a><!-- doxytag: member="glm::gtx::norm::length2" ref="ga0ba79b01a2b7935086007d58357acea3" args="(const detail::tvec4&lt; T &gt; &amp;x)" -->
299 <div class="memitem">
300 <div class="memproto">
301 <table class="memname">
302 <tr>
303 <td class="memname">T glm::gtx::norm::length2 </td>
304 <td>(</td>
305 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
306 <td class="paramname"><em>x</em></td><td>)</td>
307 <td></td>
308 </tr>
309 </table>
310 </div>
311 <div class="memdoc">
312
313 <p>Returns the squared length of x. </p>
314 <p>From GLM_GTX_norm extension. </p>
315
316 </div>
317 </div>
318 <a class="anchor" id="ga461cea3ee3b98f8fcfea856def1f0ede"></a><!-- doxytag: member="glm::gtx::norm::length2" ref="ga461cea3ee3b98f8fcfea856def1f0ede" args="(const T x)" -->
319 <div class="memitem">
320 <div class="memproto">
321 <table class="memname">
322 <tr>
323 <td class="memname">T glm::gtx::norm::length2 </td>
324 <td>(</td>
325 <td class="paramtype">const T&#160;</td>
326 <td class="paramname"><em>x</em></td><td>)</td>
327 <td></td>
328 </tr>
329 </table>
330 </div>
331 <div class="memdoc">
332
333 <p>Returns the squared length of x. </p>
334 <p>From GLM_GTX_norm extension. </p>
335
336 </div>
337 </div>
338 <a class="anchor" id="gac7f1bcdfe9c78e388cffd45683fa7fdd"></a><!-- doxytag: member="glm::gtx::norm::length2" ref="gac7f1bcdfe9c78e388cffd45683fa7fdd" args="(const detail::tvec2&lt; T &gt; &amp;x)" -->
339 <div class="memitem">
340 <div class="memproto">
341 <table class="memname">
342 <tr>
343 <td class="memname">T glm::gtx::norm::length2 </td>
344 <td>(</td>
345 <td class="paramtype">const detail::tvec2&lt; T &gt; &amp;&#160;</td>
346 <td class="paramname"><em>x</em></td><td>)</td>
347 <td></td>
348 </tr>
349 </table>
350 </div>
351 <div class="memdoc">
352
353 <p>Returns the squared length of x. </p>
354 <p>From GLM_GTX_norm extension. </p>
355
356 </div>
357 </div>
358 <a class="anchor" id="ga812dd3800d13ed6c2808041d34c5f6a0"></a><!-- doxytag: member="glm::gtx::norm::length2" ref="ga812dd3800d13ed6c2808041d34c5f6a0" args="(const detail::tvec3&lt; T &gt; &amp;x)" -->
359 <div class="memitem">
360 <div class="memproto">
361 <table class="memname">
362 <tr>
363 <td class="memname">T glm::gtx::norm::length2 </td>
364 <td>(</td>
365 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
366 <td class="paramname"><em>x</em></td><td>)</td>
367 <td></td>
368 </tr>
369 </table>
370 </div>
371 <div class="memdoc">
372
373 <p>Returns the squared length of x. </p>
374 <p>From GLM_GTX_norm extension. </p>
375
376 </div>
377 </div>
378 <a class="anchor" id="gae70a605bad6c714a2e091db043408d99"></a><!-- doxytag: member="glm::gtx::norm::length2" ref="gae70a605bad6c714a2e091db043408d99" args="(const detail::tquat&lt; T &gt; &amp;q)" -->
379 <div class="memitem">
380 <div class="memproto">
381 <table class="memname">
382 <tr>
383 <td class="memname">T glm::gtx::norm::length2 </td>
384 <td>(</td>
385 <td class="paramtype">const detail::tquat&lt; T &gt; &amp;&#160;</td>
386 <td class="paramname"><em>q</em></td><td>)</td>
387 <td></td>
388 </tr>
389 </table>
390 </div>
391 <div class="memdoc">
392
393 <p>Returns the squared length of x. </p>
394 <p>From GLM_GTX_norm extension. </p>
395
396 </div>
397 </div>
398 <a class="anchor" id="gacfed1ae105bff09745f86d8789503776"></a><!-- doxytag: member="glm::gtx::norm::lxNorm" ref="gacfed1ae105bff09745f86d8789503776" args="(const detail::tvec3&lt; T &gt; &amp;x, unsigned int Depth)" -->
399 <div class="memitem">
400 <div class="memproto">
401 <table class="memname">
402 <tr>
403 <td class="memname">T glm::gtx::norm::lxNorm </td>
404 <td>(</td>
405 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
406 <td class="paramname"><em>x</em>, </td>
407 </tr>
408 <tr>
409 <td class="paramkey"></td>
410 <td></td>
411 <td class="paramtype">unsigned int&#160;</td>
412 <td class="paramname"><em>Depth</em>&#160;</td>
413 </tr>
414 <tr>
415 <td></td>
416 <td>)</td>
417 <td></td><td></td>
418 </tr>
419 </table>
420 </div>
421 <div class="memdoc">
422
423 <p>Returns the L norm of v. </p>
424 <p>From GLM_GTX_norm extension. </p>
425
426 </div>
427 </div>
428 <a class="anchor" id="gab6b384000fdc1a560fd927684f4f3a2a"></a><!-- doxytag: member="glm::gtx::norm::lxNorm" ref="gab6b384000fdc1a560fd927684f4f3a2a" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y, unsigned int Depth)" -->
429 <div class="memitem">
430 <div class="memproto">
431 <table class="memname">
432 <tr>
433 <td class="memname">T glm::gtx::norm::lxNorm </td>
434 <td>(</td>
435 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
436 <td class="paramname"><em>x</em>, </td>
437 </tr>
438 <tr>
439 <td class="paramkey"></td>
440 <td></td>
441 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
442 <td class="paramname"><em>y</em>, </td>
443 </tr>
444 <tr>
445 <td class="paramkey"></td>
446 <td></td>
447 <td class="paramtype">unsigned int&#160;</td>
448 <td class="paramname"><em>Depth</em>&#160;</td>
449 </tr>
450 <tr>
451 <td></td>
452 <td>)</td>
453 <td></td><td></td>
454 </tr>
455 </table>
456 </div>
457 <div class="memdoc">
458
459 <p>Returns the L norm between x and y. </p>
460 <p>From GLM_GTX_norm extension. </p>
109461
110462 </div>
111463 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_norm: Vector norm calculations</title>
4 <title>GLM_GTX_normal: Compute normals</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_norm: Vector norm calculations</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_normal: Compute normals</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Various way to compute vector norms.
38 <p>Compute the normal of a triangle.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
4343 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga8ced68108693319d844c896d3e8a2887">distance2</a> (const T p0, const T p1)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#gada108564c8942d3ef4764000dd594a9e">distance2</a> (const detail::tvec3&lt; T &gt; &amp;p0, const detail::tvec3&lt; T &gt; &amp;p1)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga98e5a19ff47fa12f7706625348ef42db">distance2</a> (const detail::tvec4&lt; T &gt; &amp;p0, const detail::tvec4&lt; T &gt; &amp;p1)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga33760ddfae66d50cc5068e132086aa23">distance2</a> (const detail::tvec2&lt; T &gt; &amp;p0, const detail::tvec2&lt; T &gt; &amp;p1)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#gab9942ce9c9a3de0fcb2b2d1a7eea5d1b">l1Norm</a> (const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga98acb7ecd07cedacaff9af8b4085a29a">l1Norm</a> (const detail::tvec3&lt; T &gt; &amp;v)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga281fb89a1b196753973cb6932ed43042">l2Norm</a> (const detail::tvec3&lt; T &gt; &amp;x)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga2963700ea5540e339e021733f9b1c285">l2Norm</a> (const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga0ba79b01a2b7935086007d58357acea3">length2</a> (const detail::tvec4&lt; T &gt; &amp;x)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga461cea3ee3b98f8fcfea856def1f0ede">length2</a> (const T x)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#gac7f1bcdfe9c78e388cffd45683fa7fdd">length2</a> (const detail::tvec2&lt; T &gt; &amp;x)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga812dd3800d13ed6c2808041d34c5f6a0">length2</a> (const detail::tvec3&lt; T &gt; &amp;x)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#gae70a605bad6c714a2e091db043408d99">length2</a> (const detail::tquat&lt; T &gt; &amp;q)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#gacfed1ae105bff09745f86d8789503776">lxNorm</a> (const detail::tvec3&lt; T &gt; &amp;x, unsigned int Depth)</td></tr>
71 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#gab6b384000fdc1a560fd927684f4f3a2a">lxNorm</a> (const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y, unsigned int Depth)</td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00276.html#ga465b51d9e302c22572a656e657631310">triangleNormal</a> (detail::tvec3&lt; T &gt; const &amp;p1, detail::tvec3&lt; T &gt; const &amp;p2, detail::tvec3&lt; T &gt; const &amp;p3)</td></tr>
7345 </table>
7446 <hr/><a name="_details"></a><h2>Detailed Description</h2>
75 <p>Various way to compute vector norms. </p>
76 <p>&lt;<a class="el" href="a00083_source.html">glm/gtx/norm.hpp</a>&gt; need to be included to use these functionalities. </p>
47 <p>Compute the normal of a triangle. </p>
48 <p>&lt;<a class="el" href="a00084_source.html">glm/gtx/normal.hpp</a>&gt; need to be included to use these functionalities. </p>
7749 <hr/><h2>Function Documentation</h2>
78 <a class="anchor" id="ga8ced68108693319d844c896d3e8a2887"></a><!-- doxytag: member="glm::gtx::norm::distance2" ref="ga8ced68108693319d844c896d3e8a2887" args="(const T p0, const T p1)" -->
50 <a class="anchor" id="ga465b51d9e302c22572a656e657631310"></a><!-- doxytag: member="glm::gtx::normal::triangleNormal" ref="ga465b51d9e302c22572a656e657631310" args="(detail::tvec3&lt; T &gt; const &amp;p1, detail::tvec3&lt; T &gt; const &amp;p2, detail::tvec3&lt; T &gt; const &amp;p3)" -->
7951 <div class="memitem">
8052 <div class="memproto">
8153 <table class="memname">
8254 <tr>
83 <td class="memname">T glm::gtx::norm::distance2 </td>
55 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::normal::triangleNormal </td>
8456 <td>(</td>
85 <td class="paramtype">const T&#160;</td>
86 <td class="paramname"><em>p0</em>, </td>
57 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
58 <td class="paramname"><em>p1</em>, </td>
8759 </tr>
8860 <tr>
8961 <td class="paramkey"></td>
9062 <td></td>
91 <td class="paramtype">const T&#160;</td>
92 <td class="paramname"><em>p1</em>&#160;</td>
63 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
64 <td class="paramname"><em>p2</em>, </td>
65 </tr>
66 <tr>
67 <td class="paramkey"></td>
68 <td></td>
69 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
70 <td class="paramname"><em>p3</em>&#160;</td>
9371 </tr>
9472 <tr>
9573 <td></td>
10078 </div>
10179 <div class="memdoc">
10280
103 <p>Returns the squared distance between p0 and p1, i.e., length(p0 - p1). </p>
104 <p>From GLM_GTX_norm extension. </p>
105
106 </div>
107 </div>
108 <a class="anchor" id="gada108564c8942d3ef4764000dd594a9e"></a><!-- doxytag: member="glm::gtx::norm::distance2" ref="gada108564c8942d3ef4764000dd594a9e" args="(const detail::tvec3&lt; T &gt; &amp;p0, const detail::tvec3&lt; T &gt; &amp;p1)" -->
109 <div class="memitem">
110 <div class="memproto">
111 <table class="memname">
112 <tr>
113 <td class="memname">T glm::gtx::norm::distance2 </td>
114 <td>(</td>
115 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
116 <td class="paramname"><em>p0</em>, </td>
117 </tr>
118 <tr>
119 <td class="paramkey"></td>
120 <td></td>
121 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
122 <td class="paramname"><em>p1</em>&#160;</td>
123 </tr>
124 <tr>
125 <td></td>
126 <td>)</td>
127 <td></td><td></td>
128 </tr>
129 </table>
130 </div>
131 <div class="memdoc">
132
133 <p>Returns the squared distance between p0 and p1, i.e., length(p0 - p1). </p>
134 <p>From GLM_GTX_norm extension. </p>
135
136 </div>
137 </div>
138 <a class="anchor" id="ga98e5a19ff47fa12f7706625348ef42db"></a><!-- doxytag: member="glm::gtx::norm::distance2" ref="ga98e5a19ff47fa12f7706625348ef42db" args="(const detail::tvec4&lt; T &gt; &amp;p0, const detail::tvec4&lt; T &gt; &amp;p1)" -->
139 <div class="memitem">
140 <div class="memproto">
141 <table class="memname">
142 <tr>
143 <td class="memname">T glm::gtx::norm::distance2 </td>
144 <td>(</td>
145 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
146 <td class="paramname"><em>p0</em>, </td>
147 </tr>
148 <tr>
149 <td class="paramkey"></td>
150 <td></td>
151 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
152 <td class="paramname"><em>p1</em>&#160;</td>
153 </tr>
154 <tr>
155 <td></td>
156 <td>)</td>
157 <td></td><td></td>
158 </tr>
159 </table>
160 </div>
161 <div class="memdoc">
162
163 <p>Returns the squared distance between p0 and p1, i.e., length(p0 - p1). </p>
164 <p>From GLM_GTX_norm extension. </p>
165
166 </div>
167 </div>
168 <a class="anchor" id="ga33760ddfae66d50cc5068e132086aa23"></a><!-- doxytag: member="glm::gtx::norm::distance2" ref="ga33760ddfae66d50cc5068e132086aa23" args="(const detail::tvec2&lt; T &gt; &amp;p0, const detail::tvec2&lt; T &gt; &amp;p1)" -->
169 <div class="memitem">
170 <div class="memproto">
171 <table class="memname">
172 <tr>
173 <td class="memname">T glm::gtx::norm::distance2 </td>
174 <td>(</td>
175 <td class="paramtype">const detail::tvec2&lt; T &gt; &amp;&#160;</td>
176 <td class="paramname"><em>p0</em>, </td>
177 </tr>
178 <tr>
179 <td class="paramkey"></td>
180 <td></td>
181 <td class="paramtype">const detail::tvec2&lt; T &gt; &amp;&#160;</td>
182 <td class="paramname"><em>p1</em>&#160;</td>
183 </tr>
184 <tr>
185 <td></td>
186 <td>)</td>
187 <td></td><td></td>
188 </tr>
189 </table>
190 </div>
191 <div class="memdoc">
192
193 <p>Returns the squared distance between p0 and p1, i.e., length(p0 - p1). </p>
194 <p>From GLM_GTX_norm extension. </p>
195
196 </div>
197 </div>
198 <a class="anchor" id="gab9942ce9c9a3de0fcb2b2d1a7eea5d1b"></a><!-- doxytag: member="glm::gtx::norm::l1Norm" ref="gab9942ce9c9a3de0fcb2b2d1a7eea5d1b" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)" -->
199 <div class="memitem">
200 <div class="memproto">
201 <table class="memname">
202 <tr>
203 <td class="memname">T glm::gtx::norm::l1Norm </td>
204 <td>(</td>
205 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
206 <td class="paramname"><em>x</em>, </td>
207 </tr>
208 <tr>
209 <td class="paramkey"></td>
210 <td></td>
211 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
212 <td class="paramname"><em>y</em>&#160;</td>
213 </tr>
214 <tr>
215 <td></td>
216 <td>)</td>
217 <td></td><td></td>
218 </tr>
219 </table>
220 </div>
221 <div class="memdoc">
222
223 <p>Returns the L1 norm between x and y. </p>
224 <p>From GLM_GTX_norm extension. </p>
225
226 </div>
227 </div>
228 <a class="anchor" id="ga98acb7ecd07cedacaff9af8b4085a29a"></a><!-- doxytag: member="glm::gtx::norm::l1Norm" ref="ga98acb7ecd07cedacaff9af8b4085a29a" args="(const detail::tvec3&lt; T &gt; &amp;v)" -->
229 <div class="memitem">
230 <div class="memproto">
231 <table class="memname">
232 <tr>
233 <td class="memname">T glm::gtx::norm::l1Norm </td>
234 <td>(</td>
235 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
236 <td class="paramname"><em>v</em></td><td>)</td>
237 <td></td>
238 </tr>
239 </table>
240 </div>
241 <div class="memdoc">
242
243 <p>Returns the L1 norm of v. </p>
244 <p>From GLM_GTX_norm extension. </p>
245
246 </div>
247 </div>
248 <a class="anchor" id="ga281fb89a1b196753973cb6932ed43042"></a><!-- doxytag: member="glm::gtx::norm::l2Norm" ref="ga281fb89a1b196753973cb6932ed43042" args="(const detail::tvec3&lt; T &gt; &amp;x)" -->
249 <div class="memitem">
250 <div class="memproto">
251 <table class="memname">
252 <tr>
253 <td class="memname">T glm::gtx::norm::l2Norm </td>
254 <td>(</td>
255 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
256 <td class="paramname"><em>x</em></td><td>)</td>
257 <td></td>
258 </tr>
259 </table>
260 </div>
261 <div class="memdoc">
262
263 <p>Returns the L2 norm of v. </p>
264 <p>From GLM_GTX_norm extension. </p>
265
266 </div>
267 </div>
268 <a class="anchor" id="ga2963700ea5540e339e021733f9b1c285"></a><!-- doxytag: member="glm::gtx::norm::l2Norm" ref="ga2963700ea5540e339e021733f9b1c285" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)" -->
269 <div class="memitem">
270 <div class="memproto">
271 <table class="memname">
272 <tr>
273 <td class="memname">T glm::gtx::norm::l2Norm </td>
274 <td>(</td>
275 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
276 <td class="paramname"><em>x</em>, </td>
277 </tr>
278 <tr>
279 <td class="paramkey"></td>
280 <td></td>
281 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
282 <td class="paramname"><em>y</em>&#160;</td>
283 </tr>
284 <tr>
285 <td></td>
286 <td>)</td>
287 <td></td><td></td>
288 </tr>
289 </table>
290 </div>
291 <div class="memdoc">
292
293 <p>Returns the L2 norm between x and y. </p>
294 <p>From GLM_GTX_norm extension. </p>
295
296 </div>
297 </div>
298 <a class="anchor" id="ga0ba79b01a2b7935086007d58357acea3"></a><!-- doxytag: member="glm::gtx::norm::length2" ref="ga0ba79b01a2b7935086007d58357acea3" args="(const detail::tvec4&lt; T &gt; &amp;x)" -->
299 <div class="memitem">
300 <div class="memproto">
301 <table class="memname">
302 <tr>
303 <td class="memname">T glm::gtx::norm::length2 </td>
304 <td>(</td>
305 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
306 <td class="paramname"><em>x</em></td><td>)</td>
307 <td></td>
308 </tr>
309 </table>
310 </div>
311 <div class="memdoc">
312
313 <p>Returns the squared length of x. </p>
314 <p>From GLM_GTX_norm extension. </p>
315
316 </div>
317 </div>
318 <a class="anchor" id="ga461cea3ee3b98f8fcfea856def1f0ede"></a><!-- doxytag: member="glm::gtx::norm::length2" ref="ga461cea3ee3b98f8fcfea856def1f0ede" args="(const T x)" -->
319 <div class="memitem">
320 <div class="memproto">
321 <table class="memname">
322 <tr>
323 <td class="memname">T glm::gtx::norm::length2 </td>
324 <td>(</td>
325 <td class="paramtype">const T&#160;</td>
326 <td class="paramname"><em>x</em></td><td>)</td>
327 <td></td>
328 </tr>
329 </table>
330 </div>
331 <div class="memdoc">
332
333 <p>Returns the squared length of x. </p>
334 <p>From GLM_GTX_norm extension. </p>
335
336 </div>
337 </div>
338 <a class="anchor" id="gac7f1bcdfe9c78e388cffd45683fa7fdd"></a><!-- doxytag: member="glm::gtx::norm::length2" ref="gac7f1bcdfe9c78e388cffd45683fa7fdd" args="(const detail::tvec2&lt; T &gt; &amp;x)" -->
339 <div class="memitem">
340 <div class="memproto">
341 <table class="memname">
342 <tr>
343 <td class="memname">T glm::gtx::norm::length2 </td>
344 <td>(</td>
345 <td class="paramtype">const detail::tvec2&lt; T &gt; &amp;&#160;</td>
346 <td class="paramname"><em>x</em></td><td>)</td>
347 <td></td>
348 </tr>
349 </table>
350 </div>
351 <div class="memdoc">
352
353 <p>Returns the squared length of x. </p>
354 <p>From GLM_GTX_norm extension. </p>
355
356 </div>
357 </div>
358 <a class="anchor" id="ga812dd3800d13ed6c2808041d34c5f6a0"></a><!-- doxytag: member="glm::gtx::norm::length2" ref="ga812dd3800d13ed6c2808041d34c5f6a0" args="(const detail::tvec3&lt; T &gt; &amp;x)" -->
359 <div class="memitem">
360 <div class="memproto">
361 <table class="memname">
362 <tr>
363 <td class="memname">T glm::gtx::norm::length2 </td>
364 <td>(</td>
365 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
366 <td class="paramname"><em>x</em></td><td>)</td>
367 <td></td>
368 </tr>
369 </table>
370 </div>
371 <div class="memdoc">
372
373 <p>Returns the squared length of x. </p>
374 <p>From GLM_GTX_norm extension. </p>
375
376 </div>
377 </div>
378 <a class="anchor" id="gae70a605bad6c714a2e091db043408d99"></a><!-- doxytag: member="glm::gtx::norm::length2" ref="gae70a605bad6c714a2e091db043408d99" args="(const detail::tquat&lt; T &gt; &amp;q)" -->
379 <div class="memitem">
380 <div class="memproto">
381 <table class="memname">
382 <tr>
383 <td class="memname">T glm::gtx::norm::length2 </td>
384 <td>(</td>
385 <td class="paramtype">const detail::tquat&lt; T &gt; &amp;&#160;</td>
386 <td class="paramname"><em>q</em></td><td>)</td>
387 <td></td>
388 </tr>
389 </table>
390 </div>
391 <div class="memdoc">
392
393 <p>Returns the squared length of x. </p>
394 <p>From GLM_GTX_norm extension. </p>
395
396 </div>
397 </div>
398 <a class="anchor" id="gacfed1ae105bff09745f86d8789503776"></a><!-- doxytag: member="glm::gtx::norm::lxNorm" ref="gacfed1ae105bff09745f86d8789503776" args="(const detail::tvec3&lt; T &gt; &amp;x, unsigned int Depth)" -->
399 <div class="memitem">
400 <div class="memproto">
401 <table class="memname">
402 <tr>
403 <td class="memname">T glm::gtx::norm::lxNorm </td>
404 <td>(</td>
405 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
406 <td class="paramname"><em>x</em>, </td>
407 </tr>
408 <tr>
409 <td class="paramkey"></td>
410 <td></td>
411 <td class="paramtype">unsigned int&#160;</td>
412 <td class="paramname"><em>Depth</em>&#160;</td>
413 </tr>
414 <tr>
415 <td></td>
416 <td>)</td>
417 <td></td><td></td>
418 </tr>
419 </table>
420 </div>
421 <div class="memdoc">
422
423 <p>Returns the L norm of v. </p>
424 <p>From GLM_GTX_norm extension. </p>
425
426 </div>
427 </div>
428 <a class="anchor" id="gab6b384000fdc1a560fd927684f4f3a2a"></a><!-- doxytag: member="glm::gtx::norm::lxNorm" ref="gab6b384000fdc1a560fd927684f4f3a2a" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y, unsigned int Depth)" -->
429 <div class="memitem">
430 <div class="memproto">
431 <table class="memname">
432 <tr>
433 <td class="memname">T glm::gtx::norm::lxNorm </td>
434 <td>(</td>
435 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
436 <td class="paramname"><em>x</em>, </td>
437 </tr>
438 <tr>
439 <td class="paramkey"></td>
440 <td></td>
441 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
442 <td class="paramname"><em>y</em>, </td>
443 </tr>
444 <tr>
445 <td class="paramkey"></td>
446 <td></td>
447 <td class="paramtype">unsigned int&#160;</td>
448 <td class="paramname"><em>Depth</em>&#160;</td>
449 </tr>
450 <tr>
451 <td></td>
452 <td>)</td>
453 <td></td><td></td>
454 </tr>
455 </table>
456 </div>
457 <div class="memdoc">
458
459 <p>Returns the L norm between x and y. </p>
460 <p>From GLM_GTX_norm extension. </p>
81 <p>Computes triangle normal from triangle points. </p>
82 <p>From GLM_GTX_normal extension. </p>
46183
46284 </div>
46385 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_normal: Compute normals</title>
4 <title>GLM_GTX_normalize_dot: Normalize dot product</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_normal: Compute normals</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_normalize_dot: Normalize dot product</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Compute the normal of a triangle.
38 <p>Dot product of vectors that need to be normalize with a single square root.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00277.html#ga465b51d9e302c22572a656e657631310">triangleNormal</a> (detail::tvec3&lt; T &gt; const &amp;p1, detail::tvec3&lt; T &gt; const &amp;p2, detail::tvec3&lt; T &gt; const &amp;p3)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00277.html#ga4828b79df21f008a71824a0eecf6e4d7">fastNormalizeDot</a> (genType const &amp;x, genType const &amp;y)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00277.html#ga71e52e38395048672c908861a3758b76">normalizeDot</a> (genType const &amp;x, genType const &amp;y)</td></tr>
4547 </table>
4648 <hr/><a name="_details"></a><h2>Detailed Description</h2>
47 <p>Compute the normal of a triangle. </p>
48 <p>&lt;<a class="el" href="a00084_source.html">glm/gtx/normal.hpp</a>&gt; need to be included to use these functionalities. </p>
49 <p>Dot product of vectors that need to be normalize with a single square root. </p>
50 <p>&lt;glm/gtx/normalized_dot.hpp&gt; need to be included to use these functionalities. </p>
4951 <hr/><h2>Function Documentation</h2>
50 <a class="anchor" id="ga465b51d9e302c22572a656e657631310"></a><!-- doxytag: member="glm::gtx::normal::triangleNormal" ref="ga465b51d9e302c22572a656e657631310" args="(detail::tvec3&lt; T &gt; const &amp;p1, detail::tvec3&lt; T &gt; const &amp;p2, detail::tvec3&lt; T &gt; const &amp;p3)" -->
52 <a class="anchor" id="ga4828b79df21f008a71824a0eecf6e4d7"></a><!-- doxytag: member="glm::gtx::normalize_dot::fastNormalizeDot" ref="ga4828b79df21f008a71824a0eecf6e4d7" args="(genType const &amp;x, genType const &amp;y)" -->
5153 <div class="memitem">
5254 <div class="memproto">
5355 <table class="memname">
5456 <tr>
55 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::normal::triangleNormal </td>
57 <td class="memname">genType::value_type glm::gtx::normalize_dot::fastNormalizeDot </td>
5658 <td>(</td>
57 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
58 <td class="paramname"><em>p1</em>, </td>
59 <td class="paramtype">genType const &amp;&#160;</td>
60 <td class="paramname"><em>x</em>, </td>
5961 </tr>
6062 <tr>
6163 <td class="paramkey"></td>
6264 <td></td>
63 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
64 <td class="paramname"><em>p2</em>, </td>
65 </tr>
66 <tr>
67 <td class="paramkey"></td>
68 <td></td>
69 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
70 <td class="paramname"><em>p3</em>&#160;</td>
65 <td class="paramtype">genType const &amp;&#160;</td>
66 <td class="paramname"><em>y</em>&#160;</td>
7167 </tr>
7268 <tr>
7369 <td></td>
7874 </div>
7975 <div class="memdoc">
8076
81 <p>Computes triangle normal from triangle points. </p>
82 <p>From GLM_GTX_normal extension. </p>
77 <p>Normalize parameters and returns the dot product of x and y. </p>
78 <p>Faster that dot(fastNormalize(x), fastNormalize(y)). From GLM_GTX_normalize_dot extension. </p>
79
80 </div>
81 </div>
82 <a class="anchor" id="ga71e52e38395048672c908861a3758b76"></a><!-- doxytag: member="glm::gtx::normalize_dot::normalizeDot" ref="ga71e52e38395048672c908861a3758b76" args="(genType const &amp;x, genType const &amp;y)" -->
83 <div class="memitem">
84 <div class="memproto">
85 <table class="memname">
86 <tr>
87 <td class="memname">genType::value_type glm::gtx::normalize_dot::normalizeDot </td>
88 <td>(</td>
89 <td class="paramtype">genType const &amp;&#160;</td>
90 <td class="paramname"><em>x</em>, </td>
91 </tr>
92 <tr>
93 <td class="paramkey"></td>
94 <td></td>
95 <td class="paramtype">genType const &amp;&#160;</td>
96 <td class="paramname"><em>y</em>&#160;</td>
97 </tr>
98 <tr>
99 <td></td>
100 <td>)</td>
101 <td></td><td></td>
102 </tr>
103 </table>
104 </div>
105 <div class="memdoc">
106
107 <p>Normalize parameters and returns the dot product of x and y. </p>
108 <p>It's faster that dot(normalize(x), normalize(y)). From GLM_GTX_normalize_dot extension. </p>
83109
84110 </div>
85111 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_normalize_dot: Normalize dot product</title>
4 <title>GLM_GTX_number_precision: Number precision</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#func-members">Functions</a> </div>
32 <a href="#typedef-members">Typedefs</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_normalize_dot: Normalize dot product</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_number_precision: Number precision</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Dot product of vectors that need to be normalize with a single square root.
38 <p>Defined size types.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
41 <tr><td colspan="2"><h2><a name="func-members"></a>
42 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00278.html#ga4828b79df21f008a71824a0eecf6e4d7">fastNormalizeDot</a> (genType const &amp;x, genType const &amp;y)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00278.html#ga71e52e38395048672c908861a3758b76">normalizeDot</a> (genType const &amp;x, genType const &amp;y)</td></tr>
41 <tr><td colspan="2"><h2><a name="typedef-members"></a>
42 Typedefs</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafb6d00d30a02bc379153fbf0859c55fe"></a><!-- doxytag: member="gtx_number_precision::f16mat1" ref="gafb6d00d30a02bc379153fbf0859c55fe" args="" -->
44 typedef f16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#gafb6d00d30a02bc379153fbf0859c55fe">f16mat1</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga228eca02d3e3f24c2eec052ee7f719fa"></a><!-- doxytag: member="gtx_number_precision::f16mat1x1" ref="ga228eca02d3e3f24c2eec052ee7f719fa" args="" -->
46 typedef f16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga228eca02d3e3f24c2eec052ee7f719fa">f16mat1x1</a></td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga116e2376ef94e8c60bc5c2b66fc5a6db"></a><!-- doxytag: member="gtx_number_precision::f16vec1" ref="ga116e2376ef94e8c60bc5c2b66fc5a6db" args="" -->
48 typedef f16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga116e2376ef94e8c60bc5c2b66fc5a6db">f16vec1</a></td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga145ad477a2a3e152855511c3b52469a6"></a><!-- doxytag: member="gtx_number_precision::f32mat1" ref="ga145ad477a2a3e152855511c3b52469a6" args="" -->
50 typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga145ad477a2a3e152855511c3b52469a6">f32mat1</a></td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac88c6a4dbfc380aa26e3adbbade36348"></a><!-- doxytag: member="gtx_number_precision::f32mat1x1" ref="gac88c6a4dbfc380aa26e3adbbade36348" args="" -->
52 typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#gac88c6a4dbfc380aa26e3adbbade36348">f32mat1x1</a></td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07f8d7348eb7ae059a84c118fdfeb943"></a><!-- doxytag: member="gtx_number_precision::f32vec1" ref="ga07f8d7348eb7ae059a84c118fdfeb943" args="" -->
54 typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga07f8d7348eb7ae059a84c118fdfeb943">f32vec1</a></td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga59bfa589419b5265d01314fcecd33435"></a><!-- doxytag: member="gtx_number_precision::f64mat1" ref="ga59bfa589419b5265d01314fcecd33435" args="" -->
56 typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga59bfa589419b5265d01314fcecd33435">f64mat1</a></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga448eeb08d0b7d8c43a8b292c981955fd"></a><!-- doxytag: member="gtx_number_precision::f64mat1x1" ref="ga448eeb08d0b7d8c43a8b292c981955fd" args="" -->
58 typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga448eeb08d0b7d8c43a8b292c981955fd">f64mat1x1</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae5987a61b8c03d5c432a9e62f0b3efe1"></a><!-- doxytag: member="gtx_number_precision::f64vec1" ref="gae5987a61b8c03d5c432a9e62f0b3efe1" args="" -->
60 typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#gae5987a61b8c03d5c432a9e62f0b3efe1">f64vec1</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52cc069a92e126c3a8dcde93424d2ef0"></a><!-- doxytag: member="gtx_number_precision::u16vec1" ref="ga52cc069a92e126c3a8dcde93424d2ef0" args="" -->
62 typedef u16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga52cc069a92e126c3a8dcde93424d2ef0">u16vec1</a></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9bbc1e14aea65cba5e2dcfef6a67d9f3"></a><!-- doxytag: member="gtx_number_precision::u32vec1" ref="ga9bbc1e14aea65cba5e2dcfef6a67d9f3" args="" -->
64 typedef u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">u32vec1</a></td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga818de170e2584ab037130f2881925974"></a><!-- doxytag: member="gtx_number_precision::u64vec1" ref="ga818de170e2584ab037130f2881925974" args="" -->
66 typedef u64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga818de170e2584ab037130f2881925974">u64vec1</a></td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5853fe457f4c8a6bc09343d0e9833980"></a><!-- doxytag: member="gtx_number_precision::u8vec1" ref="ga5853fe457f4c8a6bc09343d0e9833980" args="" -->
68 typedef u8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00278.html#ga5853fe457f4c8a6bc09343d0e9833980">u8vec1</a></td></tr>
4769 </table>
4870 <hr/><a name="_details"></a><h2>Detailed Description</h2>
49 <p>Dot product of vectors that need to be normalize with a single square root. </p>
50 <p>&lt;glm/gtx/normalized_dot.hpp&gt; need to be included to use these functionalities. </p>
51 <hr/><h2>Function Documentation</h2>
52 <a class="anchor" id="ga4828b79df21f008a71824a0eecf6e4d7"></a><!-- doxytag: member="glm::gtx::normalize_dot::fastNormalizeDot" ref="ga4828b79df21f008a71824a0eecf6e4d7" args="(genType const &amp;x, genType const &amp;y)" -->
53 <div class="memitem">
54 <div class="memproto">
55 <table class="memname">
56 <tr>
57 <td class="memname">genType::value_type glm::gtx::normalize_dot::fastNormalizeDot </td>
58 <td>(</td>
59 <td class="paramtype">genType const &amp;&#160;</td>
60 <td class="paramname"><em>x</em>, </td>
61 </tr>
62 <tr>
63 <td class="paramkey"></td>
64 <td></td>
65 <td class="paramtype">genType const &amp;&#160;</td>
66 <td class="paramname"><em>y</em>&#160;</td>
67 </tr>
68 <tr>
69 <td></td>
70 <td>)</td>
71 <td></td><td></td>
72 </tr>
73 </table>
74 </div>
75 <div class="memdoc">
76
77 <p>Normalize parameters and returns the dot product of x and y. </p>
78 <p>Faster that dot(fastNormalize(x), fastNormalize(y)). From GLM_GTX_normalize_dot extension. </p>
79
80 </div>
81 </div>
82 <a class="anchor" id="ga71e52e38395048672c908861a3758b76"></a><!-- doxytag: member="glm::gtx::normalize_dot::normalizeDot" ref="ga71e52e38395048672c908861a3758b76" args="(genType const &amp;x, genType const &amp;y)" -->
83 <div class="memitem">
84 <div class="memproto">
85 <table class="memname">
86 <tr>
87 <td class="memname">genType::value_type glm::gtx::normalize_dot::normalizeDot </td>
88 <td>(</td>
89 <td class="paramtype">genType const &amp;&#160;</td>
90 <td class="paramname"><em>x</em>, </td>
91 </tr>
92 <tr>
93 <td class="paramkey"></td>
94 <td></td>
95 <td class="paramtype">genType const &amp;&#160;</td>
96 <td class="paramname"><em>y</em>&#160;</td>
97 </tr>
98 <tr>
99 <td></td>
100 <td>)</td>
101 <td></td><td></td>
102 </tr>
103 </table>
104 </div>
105 <div class="memdoc">
106
107 <p>Normalize parameters and returns the dot product of x and y. </p>
108 <p>It's faster that dot(normalize(x), normalize(y)). From GLM_GTX_normalize_dot extension. </p>
109
110 </div>
111 </div>
71 <p>Defined size types. </p>
72 <p>&lt;<a class="el" href="a00086_source.html">glm/gtx/number_precision.hpp</a>&gt; need to be included to use these functionalities. </p>
11273 </div>
11374 <hr class="footer"/><address class="footer"><small>Generated by&#160;
11475 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_number_precision: Number precision</title>
4 <title>GLM_GTX_ocl_type: OpenCL types</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#typedef-members">Typedefs</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_number_precision: Number precision</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_ocl_type: OpenCL types</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Defined size types.
38 <p>OpenCL types.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="typedef-members"></a>
4242 Typedefs</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafb6d00d30a02bc379153fbf0859c55fe"></a><!-- doxytag: member="gtx_number_precision::f16mat1" ref="gafb6d00d30a02bc379153fbf0859c55fe" args="" -->
44 typedef f16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gafb6d00d30a02bc379153fbf0859c55fe">f16mat1</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga228eca02d3e3f24c2eec052ee7f719fa"></a><!-- doxytag: member="gtx_number_precision::f16mat1x1" ref="ga228eca02d3e3f24c2eec052ee7f719fa" args="" -->
46 typedef f16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga228eca02d3e3f24c2eec052ee7f719fa">f16mat1x1</a></td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga116e2376ef94e8c60bc5c2b66fc5a6db"></a><!-- doxytag: member="gtx_number_precision::f16vec1" ref="ga116e2376ef94e8c60bc5c2b66fc5a6db" args="" -->
48 typedef f16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga116e2376ef94e8c60bc5c2b66fc5a6db">f16vec1</a></td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga145ad477a2a3e152855511c3b52469a6"></a><!-- doxytag: member="gtx_number_precision::f32mat1" ref="ga145ad477a2a3e152855511c3b52469a6" args="" -->
50 typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga145ad477a2a3e152855511c3b52469a6">f32mat1</a></td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac88c6a4dbfc380aa26e3adbbade36348"></a><!-- doxytag: member="gtx_number_precision::f32mat1x1" ref="gac88c6a4dbfc380aa26e3adbbade36348" args="" -->
52 typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gac88c6a4dbfc380aa26e3adbbade36348">f32mat1x1</a></td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07f8d7348eb7ae059a84c118fdfeb943"></a><!-- doxytag: member="gtx_number_precision::f32vec1" ref="ga07f8d7348eb7ae059a84c118fdfeb943" args="" -->
54 typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga07f8d7348eb7ae059a84c118fdfeb943">f32vec1</a></td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga59bfa589419b5265d01314fcecd33435"></a><!-- doxytag: member="gtx_number_precision::f64mat1" ref="ga59bfa589419b5265d01314fcecd33435" args="" -->
56 typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga59bfa589419b5265d01314fcecd33435">f64mat1</a></td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga448eeb08d0b7d8c43a8b292c981955fd"></a><!-- doxytag: member="gtx_number_precision::f64mat1x1" ref="ga448eeb08d0b7d8c43a8b292c981955fd" args="" -->
58 typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga448eeb08d0b7d8c43a8b292c981955fd">f64mat1x1</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae5987a61b8c03d5c432a9e62f0b3efe1"></a><!-- doxytag: member="gtx_number_precision::f64vec1" ref="gae5987a61b8c03d5c432a9e62f0b3efe1" args="" -->
60 typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gae5987a61b8c03d5c432a9e62f0b3efe1">f64vec1</a></td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52cc069a92e126c3a8dcde93424d2ef0"></a><!-- doxytag: member="gtx_number_precision::u16vec1" ref="ga52cc069a92e126c3a8dcde93424d2ef0" args="" -->
62 typedef u16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga52cc069a92e126c3a8dcde93424d2ef0">u16vec1</a></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9bbc1e14aea65cba5e2dcfef6a67d9f3"></a><!-- doxytag: member="gtx_number_precision::u32vec1" ref="ga9bbc1e14aea65cba5e2dcfef6a67d9f3" args="" -->
64 typedef u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">u32vec1</a></td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga818de170e2584ab037130f2881925974"></a><!-- doxytag: member="gtx_number_precision::u64vec1" ref="ga818de170e2584ab037130f2881925974" args="" -->
66 typedef u64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga818de170e2584ab037130f2881925974">u64vec1</a></td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5853fe457f4c8a6bc09343d0e9833980"></a><!-- doxytag: member="gtx_number_precision::u8vec1" ref="ga5853fe457f4c8a6bc09343d0e9833980" args="" -->
68 typedef u8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga5853fe457f4c8a6bc09343d0e9833980">u8vec1</a></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga595300752d3c11b13411074df8fcadc7"></a><!-- doxytag: member="gtx_ocl_type::cl_char" ref="ga595300752d3c11b13411074df8fcadc7" args="" -->
44 typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga595300752d3c11b13411074df8fcadc7">cl_char</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafe341e63c543ce750d41ed776ca0f8cc"></a><!-- doxytag: member="gtx_ocl_type::cl_char1" ref="gafe341e63c543ce750d41ed776ca0f8cc" args="" -->
46 typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gafe341e63c543ce750d41ed776ca0f8cc">cl_char1</a></td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5eaab898e9289ffad98798d96a8ff22e"></a><!-- doxytag: member="gtx_ocl_type::cl_char2" ref="ga5eaab898e9289ffad98798d96a8ff22e" args="" -->
48 typedef detail::tvec2<br class="typebreak"/>
49 &lt; detail::int8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga5eaab898e9289ffad98798d96a8ff22e">cl_char2</a></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3f60c528dc517a88386358e525238198"></a><!-- doxytag: member="gtx_ocl_type::cl_char3" ref="ga3f60c528dc517a88386358e525238198" args="" -->
51 typedef detail::tvec3<br class="typebreak"/>
52 &lt; detail::int8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga3f60c528dc517a88386358e525238198">cl_char3</a></td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7235804672db90b3b2e8bba142ff4977"></a><!-- doxytag: member="gtx_ocl_type::cl_char4" ref="ga7235804672db90b3b2e8bba142ff4977" args="" -->
54 typedef detail::tvec4<br class="typebreak"/>
55 &lt; detail::int8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga7235804672db90b3b2e8bba142ff4977">cl_char4</a></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6a505bfaeb7d16f0aee456c238d31f06"></a><!-- doxytag: member="gtx_ocl_type::cl_float" ref="ga6a505bfaeb7d16f0aee456c238d31f06" args="" -->
57 typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga6a505bfaeb7d16f0aee456c238d31f06">cl_float</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabd9de5d6f4075dcf643bcb3c74b4d169"></a><!-- doxytag: member="gtx_ocl_type::cl_float1" ref="gabd9de5d6f4075dcf643bcb3c74b4d169" args="" -->
59 typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gabd9de5d6f4075dcf643bcb3c74b4d169">cl_float1</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1d631e031b44406b9ecf4c9390ff4aaf"></a><!-- doxytag: member="gtx_ocl_type::cl_float2" ref="ga1d631e031b44406b9ecf4c9390ff4aaf" args="" -->
61 typedef detail::tvec2<br class="typebreak"/>
62 &lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga1d631e031b44406b9ecf4c9390ff4aaf">cl_float2</a></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad4526a10e23f201f55649f264856683"></a><!-- doxytag: member="gtx_ocl_type::cl_float3" ref="gaad4526a10e23f201f55649f264856683" args="" -->
64 typedef detail::tvec3<br class="typebreak"/>
65 &lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gaad4526a10e23f201f55649f264856683">cl_float3</a></td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6a4d1b4f7bfdb1721f1554b30096b325"></a><!-- doxytag: member="gtx_ocl_type::cl_float4" ref="ga6a4d1b4f7bfdb1721f1554b30096b325" args="" -->
67 typedef detail::tvec4<br class="typebreak"/>
68 &lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga6a4d1b4f7bfdb1721f1554b30096b325">cl_float4</a></td></tr>
69 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8bb152355ac899354df1742c673faad0"></a><!-- doxytag: member="gtx_ocl_type::cl_half" ref="ga8bb152355ac899354df1742c673faad0" args="" -->
70 typedef detail::float16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga8bb152355ac899354df1742c673faad0">cl_half</a></td></tr>
71 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga15daeef78674bfa6218f1fc8050e0967"></a><!-- doxytag: member="gtx_ocl_type::cl_int" ref="ga15daeef78674bfa6218f1fc8050e0967" args="" -->
72 typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga15daeef78674bfa6218f1fc8050e0967">cl_int</a></td></tr>
73 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga929eeb0ebaa707edf32fe6381eac38a2"></a><!-- doxytag: member="gtx_ocl_type::cl_int1" ref="ga929eeb0ebaa707edf32fe6381eac38a2" args="" -->
74 typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga929eeb0ebaa707edf32fe6381eac38a2">cl_int1</a></td></tr>
75 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga75d44bea03be3491e5636dea711b70eb"></a><!-- doxytag: member="gtx_ocl_type::cl_int2" ref="ga75d44bea03be3491e5636dea711b70eb" args="" -->
76 typedef detail::tvec2<br class="typebreak"/>
77 &lt; detail::int32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga75d44bea03be3491e5636dea711b70eb">cl_int2</a></td></tr>
78 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga685501809b08b64d48ede7cd04818675"></a><!-- doxytag: member="gtx_ocl_type::cl_int3" ref="ga685501809b08b64d48ede7cd04818675" args="" -->
79 typedef detail::tvec3<br class="typebreak"/>
80 &lt; detail::int32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga685501809b08b64d48ede7cd04818675">cl_int3</a></td></tr>
81 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7cf765cb37a5717826260a44e7c37d03"></a><!-- doxytag: member="gtx_ocl_type::cl_int4" ref="ga7cf765cb37a5717826260a44e7c37d03" args="" -->
82 typedef detail::tvec4<br class="typebreak"/>
83 &lt; detail::int32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga7cf765cb37a5717826260a44e7c37d03">cl_int4</a></td></tr>
84 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga58de53886632d819d967a2972a977c37"></a><!-- doxytag: member="gtx_ocl_type::cl_long" ref="ga58de53886632d819d967a2972a977c37" args="" -->
85 typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga58de53886632d819d967a2972a977c37">cl_long</a></td></tr>
86 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga23c699d4f4ccf698822b67da14b87481"></a><!-- doxytag: member="gtx_ocl_type::cl_long1" ref="ga23c699d4f4ccf698822b67da14b87481" args="" -->
87 typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga23c699d4f4ccf698822b67da14b87481">cl_long1</a></td></tr>
88 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga64aa9b2dc534ebd9cb26010e2eabd987"></a><!-- doxytag: member="gtx_ocl_type::cl_long2" ref="ga64aa9b2dc534ebd9cb26010e2eabd987" args="" -->
89 typedef detail::tvec2<br class="typebreak"/>
90 &lt; detail::int64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga64aa9b2dc534ebd9cb26010e2eabd987">cl_long2</a></td></tr>
91 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6deed316e020729bc448758fc2e72388"></a><!-- doxytag: member="gtx_ocl_type::cl_long3" ref="ga6deed316e020729bc448758fc2e72388" args="" -->
92 typedef detail::tvec3<br class="typebreak"/>
93 &lt; detail::int64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga6deed316e020729bc448758fc2e72388">cl_long3</a></td></tr>
94 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4f38be1bb22d86fa7617da6f6907b74c"></a><!-- doxytag: member="gtx_ocl_type::cl_long4" ref="ga4f38be1bb22d86fa7617da6f6907b74c" args="" -->
95 typedef detail::tvec4<br class="typebreak"/>
96 &lt; detail::int64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga4f38be1bb22d86fa7617da6f6907b74c">cl_long4</a></td></tr>
97 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga30b0387f3031a789362d91fc2dd2dc3f"></a><!-- doxytag: member="gtx_ocl_type::cl_short" ref="ga30b0387f3031a789362d91fc2dd2dc3f" args="" -->
98 typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga30b0387f3031a789362d91fc2dd2dc3f">cl_short</a></td></tr>
99 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacedae42c667e97db08055a962e4ac73f"></a><!-- doxytag: member="gtx_ocl_type::cl_short1" ref="gacedae42c667e97db08055a962e4ac73f" args="" -->
100 typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gacedae42c667e97db08055a962e4ac73f">cl_short1</a></td></tr>
101 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga035b54a5fd591587d9fa6131e8a0c73c"></a><!-- doxytag: member="gtx_ocl_type::cl_short2" ref="ga035b54a5fd591587d9fa6131e8a0c73c" args="" -->
102 typedef detail::tvec2<br class="typebreak"/>
103 &lt; detail::int16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga035b54a5fd591587d9fa6131e8a0c73c">cl_short2</a></td></tr>
104 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaacc919abeb1dac5c46b35cba6f2ff1f6"></a><!-- doxytag: member="gtx_ocl_type::cl_short3" ref="gaacc919abeb1dac5c46b35cba6f2ff1f6" args="" -->
105 typedef detail::tvec3<br class="typebreak"/>
106 &lt; detail::int16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gaacc919abeb1dac5c46b35cba6f2ff1f6">cl_short3</a></td></tr>
107 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4682ecd16257fe283e891b3979e3037c"></a><!-- doxytag: member="gtx_ocl_type::cl_short4" ref="ga4682ecd16257fe283e891b3979e3037c" args="" -->
108 typedef detail::tvec4<br class="typebreak"/>
109 &lt; detail::int16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga4682ecd16257fe283e891b3979e3037c">cl_short4</a></td></tr>
110 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga791bdd6f40533322f03efcc031dc43e7"></a><!-- doxytag: member="gtx_ocl_type::cl_uchar" ref="ga791bdd6f40533322f03efcc031dc43e7" args="" -->
111 typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga791bdd6f40533322f03efcc031dc43e7">cl_uchar</a></td></tr>
112 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga458a3244086d84cb4a02356e17e10e41"></a><!-- doxytag: member="gtx_ocl_type::cl_uchar1" ref="ga458a3244086d84cb4a02356e17e10e41" args="" -->
113 typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga458a3244086d84cb4a02356e17e10e41">cl_uchar1</a></td></tr>
114 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafee78def47febbb4ff7789df67f80e67"></a><!-- doxytag: member="gtx_ocl_type::cl_uchar2" ref="gafee78def47febbb4ff7789df67f80e67" args="" -->
115 typedef detail::tvec2<br class="typebreak"/>
116 &lt; detail::uint8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gafee78def47febbb4ff7789df67f80e67">cl_uchar2</a></td></tr>
117 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga03f1fdd60172bf92db40de83e13ab2f8"></a><!-- doxytag: member="gtx_ocl_type::cl_uchar3" ref="ga03f1fdd60172bf92db40de83e13ab2f8" args="" -->
118 typedef detail::tvec3<br class="typebreak"/>
119 &lt; detail::uint8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga03f1fdd60172bf92db40de83e13ab2f8">cl_uchar3</a></td></tr>
120 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1ba627aa90581618f0aff17a4f52ebc6"></a><!-- doxytag: member="gtx_ocl_type::cl_uchar4" ref="ga1ba627aa90581618f0aff17a4f52ebc6" args="" -->
121 typedef detail::tvec4<br class="typebreak"/>
122 &lt; detail::uint8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga1ba627aa90581618f0aff17a4f52ebc6">cl_uchar4</a></td></tr>
123 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafab0cba90c3db2c143bb3e1bc38ac41f"></a><!-- doxytag: member="gtx_ocl_type::cl_uint" ref="gafab0cba90c3db2c143bb3e1bc38ac41f" args="" -->
124 typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gafab0cba90c3db2c143bb3e1bc38ac41f">cl_uint</a></td></tr>
125 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga463351df94e9f31c91787e9ead1d0f5e"></a><!-- doxytag: member="gtx_ocl_type::cl_uint1" ref="ga463351df94e9f31c91787e9ead1d0f5e" args="" -->
126 typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga463351df94e9f31c91787e9ead1d0f5e">cl_uint1</a></td></tr>
127 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf64dcd996174ae3271a9590c232d680f"></a><!-- doxytag: member="gtx_ocl_type::cl_uint2" ref="gaf64dcd996174ae3271a9590c232d680f" args="" -->
128 typedef detail::tvec2<br class="typebreak"/>
129 &lt; detail::uint32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gaf64dcd996174ae3271a9590c232d680f">cl_uint2</a></td></tr>
130 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga423c13d5b93ab6f5fcdf248e0c89fb8d"></a><!-- doxytag: member="gtx_ocl_type::cl_uint3" ref="ga423c13d5b93ab6f5fcdf248e0c89fb8d" args="" -->
131 typedef detail::tvec3<br class="typebreak"/>
132 &lt; detail::uint32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga423c13d5b93ab6f5fcdf248e0c89fb8d">cl_uint3</a></td></tr>
133 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae75d9f1c7e3cebf862623eb3073870b0"></a><!-- doxytag: member="gtx_ocl_type::cl_uint4" ref="gae75d9f1c7e3cebf862623eb3073870b0" args="" -->
134 typedef detail::tvec4<br class="typebreak"/>
135 &lt; detail::uint32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gae75d9f1c7e3cebf862623eb3073870b0">cl_uint4</a></td></tr>
136 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf00884c494b2bd9d47c739847c5e8eaf"></a><!-- doxytag: member="gtx_ocl_type::cl_ulong" ref="gaf00884c494b2bd9d47c739847c5e8eaf" args="" -->
137 typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gaf00884c494b2bd9d47c739847c5e8eaf">cl_ulong</a></td></tr>
138 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38c51ec5073e63c422c741cf7e40a6a8"></a><!-- doxytag: member="gtx_ocl_type::cl_ulong1" ref="ga38c51ec5073e63c422c741cf7e40a6a8" args="" -->
139 typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga38c51ec5073e63c422c741cf7e40a6a8">cl_ulong1</a></td></tr>
140 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga983b584fd1a89ba357c4d161f57a97a5"></a><!-- doxytag: member="gtx_ocl_type::cl_ulong2" ref="ga983b584fd1a89ba357c4d161f57a97a5" args="" -->
141 typedef detail::tvec2<br class="typebreak"/>
142 &lt; detail::uint64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga983b584fd1a89ba357c4d161f57a97a5">cl_ulong2</a></td></tr>
143 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad8f2d09028d9522ff6b792ceaeeebbc"></a><!-- doxytag: member="gtx_ocl_type::cl_ulong3" ref="gaad8f2d09028d9522ff6b792ceaeeebbc" args="" -->
144 typedef detail::tvec3<br class="typebreak"/>
145 &lt; detail::uint64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gaad8f2d09028d9522ff6b792ceaeeebbc">cl_ulong3</a></td></tr>
146 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5724575e5574de465785f06eeefd8789"></a><!-- doxytag: member="gtx_ocl_type::cl_ulong4" ref="ga5724575e5574de465785f06eeefd8789" args="" -->
147 typedef detail::tvec4<br class="typebreak"/>
148 &lt; detail::uint64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga5724575e5574de465785f06eeefd8789">cl_ulong4</a></td></tr>
149 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga17431e27a8e8d20ec69a3ba3f6557a2d"></a><!-- doxytag: member="gtx_ocl_type::cl_ushort" ref="ga17431e27a8e8d20ec69a3ba3f6557a2d" args="" -->
150 typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga17431e27a8e8d20ec69a3ba3f6557a2d">cl_ushort</a></td></tr>
151 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2765c8e248830f14881cafc7ff08ce48"></a><!-- doxytag: member="gtx_ocl_type::cl_ushort1" ref="ga2765c8e248830f14881cafc7ff08ce48" args="" -->
152 typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga2765c8e248830f14881cafc7ff08ce48">cl_ushort1</a></td></tr>
153 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83879286ad8a304211a9bd1dec8a81b9"></a><!-- doxytag: member="gtx_ocl_type::cl_ushort2" ref="ga83879286ad8a304211a9bd1dec8a81b9" args="" -->
154 typedef detail::tvec2<br class="typebreak"/>
155 &lt; detail::uint16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga83879286ad8a304211a9bd1dec8a81b9">cl_ushort2</a></td></tr>
156 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8ffa538b79f80a173f52a83c3bcc0587"></a><!-- doxytag: member="gtx_ocl_type::cl_ushort3" ref="ga8ffa538b79f80a173f52a83c3bcc0587" args="" -->
157 typedef detail::tvec3<br class="typebreak"/>
158 &lt; detail::uint16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga8ffa538b79f80a173f52a83c3bcc0587">cl_ushort3</a></td></tr>
159 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaef286e330c9eaa72e71c5081a85592b3"></a><!-- doxytag: member="gtx_ocl_type::cl_ushort4" ref="gaef286e330c9eaa72e71c5081a85592b3" args="" -->
160 typedef detail::tvec4<br class="typebreak"/>
161 &lt; detail::uint16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#gaef286e330c9eaa72e71c5081a85592b3">cl_ushort4</a></td></tr>
69162 </table>
70163 <hr/><a name="_details"></a><h2>Detailed Description</h2>
71 <p>Defined size types. </p>
72 <p>&lt;<a class="el" href="a00086_source.html">glm/gtx/number_precision.hpp</a>&gt; need to be included to use these functionalities. </p>
164 <p>OpenCL types. </p>
165 <p>&lt;<a class="el" href="a00087_source.html">glm/gtx/ocl_type.hpp</a>&gt; need to be included to use these functionalities. </p>
73166 </div>
74167 <hr class="footer"/><address class="footer"><small>Generated by&#160;
75168 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_ocl_type: OpenCL types</title>
4 <title>GLM_GTX_optimum_pow: Optimum pow</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#typedef-members">Typedefs</a> </div>
32 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_ocl_type: OpenCL types</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_optimum_pow: Optimum pow</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>OpenCL types.
38 <p>Integer exponentiation of power functions.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
41 <tr><td colspan="2"><h2><a name="typedef-members"></a>
42 Typedefs</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga595300752d3c11b13411074df8fcadc7"></a><!-- doxytag: member="gtx_ocl_type::cl_char" ref="ga595300752d3c11b13411074df8fcadc7" args="" -->
44 typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga595300752d3c11b13411074df8fcadc7">cl_char</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafe341e63c543ce750d41ed776ca0f8cc"></a><!-- doxytag: member="gtx_ocl_type::cl_char1" ref="gafe341e63c543ce750d41ed776ca0f8cc" args="" -->
46 typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gafe341e63c543ce750d41ed776ca0f8cc">cl_char1</a></td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5eaab898e9289ffad98798d96a8ff22e"></a><!-- doxytag: member="gtx_ocl_type::cl_char2" ref="ga5eaab898e9289ffad98798d96a8ff22e" args="" -->
48 typedef detail::tvec2<br class="typebreak"/>
49 &lt; detail::int8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga5eaab898e9289ffad98798d96a8ff22e">cl_char2</a></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3f60c528dc517a88386358e525238198"></a><!-- doxytag: member="gtx_ocl_type::cl_char3" ref="ga3f60c528dc517a88386358e525238198" args="" -->
51 typedef detail::tvec3<br class="typebreak"/>
52 &lt; detail::int8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga3f60c528dc517a88386358e525238198">cl_char3</a></td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7235804672db90b3b2e8bba142ff4977"></a><!-- doxytag: member="gtx_ocl_type::cl_char4" ref="ga7235804672db90b3b2e8bba142ff4977" args="" -->
54 typedef detail::tvec4<br class="typebreak"/>
55 &lt; detail::int8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga7235804672db90b3b2e8bba142ff4977">cl_char4</a></td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6a505bfaeb7d16f0aee456c238d31f06"></a><!-- doxytag: member="gtx_ocl_type::cl_float" ref="ga6a505bfaeb7d16f0aee456c238d31f06" args="" -->
57 typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga6a505bfaeb7d16f0aee456c238d31f06">cl_float</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabd9de5d6f4075dcf643bcb3c74b4d169"></a><!-- doxytag: member="gtx_ocl_type::cl_float1" ref="gabd9de5d6f4075dcf643bcb3c74b4d169" args="" -->
59 typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gabd9de5d6f4075dcf643bcb3c74b4d169">cl_float1</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1d631e031b44406b9ecf4c9390ff4aaf"></a><!-- doxytag: member="gtx_ocl_type::cl_float2" ref="ga1d631e031b44406b9ecf4c9390ff4aaf" args="" -->
61 typedef detail::tvec2<br class="typebreak"/>
62 &lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga1d631e031b44406b9ecf4c9390ff4aaf">cl_float2</a></td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad4526a10e23f201f55649f264856683"></a><!-- doxytag: member="gtx_ocl_type::cl_float3" ref="gaad4526a10e23f201f55649f264856683" args="" -->
64 typedef detail::tvec3<br class="typebreak"/>
65 &lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gaad4526a10e23f201f55649f264856683">cl_float3</a></td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6a4d1b4f7bfdb1721f1554b30096b325"></a><!-- doxytag: member="gtx_ocl_type::cl_float4" ref="ga6a4d1b4f7bfdb1721f1554b30096b325" args="" -->
67 typedef detail::tvec4<br class="typebreak"/>
68 &lt; detail::float32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga6a4d1b4f7bfdb1721f1554b30096b325">cl_float4</a></td></tr>
69 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8bb152355ac899354df1742c673faad0"></a><!-- doxytag: member="gtx_ocl_type::cl_half" ref="ga8bb152355ac899354df1742c673faad0" args="" -->
70 typedef detail::float16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga8bb152355ac899354df1742c673faad0">cl_half</a></td></tr>
71 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga15daeef78674bfa6218f1fc8050e0967"></a><!-- doxytag: member="gtx_ocl_type::cl_int" ref="ga15daeef78674bfa6218f1fc8050e0967" args="" -->
72 typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga15daeef78674bfa6218f1fc8050e0967">cl_int</a></td></tr>
73 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga929eeb0ebaa707edf32fe6381eac38a2"></a><!-- doxytag: member="gtx_ocl_type::cl_int1" ref="ga929eeb0ebaa707edf32fe6381eac38a2" args="" -->
74 typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga929eeb0ebaa707edf32fe6381eac38a2">cl_int1</a></td></tr>
75 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga75d44bea03be3491e5636dea711b70eb"></a><!-- doxytag: member="gtx_ocl_type::cl_int2" ref="ga75d44bea03be3491e5636dea711b70eb" args="" -->
76 typedef detail::tvec2<br class="typebreak"/>
77 &lt; detail::int32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga75d44bea03be3491e5636dea711b70eb">cl_int2</a></td></tr>
78 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga685501809b08b64d48ede7cd04818675"></a><!-- doxytag: member="gtx_ocl_type::cl_int3" ref="ga685501809b08b64d48ede7cd04818675" args="" -->
79 typedef detail::tvec3<br class="typebreak"/>
80 &lt; detail::int32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga685501809b08b64d48ede7cd04818675">cl_int3</a></td></tr>
81 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7cf765cb37a5717826260a44e7c37d03"></a><!-- doxytag: member="gtx_ocl_type::cl_int4" ref="ga7cf765cb37a5717826260a44e7c37d03" args="" -->
82 typedef detail::tvec4<br class="typebreak"/>
83 &lt; detail::int32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga7cf765cb37a5717826260a44e7c37d03">cl_int4</a></td></tr>
84 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga58de53886632d819d967a2972a977c37"></a><!-- doxytag: member="gtx_ocl_type::cl_long" ref="ga58de53886632d819d967a2972a977c37" args="" -->
85 typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga58de53886632d819d967a2972a977c37">cl_long</a></td></tr>
86 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga23c699d4f4ccf698822b67da14b87481"></a><!-- doxytag: member="gtx_ocl_type::cl_long1" ref="ga23c699d4f4ccf698822b67da14b87481" args="" -->
87 typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga23c699d4f4ccf698822b67da14b87481">cl_long1</a></td></tr>
88 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga64aa9b2dc534ebd9cb26010e2eabd987"></a><!-- doxytag: member="gtx_ocl_type::cl_long2" ref="ga64aa9b2dc534ebd9cb26010e2eabd987" args="" -->
89 typedef detail::tvec2<br class="typebreak"/>
90 &lt; detail::int64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga64aa9b2dc534ebd9cb26010e2eabd987">cl_long2</a></td></tr>
91 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6deed316e020729bc448758fc2e72388"></a><!-- doxytag: member="gtx_ocl_type::cl_long3" ref="ga6deed316e020729bc448758fc2e72388" args="" -->
92 typedef detail::tvec3<br class="typebreak"/>
93 &lt; detail::int64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga6deed316e020729bc448758fc2e72388">cl_long3</a></td></tr>
94 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4f38be1bb22d86fa7617da6f6907b74c"></a><!-- doxytag: member="gtx_ocl_type::cl_long4" ref="ga4f38be1bb22d86fa7617da6f6907b74c" args="" -->
95 typedef detail::tvec4<br class="typebreak"/>
96 &lt; detail::int64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga4f38be1bb22d86fa7617da6f6907b74c">cl_long4</a></td></tr>
97 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga30b0387f3031a789362d91fc2dd2dc3f"></a><!-- doxytag: member="gtx_ocl_type::cl_short" ref="ga30b0387f3031a789362d91fc2dd2dc3f" args="" -->
98 typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga30b0387f3031a789362d91fc2dd2dc3f">cl_short</a></td></tr>
99 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacedae42c667e97db08055a962e4ac73f"></a><!-- doxytag: member="gtx_ocl_type::cl_short1" ref="gacedae42c667e97db08055a962e4ac73f" args="" -->
100 typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gacedae42c667e97db08055a962e4ac73f">cl_short1</a></td></tr>
101 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga035b54a5fd591587d9fa6131e8a0c73c"></a><!-- doxytag: member="gtx_ocl_type::cl_short2" ref="ga035b54a5fd591587d9fa6131e8a0c73c" args="" -->
102 typedef detail::tvec2<br class="typebreak"/>
103 &lt; detail::int16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga035b54a5fd591587d9fa6131e8a0c73c">cl_short2</a></td></tr>
104 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaacc919abeb1dac5c46b35cba6f2ff1f6"></a><!-- doxytag: member="gtx_ocl_type::cl_short3" ref="gaacc919abeb1dac5c46b35cba6f2ff1f6" args="" -->
105 typedef detail::tvec3<br class="typebreak"/>
106 &lt; detail::int16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gaacc919abeb1dac5c46b35cba6f2ff1f6">cl_short3</a></td></tr>
107 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4682ecd16257fe283e891b3979e3037c"></a><!-- doxytag: member="gtx_ocl_type::cl_short4" ref="ga4682ecd16257fe283e891b3979e3037c" args="" -->
108 typedef detail::tvec4<br class="typebreak"/>
109 &lt; detail::int16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga4682ecd16257fe283e891b3979e3037c">cl_short4</a></td></tr>
110 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga791bdd6f40533322f03efcc031dc43e7"></a><!-- doxytag: member="gtx_ocl_type::cl_uchar" ref="ga791bdd6f40533322f03efcc031dc43e7" args="" -->
111 typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga791bdd6f40533322f03efcc031dc43e7">cl_uchar</a></td></tr>
112 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga458a3244086d84cb4a02356e17e10e41"></a><!-- doxytag: member="gtx_ocl_type::cl_uchar1" ref="ga458a3244086d84cb4a02356e17e10e41" args="" -->
113 typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga458a3244086d84cb4a02356e17e10e41">cl_uchar1</a></td></tr>
114 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafee78def47febbb4ff7789df67f80e67"></a><!-- doxytag: member="gtx_ocl_type::cl_uchar2" ref="gafee78def47febbb4ff7789df67f80e67" args="" -->
115 typedef detail::tvec2<br class="typebreak"/>
116 &lt; detail::uint8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gafee78def47febbb4ff7789df67f80e67">cl_uchar2</a></td></tr>
117 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga03f1fdd60172bf92db40de83e13ab2f8"></a><!-- doxytag: member="gtx_ocl_type::cl_uchar3" ref="ga03f1fdd60172bf92db40de83e13ab2f8" args="" -->
118 typedef detail::tvec3<br class="typebreak"/>
119 &lt; detail::uint8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga03f1fdd60172bf92db40de83e13ab2f8">cl_uchar3</a></td></tr>
120 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1ba627aa90581618f0aff17a4f52ebc6"></a><!-- doxytag: member="gtx_ocl_type::cl_uchar4" ref="ga1ba627aa90581618f0aff17a4f52ebc6" args="" -->
121 typedef detail::tvec4<br class="typebreak"/>
122 &lt; detail::uint8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga1ba627aa90581618f0aff17a4f52ebc6">cl_uchar4</a></td></tr>
123 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafab0cba90c3db2c143bb3e1bc38ac41f"></a><!-- doxytag: member="gtx_ocl_type::cl_uint" ref="gafab0cba90c3db2c143bb3e1bc38ac41f" args="" -->
124 typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gafab0cba90c3db2c143bb3e1bc38ac41f">cl_uint</a></td></tr>
125 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga463351df94e9f31c91787e9ead1d0f5e"></a><!-- doxytag: member="gtx_ocl_type::cl_uint1" ref="ga463351df94e9f31c91787e9ead1d0f5e" args="" -->
126 typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga463351df94e9f31c91787e9ead1d0f5e">cl_uint1</a></td></tr>
127 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf64dcd996174ae3271a9590c232d680f"></a><!-- doxytag: member="gtx_ocl_type::cl_uint2" ref="gaf64dcd996174ae3271a9590c232d680f" args="" -->
128 typedef detail::tvec2<br class="typebreak"/>
129 &lt; detail::uint32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gaf64dcd996174ae3271a9590c232d680f">cl_uint2</a></td></tr>
130 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga423c13d5b93ab6f5fcdf248e0c89fb8d"></a><!-- doxytag: member="gtx_ocl_type::cl_uint3" ref="ga423c13d5b93ab6f5fcdf248e0c89fb8d" args="" -->
131 typedef detail::tvec3<br class="typebreak"/>
132 &lt; detail::uint32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga423c13d5b93ab6f5fcdf248e0c89fb8d">cl_uint3</a></td></tr>
133 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae75d9f1c7e3cebf862623eb3073870b0"></a><!-- doxytag: member="gtx_ocl_type::cl_uint4" ref="gae75d9f1c7e3cebf862623eb3073870b0" args="" -->
134 typedef detail::tvec4<br class="typebreak"/>
135 &lt; detail::uint32 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gae75d9f1c7e3cebf862623eb3073870b0">cl_uint4</a></td></tr>
136 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf00884c494b2bd9d47c739847c5e8eaf"></a><!-- doxytag: member="gtx_ocl_type::cl_ulong" ref="gaf00884c494b2bd9d47c739847c5e8eaf" args="" -->
137 typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gaf00884c494b2bd9d47c739847c5e8eaf">cl_ulong</a></td></tr>
138 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38c51ec5073e63c422c741cf7e40a6a8"></a><!-- doxytag: member="gtx_ocl_type::cl_ulong1" ref="ga38c51ec5073e63c422c741cf7e40a6a8" args="" -->
139 typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga38c51ec5073e63c422c741cf7e40a6a8">cl_ulong1</a></td></tr>
140 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga983b584fd1a89ba357c4d161f57a97a5"></a><!-- doxytag: member="gtx_ocl_type::cl_ulong2" ref="ga983b584fd1a89ba357c4d161f57a97a5" args="" -->
141 typedef detail::tvec2<br class="typebreak"/>
142 &lt; detail::uint64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga983b584fd1a89ba357c4d161f57a97a5">cl_ulong2</a></td></tr>
143 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad8f2d09028d9522ff6b792ceaeeebbc"></a><!-- doxytag: member="gtx_ocl_type::cl_ulong3" ref="gaad8f2d09028d9522ff6b792ceaeeebbc" args="" -->
144 typedef detail::tvec3<br class="typebreak"/>
145 &lt; detail::uint64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gaad8f2d09028d9522ff6b792ceaeeebbc">cl_ulong3</a></td></tr>
146 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5724575e5574de465785f06eeefd8789"></a><!-- doxytag: member="gtx_ocl_type::cl_ulong4" ref="ga5724575e5574de465785f06eeefd8789" args="" -->
147 typedef detail::tvec4<br class="typebreak"/>
148 &lt; detail::uint64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga5724575e5574de465785f06eeefd8789">cl_ulong4</a></td></tr>
149 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga17431e27a8e8d20ec69a3ba3f6557a2d"></a><!-- doxytag: member="gtx_ocl_type::cl_ushort" ref="ga17431e27a8e8d20ec69a3ba3f6557a2d" args="" -->
150 typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga17431e27a8e8d20ec69a3ba3f6557a2d">cl_ushort</a></td></tr>
151 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2765c8e248830f14881cafc7ff08ce48"></a><!-- doxytag: member="gtx_ocl_type::cl_ushort1" ref="ga2765c8e248830f14881cafc7ff08ce48" args="" -->
152 typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga2765c8e248830f14881cafc7ff08ce48">cl_ushort1</a></td></tr>
153 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83879286ad8a304211a9bd1dec8a81b9"></a><!-- doxytag: member="gtx_ocl_type::cl_ushort2" ref="ga83879286ad8a304211a9bd1dec8a81b9" args="" -->
154 typedef detail::tvec2<br class="typebreak"/>
155 &lt; detail::uint16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga83879286ad8a304211a9bd1dec8a81b9">cl_ushort2</a></td></tr>
156 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8ffa538b79f80a173f52a83c3bcc0587"></a><!-- doxytag: member="gtx_ocl_type::cl_ushort3" ref="ga8ffa538b79f80a173f52a83c3bcc0587" args="" -->
157 typedef detail::tvec3<br class="typebreak"/>
158 &lt; detail::uint16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga8ffa538b79f80a173f52a83c3bcc0587">cl_ushort3</a></td></tr>
159 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaef286e330c9eaa72e71c5081a85592b3"></a><!-- doxytag: member="gtx_ocl_type::cl_ushort4" ref="gaef286e330c9eaa72e71c5081a85592b3" args="" -->
160 typedef detail::tvec4<br class="typebreak"/>
161 &lt; detail::uint16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gaef286e330c9eaa72e71c5081a85592b3">cl_ushort4</a></td></tr>
41 <tr><td colspan="2"><h2><a name="func-members"></a>
42 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00280.html#gaed0305d69d3e3ba925d2c6e138b4f4bf">pow2</a> (const genType &amp;x)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00280.html#ga8b7ca4439147682892326d3d61294f46">pow3</a> (const genType &amp;x)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00280.html#gafe1d0d8f5f0501c4940ebb8ae76a1ebf">pow4</a> (const genType &amp;x)</td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">detail::tvec2&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga5c30ce6c77e1eed03913e732553aec97">powOfTwo</a> (const detail::tvec2&lt; int &gt; &amp;x)</td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gae72355bc57d5aa5e9b0b823a0d893c82">powOfTwo</a> (int num)</td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top">detail::tvec3&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#gade3950ec7aa0f42e30ee40f8d7e451ae">powOfTwo</a> (const detail::tvec3&lt; int &gt; &amp;x)</td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top">detail::tvec4&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga83ef1a060cd70af2e1a00eefdb37a436">powOfTwo</a> (const detail::tvec4&lt; int &gt; &amp;x)</td></tr>
16253 </table>
16354 <hr/><a name="_details"></a><h2>Detailed Description</h2>
164 <p>OpenCL types. </p>
165 <p>&lt;<a class="el" href="a00087_source.html">glm/gtx/ocl_type.hpp</a>&gt; need to be included to use these functionalities. </p>
55 <p>Integer exponentiation of power functions. </p>
56 <p>&lt;<a class="el" href="a00088_source.html">glm/gtx/optimum_pow.hpp</a>&gt; need to be included to use these functionalities. </p>
57 <hr/><h2>Function Documentation</h2>
58 <a class="anchor" id="gaed0305d69d3e3ba925d2c6e138b4f4bf"></a><!-- doxytag: member="glm::gtx::optimum_pow::pow2" ref="gaed0305d69d3e3ba925d2c6e138b4f4bf" args="(const genType &amp;x)" -->
59 <div class="memitem">
60 <div class="memproto">
61 <table class="memname">
62 <tr>
63 <td class="memname">genType glm::gtx::optimum_pow::pow2 </td>
64 <td>(</td>
65 <td class="paramtype">const genType &amp;&#160;</td>
66 <td class="paramname"><em>x</em></td><td>)</td>
67 <td></td>
68 </tr>
69 </table>
70 </div>
71 <div class="memdoc">
72
73 <p>Returns x raised to the power of 2. </p>
74 <p>From GLM_GTX_optimum_pow extension. </p>
75
76 </div>
77 </div>
78 <a class="anchor" id="ga8b7ca4439147682892326d3d61294f46"></a><!-- doxytag: member="glm::gtx::optimum_pow::pow3" ref="ga8b7ca4439147682892326d3d61294f46" args="(const genType &amp;x)" -->
79 <div class="memitem">
80 <div class="memproto">
81 <table class="memname">
82 <tr>
83 <td class="memname">genType glm::gtx::optimum_pow::pow3 </td>
84 <td>(</td>
85 <td class="paramtype">const genType &amp;&#160;</td>
86 <td class="paramname"><em>x</em></td><td>)</td>
87 <td></td>
88 </tr>
89 </table>
90 </div>
91 <div class="memdoc">
92
93 <p>Returns x raised to the power of 3. </p>
94 <p>From GLM_GTX_optimum_pow extension. </p>
95
96 </div>
97 </div>
98 <a class="anchor" id="gafe1d0d8f5f0501c4940ebb8ae76a1ebf"></a><!-- doxytag: member="glm::gtx::optimum_pow::pow4" ref="gafe1d0d8f5f0501c4940ebb8ae76a1ebf" args="(const genType &amp;x)" -->
99 <div class="memitem">
100 <div class="memproto">
101 <table class="memname">
102 <tr>
103 <td class="memname">genType glm::gtx::optimum_pow::pow4 </td>
104 <td>(</td>
105 <td class="paramtype">const genType &amp;&#160;</td>
106 <td class="paramname"><em>x</em></td><td>)</td>
107 <td></td>
108 </tr>
109 </table>
110 </div>
111 <div class="memdoc">
112
113 <p>Returns x raised to the power of 4. </p>
114 <p>From GLM_GTX_optimum_pow extension. </p>
115
116 </div>
117 </div>
118 <a class="anchor" id="ga5c30ce6c77e1eed03913e732553aec97"></a><!-- doxytag: member="glm::gtx::optimum_pow::powOfTwo" ref="ga5c30ce6c77e1eed03913e732553aec97" args="(const detail::tvec2&lt; int &gt; &amp;x)" -->
119 <div class="memitem">
120 <div class="memproto">
121 <table class="memname">
122 <tr>
123 <td class="memname">detail::tvec2&lt;bool&gt; glm::gtx::optimum_pow::powOfTwo </td>
124 <td>(</td>
125 <td class="paramtype">const detail::tvec2&lt; int &gt; &amp;&#160;</td>
126 <td class="paramname"><em>x</em></td><td>)</td>
127 <td></td>
128 </tr>
129 </table>
130 </div>
131 <div class="memdoc">
132
133 <p>Checks to determine if the parameter component are power of 2 numbers. </p>
134 <p>From GLM_GTX_optimum_pow extension. </p>
135
136 </div>
137 </div>
138 <a class="anchor" id="gae72355bc57d5aa5e9b0b823a0d893c82"></a><!-- doxytag: member="glm::gtx::optimum_pow::powOfTwo" ref="gae72355bc57d5aa5e9b0b823a0d893c82" args="(int num)" -->
139 <div class="memitem">
140 <div class="memproto">
141 <table class="memname">
142 <tr>
143 <td class="memname">bool glm::gtx::optimum_pow::powOfTwo </td>
144 <td>(</td>
145 <td class="paramtype">int&#160;</td>
146 <td class="paramname"><em>num</em></td><td>)</td>
147 <td></td>
148 </tr>
149 </table>
150 </div>
151 <div class="memdoc">
152
153 <p>Checks if the parameter is a power of 2 number. </p>
154 <p>From GLM_GTX_optimum_pow extension. </p>
155
156 </div>
157 </div>
158 <a class="anchor" id="gade3950ec7aa0f42e30ee40f8d7e451ae"></a><!-- doxytag: member="glm::gtx::optimum_pow::powOfTwo" ref="gade3950ec7aa0f42e30ee40f8d7e451ae" args="(const detail::tvec3&lt; int &gt; &amp;x)" -->
159 <div class="memitem">
160 <div class="memproto">
161 <table class="memname">
162 <tr>
163 <td class="memname">detail::tvec3&lt;bool&gt; glm::gtx::optimum_pow::powOfTwo </td>
164 <td>(</td>
165 <td class="paramtype">const detail::tvec3&lt; int &gt; &amp;&#160;</td>
166 <td class="paramname"><em>x</em></td><td>)</td>
167 <td></td>
168 </tr>
169 </table>
170 </div>
171 <div class="memdoc">
172
173 <p>Checks to determine if the parameter component are power of 2 numbers. </p>
174 <p>From GLM_GTX_optimum_pow extension. </p>
175
176 </div>
177 </div>
178 <a class="anchor" id="ga83ef1a060cd70af2e1a00eefdb37a436"></a><!-- doxytag: member="glm::gtx::optimum_pow::powOfTwo" ref="ga83ef1a060cd70af2e1a00eefdb37a436" args="(const detail::tvec4&lt; int &gt; &amp;x)" -->
179 <div class="memitem">
180 <div class="memproto">
181 <table class="memname">
182 <tr>
183 <td class="memname">detail::tvec4&lt;bool&gt; glm::gtx::optimum_pow::powOfTwo </td>
184 <td>(</td>
185 <td class="paramtype">const detail::tvec4&lt; int &gt; &amp;&#160;</td>
186 <td class="paramname"><em>x</em></td><td>)</td>
187 <td></td>
188 </tr>
189 </table>
190 </div>
191 <div class="memdoc">
192
193 <p>Checks to determine if the parameter component are power of 2 numbers. </p>
194 <p>From GLM_GTX_optimum_pow extension. </p>
195
196 </div>
197 </div>
166198 </div>
167199 <hr class="footer"/><address class="footer"><small>Generated by&#160;
168200 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_optimum_pow: Optimum pow</title>
4 <title>GLM_GTX_orthonormalize: Orthonormalize</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_optimum_pow: Optimum pow</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_orthonormalize: Orthonormalize</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Integer exponentiation of power functions.
38 <p>Orthonormalize matrices.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00281.html#gaed0305d69d3e3ba925d2c6e138b4f4bf">pow2</a> (const genType &amp;x)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00281.html#ga8b7ca4439147682892326d3d61294f46">pow3</a> (const genType &amp;x)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00281.html#gafe1d0d8f5f0501c4940ebb8ae76a1ebf">pow4</a> (const genType &amp;x)</td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">detail::tvec2&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga5c30ce6c77e1eed03913e732553aec97">powOfTwo</a> (const detail::tvec2&lt; int &gt; &amp;x)</td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#gae72355bc57d5aa5e9b0b823a0d893c82">powOfTwo</a> (int num)</td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top">detail::tvec3&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#gade3950ec7aa0f42e30ee40f8d7e451ae">powOfTwo</a> (const detail::tvec3&lt; int &gt; &amp;x)</td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top">detail::tvec4&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga83ef1a060cd70af2e1a00eefdb37a436">powOfTwo</a> (const detail::tvec4&lt; int &gt; &amp;x)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00281.html#gaea1a740541f786951af15832223404dd">orthonormalize</a> (const detail::tmat3x3&lt; T &gt; &amp;m)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00281.html#ga6a15dbab7c2ac16b0a836cc267b2e3a3">orthonormalize</a> (const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)</td></tr>
5347 </table>
5448 <hr/><a name="_details"></a><h2>Detailed Description</h2>
55 <p>Integer exponentiation of power functions. </p>
56 <p>&lt;<a class="el" href="a00088_source.html">glm/gtx/optimum_pow.hpp</a>&gt; need to be included to use these functionalities. </p>
49 <p>Orthonormalize matrices. </p>
50 <p>&lt;<a class="el" href="a00089_source.html">glm/gtx/orthonormalize.hpp</a>&gt; need to be included to use these functionalities. </p>
5751 <hr/><h2>Function Documentation</h2>
58 <a class="anchor" id="gaed0305d69d3e3ba925d2c6e138b4f4bf"></a><!-- doxytag: member="glm::gtx::optimum_pow::pow2" ref="gaed0305d69d3e3ba925d2c6e138b4f4bf" args="(const genType &amp;x)" -->
52 <a class="anchor" id="gaea1a740541f786951af15832223404dd"></a><!-- doxytag: member="glm::gtx::orthonormalize::orthonormalize" ref="gaea1a740541f786951af15832223404dd" args="(const detail::tmat3x3&lt; T &gt; &amp;m)" -->
5953 <div class="memitem">
6054 <div class="memproto">
6155 <table class="memname">
6256 <tr>
63 <td class="memname">genType glm::gtx::optimum_pow::pow2 </td>
57 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::orthonormalize::orthonormalize </td>
6458 <td>(</td>
65 <td class="paramtype">const genType &amp;&#160;</td>
66 <td class="paramname"><em>x</em></td><td>)</td>
59 <td class="paramtype">const detail::tmat3x3&lt; T &gt; &amp;&#160;</td>
60 <td class="paramname"><em>m</em></td><td>)</td>
6761 <td></td>
6862 </tr>
6963 </table>
7064 </div>
7165 <div class="memdoc">
7266
73 <p>Returns x raised to the power of 2. </p>
74 <p>From GLM_GTX_optimum_pow extension. </p>
67 <p>Returns the orthonormalized matrix of m. </p>
68 <p>From GLM_GTX_orthonormalize extension. </p>
7569
7670 </div>
7771 </div>
78 <a class="anchor" id="ga8b7ca4439147682892326d3d61294f46"></a><!-- doxytag: member="glm::gtx::optimum_pow::pow3" ref="ga8b7ca4439147682892326d3d61294f46" args="(const genType &amp;x)" -->
72 <a class="anchor" id="ga6a15dbab7c2ac16b0a836cc267b2e3a3"></a><!-- doxytag: member="glm::gtx::orthonormalize::orthonormalize" ref="ga6a15dbab7c2ac16b0a836cc267b2e3a3" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)" -->
7973 <div class="memitem">
8074 <div class="memproto">
8175 <table class="memname">
8276 <tr>
83 <td class="memname">genType glm::gtx::optimum_pow::pow3 </td>
77 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::orthonormalize::orthonormalize </td>
8478 <td>(</td>
85 <td class="paramtype">const genType &amp;&#160;</td>
86 <td class="paramname"><em>x</em></td><td>)</td>
79 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
80 <td class="paramname"><em>x</em>, </td>
81 </tr>
82 <tr>
83 <td class="paramkey"></td>
8784 <td></td>
85 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
86 <td class="paramname"><em>y</em>&#160;</td>
87 </tr>
88 <tr>
89 <td></td>
90 <td>)</td>
91 <td></td><td></td>
8892 </tr>
8993 </table>
9094 </div>
9195 <div class="memdoc">
9296
93 <p>Returns x raised to the power of 3. </p>
94 <p>From GLM_GTX_optimum_pow extension. </p>
95
96 </div>
97 </div>
98 <a class="anchor" id="gafe1d0d8f5f0501c4940ebb8ae76a1ebf"></a><!-- doxytag: member="glm::gtx::optimum_pow::pow4" ref="gafe1d0d8f5f0501c4940ebb8ae76a1ebf" args="(const genType &amp;x)" -->
99 <div class="memitem">
100 <div class="memproto">
101 <table class="memname">
102 <tr>
103 <td class="memname">genType glm::gtx::optimum_pow::pow4 </td>
104 <td>(</td>
105 <td class="paramtype">const genType &amp;&#160;</td>
106 <td class="paramname"><em>x</em></td><td>)</td>
107 <td></td>
108 </tr>
109 </table>
110 </div>
111 <div class="memdoc">
112
113 <p>Returns x raised to the power of 4. </p>
114 <p>From GLM_GTX_optimum_pow extension. </p>
115
116 </div>
117 </div>
118 <a class="anchor" id="ga5c30ce6c77e1eed03913e732553aec97"></a><!-- doxytag: member="glm::gtx::optimum_pow::powOfTwo" ref="ga5c30ce6c77e1eed03913e732553aec97" args="(const detail::tvec2&lt; int &gt; &amp;x)" -->
119 <div class="memitem">
120 <div class="memproto">
121 <table class="memname">
122 <tr>
123 <td class="memname">detail::tvec2&lt;bool&gt; glm::gtx::optimum_pow::powOfTwo </td>
124 <td>(</td>
125 <td class="paramtype">const detail::tvec2&lt; int &gt; &amp;&#160;</td>
126 <td class="paramname"><em>x</em></td><td>)</td>
127 <td></td>
128 </tr>
129 </table>
130 </div>
131 <div class="memdoc">
132
133 <p>Checks to determine if the parameter component are power of 2 numbers. </p>
134 <p>From GLM_GTX_optimum_pow extension. </p>
135
136 </div>
137 </div>
138 <a class="anchor" id="gae72355bc57d5aa5e9b0b823a0d893c82"></a><!-- doxytag: member="glm::gtx::optimum_pow::powOfTwo" ref="gae72355bc57d5aa5e9b0b823a0d893c82" args="(int num)" -->
139 <div class="memitem">
140 <div class="memproto">
141 <table class="memname">
142 <tr>
143 <td class="memname">bool glm::gtx::optimum_pow::powOfTwo </td>
144 <td>(</td>
145 <td class="paramtype">int&#160;</td>
146 <td class="paramname"><em>num</em></td><td>)</td>
147 <td></td>
148 </tr>
149 </table>
150 </div>
151 <div class="memdoc">
152
153 <p>Checks if the parameter is a power of 2 number. </p>
154 <p>From GLM_GTX_optimum_pow extension. </p>
155
156 </div>
157 </div>
158 <a class="anchor" id="gade3950ec7aa0f42e30ee40f8d7e451ae"></a><!-- doxytag: member="glm::gtx::optimum_pow::powOfTwo" ref="gade3950ec7aa0f42e30ee40f8d7e451ae" args="(const detail::tvec3&lt; int &gt; &amp;x)" -->
159 <div class="memitem">
160 <div class="memproto">
161 <table class="memname">
162 <tr>
163 <td class="memname">detail::tvec3&lt;bool&gt; glm::gtx::optimum_pow::powOfTwo </td>
164 <td>(</td>
165 <td class="paramtype">const detail::tvec3&lt; int &gt; &amp;&#160;</td>
166 <td class="paramname"><em>x</em></td><td>)</td>
167 <td></td>
168 </tr>
169 </table>
170 </div>
171 <div class="memdoc">
172
173 <p>Checks to determine if the parameter component are power of 2 numbers. </p>
174 <p>From GLM_GTX_optimum_pow extension. </p>
175
176 </div>
177 </div>
178 <a class="anchor" id="ga83ef1a060cd70af2e1a00eefdb37a436"></a><!-- doxytag: member="glm::gtx::optimum_pow::powOfTwo" ref="ga83ef1a060cd70af2e1a00eefdb37a436" args="(const detail::tvec4&lt; int &gt; &amp;x)" -->
179 <div class="memitem">
180 <div class="memproto">
181 <table class="memname">
182 <tr>
183 <td class="memname">detail::tvec4&lt;bool&gt; glm::gtx::optimum_pow::powOfTwo </td>
184 <td>(</td>
185 <td class="paramtype">const detail::tvec4&lt; int &gt; &amp;&#160;</td>
186 <td class="paramname"><em>x</em></td><td>)</td>
187 <td></td>
188 </tr>
189 </table>
190 </div>
191 <div class="memdoc">
192
193 <p>Checks to determine if the parameter component are power of 2 numbers. </p>
194 <p>From GLM_GTX_optimum_pow extension. </p>
97 <p>Orthonormalizes x according y. </p>
98 <p>From GLM_GTX_orthonormalize extension. </p>
19599
196100 </div>
197101 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_orthonormalize: Orthonormalize</title>
4 <title>GLM_GTX_perpendicular: Perpendicular</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_orthonormalize: Orthonormalize</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_perpendicular: Perpendicular</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Orthonormalize matrices.
38 <p>Perpendicular of a vector from other one.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
4343 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00282.html#gaea1a740541f786951af15832223404dd">orthonormalize</a> (const detail::tmat3x3&lt; T &gt; &amp;m)</td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00282.html#ga2e991fe07f1b020a37523922bb421e92">perp</a> (detail::tvec2&lt; T &gt; const &amp;x, detail::tvec2&lt; T &gt; const &amp;Normal)</td></tr>
4545 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00282.html#ga6a15dbab7c2ac16b0a836cc267b2e3a3">orthonormalize</a> (const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)</td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00282.html#ga7861045e0e6ab4ddc2721cd472608cb5">perp</a> (detail::tvec4&lt; T &gt; const &amp;x, detail::tvec4&lt; T &gt; const &amp;Normal)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00282.html#ga798c55f9dabedd2f7b9c691cb9751dab">perp</a> (detail::tvec3&lt; T &gt; const &amp;x, detail::tvec3&lt; T &gt; const &amp;Normal)</td></tr>
4749 </table>
4850 <hr/><a name="_details"></a><h2>Detailed Description</h2>
49 <p>Orthonormalize matrices. </p>
50 <p>&lt;<a class="el" href="a00089_source.html">glm/gtx/orthonormalize.hpp</a>&gt; need to be included to use these functionalities. </p>
51 <p>Perpendicular of a vector from other one. </p>
52 <p>&lt;<a class="el" href="a00091_source.html">glm/gtx/perpendicular.hpp</a>&gt; need to be included to use these functionalities. </p>
5153 <hr/><h2>Function Documentation</h2>
52 <a class="anchor" id="gaea1a740541f786951af15832223404dd"></a><!-- doxytag: member="glm::gtx::orthonormalize::orthonormalize" ref="gaea1a740541f786951af15832223404dd" args="(const detail::tmat3x3&lt; T &gt; &amp;m)" -->
54 <a class="anchor" id="ga2e991fe07f1b020a37523922bb421e92"></a><!-- doxytag: member="glm::gtx::perpendicular::perp" ref="ga2e991fe07f1b020a37523922bb421e92" args="(detail::tvec2&lt; T &gt; const &amp;x, detail::tvec2&lt; T &gt; const &amp;Normal)" -->
5355 <div class="memitem">
5456 <div class="memproto">
5557 <table class="memname">
5658 <tr>
57 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::orthonormalize::orthonormalize </td>
59 <td class="memname">detail::tvec2&lt;T&gt; glm::gtx::perpendicular::perp </td>
5860 <td>(</td>
59 <td class="paramtype">const detail::tmat3x3&lt; T &gt; &amp;&#160;</td>
60 <td class="paramname"><em>m</em></td><td>)</td>
61 <td></td>
62 </tr>
63 </table>
64 </div>
65 <div class="memdoc">
66
67 <p>Returns the orthonormalized matrix of m. </p>
68 <p>From GLM_GTX_orthonormalize extension. </p>
69
70 </div>
71 </div>
72 <a class="anchor" id="ga6a15dbab7c2ac16b0a836cc267b2e3a3"></a><!-- doxytag: member="glm::gtx::orthonormalize::orthonormalize" ref="ga6a15dbab7c2ac16b0a836cc267b2e3a3" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)" -->
73 <div class="memitem">
74 <div class="memproto">
75 <table class="memname">
76 <tr>
77 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::orthonormalize::orthonormalize </td>
78 <td>(</td>
79 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
61 <td class="paramtype">detail::tvec2&lt; T &gt; const &amp;&#160;</td>
8062 <td class="paramname"><em>x</em>, </td>
8163 </tr>
8264 <tr>
8365 <td class="paramkey"></td>
8466 <td></td>
85 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
86 <td class="paramname"><em>y</em>&#160;</td>
67 <td class="paramtype">detail::tvec2&lt; T &gt; const &amp;&#160;</td>
68 <td class="paramname"><em>Normal</em>&#160;</td>
8769 </tr>
8870 <tr>
8971 <td></td>
9476 </div>
9577 <div class="memdoc">
9678
97 <p>Orthonormalizes x according y. </p>
98 <p>From GLM_GTX_orthonormalize extension. </p>
79 <p>Projects x a perpendicular axis of Normal. </p>
80 <p>From GLM_GTX_perpendicular extension. </p>
81
82 </div>
83 </div>
84 <a class="anchor" id="ga7861045e0e6ab4ddc2721cd472608cb5"></a><!-- doxytag: member="glm::gtx::perpendicular::perp" ref="ga7861045e0e6ab4ddc2721cd472608cb5" args="(detail::tvec4&lt; T &gt; const &amp;x, detail::tvec4&lt; T &gt; const &amp;Normal)" -->
85 <div class="memitem">
86 <div class="memproto">
87 <table class="memname">
88 <tr>
89 <td class="memname">detail::tvec4&lt;T&gt; glm::gtx::perpendicular::perp </td>
90 <td>(</td>
91 <td class="paramtype">detail::tvec4&lt; T &gt; const &amp;&#160;</td>
92 <td class="paramname"><em>x</em>, </td>
93 </tr>
94 <tr>
95 <td class="paramkey"></td>
96 <td></td>
97 <td class="paramtype">detail::tvec4&lt; T &gt; const &amp;&#160;</td>
98 <td class="paramname"><em>Normal</em>&#160;</td>
99 </tr>
100 <tr>
101 <td></td>
102 <td>)</td>
103 <td></td><td></td>
104 </tr>
105 </table>
106 </div>
107 <div class="memdoc">
108
109 <p>Projects x a perpendicular axis of Normal. </p>
110 <p>From GLM_GTX_perpendicular extension. </p>
111
112 </div>
113 </div>
114 <a class="anchor" id="ga798c55f9dabedd2f7b9c691cb9751dab"></a><!-- doxytag: member="glm::gtx::perpendicular::perp" ref="ga798c55f9dabedd2f7b9c691cb9751dab" args="(detail::tvec3&lt; T &gt; const &amp;x, detail::tvec3&lt; T &gt; const &amp;Normal)" -->
115 <div class="memitem">
116 <div class="memproto">
117 <table class="memname">
118 <tr>
119 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::perpendicular::perp </td>
120 <td>(</td>
121 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
122 <td class="paramname"><em>x</em>, </td>
123 </tr>
124 <tr>
125 <td class="paramkey"></td>
126 <td></td>
127 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
128 <td class="paramname"><em>Normal</em>&#160;</td>
129 </tr>
130 <tr>
131 <td></td>
132 <td>)</td>
133 <td></td><td></td>
134 </tr>
135 </table>
136 </div>
137 <div class="memdoc">
138
139 <p>Projects x a perpendicular axis of Normal. </p>
140 <p>From GLM_GTX_perpendicular extension. </p>
99141
100142 </div>
101143 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_perpendicular: Perpendicular</title>
4 <title>GLM_GTX_polar_coordinates: Polar coordinates</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_perpendicular: Perpendicular</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_polar_coordinates: Polar coordinates</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Perpendicular of a vector from other one.
38 <p>Conversion from Euclidean space to polar space and revert.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
4343 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00283.html#ga2e991fe07f1b020a37523922bb421e92">perp</a> (detail::tvec2&lt; T &gt; const &amp;x, detail::tvec2&lt; T &gt; const &amp;Normal)</td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00283.html#ga7c4788941d42c56c6ee2fd235765127e">euclidean</a> (const detail::tvec3&lt; T &gt; &amp;polar)</td></tr>
4545 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00283.html#ga7861045e0e6ab4ddc2721cd472608cb5">perp</a> (detail::tvec4&lt; T &gt; const &amp;x, detail::tvec4&lt; T &gt; const &amp;Normal)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00283.html#ga798c55f9dabedd2f7b9c691cb9751dab">perp</a> (detail::tvec3&lt; T &gt; const &amp;x, detail::tvec3&lt; T &gt; const &amp;Normal)</td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00283.html#gab4f7bb55a54520917a592699bdb0b2f5">polar</a> (const detail::tvec3&lt; T &gt; &amp;euclidean)</td></tr>
4947 </table>
5048 <hr/><a name="_details"></a><h2>Detailed Description</h2>
51 <p>Perpendicular of a vector from other one. </p>
52 <p>&lt;<a class="el" href="a00091_source.html">glm/gtx/perpendicular.hpp</a>&gt; need to be included to use these functionalities. </p>
49 <p>Conversion from Euclidean space to polar space and revert. </p>
50 <p>&lt;<a class="el" href="a00092_source.html">glm/gtx/polar_coordinates.hpp</a>&gt; need to be included to use these functionalities. </p>
5351 <hr/><h2>Function Documentation</h2>
54 <a class="anchor" id="ga2e991fe07f1b020a37523922bb421e92"></a><!-- doxytag: member="glm::gtx::perpendicular::perp" ref="ga2e991fe07f1b020a37523922bb421e92" args="(detail::tvec2&lt; T &gt; const &amp;x, detail::tvec2&lt; T &gt; const &amp;Normal)" -->
52 <a class="anchor" id="ga7c4788941d42c56c6ee2fd235765127e"></a><!-- doxytag: member="glm::gtx::polar_coordinates::euclidean" ref="ga7c4788941d42c56c6ee2fd235765127e" args="(const detail::tvec3&lt; T &gt; &amp;polar)" -->
5553 <div class="memitem">
5654 <div class="memproto">
5755 <table class="memname">
5856 <tr>
59 <td class="memname">detail::tvec2&lt;T&gt; glm::gtx::perpendicular::perp </td>
57 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::polar_coordinates::euclidean </td>
6058 <td>(</td>
61 <td class="paramtype">detail::tvec2&lt; T &gt; const &amp;&#160;</td>
62 <td class="paramname"><em>x</em>, </td>
63 </tr>
64 <tr>
65 <td class="paramkey"></td>
59 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
60 <td class="paramname"><em>polar</em></td><td>)</td>
6661 <td></td>
67 <td class="paramtype">detail::tvec2&lt; T &gt; const &amp;&#160;</td>
68 <td class="paramname"><em>Normal</em>&#160;</td>
69 </tr>
70 <tr>
71 <td></td>
72 <td>)</td>
73 <td></td><td></td>
7462 </tr>
7563 </table>
7664 </div>
7765 <div class="memdoc">
7866
79 <p>Projects x a perpendicular axis of Normal. </p>
80 <p>From GLM_GTX_perpendicular extension. </p>
67 <p>Convert Polar to Euclidean coordinates. </p>
68 <p>From GLM_GTX_polar_coordinates extension. </p>
8169
8270 </div>
8371 </div>
84 <a class="anchor" id="ga7861045e0e6ab4ddc2721cd472608cb5"></a><!-- doxytag: member="glm::gtx::perpendicular::perp" ref="ga7861045e0e6ab4ddc2721cd472608cb5" args="(detail::tvec4&lt; T &gt; const &amp;x, detail::tvec4&lt; T &gt; const &amp;Normal)" -->
72 <a class="anchor" id="gab4f7bb55a54520917a592699bdb0b2f5"></a><!-- doxytag: member="glm::gtx::polar_coordinates::polar" ref="gab4f7bb55a54520917a592699bdb0b2f5" args="(const detail::tvec3&lt; T &gt; &amp;euclidean)" -->
8573 <div class="memitem">
8674 <div class="memproto">
8775 <table class="memname">
8876 <tr>
89 <td class="memname">detail::tvec4&lt;T&gt; glm::gtx::perpendicular::perp </td>
77 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::polar_coordinates::polar </td>
9078 <td>(</td>
91 <td class="paramtype">detail::tvec4&lt; T &gt; const &amp;&#160;</td>
92 <td class="paramname"><em>x</em>, </td>
93 </tr>
94 <tr>
95 <td class="paramkey"></td>
79 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
80 <td class="paramname"><em>euclidean</em></td><td>)</td>
9681 <td></td>
97 <td class="paramtype">detail::tvec4&lt; T &gt; const &amp;&#160;</td>
98 <td class="paramname"><em>Normal</em>&#160;</td>
99 </tr>
100 <tr>
101 <td></td>
102 <td>)</td>
103 <td></td><td></td>
10482 </tr>
10583 </table>
10684 </div>
10785 <div class="memdoc">
10886
109 <p>Projects x a perpendicular axis of Normal. </p>
110 <p>From GLM_GTX_perpendicular extension. </p>
111
112 </div>
113 </div>
114 <a class="anchor" id="ga798c55f9dabedd2f7b9c691cb9751dab"></a><!-- doxytag: member="glm::gtx::perpendicular::perp" ref="ga798c55f9dabedd2f7b9c691cb9751dab" args="(detail::tvec3&lt; T &gt; const &amp;x, detail::tvec3&lt; T &gt; const &amp;Normal)" -->
115 <div class="memitem">
116 <div class="memproto">
117 <table class="memname">
118 <tr>
119 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::perpendicular::perp </td>
120 <td>(</td>
121 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
122 <td class="paramname"><em>x</em>, </td>
123 </tr>
124 <tr>
125 <td class="paramkey"></td>
126 <td></td>
127 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
128 <td class="paramname"><em>Normal</em>&#160;</td>
129 </tr>
130 <tr>
131 <td></td>
132 <td>)</td>
133 <td></td><td></td>
134 </tr>
135 </table>
136 </div>
137 <div class="memdoc">
138
139 <p>Projects x a perpendicular axis of Normal. </p>
140 <p>From GLM_GTX_perpendicular extension. </p>
87 <p>Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude. </p>
88 <p>From GLM_GTX_polar_coordinates extension. </p>
14189
14290 </div>
14391 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_polar_coordinates: Polar coordinates</title>
4 <title>GLM_GTX_projection: Projection</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_polar_coordinates: Polar coordinates</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_projection: Projection</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Conversion from Euclidean space to polar space and revert.
38 <p>Projection of a vector to other one.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
4343 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00284.html#ga7c4788941d42c56c6ee2fd235765127e">euclidean</a> (const detail::tvec3&lt; T &gt; &amp;polar)</td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00284.html#ga2bf24fe9717e1711a4f454430c79d726">proj</a> (detail::tvec2&lt; T &gt; const &amp;x, detail::tvec2&lt; T &gt; const &amp;Normal)</td></tr>
4545 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00284.html#gab4f7bb55a54520917a592699bdb0b2f5">polar</a> (const detail::tvec3&lt; T &gt; &amp;euclidean)</td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00284.html#gad7b34da085fffc605c196fb5a18b7fa9">proj</a> (detail::tvec4&lt; T &gt; const &amp;x, detail::tvec4&lt; T &gt; const &amp;Normal)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00284.html#ga314c3fadce5d1a063c38da013ed20cde">proj</a> (detail::tvec3&lt; T &gt; const &amp;x, detail::tvec3&lt; T &gt; const &amp;Normal)</td></tr>
4749 </table>
4850 <hr/><a name="_details"></a><h2>Detailed Description</h2>
49 <p>Conversion from Euclidean space to polar space and revert. </p>
50 <p>&lt;<a class="el" href="a00092_source.html">glm/gtx/polar_coordinates.hpp</a>&gt; need to be included to use these functionalities. </p>
51 <p>Projection of a vector to other one. </p>
52 <p>&lt;<a class="el" href="a00093_source.html">glm/gtx/projection.hpp</a>&gt; need to be included to use these functionalities. </p>
5153 <hr/><h2>Function Documentation</h2>
52 <a class="anchor" id="ga7c4788941d42c56c6ee2fd235765127e"></a><!-- doxytag: member="glm::gtx::polar_coordinates::euclidean" ref="ga7c4788941d42c56c6ee2fd235765127e" args="(const detail::tvec3&lt; T &gt; &amp;polar)" -->
54 <a class="anchor" id="ga2bf24fe9717e1711a4f454430c79d726"></a><!-- doxytag: member="glm::gtx::projection::proj" ref="ga2bf24fe9717e1711a4f454430c79d726" args="(detail::tvec2&lt; T &gt; const &amp;x, detail::tvec2&lt; T &gt; const &amp;Normal)" -->
5355 <div class="memitem">
5456 <div class="memproto">
5557 <table class="memname">
5658 <tr>
57 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::polar_coordinates::euclidean </td>
59 <td class="memname">detail::tvec2&lt;T&gt; glm::gtx::projection::proj </td>
5860 <td>(</td>
59 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
60 <td class="paramname"><em>polar</em></td><td>)</td>
61 <td class="paramtype">detail::tvec2&lt; T &gt; const &amp;&#160;</td>
62 <td class="paramname"><em>x</em>, </td>
63 </tr>
64 <tr>
65 <td class="paramkey"></td>
6166 <td></td>
67 <td class="paramtype">detail::tvec2&lt; T &gt; const &amp;&#160;</td>
68 <td class="paramname"><em>Normal</em>&#160;</td>
69 </tr>
70 <tr>
71 <td></td>
72 <td>)</td>
73 <td></td><td></td>
6274 </tr>
6375 </table>
6476 </div>
6577 <div class="memdoc">
6678
67 <p>Convert Polar to Euclidean coordinates. </p>
68 <p>From GLM_GTX_polar_coordinates extension. </p>
79 <p>Projects x on Normal. </p>
80 <p>From GLM_GTX_projection extension. </p>
6981
7082 </div>
7183 </div>
72 <a class="anchor" id="gab4f7bb55a54520917a592699bdb0b2f5"></a><!-- doxytag: member="glm::gtx::polar_coordinates::polar" ref="gab4f7bb55a54520917a592699bdb0b2f5" args="(const detail::tvec3&lt; T &gt; &amp;euclidean)" -->
84 <a class="anchor" id="gad7b34da085fffc605c196fb5a18b7fa9"></a><!-- doxytag: member="glm::gtx::projection::proj" ref="gad7b34da085fffc605c196fb5a18b7fa9" args="(detail::tvec4&lt; T &gt; const &amp;x, detail::tvec4&lt; T &gt; const &amp;Normal)" -->
7385 <div class="memitem">
7486 <div class="memproto">
7587 <table class="memname">
7688 <tr>
77 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::polar_coordinates::polar </td>
89 <td class="memname">detail::tvec4&lt;T&gt; glm::gtx::projection::proj </td>
7890 <td>(</td>
79 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
80 <td class="paramname"><em>euclidean</em></td><td>)</td>
91 <td class="paramtype">detail::tvec4&lt; T &gt; const &amp;&#160;</td>
92 <td class="paramname"><em>x</em>, </td>
93 </tr>
94 <tr>
95 <td class="paramkey"></td>
8196 <td></td>
97 <td class="paramtype">detail::tvec4&lt; T &gt; const &amp;&#160;</td>
98 <td class="paramname"><em>Normal</em>&#160;</td>
99 </tr>
100 <tr>
101 <td></td>
102 <td>)</td>
103 <td></td><td></td>
82104 </tr>
83105 </table>
84106 </div>
85107 <div class="memdoc">
86108
87 <p>Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude. </p>
88 <p>From GLM_GTX_polar_coordinates extension. </p>
109 <p>Projects x on Normal. </p>
110 <p>From GLM_GTX_projection extension. </p>
111
112 </div>
113 </div>
114 <a class="anchor" id="ga314c3fadce5d1a063c38da013ed20cde"></a><!-- doxytag: member="glm::gtx::projection::proj" ref="ga314c3fadce5d1a063c38da013ed20cde" args="(detail::tvec3&lt; T &gt; const &amp;x, detail::tvec3&lt; T &gt; const &amp;Normal)" -->
115 <div class="memitem">
116 <div class="memproto">
117 <table class="memname">
118 <tr>
119 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::projection::proj </td>
120 <td>(</td>
121 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
122 <td class="paramname"><em>x</em>, </td>
123 </tr>
124 <tr>
125 <td class="paramkey"></td>
126 <td></td>
127 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
128 <td class="paramname"><em>Normal</em>&#160;</td>
129 </tr>
130 <tr>
131 <td></td>
132 <td>)</td>
133 <td></td><td></td>
134 </tr>
135 </table>
136 </div>
137 <div class="memdoc">
138
139 <p>Projects x on Normal. </p>
140 <p>From GLM_GTX_projection extension. </p>
89141
90142 </div>
91143 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_projection: Projection</title>
4 <title>GLM_GTX_quaternion: Extented quaternion types and functions</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_projection: Projection</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_quaternion: Extented quaternion types and functions</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Projection of a vector to other one.
38 <p>Extented quaternion types and functions.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga6a3387a7d60728f60d86546b2f4d4d30">angle</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga4412b01c376d9cfc9cc06b2d511d0f16">angleAxis</a> (valType const &amp;angle, valType const &amp;x, valType const &amp;y, valType const &amp;z)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#gaac770715e5e3dc93f48c6634b59efd43">angleAxis</a> (valType const &amp;angle, detail::tvec3&lt; valType &gt; const &amp;axis)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga6dd1904e2a6cc8e54bd324994094a6f9">axis</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga2a222a07e879ab25de36d6b5a8f6610d">cross</a> (detail::tquat&lt; valType &gt; const &amp;q, detail::tvec3&lt; valType &gt; const &amp;v)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga07cefaf434b895aa6a1841837f0c106d">cross</a> (detail::tvec3&lt; valType &gt; const &amp;v, detail::tquat&lt; valType &gt; const &amp;q)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga39be27be43d9f80ce5bfc5e1adf21412">eulerAngles</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#gaed2302270ec468d26de745516ccb5d4b">exp</a> (detail::tquat&lt; valType &gt; const &amp;q, valType const &amp;exponent)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga23eb8e1aeaf751f7cc46fbaa291e223d">extractRealComponent</a> (detail::tquat&lt; valType &gt; const &amp;q)</td></tr>
4361 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga2bf24fe9717e1711a4f454430c79d726">proj</a> (detail::tvec2&lt; T &gt; const &amp;x, detail::tvec2&lt; T &gt; const &amp;Normal)</td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga65d5734ce29049d334992f6a59e27e58">fastMix</a> (detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, T const &amp;a)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#gaa15c443e97ac7476d04627d868995891">intermediate</a> (detail::tquat&lt; valType &gt; const &amp;prev, detail::tquat&lt; valType &gt; const &amp;curr, detail::tquat&lt; valType &gt; const &amp;next)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga11af1897310ec8a09210fb7b4deb0027">log</a> (detail::tquat&lt; valType &gt; const &amp;q)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#gafad23e37f1723bbbbd7f9498cd729126">pitch</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga42873121534327c9e5238f3ca3d6cd03">pow</a> (detail::tquat&lt; valType &gt; const &amp;x, valType const &amp;y)</td></tr>
71 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga60a4f955b2836d85f3d21ded84879926">roll</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
73 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
74 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga7f163c787898b76dc1d91eb48523ce87">rotate</a> (detail::tquat&lt; valType &gt; const &amp;q, detail::tvec3&lt; valType &gt; const &amp;v)</td></tr>
75 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
76 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga92cb29907ffd24771d31f06c94e6d166">rotate</a> (detail::tquat&lt; valType &gt; const &amp;q, detail::tvec4&lt; valType &gt; const &amp;v)</td></tr>
4577 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#gad7b34da085fffc605c196fb5a18b7fa9">proj</a> (detail::tvec4&lt; T &gt; const &amp;x, detail::tvec4&lt; T &gt; const &amp;Normal)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga314c3fadce5d1a063c38da013ed20cde">proj</a> (detail::tvec3&lt; T &gt; const &amp;x, detail::tvec3&lt; T &gt; const &amp;Normal)</td></tr>
78 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga22566896a998311431a0612e1c222002">shortMix</a> (detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, T const &amp;a)</td></tr>
79 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
80 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga203b736245b7519eb151ac46e0bf7f21">squad</a> (detail::tquat&lt; valType &gt; const &amp;q1, detail::tquat&lt; valType &gt; const &amp;q2, detail::tquat&lt; valType &gt; const &amp;s1, detail::tquat&lt; valType &gt; const &amp;s2, valType const &amp;h)</td></tr>
81 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
82 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga61ec971322157330116a3aefe5bae609">toMat3</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
83 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
84 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga80622343bd7ccf43c9b4cb677ba3ce38">toMat4</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
85 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
86 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga2d9d1916258d13bd5f0373341400f18c">toQuat</a> (detail::tmat4x4&lt; valType &gt; const &amp;x)</td></tr>
87 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
88 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga991e534718ab690ff21e201f27bfd43b">toQuat</a> (detail::tmat3x3&lt; valType &gt; const &amp;x)</td></tr>
89 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
90 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00285.html#ga4795f1cc522d82d672f7be9a405583c4">yaw</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
4991 </table>
5092 <hr/><a name="_details"></a><h2>Detailed Description</h2>
51 <p>Projection of a vector to other one. </p>
52 <p>&lt;<a class="el" href="a00093_source.html">glm/gtx/projection.hpp</a>&gt; need to be included to use these functionalities. </p>
93 <p>Extented quaternion types and functions. </p>
94 <p>&lt;<a class="el" href="a00095_source.html">glm/gtx/quaternion.hpp</a>&gt; need to be included to use these functionalities. </p>
5395 <hr/><h2>Function Documentation</h2>
54 <a class="anchor" id="ga2bf24fe9717e1711a4f454430c79d726"></a><!-- doxytag: member="glm::gtx::projection::proj" ref="ga2bf24fe9717e1711a4f454430c79d726" args="(detail::tvec2&lt; T &gt; const &amp;x, detail::tvec2&lt; T &gt; const &amp;Normal)" -->
55 <div class="memitem">
56 <div class="memproto">
57 <table class="memname">
58 <tr>
59 <td class="memname">detail::tvec2&lt;T&gt; glm::gtx::projection::proj </td>
60 <td>(</td>
61 <td class="paramtype">detail::tvec2&lt; T &gt; const &amp;&#160;</td>
96 <a class="anchor" id="ga6a3387a7d60728f60d86546b2f4d4d30"></a><!-- doxytag: member="glm::gtx::quaternion::angle" ref="ga6a3387a7d60728f60d86546b2f4d4d30" args="(detail::tquat&lt; valType &gt; const &amp;x)" -->
97 <div class="memitem">
98 <div class="memproto">
99 <table class="memname">
100 <tr>
101 <td class="memname">valType glm::gtx::quaternion::angle </td>
102 <td>(</td>
103 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
104 <td class="paramname"><em>x</em></td><td>)</td>
105 <td></td>
106 </tr>
107 </table>
108 </div>
109 <div class="memdoc">
110
111 <p>Returns the quaternion rotation angle. </p>
112 <p>From GLM_GTX_quaternion extension. </p>
113
114 </div>
115 </div>
116 <a class="anchor" id="ga4412b01c376d9cfc9cc06b2d511d0f16"></a><!-- doxytag: member="glm::gtx::quaternion::angleAxis" ref="ga4412b01c376d9cfc9cc06b2d511d0f16" args="(valType const &amp;angle, valType const &amp;x, valType const &amp;y, valType const &amp;z)" -->
117 <div class="memitem">
118 <div class="memproto">
119 <table class="memname">
120 <tr>
121 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::angleAxis </td>
122 <td>(</td>
123 <td class="paramtype">valType const &amp;&#160;</td>
124 <td class="paramname"><em>angle</em>, </td>
125 </tr>
126 <tr>
127 <td class="paramkey"></td>
128 <td></td>
129 <td class="paramtype">valType const &amp;&#160;</td>
62130 <td class="paramname"><em>x</em>, </td>
63131 </tr>
64132 <tr>
65133 <td class="paramkey"></td>
66134 <td></td>
67 <td class="paramtype">detail::tvec2&lt; T &gt; const &amp;&#160;</td>
68 <td class="paramname"><em>Normal</em>&#160;</td>
69 </tr>
70 <tr>
71 <td></td>
72 <td>)</td>
73 <td></td><td></td>
74 </tr>
75 </table>
76 </div>
77 <div class="memdoc">
78
79 <p>Projects x on Normal. </p>
80 <p>From GLM_GTX_projection extension. </p>
81
82 </div>
83 </div>
84 <a class="anchor" id="gad7b34da085fffc605c196fb5a18b7fa9"></a><!-- doxytag: member="glm::gtx::projection::proj" ref="gad7b34da085fffc605c196fb5a18b7fa9" args="(detail::tvec4&lt; T &gt; const &amp;x, detail::tvec4&lt; T &gt; const &amp;Normal)" -->
85 <div class="memitem">
86 <div class="memproto">
87 <table class="memname">
88 <tr>
89 <td class="memname">detail::tvec4&lt;T&gt; glm::gtx::projection::proj </td>
90 <td>(</td>
91 <td class="paramtype">detail::tvec4&lt; T &gt; const &amp;&#160;</td>
135 <td class="paramtype">valType const &amp;&#160;</td>
136 <td class="paramname"><em>y</em>, </td>
137 </tr>
138 <tr>
139 <td class="paramkey"></td>
140 <td></td>
141 <td class="paramtype">valType const &amp;&#160;</td>
142 <td class="paramname"><em>z</em>&#160;</td>
143 </tr>
144 <tr>
145 <td></td>
146 <td>)</td>
147 <td></td><td></td>
148 </tr>
149 </table>
150 </div>
151 <div class="memdoc">
152
153 <p>Build a quaternion from an angle and a normalized axis. </p>
154 <p>From GLM_GTX_quaternion extension. </p>
155
156 </div>
157 </div>
158 <a class="anchor" id="gaac770715e5e3dc93f48c6634b59efd43"></a><!-- doxytag: member="glm::gtx::quaternion::angleAxis" ref="gaac770715e5e3dc93f48c6634b59efd43" args="(valType const &amp;angle, detail::tvec3&lt; valType &gt; const &amp;axis)" -->
159 <div class="memitem">
160 <div class="memproto">
161 <table class="memname">
162 <tr>
163 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::angleAxis </td>
164 <td>(</td>
165 <td class="paramtype">valType const &amp;&#160;</td>
166 <td class="paramname"><em>angle</em>, </td>
167 </tr>
168 <tr>
169 <td class="paramkey"></td>
170 <td></td>
171 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
172 <td class="paramname"><em>axis</em>&#160;</td>
173 </tr>
174 <tr>
175 <td></td>
176 <td>)</td>
177 <td></td><td></td>
178 </tr>
179 </table>
180 </div>
181 <div class="memdoc">
182
183 <p>Build a quaternion from an angle and a normalized axis. </p>
184 <p>From GLM_GTX_quaternion extension. </p>
185
186 </div>
187 </div>
188 <a class="anchor" id="ga6dd1904e2a6cc8e54bd324994094a6f9"></a><!-- doxytag: member="glm::gtx::quaternion::axis" ref="ga6dd1904e2a6cc8e54bd324994094a6f9" args="(detail::tquat&lt; valType &gt; const &amp;x)" -->
189 <div class="memitem">
190 <div class="memproto">
191 <table class="memname">
192 <tr>
193 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::quaternion::axis </td>
194 <td>(</td>
195 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
196 <td class="paramname"><em>x</em></td><td>)</td>
197 <td></td>
198 </tr>
199 </table>
200 </div>
201 <div class="memdoc">
202
203 <p>Returns the q rotation axis. </p>
204 <p>From GLM_GTX_quaternion extension. </p>
205
206 </div>
207 </div>
208 <a class="anchor" id="ga2a222a07e879ab25de36d6b5a8f6610d"></a><!-- doxytag: member="glm::gtx::quaternion::cross" ref="ga2a222a07e879ab25de36d6b5a8f6610d" args="(detail::tquat&lt; valType &gt; const &amp;q, detail::tvec3&lt; valType &gt; const &amp;v)" -->
209 <div class="memitem">
210 <div class="memproto">
211 <table class="memname">
212 <tr>
213 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::quaternion::cross </td>
214 <td>(</td>
215 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
216 <td class="paramname"><em>q</em>, </td>
217 </tr>
218 <tr>
219 <td class="paramkey"></td>
220 <td></td>
221 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
222 <td class="paramname"><em>v</em>&#160;</td>
223 </tr>
224 <tr>
225 <td></td>
226 <td>)</td>
227 <td></td><td></td>
228 </tr>
229 </table>
230 </div>
231 <div class="memdoc">
232
233 <p>Compute a cross product between a quaternion and a vector. </p>
234 <p>From GLM_GTX_quaternion extension. </p>
235
236 </div>
237 </div>
238 <a class="anchor" id="ga07cefaf434b895aa6a1841837f0c106d"></a><!-- doxytag: member="glm::gtx::quaternion::cross" ref="ga07cefaf434b895aa6a1841837f0c106d" args="(detail::tvec3&lt; valType &gt; const &amp;v, detail::tquat&lt; valType &gt; const &amp;q)" -->
239 <div class="memitem">
240 <div class="memproto">
241 <table class="memname">
242 <tr>
243 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::quaternion::cross </td>
244 <td>(</td>
245 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
246 <td class="paramname"><em>v</em>, </td>
247 </tr>
248 <tr>
249 <td class="paramkey"></td>
250 <td></td>
251 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
252 <td class="paramname"><em>q</em>&#160;</td>
253 </tr>
254 <tr>
255 <td></td>
256 <td>)</td>
257 <td></td><td></td>
258 </tr>
259 </table>
260 </div>
261 <div class="memdoc">
262
263 <p>Compute a cross product between a vector and a quaternion. </p>
264 <p>From GLM_GTX_quaternion extension. </p>
265
266 </div>
267 </div>
268 <a class="anchor" id="ga39be27be43d9f80ce5bfc5e1adf21412"></a><!-- doxytag: member="glm::gtx::quaternion::eulerAngles" ref="ga39be27be43d9f80ce5bfc5e1adf21412" args="(detail::tquat&lt; valType &gt; const &amp;x)" -->
269 <div class="memitem">
270 <div class="memproto">
271 <table class="memname">
272 <tr>
273 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::quaternion::eulerAngles </td>
274 <td>(</td>
275 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
276 <td class="paramname"><em>x</em></td><td>)</td>
277 <td></td>
278 </tr>
279 </table>
280 </div>
281 <div class="memdoc">
282
283 <p>Returns euler angles, yitch as x, yaw as y, roll as z. </p>
284 <p>From GLM_GTX_quaternion extension. </p>
285
286 </div>
287 </div>
288 <a class="anchor" id="gaed2302270ec468d26de745516ccb5d4b"></a><!-- doxytag: member="glm::gtx::quaternion::exp" ref="gaed2302270ec468d26de745516ccb5d4b" args="(detail::tquat&lt; valType &gt; const &amp;q, valType const &amp;exponent)" -->
289 <div class="memitem">
290 <div class="memproto">
291 <table class="memname">
292 <tr>
293 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::exp </td>
294 <td>(</td>
295 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
296 <td class="paramname"><em>q</em>, </td>
297 </tr>
298 <tr>
299 <td class="paramkey"></td>
300 <td></td>
301 <td class="paramtype">valType const &amp;&#160;</td>
302 <td class="paramname"><em>exponent</em>&#160;</td>
303 </tr>
304 <tr>
305 <td></td>
306 <td>)</td>
307 <td></td><td></td>
308 </tr>
309 </table>
310 </div>
311 <div class="memdoc">
312
313 <p>Returns a exp of a quaternion. </p>
314 <p>From GLM_GTX_quaternion extension. </p>
315
316 </div>
317 </div>
318 <a class="anchor" id="ga23eb8e1aeaf751f7cc46fbaa291e223d"></a><!-- doxytag: member="glm::gtx::quaternion::extractRealComponent" ref="ga23eb8e1aeaf751f7cc46fbaa291e223d" args="(detail::tquat&lt; valType &gt; const &amp;q)" -->
319 <div class="memitem">
320 <div class="memproto">
321 <table class="memname">
322 <tr>
323 <td class="memname">valType glm::gtx::quaternion::extractRealComponent </td>
324 <td>(</td>
325 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
326 <td class="paramname"><em>q</em></td><td>)</td>
327 <td></td>
328 </tr>
329 </table>
330 </div>
331 <div class="memdoc">
332
333 <p>Extract the real component of a quaternion. </p>
334 <p>From GLM_GTX_quaternion extension. </p>
335
336 </div>
337 </div>
338 <a class="anchor" id="ga65d5734ce29049d334992f6a59e27e58"></a><!-- doxytag: member="glm::gtx::quaternion::fastMix" ref="ga65d5734ce29049d334992f6a59e27e58" args="(detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, T const &amp;a)" -->
339 <div class="memitem">
340 <div class="memproto">
341 <table class="memname">
342 <tr>
343 <td class="memname">detail::tquat&lt;T&gt; glm::gtx::quaternion::fastMix </td>
344 <td>(</td>
345 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
92346 <td class="paramname"><em>x</em>, </td>
93347 </tr>
94348 <tr>
95349 <td class="paramkey"></td>
96350 <td></td>
97 <td class="paramtype">detail::tvec4&lt; T &gt; const &amp;&#160;</td>
98 <td class="paramname"><em>Normal</em>&#160;</td>
99 </tr>
100 <tr>
101 <td></td>
102 <td>)</td>
103 <td></td><td></td>
104 </tr>
105 </table>
106 </div>
107 <div class="memdoc">
108
109 <p>Projects x on Normal. </p>
110 <p>From GLM_GTX_projection extension. </p>
111
112 </div>
113 </div>
114 <a class="anchor" id="ga314c3fadce5d1a063c38da013ed20cde"></a><!-- doxytag: member="glm::gtx::projection::proj" ref="ga314c3fadce5d1a063c38da013ed20cde" args="(detail::tvec3&lt; T &gt; const &amp;x, detail::tvec3&lt; T &gt; const &amp;Normal)" -->
115 <div class="memitem">
116 <div class="memproto">
117 <table class="memname">
118 <tr>
119 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::projection::proj </td>
120 <td>(</td>
121 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
351 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
352 <td class="paramname"><em>y</em>, </td>
353 </tr>
354 <tr>
355 <td class="paramkey"></td>
356 <td></td>
357 <td class="paramtype">T const &amp;&#160;</td>
358 <td class="paramname"><em>a</em>&#160;</td>
359 </tr>
360 <tr>
361 <td></td>
362 <td>)</td>
363 <td></td><td></td>
364 </tr>
365 </table>
366 </div>
367 <div class="memdoc">
368
369 <p>Quaternion normalized linear interpolation. </p>
370 <p>From GLM_GTX_quaternion extension. </p>
371
372 </div>
373 </div>
374 <a class="anchor" id="gaa15c443e97ac7476d04627d868995891"></a><!-- doxytag: member="glm::gtx::quaternion::intermediate" ref="gaa15c443e97ac7476d04627d868995891" args="(detail::tquat&lt; valType &gt; const &amp;prev, detail::tquat&lt; valType &gt; const &amp;curr, detail::tquat&lt; valType &gt; const &amp;next)" -->
375 <div class="memitem">
376 <div class="memproto">
377 <table class="memname">
378 <tr>
379 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::intermediate </td>
380 <td>(</td>
381 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
382 <td class="paramname"><em>prev</em>, </td>
383 </tr>
384 <tr>
385 <td class="paramkey"></td>
386 <td></td>
387 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
388 <td class="paramname"><em>curr</em>, </td>
389 </tr>
390 <tr>
391 <td class="paramkey"></td>
392 <td></td>
393 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
394 <td class="paramname"><em>next</em>&#160;</td>
395 </tr>
396 <tr>
397 <td></td>
398 <td>)</td>
399 <td></td><td></td>
400 </tr>
401 </table>
402 </div>
403 <div class="memdoc">
404
405 <p>Returns an intermediate control point for squad interpolation. </p>
406 <p>From GLM_GTX_quaternion extension. </p>
407
408 </div>
409 </div>
410 <a class="anchor" id="ga11af1897310ec8a09210fb7b4deb0027"></a><!-- doxytag: member="glm::gtx::quaternion::log" ref="ga11af1897310ec8a09210fb7b4deb0027" args="(detail::tquat&lt; valType &gt; const &amp;q)" -->
411 <div class="memitem">
412 <div class="memproto">
413 <table class="memname">
414 <tr>
415 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::log </td>
416 <td>(</td>
417 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
418 <td class="paramname"><em>q</em></td><td>)</td>
419 <td></td>
420 </tr>
421 </table>
422 </div>
423 <div class="memdoc">
424
425 <p>Returns a log of a quaternion. </p>
426 <p>From GLM_GTX_quaternion extension. </p>
427
428 </div>
429 </div>
430 <a class="anchor" id="gafad23e37f1723bbbbd7f9498cd729126"></a><!-- doxytag: member="glm::gtx::quaternion::pitch" ref="gafad23e37f1723bbbbd7f9498cd729126" args="(detail::tquat&lt; valType &gt; const &amp;x)" -->
431 <div class="memitem">
432 <div class="memproto">
433 <table class="memname">
434 <tr>
435 <td class="memname">valType glm::gtx::quaternion::pitch </td>
436 <td>(</td>
437 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
438 <td class="paramname"><em>x</em></td><td>)</td>
439 <td></td>
440 </tr>
441 </table>
442 </div>
443 <div class="memdoc">
444
445 <p>Returns pitch value of euler angles in degrees. </p>
446 <p>From GLM_GTX_quaternion extension. </p>
447
448 </div>
449 </div>
450 <a class="anchor" id="ga42873121534327c9e5238f3ca3d6cd03"></a><!-- doxytag: member="glm::gtx::quaternion::pow" ref="ga42873121534327c9e5238f3ca3d6cd03" args="(detail::tquat&lt; valType &gt; const &amp;x, valType const &amp;y)" -->
451 <div class="memitem">
452 <div class="memproto">
453 <table class="memname">
454 <tr>
455 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::pow </td>
456 <td>(</td>
457 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
122458 <td class="paramname"><em>x</em>, </td>
123459 </tr>
124460 <tr>
125461 <td class="paramkey"></td>
126462 <td></td>
127 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
128 <td class="paramname"><em>Normal</em>&#160;</td>
129 </tr>
130 <tr>
131 <td></td>
132 <td>)</td>
133 <td></td><td></td>
134 </tr>
135 </table>
136 </div>
137 <div class="memdoc">
138
139 <p>Projects x on Normal. </p>
140 <p>From GLM_GTX_projection extension. </p>
463 <td class="paramtype">valType const &amp;&#160;</td>
464 <td class="paramname"><em>y</em>&#160;</td>
465 </tr>
466 <tr>
467 <td></td>
468 <td>)</td>
469 <td></td><td></td>
470 </tr>
471 </table>
472 </div>
473 <div class="memdoc">
474
475 <p>Returns x raised to the y power. </p>
476 <p>From GLM_GTX_quaternion extension. </p>
477
478 </div>
479 </div>
480 <a class="anchor" id="ga60a4f955b2836d85f3d21ded84879926"></a><!-- doxytag: member="glm::gtx::quaternion::roll" ref="ga60a4f955b2836d85f3d21ded84879926" args="(detail::tquat&lt; valType &gt; const &amp;x)" -->
481 <div class="memitem">
482 <div class="memproto">
483 <table class="memname">
484 <tr>
485 <td class="memname">valType glm::gtx::quaternion::roll </td>
486 <td>(</td>
487 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
488 <td class="paramname"><em>x</em></td><td>)</td>
489 <td></td>
490 </tr>
491 </table>
492 </div>
493 <div class="memdoc">
494
495 <p>Returns roll value of euler angles in degrees. </p>
496 <p>From GLM_GTX_quaternion extension. </p>
497
498 </div>
499 </div>
500 <a class="anchor" id="ga7f163c787898b76dc1d91eb48523ce87"></a><!-- doxytag: member="glm::gtx::quaternion::rotate" ref="ga7f163c787898b76dc1d91eb48523ce87" args="(detail::tquat&lt; valType &gt; const &amp;q, detail::tvec3&lt; valType &gt; const &amp;v)" -->
501 <div class="memitem">
502 <div class="memproto">
503 <table class="memname">
504 <tr>
505 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::quaternion::rotate </td>
506 <td>(</td>
507 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
508 <td class="paramname"><em>q</em>, </td>
509 </tr>
510 <tr>
511 <td class="paramkey"></td>
512 <td></td>
513 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
514 <td class="paramname"><em>v</em>&#160;</td>
515 </tr>
516 <tr>
517 <td></td>
518 <td>)</td>
519 <td></td><td></td>
520 </tr>
521 </table>
522 </div>
523 <div class="memdoc">
524
525 <p>Returns quarternion square root. </p>
526 <p>From GLM_GTX_quaternion extension. Rotates a 3 components vector by a quaternion. From GLM_GTX_transform extension. </p>
527
528 </div>
529 </div>
530 <a class="anchor" id="ga92cb29907ffd24771d31f06c94e6d166"></a><!-- doxytag: member="glm::gtx::quaternion::rotate" ref="ga92cb29907ffd24771d31f06c94e6d166" args="(detail::tquat&lt; valType &gt; const &amp;q, detail::tvec4&lt; valType &gt; const &amp;v)" -->
531 <div class="memitem">
532 <div class="memproto">
533 <table class="memname">
534 <tr>
535 <td class="memname">detail::tvec4&lt;valType&gt; glm::gtx::quaternion::rotate </td>
536 <td>(</td>
537 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
538 <td class="paramname"><em>q</em>, </td>
539 </tr>
540 <tr>
541 <td class="paramkey"></td>
542 <td></td>
543 <td class="paramtype">detail::tvec4&lt; valType &gt; const &amp;&#160;</td>
544 <td class="paramname"><em>v</em>&#160;</td>
545 </tr>
546 <tr>
547 <td></td>
548 <td>)</td>
549 <td></td><td></td>
550 </tr>
551 </table>
552 </div>
553 <div class="memdoc">
554
555 <p>Rotates a 4 components vector by a quaternion. </p>
556 <p>From GLM_GTX_transform extension. </p>
557
558 </div>
559 </div>
560 <a class="anchor" id="ga22566896a998311431a0612e1c222002"></a><!-- doxytag: member="glm::gtx::quaternion::shortMix" ref="ga22566896a998311431a0612e1c222002" args="(detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, T const &amp;a)" -->
561 <div class="memitem">
562 <div class="memproto">
563 <table class="memname">
564 <tr>
565 <td class="memname">detail::tquat&lt;T&gt; glm::gtx::quaternion::shortMix </td>
566 <td>(</td>
567 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
568 <td class="paramname"><em>x</em>, </td>
569 </tr>
570 <tr>
571 <td class="paramkey"></td>
572 <td></td>
573 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
574 <td class="paramname"><em>y</em>, </td>
575 </tr>
576 <tr>
577 <td class="paramkey"></td>
578 <td></td>
579 <td class="paramtype">T const &amp;&#160;</td>
580 <td class="paramname"><em>a</em>&#160;</td>
581 </tr>
582 <tr>
583 <td></td>
584 <td>)</td>
585 <td></td><td></td>
586 </tr>
587 </table>
588 </div>
589 <div class="memdoc">
590
591 <p>Quaternion interpolation using the rotation short path. </p>
592 <p>From GLM_GTX_quaternion extension. </p>
593
594 </div>
595 </div>
596 <a class="anchor" id="ga203b736245b7519eb151ac46e0bf7f21"></a><!-- doxytag: member="glm::gtx::quaternion::squad" ref="ga203b736245b7519eb151ac46e0bf7f21" args="(detail::tquat&lt; valType &gt; const &amp;q1, detail::tquat&lt; valType &gt; const &amp;q2, detail::tquat&lt; valType &gt; const &amp;s1, detail::tquat&lt; valType &gt; const &amp;s2, valType const &amp;h)" -->
597 <div class="memitem">
598 <div class="memproto">
599 <table class="memname">
600 <tr>
601 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::squad </td>
602 <td>(</td>
603 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
604 <td class="paramname"><em>q1</em>, </td>
605 </tr>
606 <tr>
607 <td class="paramkey"></td>
608 <td></td>
609 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
610 <td class="paramname"><em>q2</em>, </td>
611 </tr>
612 <tr>
613 <td class="paramkey"></td>
614 <td></td>
615 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
616 <td class="paramname"><em>s1</em>, </td>
617 </tr>
618 <tr>
619 <td class="paramkey"></td>
620 <td></td>
621 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
622 <td class="paramname"><em>s2</em>, </td>
623 </tr>
624 <tr>
625 <td class="paramkey"></td>
626 <td></td>
627 <td class="paramtype">valType const &amp;&#160;</td>
628 <td class="paramname"><em>h</em>&#160;</td>
629 </tr>
630 <tr>
631 <td></td>
632 <td>)</td>
633 <td></td><td></td>
634 </tr>
635 </table>
636 </div>
637 <div class="memdoc">
638
639 <p>Compute a point on a path according squad equation. </p>
640 <p>q1 and q2 are control points; s1 and s2 are intermediate control points. From GLM_GTX_quaternion extension. </p>
641
642 </div>
643 </div>
644 <a class="anchor" id="ga61ec971322157330116a3aefe5bae609"></a><!-- doxytag: member="glm::gtx::quaternion::toMat3" ref="ga61ec971322157330116a3aefe5bae609" args="(detail::tquat&lt; valType &gt; const &amp;x)" -->
645 <div class="memitem">
646 <div class="memproto">
647 <table class="memname">
648 <tr>
649 <td class="memname">detail::tmat3x3&lt;valType&gt; glm::gtx::quaternion::toMat3 </td>
650 <td>(</td>
651 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
652 <td class="paramname"><em>x</em></td><td>)</td>
653 <td></td>
654 </tr>
655 </table>
656 </div>
657 <div class="memdoc">
658
659 <p>Converts a quaternion to a 3 * 3 matrix. </p>
660 <p>From GLM_GTX_quaternion extension. </p>
661
662 <p>Definition at line <a class="el" href="a00095_source.html#l00171">171</a> of file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
663
664 <p>References <a class="el" href="a00244.html#ga38702707009c743e9f304aadc25aeeeb">glm::gtc::quaternion::mat3_cast()</a>.</p>
665
666 </div>
667 </div>
668 <a class="anchor" id="ga80622343bd7ccf43c9b4cb677ba3ce38"></a><!-- doxytag: member="glm::gtx::quaternion::toMat4" ref="ga80622343bd7ccf43c9b4cb677ba3ce38" args="(detail::tquat&lt; valType &gt; const &amp;x)" -->
669 <div class="memitem">
670 <div class="memproto">
671 <table class="memname">
672 <tr>
673 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::quaternion::toMat4 </td>
674 <td>(</td>
675 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
676 <td class="paramname"><em>x</em></td><td>)</td>
677 <td></td>
678 </tr>
679 </table>
680 </div>
681 <div class="memdoc">
682
683 <p>Converts a quaternion to a 4 * 4 matrix. </p>
684 <p>From GLM_GTX_quaternion extension. </p>
685
686 <p>Definition at line <a class="el" href="a00095_source.html#l00177">177</a> of file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
687
688 <p>References <a class="el" href="a00244.html#gae2d14d52f9fef3da00cf867f9e2e3dfa">glm::gtc::quaternion::mat4_cast()</a>.</p>
689
690 </div>
691 </div>
692 <a class="anchor" id="ga2d9d1916258d13bd5f0373341400f18c"></a><!-- doxytag: member="glm::gtx::quaternion::toQuat" ref="ga2d9d1916258d13bd5f0373341400f18c" args="(detail::tmat4x4&lt; valType &gt; const &amp;x)" -->
693 <div class="memitem">
694 <div class="memproto">
695 <table class="memname">
696 <tr>
697 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::toQuat </td>
698 <td>(</td>
699 <td class="paramtype">detail::tmat4x4&lt; valType &gt; const &amp;&#160;</td>
700 <td class="paramname"><em>x</em></td><td>)</td>
701 <td></td>
702 </tr>
703 </table>
704 </div>
705 <div class="memdoc">
706
707 <p>Converts a 4 * 4 matrix to a quaternion. </p>
708 <p>From GLM_GTX_quaternion extension. </p>
709
710 <p>Definition at line <a class="el" href="a00095_source.html#l00189">189</a> of file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
711
712 <p>References <a class="el" href="a00244.html#ga9a8fa3c0a776ce21fde307d94f5a5a52">glm::gtc::quaternion::quat_cast()</a>.</p>
713
714 </div>
715 </div>
716 <a class="anchor" id="ga991e534718ab690ff21e201f27bfd43b"></a><!-- doxytag: member="glm::gtx::quaternion::toQuat" ref="ga991e534718ab690ff21e201f27bfd43b" args="(detail::tmat3x3&lt; valType &gt; const &amp;x)" -->
717 <div class="memitem">
718 <div class="memproto">
719 <table class="memname">
720 <tr>
721 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::toQuat </td>
722 <td>(</td>
723 <td class="paramtype">detail::tmat3x3&lt; valType &gt; const &amp;&#160;</td>
724 <td class="paramname"><em>x</em></td><td>)</td>
725 <td></td>
726 </tr>
727 </table>
728 </div>
729 <div class="memdoc">
730
731 <p>Converts a 3 * 3 matrix to a quaternion. </p>
732 <p>From GLM_GTX_quaternion extension. </p>
733
734 <p>Definition at line <a class="el" href="a00095_source.html#l00183">183</a> of file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
735
736 <p>References <a class="el" href="a00244.html#ga9a8fa3c0a776ce21fde307d94f5a5a52">glm::gtc::quaternion::quat_cast()</a>.</p>
737
738 </div>
739 </div>
740 <a class="anchor" id="ga4795f1cc522d82d672f7be9a405583c4"></a><!-- doxytag: member="glm::gtx::quaternion::yaw" ref="ga4795f1cc522d82d672f7be9a405583c4" args="(detail::tquat&lt; valType &gt; const &amp;x)" -->
741 <div class="memitem">
742 <div class="memproto">
743 <table class="memname">
744 <tr>
745 <td class="memname">valType glm::gtx::quaternion::yaw </td>
746 <td>(</td>
747 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
748 <td class="paramname"><em>x</em></td><td>)</td>
749 <td></td>
750 </tr>
751 </table>
752 </div>
753 <div class="memdoc">
754
755 <p>Returns yaw value of euler angles in degrees. </p>
756 <p>From GLM_GTX_quaternion extension. </p>
141757
142758 </div>
143759 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_quaternion: Extented quaternion types and functions</title>
4 <title>GLM_GTX_random: Random</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_quaternion: Extented quaternion types and functions</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_random: Random</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Extented quaternion types and functions.
38 <p>Generate random number from various distribution methods.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga6a3387a7d60728f60d86546b2f4d4d30">angle</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga4412b01c376d9cfc9cc06b2d511d0f16">angleAxis</a> (valType const &amp;angle, valType const &amp;x, valType const &amp;y, valType const &amp;z)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gaac770715e5e3dc93f48c6634b59efd43">angleAxis</a> (valType const &amp;angle, detail::tvec3&lt; valType &gt; const &amp;axis)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga6dd1904e2a6cc8e54bd324994094a6f9">axis</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga2a222a07e879ab25de36d6b5a8f6610d">cross</a> (detail::tquat&lt; valType &gt; const &amp;q, detail::tvec3&lt; valType &gt; const &amp;v)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga07cefaf434b895aa6a1841837f0c106d">cross</a> (detail::tvec3&lt; valType &gt; const &amp;v, detail::tquat&lt; valType &gt; const &amp;q)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga49d24e9d018f400ee11176b7e9433384">eularAngles</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gaed2302270ec468d26de745516ccb5d4b">exp</a> (detail::tquat&lt; valType &gt; const &amp;q, valType const &amp;exponent)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga23eb8e1aeaf751f7cc46fbaa291e223d">extractRealComponent</a> (detail::tquat&lt; valType &gt; const &amp;q)</td></tr>
43 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf7f3b54ec804a8eb627ec78f6d7eab2e"></a><!-- doxytag: member="gtx_random::compRand1" ref="gaf7f3b54ec804a8eb627ec78f6d7eab2e" args="()" -->
44 template&lt;typename T &gt; </td></tr>
45 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gaf7f3b54ec804a8eb627ec78f6d7eab2e">compRand1</a> ()</td></tr>
46 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae2889bb7e51018499d7b09f8ea64ea7b"></a><!-- doxytag: member="gtx_random::compRand1" ref="gae2889bb7e51018499d7b09f8ea64ea7b" args="(T Min, T Max)" -->
47 template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gae2889bb7e51018499d7b09f8ea64ea7b">compRand1</a> (T Min, T Max)</td></tr>
49 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5082aae274f3851014a8f1665661fc9a"></a><!-- doxytag: member="gtx_random::compRand2" ref="ga5082aae274f3851014a8f1665661fc9a" args="(T Min, T Max)" -->
50 template&lt;typename T &gt; </td></tr>
51 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga5082aae274f3851014a8f1665661fc9a">compRand2</a> (T Min, T Max)</td></tr>
52 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac524ec6ee7f45774dc9cbfcb38491d8a"></a><!-- doxytag: member="gtx_random::compRand2" ref="gac524ec6ee7f45774dc9cbfcb38491d8a" args="(const detail::tvec2&lt; T &gt; &amp;Min, const detail::tvec2&lt; T &gt; &amp;Max)" -->
53 template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gac524ec6ee7f45774dc9cbfcb38491d8a">compRand2</a> (const detail::tvec2&lt; T &gt; &amp;Min, const detail::tvec2&lt; T &gt; &amp;Max)</td></tr>
55 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga25d17c98a74d5252c0d1f4070e0dce75"></a><!-- doxytag: member="gtx_random::compRand3" ref="ga25d17c98a74d5252c0d1f4070e0dce75" args="(T Min, T Max)" -->
56 template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga25d17c98a74d5252c0d1f4070e0dce75">compRand3</a> (T Min, T Max)</td></tr>
58 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga21c92bd54518b8de81c7888ab376e79c"></a><!-- doxytag: member="gtx_random::compRand3" ref="ga21c92bd54518b8de81c7888ab376e79c" args="(const detail::tvec3&lt; T &gt; &amp;Min, const detail::tvec3&lt; T &gt; &amp;Max)" -->
59 template&lt;typename T &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga21c92bd54518b8de81c7888ab376e79c">compRand3</a> (const detail::tvec3&lt; T &gt; &amp;Min, const detail::tvec3&lt; T &gt; &amp;Max)</td></tr>
61 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga1fcc4fc54d083529501f4fd73858cacf"></a><!-- doxytag: member="gtx_random::compRand4" ref="ga1fcc4fc54d083529501f4fd73858cacf" args="(const detail::tvec4&lt; T &gt; &amp;Min, const detail::tvec4&lt; T &gt; &amp;Max)" -->
62 template&lt;typename T &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga1fcc4fc54d083529501f4fd73858cacf">compRand4</a> (const detail::tvec4&lt; T &gt; &amp;Min, const detail::tvec4&lt; T &gt; &amp;Max)</td></tr>
64 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga58863d5503a6c1aefaa5d01775a83267"></a><!-- doxytag: member="gtx_random::compRand4" ref="ga58863d5503a6c1aefaa5d01775a83267" args="(T Min, T Max)" -->
65 template&lt;typename T &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga58863d5503a6c1aefaa5d01775a83267">compRand4</a> (T Min, T Max)</td></tr>
67 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaea7fcb106b788c816db85cd1e3be6188"></a><!-- doxytag: member="gtx_random::gaussRand1" ref="gaea7fcb106b788c816db85cd1e3be6188" args="(T mean, T std_deviation)" -->
68 template&lt;typename T &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gaea7fcb106b788c816db85cd1e3be6188">gaussRand1</a> (T mean, T std_deviation)</td></tr>
70 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae746ec513d4c773e15143854e5245075"></a><!-- doxytag: member="gtx_random::gaussRand2" ref="gae746ec513d4c773e15143854e5245075" args="(const detail::tvec2&lt; T &gt; &amp;mean, const detail::tvec2&lt; T &gt; &amp;std_deviation)" -->
71 template&lt;typename T &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gae746ec513d4c773e15143854e5245075">gaussRand2</a> (const detail::tvec2&lt; T &gt; &amp;mean, const detail::tvec2&lt; T &gt; &amp;std_deviation)</td></tr>
73 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gabe761c9b9cc6999fc91acf79a7007ddb"></a><!-- doxytag: member="gtx_random::gaussRand2" ref="gabe761c9b9cc6999fc91acf79a7007ddb" args="(T mean, T std_deviation)" -->
74 template&lt;typename T &gt; </td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gabe761c9b9cc6999fc91acf79a7007ddb">gaussRand2</a> (T mean, T std_deviation)</td></tr>
76 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaad5585d8d9e84791ae9e71a43fb55fa5"></a><!-- doxytag: member="gtx_random::gaussRand2" ref="gaad5585d8d9e84791ae9e71a43fb55fa5" args="(const detail::tvec2&lt; T &gt; &amp;mean, T std_deviation)" -->
77 template&lt;typename T &gt; </td></tr>
78 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gaad5585d8d9e84791ae9e71a43fb55fa5">gaussRand2</a> (const detail::tvec2&lt; T &gt; &amp;mean, T std_deviation)</td></tr>
79 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab3ead682395579c9accbcf0cd8ec3396"></a><!-- doxytag: member="gtx_random::gaussRand2" ref="gab3ead682395579c9accbcf0cd8ec3396" args="(T mean, const detail::tvec2&lt; T &gt; &amp;std_deviation)" -->
80 template&lt;typename T &gt; </td></tr>
81 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gab3ead682395579c9accbcf0cd8ec3396">gaussRand2</a> (T mean, const detail::tvec2&lt; T &gt; &amp;std_deviation)</td></tr>
82 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga09905dda9035dc260eb593b84b887cbb"></a><!-- doxytag: member="gtx_random::gaussRand3" ref="ga09905dda9035dc260eb593b84b887cbb" args="(const detail::tvec3&lt; T &gt; &amp;mean, const detail::tvec3&lt; T &gt; &amp;std_deviation)" -->
83 template&lt;typename T &gt; </td></tr>
84 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga09905dda9035dc260eb593b84b887cbb">gaussRand3</a> (const detail::tvec3&lt; T &gt; &amp;mean, const detail::tvec3&lt; T &gt; &amp;std_deviation)</td></tr>
85 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga103cde6c382abea173da6b1800acd5c9"></a><!-- doxytag: member="gtx_random::gaussRand3" ref="ga103cde6c382abea173da6b1800acd5c9" args="(T mean, T std_deviation)" -->
86 template&lt;typename T &gt; </td></tr>
87 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga103cde6c382abea173da6b1800acd5c9">gaussRand3</a> (T mean, T std_deviation)</td></tr>
88 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga03af4b788f7777963bdb3ff10fda356d"></a><!-- doxytag: member="gtx_random::gaussRand3" ref="ga03af4b788f7777963bdb3ff10fda356d" args="(const detail::tvec3&lt; T &gt; &amp;mean, T std_deviation)" -->
89 template&lt;typename T &gt; </td></tr>
90 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga03af4b788f7777963bdb3ff10fda356d">gaussRand3</a> (const detail::tvec3&lt; T &gt; &amp;mean, T std_deviation)</td></tr>
91 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadb3cbe26ec31e593af84c46b1a63a073"></a><!-- doxytag: member="gtx_random::gaussRand3" ref="gadb3cbe26ec31e593af84c46b1a63a073" args="(T mean, const detail::tvec3&lt; T &gt; &amp;std_deviation)" -->
92 template&lt;typename T &gt; </td></tr>
93 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gadb3cbe26ec31e593af84c46b1a63a073">gaussRand3</a> (T mean, const detail::tvec3&lt; T &gt; &amp;std_deviation)</td></tr>
94 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab9f9cf1859278ad7f1ccc38cf3092cf2"></a><!-- doxytag: member="gtx_random::gaussRand4" ref="gab9f9cf1859278ad7f1ccc38cf3092cf2" args="(T mean, T std_deviation)" -->
95 template&lt;typename T &gt; </td></tr>
96 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gab9f9cf1859278ad7f1ccc38cf3092cf2">gaussRand4</a> (T mean, T std_deviation)</td></tr>
97 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4d2be5ff350c5348477351d3c67f35bd"></a><!-- doxytag: member="gtx_random::gaussRand4" ref="ga4d2be5ff350c5348477351d3c67f35bd" args="(T mean, const detail::tvec4&lt; T &gt; &amp;std_deviation)" -->
98 template&lt;typename T &gt; </td></tr>
99 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga4d2be5ff350c5348477351d3c67f35bd">gaussRand4</a> (T mean, const detail::tvec4&lt; T &gt; &amp;std_deviation)</td></tr>
100 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga95b58192c05082f2eef5a06b5a4814a0"></a><!-- doxytag: member="gtx_random::gaussRand4" ref="ga95b58192c05082f2eef5a06b5a4814a0" args="(const detail::tvec4&lt; T &gt; &amp;mean, const detail::tvec4&lt; T &gt; &amp;std_deviation)" -->
101 template&lt;typename T &gt; </td></tr>
102 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga95b58192c05082f2eef5a06b5a4814a0">gaussRand4</a> (const detail::tvec4&lt; T &gt; &amp;mean, const detail::tvec4&lt; T &gt; &amp;std_deviation)</td></tr>
103 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8daff7d57575e5ab4a44a46f52ed72fe"></a><!-- doxytag: member="gtx_random::gaussRand4" ref="ga8daff7d57575e5ab4a44a46f52ed72fe" args="(const detail::tvec4&lt; T &gt; &amp;mean, T std_deviation)" -->
104 template&lt;typename T &gt; </td></tr>
105 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga8daff7d57575e5ab4a44a46f52ed72fe">gaussRand4</a> (const detail::tvec4&lt; T &gt; &amp;mean, T std_deviation)</td></tr>
106 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5d05c63350546c1e7aa058bbf1b7f547"></a><!-- doxytag: member="gtx_random::normalizedRand2" ref="ga5d05c63350546c1e7aa058bbf1b7f547" args="()" -->
107 template&lt;typename T &gt; </td></tr>
108 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga5d05c63350546c1e7aa058bbf1b7f547">normalizedRand2</a> ()</td></tr>
109 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaea95fa28751387132c57e06827abd024"></a><!-- doxytag: member="gtx_random::normalizedRand2" ref="gaea95fa28751387132c57e06827abd024" args="(T Min, T Max)" -->
110 template&lt;typename T &gt; </td></tr>
111 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gaea95fa28751387132c57e06827abd024">normalizedRand2</a> (T Min, T Max)</td></tr>
112 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4c732e0408a54bbd709e0c5906e3ecde"></a><!-- doxytag: member="gtx_random::normalizedRand3" ref="ga4c732e0408a54bbd709e0c5906e3ecde" args="(T Min, T Max)" -->
113 template&lt;typename T &gt; </td></tr>
114 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga4c732e0408a54bbd709e0c5906e3ecde">normalizedRand3</a> (T Min, T Max)</td></tr>
115 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4d7a132cc05433f7c4c8263797f9d5b4"></a><!-- doxytag: member="gtx_random::normalizedRand3" ref="ga4d7a132cc05433f7c4c8263797f9d5b4" args="()" -->
116 template&lt;typename T &gt; </td></tr>
117 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga4d7a132cc05433f7c4c8263797f9d5b4">normalizedRand3</a> ()</td></tr>
61118 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga65d5734ce29049d334992f6a59e27e58">fastMix</a> (detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, T const &amp;a)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gaa15c443e97ac7476d04627d868995891">intermediate</a> (detail::tquat&lt; valType &gt; const &amp;prev, detail::tquat&lt; valType &gt; const &amp;curr, detail::tquat&lt; valType &gt; const &amp;next)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga11af1897310ec8a09210fb7b4deb0027">log</a> (detail::tquat&lt; valType &gt; const &amp;q)</td></tr>
67 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
68 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gafad23e37f1723bbbbd7f9498cd729126">pitch</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
69 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
70 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga42873121534327c9e5238f3ca3d6cd03">pow</a> (detail::tquat&lt; valType &gt; const &amp;x, valType const &amp;y)</td></tr>
71 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga60a4f955b2836d85f3d21ded84879926">roll</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
73 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
74 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga7f163c787898b76dc1d91eb48523ce87">rotate</a> (detail::tquat&lt; valType &gt; const &amp;q, detail::tvec3&lt; valType &gt; const &amp;v)</td></tr>
75 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
76 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga92cb29907ffd24771d31f06c94e6d166">rotate</a> (detail::tquat&lt; valType &gt; const &amp;q, detail::tvec4&lt; valType &gt; const &amp;v)</td></tr>
77 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
78 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga22566896a998311431a0612e1c222002">shortMix</a> (detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, T const &amp;a)</td></tr>
79 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
80 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga203b736245b7519eb151ac46e0bf7f21">squad</a> (detail::tquat&lt; valType &gt; const &amp;q1, detail::tquat&lt; valType &gt; const &amp;q2, detail::tquat&lt; valType &gt; const &amp;s1, detail::tquat&lt; valType &gt; const &amp;s2, valType const &amp;h)</td></tr>
81 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
82 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga61ec971322157330116a3aefe5bae609">toMat3</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
83 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
84 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga80622343bd7ccf43c9b4cb677ba3ce38">toMat4</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
85 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
86 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga2d9d1916258d13bd5f0373341400f18c">toQuat</a> (detail::tmat4x4&lt; valType &gt; const &amp;x)</td></tr>
87 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
88 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga991e534718ab690ff21e201f27bfd43b">toQuat</a> (detail::tmat3x3&lt; valType &gt; const &amp;x)</td></tr>
89 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
90 <tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga4795f1cc522d82d672f7be9a405583c4">yaw</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
119 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga8b6a21d90d07f7a655264009590ddcce">signedRand1</a> ()</td></tr>
120 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga65f615e428d1e4009cdf872d434d5267"></a><!-- doxytag: member="gtx_random::signedRand2" ref="ga65f615e428d1e4009cdf872d434d5267" args="()" -->
121 template&lt;typename T &gt; </td></tr>
122 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga65f615e428d1e4009cdf872d434d5267">signedRand2</a> ()</td></tr>
123 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab3a7fc45bf10792e96e5bbc6aa3ff30b"></a><!-- doxytag: member="gtx_random::signedRand3" ref="gab3a7fc45bf10792e96e5bbc6aa3ff30b" args="()" -->
124 template&lt;typename T &gt; </td></tr>
125 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gab3a7fc45bf10792e96e5bbc6aa3ff30b">signedRand3</a> ()</td></tr>
126 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga917ac879bf910263d7af720d03342e8a"></a><!-- doxytag: member="gtx_random::signedRand4" ref="ga917ac879bf910263d7af720d03342e8a" args="()" -->
127 template&lt;typename T &gt; </td></tr>
128 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga917ac879bf910263d7af720d03342e8a">signedRand4</a> ()</td></tr>
129 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga12d03cc32f213b4173e58f05d74232b3"></a><!-- doxytag: member="gtx_random::vecRand2" ref="ga12d03cc32f213b4173e58f05d74232b3" args="()" -->
130 template&lt;typename T &gt; </td></tr>
131 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga12d03cc32f213b4173e58f05d74232b3">vecRand2</a> ()</td></tr>
132 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab335a743d4c6bdbc95cf482b1a2edf24"></a><!-- doxytag: member="gtx_random::vecRand2" ref="gab335a743d4c6bdbc95cf482b1a2edf24" args="(T MinRadius, T MaxRadius)" -->
133 template&lt;typename T &gt; </td></tr>
134 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gab335a743d4c6bdbc95cf482b1a2edf24">vecRand2</a> (T MinRadius, T MaxRadius)</td></tr>
135 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga63249d58e1327a83638f1cf8b421a0de"></a><!-- doxytag: member="gtx_random::vecRand3" ref="ga63249d58e1327a83638f1cf8b421a0de" args="()" -->
136 template&lt;typename T &gt; </td></tr>
137 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga63249d58e1327a83638f1cf8b421a0de">vecRand3</a> ()</td></tr>
138 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4e2bc1fdcc9bbb6292b858d50d467393"></a><!-- doxytag: member="gtx_random::vecRand3" ref="ga4e2bc1fdcc9bbb6292b858d50d467393" args="(T MinRadius, T MaxRadius)" -->
139 template&lt;typename T &gt; </td></tr>
140 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#ga4e2bc1fdcc9bbb6292b858d50d467393">vecRand3</a> (T MinRadius, T MaxRadius)</td></tr>
141 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gafa1635f3e6a4db81474e4002f9f3e64b"></a><!-- doxytag: member="gtx_random::vecRand4" ref="gafa1635f3e6a4db81474e4002f9f3e64b" args="(T MinRadius, T MaxRadius)" -->
142 template&lt;typename T &gt; </td></tr>
143 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gafa1635f3e6a4db81474e4002f9f3e64b">vecRand4</a> (T MinRadius, T MaxRadius)</td></tr>
144 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac2d7a76d889e0b5e9414791b9403c98c"></a><!-- doxytag: member="gtx_random::vecRand4" ref="gac2d7a76d889e0b5e9414791b9403c98c" args="()" -->
145 template&lt;typename T &gt; </td></tr>
146 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00286.html#gac2d7a76d889e0b5e9414791b9403c98c">vecRand4</a> ()</td></tr>
91147 </table>
92148 <hr/><a name="_details"></a><h2>Detailed Description</h2>
93 <p>Extented quaternion types and functions. </p>
94 <p>&lt;<a class="el" href="a00095_source.html">glm/gtx/quaternion.hpp</a>&gt; need to be included to use these functionalities. </p>
149 <p>Generate random number from various distribution methods. </p>
150 <p>&lt;<a class="el" href="a00096_source.html">glm/gtx/random.hpp</a>&gt; need to be included to use these functionalities. </p>
95151 <hr/><h2>Function Documentation</h2>
96 <a class="anchor" id="ga6a3387a7d60728f60d86546b2f4d4d30"></a><!-- doxytag: member="glm::gtx::quaternion::angle" ref="ga6a3387a7d60728f60d86546b2f4d4d30" args="(detail::tquat&lt; valType &gt; const &amp;x)" -->
152 <a class="anchor" id="ga8b6a21d90d07f7a655264009590ddcce"></a><!-- doxytag: member="glm::gtx::random::signedRand1" ref="ga8b6a21d90d07f7a655264009590ddcce" args="()" -->
97153 <div class="memitem">
98154 <div class="memproto">
99155 <table class="memname">
100156 <tr>
101 <td class="memname">valType glm::gtx::quaternion::angle </td>
157 <td class="memname">T glm::gtx::random::signedRand1 </td>
102158 <td>(</td>
103 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
104 <td class="paramname"><em>x</em></td><td>)</td>
159 <td class="paramname"></td><td>)</td>
105160 <td></td>
106161 </tr>
107162 </table>
108163 </div>
109164 <div class="memdoc">
110165
111 <p>Returns the quaternion rotation angle. </p>
112 <p>From GLM_GTX_quaternion extension. </p>
113
114 </div>
115 </div>
116 <a class="anchor" id="ga4412b01c376d9cfc9cc06b2d511d0f16"></a><!-- doxytag: member="glm::gtx::quaternion::angleAxis" ref="ga4412b01c376d9cfc9cc06b2d511d0f16" args="(valType const &amp;angle, valType const &amp;x, valType const &amp;y, valType const &amp;z)" -->
117 <div class="memitem">
118 <div class="memproto">
119 <table class="memname">
120 <tr>
121 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::angleAxis </td>
122 <td>(</td>
123 <td class="paramtype">valType const &amp;&#160;</td>
124 <td class="paramname"><em>angle</em>, </td>
125 </tr>
126 <tr>
127 <td class="paramkey"></td>
128 <td></td>
129 <td class="paramtype">valType const &amp;&#160;</td>
130 <td class="paramname"><em>x</em>, </td>
131 </tr>
132 <tr>
133 <td class="paramkey"></td>
134 <td></td>
135 <td class="paramtype">valType const &amp;&#160;</td>
136 <td class="paramname"><em>y</em>, </td>
137 </tr>
138 <tr>
139 <td class="paramkey"></td>
140 <td></td>
141 <td class="paramtype">valType const &amp;&#160;</td>
142 <td class="paramname"><em>z</em>&#160;</td>
143 </tr>
144 <tr>
145 <td></td>
146 <td>)</td>
147 <td></td><td></td>
148 </tr>
149 </table>
150 </div>
151 <div class="memdoc">
152
153 <p>Build a quaternion from an angle and a normalized axis. </p>
154 <p>From GLM_GTX_quaternion extension. </p>
155
156 </div>
157 </div>
158 <a class="anchor" id="gaac770715e5e3dc93f48c6634b59efd43"></a><!-- doxytag: member="glm::gtx::quaternion::angleAxis" ref="gaac770715e5e3dc93f48c6634b59efd43" args="(valType const &amp;angle, detail::tvec3&lt; valType &gt; const &amp;axis)" -->
159 <div class="memitem">
160 <div class="memproto">
161 <table class="memname">
162 <tr>
163 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::angleAxis </td>
164 <td>(</td>
165 <td class="paramtype">valType const &amp;&#160;</td>
166 <td class="paramname"><em>angle</em>, </td>
167 </tr>
168 <tr>
169 <td class="paramkey"></td>
170 <td></td>
171 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
172 <td class="paramname"><em>axis</em>&#160;</td>
173 </tr>
174 <tr>
175 <td></td>
176 <td>)</td>
177 <td></td><td></td>
178 </tr>
179 </table>
180 </div>
181 <div class="memdoc">
182
183 <p>Build a quaternion from an angle and a normalized axis. </p>
184 <p>From GLM_GTX_quaternion extension. </p>
185
186 </div>
187 </div>
188 <a class="anchor" id="ga6dd1904e2a6cc8e54bd324994094a6f9"></a><!-- doxytag: member="glm::gtx::quaternion::axis" ref="ga6dd1904e2a6cc8e54bd324994094a6f9" args="(detail::tquat&lt; valType &gt; const &amp;x)" -->
189 <div class="memitem">
190 <div class="memproto">
191 <table class="memname">
192 <tr>
193 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::quaternion::axis </td>
194 <td>(</td>
195 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
196 <td class="paramname"><em>x</em></td><td>)</td>
197 <td></td>
198 </tr>
199 </table>
200 </div>
201 <div class="memdoc">
202
203 <p>Returns the q rotation axis. </p>
204 <p>From GLM_GTX_quaternion extension. </p>
205
206 </div>
207 </div>
208 <a class="anchor" id="ga2a222a07e879ab25de36d6b5a8f6610d"></a><!-- doxytag: member="glm::gtx::quaternion::cross" ref="ga2a222a07e879ab25de36d6b5a8f6610d" args="(detail::tquat&lt; valType &gt; const &amp;q, detail::tvec3&lt; valType &gt; const &amp;v)" -->
209 <div class="memitem">
210 <div class="memproto">
211 <table class="memname">
212 <tr>
213 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::quaternion::cross </td>
214 <td>(</td>
215 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
216 <td class="paramname"><em>q</em>, </td>
217 </tr>
218 <tr>
219 <td class="paramkey"></td>
220 <td></td>
221 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
222 <td class="paramname"><em>v</em>&#160;</td>
223 </tr>
224 <tr>
225 <td></td>
226 <td>)</td>
227 <td></td><td></td>
228 </tr>
229 </table>
230 </div>
231 <div class="memdoc">
232
233 <p>Compute a cross product between a quaternion and a vector. </p>
234 <p>From GLM_GTX_quaternion extension. </p>
235
236 </div>
237 </div>
238 <a class="anchor" id="ga07cefaf434b895aa6a1841837f0c106d"></a><!-- doxytag: member="glm::gtx::quaternion::cross" ref="ga07cefaf434b895aa6a1841837f0c106d" args="(detail::tvec3&lt; valType &gt; const &amp;v, detail::tquat&lt; valType &gt; const &amp;q)" -->
239 <div class="memitem">
240 <div class="memproto">
241 <table class="memname">
242 <tr>
243 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::quaternion::cross </td>
244 <td>(</td>
245 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
246 <td class="paramname"><em>v</em>, </td>
247 </tr>
248 <tr>
249 <td class="paramkey"></td>
250 <td></td>
251 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
252 <td class="paramname"><em>q</em>&#160;</td>
253 </tr>
254 <tr>
255 <td></td>
256 <td>)</td>
257 <td></td><td></td>
258 </tr>
259 </table>
260 </div>
261 <div class="memdoc">
262
263 <p>Compute a cross product between a vector and a quaternion. </p>
264 <p>From GLM_GTX_quaternion extension. </p>
265
266 </div>
267 </div>
268 <a class="anchor" id="ga49d24e9d018f400ee11176b7e9433384"></a><!-- doxytag: member="glm::gtx::quaternion::eularAngles" ref="ga49d24e9d018f400ee11176b7e9433384" args="(detail::tquat&lt; valType &gt; const &amp;x)" -->
269 <div class="memitem">
270 <div class="memproto">
271 <table class="memname">
272 <tr>
273 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::quaternion::eularAngles </td>
274 <td>(</td>
275 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
276 <td class="paramname"><em>x</em></td><td>)</td>
277 <td></td>
278 </tr>
279 </table>
280 </div>
281 <div class="memdoc">
282
283 <p>Returns euler angles, yitch as x, yaw as y, roll as z. </p>
284 <p>From GLM_GTX_quaternion extension. </p>
285
286 </div>
287 </div>
288 <a class="anchor" id="gaed2302270ec468d26de745516ccb5d4b"></a><!-- doxytag: member="glm::gtx::quaternion::exp" ref="gaed2302270ec468d26de745516ccb5d4b" args="(detail::tquat&lt; valType &gt; const &amp;q, valType const &amp;exponent)" -->
289 <div class="memitem">
290 <div class="memproto">
291 <table class="memname">
292 <tr>
293 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::exp </td>
294 <td>(</td>
295 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
296 <td class="paramname"><em>q</em>, </td>
297 </tr>
298 <tr>
299 <td class="paramkey"></td>
300 <td></td>
301 <td class="paramtype">valType const &amp;&#160;</td>
302 <td class="paramname"><em>exponent</em>&#160;</td>
303 </tr>
304 <tr>
305 <td></td>
306 <td>)</td>
307 <td></td><td></td>
308 </tr>
309 </table>
310 </div>
311 <div class="memdoc">
312
313 <p>Returns a exp of a quaternion. </p>
314 <p>From GLM_GTX_quaternion extension. </p>
315
316 </div>
317 </div>
318 <a class="anchor" id="ga23eb8e1aeaf751f7cc46fbaa291e223d"></a><!-- doxytag: member="glm::gtx::quaternion::extractRealComponent" ref="ga23eb8e1aeaf751f7cc46fbaa291e223d" args="(detail::tquat&lt; valType &gt; const &amp;q)" -->
319 <div class="memitem">
320 <div class="memproto">
321 <table class="memname">
322 <tr>
323 <td class="memname">valType glm::gtx::quaternion::extractRealComponent </td>
324 <td>(</td>
325 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
326 <td class="paramname"><em>q</em></td><td>)</td>
327 <td></td>
328 </tr>
329 </table>
330 </div>
331 <div class="memdoc">
332
333 <p>Extract the real component of a quaternion. </p>
334 <p>From GLM_GTX_quaternion extension. </p>
335
336 </div>
337 </div>
338 <a class="anchor" id="ga65d5734ce29049d334992f6a59e27e58"></a><!-- doxytag: member="glm::gtx::quaternion::fastMix" ref="ga65d5734ce29049d334992f6a59e27e58" args="(detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, T const &amp;a)" -->
339 <div class="memitem">
340 <div class="memproto">
341 <table class="memname">
342 <tr>
343 <td class="memname">detail::tquat&lt;T&gt; glm::gtx::quaternion::fastMix </td>
344 <td>(</td>
345 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
346 <td class="paramname"><em>x</em>, </td>
347 </tr>
348 <tr>
349 <td class="paramkey"></td>
350 <td></td>
351 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
352 <td class="paramname"><em>y</em>, </td>
353 </tr>
354 <tr>
355 <td class="paramkey"></td>
356 <td></td>
357 <td class="paramtype">T const &amp;&#160;</td>
358 <td class="paramname"><em>a</em>&#160;</td>
359 </tr>
360 <tr>
361 <td></td>
362 <td>)</td>
363 <td></td><td></td>
364 </tr>
365 </table>
366 </div>
367 <div class="memdoc">
368
369 <p>Quaternion normalized linear interpolation. </p>
370 <p>From GLM_GTX_quaternion extension. </p>
371
372 </div>
373 </div>
374 <a class="anchor" id="gaa15c443e97ac7476d04627d868995891"></a><!-- doxytag: member="glm::gtx::quaternion::intermediate" ref="gaa15c443e97ac7476d04627d868995891" args="(detail::tquat&lt; valType &gt; const &amp;prev, detail::tquat&lt; valType &gt; const &amp;curr, detail::tquat&lt; valType &gt; const &amp;next)" -->
375 <div class="memitem">
376 <div class="memproto">
377 <table class="memname">
378 <tr>
379 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::intermediate </td>
380 <td>(</td>
381 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
382 <td class="paramname"><em>prev</em>, </td>
383 </tr>
384 <tr>
385 <td class="paramkey"></td>
386 <td></td>
387 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
388 <td class="paramname"><em>curr</em>, </td>
389 </tr>
390 <tr>
391 <td class="paramkey"></td>
392 <td></td>
393 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
394 <td class="paramname"><em>next</em>&#160;</td>
395 </tr>
396 <tr>
397 <td></td>
398 <td>)</td>
399 <td></td><td></td>
400 </tr>
401 </table>
402 </div>
403 <div class="memdoc">
404
405 <p>Returns an intermediate control point for squad interpolation. </p>
406 <p>From GLM_GTX_quaternion extension. </p>
407
408 </div>
409 </div>
410 <a class="anchor" id="ga11af1897310ec8a09210fb7b4deb0027"></a><!-- doxytag: member="glm::gtx::quaternion::log" ref="ga11af1897310ec8a09210fb7b4deb0027" args="(detail::tquat&lt; valType &gt; const &amp;q)" -->
411 <div class="memitem">
412 <div class="memproto">
413 <table class="memname">
414 <tr>
415 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::log </td>
416 <td>(</td>
417 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
418 <td class="paramname"><em>q</em></td><td>)</td>
419 <td></td>
420 </tr>
421 </table>
422 </div>
423 <div class="memdoc">
424
425 <p>Returns a log of a quaternion. </p>
426 <p>From GLM_GTX_quaternion extension. </p>
427
428 </div>
429 </div>
430 <a class="anchor" id="gafad23e37f1723bbbbd7f9498cd729126"></a><!-- doxytag: member="glm::gtx::quaternion::pitch" ref="gafad23e37f1723bbbbd7f9498cd729126" args="(detail::tquat&lt; valType &gt; const &amp;x)" -->
431 <div class="memitem">
432 <div class="memproto">
433 <table class="memname">
434 <tr>
435 <td class="memname">valType glm::gtx::quaternion::pitch </td>
436 <td>(</td>
437 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
438 <td class="paramname"><em>x</em></td><td>)</td>
439 <td></td>
440 </tr>
441 </table>
442 </div>
443 <div class="memdoc">
444
445 <p>Returns pitch value of euler angles. </p>
446 <p>From GLM_GTX_quaternion extension. </p>
447
448 </div>
449 </div>
450 <a class="anchor" id="ga42873121534327c9e5238f3ca3d6cd03"></a><!-- doxytag: member="glm::gtx::quaternion::pow" ref="ga42873121534327c9e5238f3ca3d6cd03" args="(detail::tquat&lt; valType &gt; const &amp;x, valType const &amp;y)" -->
451 <div class="memitem">
452 <div class="memproto">
453 <table class="memname">
454 <tr>
455 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::pow </td>
456 <td>(</td>
457 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
458 <td class="paramname"><em>x</em>, </td>
459 </tr>
460 <tr>
461 <td class="paramkey"></td>
462 <td></td>
463 <td class="paramtype">valType const &amp;&#160;</td>
464 <td class="paramname"><em>y</em>&#160;</td>
465 </tr>
466 <tr>
467 <td></td>
468 <td>)</td>
469 <td></td><td></td>
470 </tr>
471 </table>
472 </div>
473 <div class="memdoc">
474
475 <p>Returns x raised to the y power. </p>
476 <p>From GLM_GTX_quaternion extension. </p>
477
478 </div>
479 </div>
480 <a class="anchor" id="ga60a4f955b2836d85f3d21ded84879926"></a><!-- doxytag: member="glm::gtx::quaternion::roll" ref="ga60a4f955b2836d85f3d21ded84879926" args="(detail::tquat&lt; valType &gt; const &amp;x)" -->
481 <div class="memitem">
482 <div class="memproto">
483 <table class="memname">
484 <tr>
485 <td class="memname">valType glm::gtx::quaternion::roll </td>
486 <td>(</td>
487 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
488 <td class="paramname"><em>x</em></td><td>)</td>
489 <td></td>
490 </tr>
491 </table>
492 </div>
493 <div class="memdoc">
494
495 <p>Returns roll value of euler angles. </p>
496 <p>From GLM_GTX_quaternion extension. </p>
497
498 </div>
499 </div>
500 <a class="anchor" id="ga7f163c787898b76dc1d91eb48523ce87"></a><!-- doxytag: member="glm::gtx::quaternion::rotate" ref="ga7f163c787898b76dc1d91eb48523ce87" args="(detail::tquat&lt; valType &gt; const &amp;q, detail::tvec3&lt; valType &gt; const &amp;v)" -->
501 <div class="memitem">
502 <div class="memproto">
503 <table class="memname">
504 <tr>
505 <td class="memname">detail::tvec3&lt;valType&gt; glm::gtx::quaternion::rotate </td>
506 <td>(</td>
507 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
508 <td class="paramname"><em>q</em>, </td>
509 </tr>
510 <tr>
511 <td class="paramkey"></td>
512 <td></td>
513 <td class="paramtype">detail::tvec3&lt; valType &gt; const &amp;&#160;</td>
514 <td class="paramname"><em>v</em>&#160;</td>
515 </tr>
516 <tr>
517 <td></td>
518 <td>)</td>
519 <td></td><td></td>
520 </tr>
521 </table>
522 </div>
523 <div class="memdoc">
524
525 <p>Returns quarternion square root. </p>
526 <p>From GLM_GTX_quaternion extension. Rotates a 3 components vector by a quaternion. From GLM_GTX_transform extension. </p>
527
528 </div>
529 </div>
530 <a class="anchor" id="ga92cb29907ffd24771d31f06c94e6d166"></a><!-- doxytag: member="glm::gtx::quaternion::rotate" ref="ga92cb29907ffd24771d31f06c94e6d166" args="(detail::tquat&lt; valType &gt; const &amp;q, detail::tvec4&lt; valType &gt; const &amp;v)" -->
531 <div class="memitem">
532 <div class="memproto">
533 <table class="memname">
534 <tr>
535 <td class="memname">detail::tvec4&lt;valType&gt; glm::gtx::quaternion::rotate </td>
536 <td>(</td>
537 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
538 <td class="paramname"><em>q</em>, </td>
539 </tr>
540 <tr>
541 <td class="paramkey"></td>
542 <td></td>
543 <td class="paramtype">detail::tvec4&lt; valType &gt; const &amp;&#160;</td>
544 <td class="paramname"><em>v</em>&#160;</td>
545 </tr>
546 <tr>
547 <td></td>
548 <td>)</td>
549 <td></td><td></td>
550 </tr>
551 </table>
552 </div>
553 <div class="memdoc">
554
555 <p>Rotates a 4 components vector by a quaternion. </p>
556 <p>From GLM_GTX_transform extension. </p>
557
558 </div>
559 </div>
560 <a class="anchor" id="ga22566896a998311431a0612e1c222002"></a><!-- doxytag: member="glm::gtx::quaternion::shortMix" ref="ga22566896a998311431a0612e1c222002" args="(detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, T const &amp;a)" -->
561 <div class="memitem">
562 <div class="memproto">
563 <table class="memname">
564 <tr>
565 <td class="memname">detail::tquat&lt;T&gt; glm::gtx::quaternion::shortMix </td>
566 <td>(</td>
567 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
568 <td class="paramname"><em>x</em>, </td>
569 </tr>
570 <tr>
571 <td class="paramkey"></td>
572 <td></td>
573 <td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
574 <td class="paramname"><em>y</em>, </td>
575 </tr>
576 <tr>
577 <td class="paramkey"></td>
578 <td></td>
579 <td class="paramtype">T const &amp;&#160;</td>
580 <td class="paramname"><em>a</em>&#160;</td>
581 </tr>
582 <tr>
583 <td></td>
584 <td>)</td>
585 <td></td><td></td>
586 </tr>
587 </table>
588 </div>
589 <div class="memdoc">
590
591 <p>Quaternion interpolation using the rotation short path. </p>
592 <p>From GLM_GTX_quaternion extension. </p>
593
594 </div>
595 </div>
596 <a class="anchor" id="ga203b736245b7519eb151ac46e0bf7f21"></a><!-- doxytag: member="glm::gtx::quaternion::squad" ref="ga203b736245b7519eb151ac46e0bf7f21" args="(detail::tquat&lt; valType &gt; const &amp;q1, detail::tquat&lt; valType &gt; const &amp;q2, detail::tquat&lt; valType &gt; const &amp;s1, detail::tquat&lt; valType &gt; const &amp;s2, valType const &amp;h)" -->
597 <div class="memitem">
598 <div class="memproto">
599 <table class="memname">
600 <tr>
601 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::squad </td>
602 <td>(</td>
603 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
604 <td class="paramname"><em>q1</em>, </td>
605 </tr>
606 <tr>
607 <td class="paramkey"></td>
608 <td></td>
609 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
610 <td class="paramname"><em>q2</em>, </td>
611 </tr>
612 <tr>
613 <td class="paramkey"></td>
614 <td></td>
615 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
616 <td class="paramname"><em>s1</em>, </td>
617 </tr>
618 <tr>
619 <td class="paramkey"></td>
620 <td></td>
621 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
622 <td class="paramname"><em>s2</em>, </td>
623 </tr>
624 <tr>
625 <td class="paramkey"></td>
626 <td></td>
627 <td class="paramtype">valType const &amp;&#160;</td>
628 <td class="paramname"><em>h</em>&#160;</td>
629 </tr>
630 <tr>
631 <td></td>
632 <td>)</td>
633 <td></td><td></td>
634 </tr>
635 </table>
636 </div>
637 <div class="memdoc">
638
639 <p>Compute a point on a path according squad equation. </p>
640 <p>q1 and q2 are control points; s1 and s2 are intermediate control points. From GLM_GTX_quaternion extension. </p>
641
642 </div>
643 </div>
644 <a class="anchor" id="ga61ec971322157330116a3aefe5bae609"></a><!-- doxytag: member="glm::gtx::quaternion::toMat3" ref="ga61ec971322157330116a3aefe5bae609" args="(detail::tquat&lt; valType &gt; const &amp;x)" -->
645 <div class="memitem">
646 <div class="memproto">
647 <table class="memname">
648 <tr>
649 <td class="memname">detail::tmat3x3&lt;valType&gt; glm::gtx::quaternion::toMat3 </td>
650 <td>(</td>
651 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
652 <td class="paramname"><em>x</em></td><td>)</td>
653 <td></td>
654 </tr>
655 </table>
656 </div>
657 <div class="memdoc">
658
659 <p>Converts a quaternion to a 3 * 3 matrix. </p>
660 <p>From GLM_GTX_quaternion extension. </p>
661
662 <p>Definition at line <a class="el" href="a00095_source.html#l00173">173</a> of file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
663
664 <p>References <a class="el" href="a00245.html#ga38702707009c743e9f304aadc25aeeeb">glm::gtc::quaternion::mat3_cast()</a>.</p>
665
666 </div>
667 </div>
668 <a class="anchor" id="ga80622343bd7ccf43c9b4cb677ba3ce38"></a><!-- doxytag: member="glm::gtx::quaternion::toMat4" ref="ga80622343bd7ccf43c9b4cb677ba3ce38" args="(detail::tquat&lt; valType &gt; const &amp;x)" -->
669 <div class="memitem">
670 <div class="memproto">
671 <table class="memname">
672 <tr>
673 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::quaternion::toMat4 </td>
674 <td>(</td>
675 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
676 <td class="paramname"><em>x</em></td><td>)</td>
677 <td></td>
678 </tr>
679 </table>
680 </div>
681 <div class="memdoc">
682
683 <p>Converts a quaternion to a 4 * 4 matrix. </p>
684 <p>From GLM_GTX_quaternion extension. </p>
685
686 <p>Definition at line <a class="el" href="a00095_source.html#l00179">179</a> of file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
687
688 <p>References <a class="el" href="a00245.html#gae2d14d52f9fef3da00cf867f9e2e3dfa">glm::gtc::quaternion::mat4_cast()</a>.</p>
689
690 </div>
691 </div>
692 <a class="anchor" id="ga2d9d1916258d13bd5f0373341400f18c"></a><!-- doxytag: member="glm::gtx::quaternion::toQuat" ref="ga2d9d1916258d13bd5f0373341400f18c" args="(detail::tmat4x4&lt; valType &gt; const &amp;x)" -->
693 <div class="memitem">
694 <div class="memproto">
695 <table class="memname">
696 <tr>
697 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::toQuat </td>
698 <td>(</td>
699 <td class="paramtype">detail::tmat4x4&lt; valType &gt; const &amp;&#160;</td>
700 <td class="paramname"><em>x</em></td><td>)</td>
701 <td></td>
702 </tr>
703 </table>
704 </div>
705 <div class="memdoc">
706
707 <p>Converts a 4 * 4 matrix to a quaternion. </p>
708 <p>From GLM_GTX_quaternion extension. </p>
709
710 <p>Definition at line <a class="el" href="a00095_source.html#l00191">191</a> of file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
711
712 <p>References <a class="el" href="a00245.html#ga9a8fa3c0a776ce21fde307d94f5a5a52">glm::gtc::quaternion::quat_cast()</a>.</p>
713
714 </div>
715 </div>
716 <a class="anchor" id="ga991e534718ab690ff21e201f27bfd43b"></a><!-- doxytag: member="glm::gtx::quaternion::toQuat" ref="ga991e534718ab690ff21e201f27bfd43b" args="(detail::tmat3x3&lt; valType &gt; const &amp;x)" -->
717 <div class="memitem">
718 <div class="memproto">
719 <table class="memname">
720 <tr>
721 <td class="memname">detail::tquat&lt;valType&gt; glm::gtx::quaternion::toQuat </td>
722 <td>(</td>
723 <td class="paramtype">detail::tmat3x3&lt; valType &gt; const &amp;&#160;</td>
724 <td class="paramname"><em>x</em></td><td>)</td>
725 <td></td>
726 </tr>
727 </table>
728 </div>
729 <div class="memdoc">
730
731 <p>Converts a 3 * 3 matrix to a quaternion. </p>
732 <p>From GLM_GTX_quaternion extension. </p>
733
734 <p>Definition at line <a class="el" href="a00095_source.html#l00185">185</a> of file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
735
736 <p>References <a class="el" href="a00245.html#ga9a8fa3c0a776ce21fde307d94f5a5a52">glm::gtc::quaternion::quat_cast()</a>.</p>
737
738 </div>
739 </div>
740 <a class="anchor" id="ga4795f1cc522d82d672f7be9a405583c4"></a><!-- doxytag: member="glm::gtx::quaternion::yaw" ref="ga4795f1cc522d82d672f7be9a405583c4" args="(detail::tquat&lt; valType &gt; const &amp;x)" -->
741 <div class="memitem">
742 <div class="memproto">
743 <table class="memname">
744 <tr>
745 <td class="memname">valType glm::gtx::quaternion::yaw </td>
746 <td>(</td>
747 <td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
748 <td class="paramname"><em>x</em></td><td>)</td>
749 <td></td>
750 </tr>
751 </table>
752 </div>
753 <div class="memdoc">
754
755 <p>Returns yaw value of euler angles. </p>
756 <p>From GLM_GTX_quaternion extension. </p>
166 <p>Generate a random number in the interval [-1, 1], according a linear distribution. </p>
167 <p>From GLM_GTX_random extension. </p>
757168
758169 </div>
759170 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_random: Random</title>
4 <title>GLM_GTX_raw_data: Raw data</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#func-members">Functions</a> </div>
32 <a href="#typedef-members">Typedefs</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_random: Random</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_raw_data: Raw data</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Generate random number from various distribution methods.
38 <p>Projection of a vector to other one.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
41 <tr><td colspan="2"><h2><a name="func-members"></a>
42 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf7f3b54ec804a8eb627ec78f6d7eab2e"></a><!-- doxytag: member="gtx_random::compRand1" ref="gaf7f3b54ec804a8eb627ec78f6d7eab2e" args="()" -->
44 template&lt;typename T &gt; </td></tr>
45 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gaf7f3b54ec804a8eb627ec78f6d7eab2e">compRand1</a> ()</td></tr>
46 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae2889bb7e51018499d7b09f8ea64ea7b"></a><!-- doxytag: member="gtx_random::compRand1" ref="gae2889bb7e51018499d7b09f8ea64ea7b" args="(T Min, T Max)" -->
47 template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gae2889bb7e51018499d7b09f8ea64ea7b">compRand1</a> (T Min, T Max)</td></tr>
49 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5082aae274f3851014a8f1665661fc9a"></a><!-- doxytag: member="gtx_random::compRand2" ref="ga5082aae274f3851014a8f1665661fc9a" args="(T Min, T Max)" -->
50 template&lt;typename T &gt; </td></tr>
51 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga5082aae274f3851014a8f1665661fc9a">compRand2</a> (T Min, T Max)</td></tr>
52 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac524ec6ee7f45774dc9cbfcb38491d8a"></a><!-- doxytag: member="gtx_random::compRand2" ref="gac524ec6ee7f45774dc9cbfcb38491d8a" args="(const detail::tvec2&lt; T &gt; &amp;Min, const detail::tvec2&lt; T &gt; &amp;Max)" -->
53 template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gac524ec6ee7f45774dc9cbfcb38491d8a">compRand2</a> (const detail::tvec2&lt; T &gt; &amp;Min, const detail::tvec2&lt; T &gt; &amp;Max)</td></tr>
55 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga25d17c98a74d5252c0d1f4070e0dce75"></a><!-- doxytag: member="gtx_random::compRand3" ref="ga25d17c98a74d5252c0d1f4070e0dce75" args="(T Min, T Max)" -->
56 template&lt;typename T &gt; </td></tr>
57 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga25d17c98a74d5252c0d1f4070e0dce75">compRand3</a> (T Min, T Max)</td></tr>
58 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga21c92bd54518b8de81c7888ab376e79c"></a><!-- doxytag: member="gtx_random::compRand3" ref="ga21c92bd54518b8de81c7888ab376e79c" args="(const detail::tvec3&lt; T &gt; &amp;Min, const detail::tvec3&lt; T &gt; &amp;Max)" -->
59 template&lt;typename T &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga21c92bd54518b8de81c7888ab376e79c">compRand3</a> (const detail::tvec3&lt; T &gt; &amp;Min, const detail::tvec3&lt; T &gt; &amp;Max)</td></tr>
61 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga1fcc4fc54d083529501f4fd73858cacf"></a><!-- doxytag: member="gtx_random::compRand4" ref="ga1fcc4fc54d083529501f4fd73858cacf" args="(const detail::tvec4&lt; T &gt; &amp;Min, const detail::tvec4&lt; T &gt; &amp;Max)" -->
62 template&lt;typename T &gt; </td></tr>
63 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga1fcc4fc54d083529501f4fd73858cacf">compRand4</a> (const detail::tvec4&lt; T &gt; &amp;Min, const detail::tvec4&lt; T &gt; &amp;Max)</td></tr>
64 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga58863d5503a6c1aefaa5d01775a83267"></a><!-- doxytag: member="gtx_random::compRand4" ref="ga58863d5503a6c1aefaa5d01775a83267" args="(T Min, T Max)" -->
65 template&lt;typename T &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga58863d5503a6c1aefaa5d01775a83267">compRand4</a> (T Min, T Max)</td></tr>
67 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaea7fcb106b788c816db85cd1e3be6188"></a><!-- doxytag: member="gtx_random::gaussRand1" ref="gaea7fcb106b788c816db85cd1e3be6188" args="(T mean, T std_deviation)" -->
68 template&lt;typename T &gt; </td></tr>
69 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gaea7fcb106b788c816db85cd1e3be6188">gaussRand1</a> (T mean, T std_deviation)</td></tr>
70 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae746ec513d4c773e15143854e5245075"></a><!-- doxytag: member="gtx_random::gaussRand2" ref="gae746ec513d4c773e15143854e5245075" args="(const detail::tvec2&lt; T &gt; &amp;mean, const detail::tvec2&lt; T &gt; &amp;std_deviation)" -->
71 template&lt;typename T &gt; </td></tr>
72 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gae746ec513d4c773e15143854e5245075">gaussRand2</a> (const detail::tvec2&lt; T &gt; &amp;mean, const detail::tvec2&lt; T &gt; &amp;std_deviation)</td></tr>
73 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gabe761c9b9cc6999fc91acf79a7007ddb"></a><!-- doxytag: member="gtx_random::gaussRand2" ref="gabe761c9b9cc6999fc91acf79a7007ddb" args="(T mean, T std_deviation)" -->
74 template&lt;typename T &gt; </td></tr>
75 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gabe761c9b9cc6999fc91acf79a7007ddb">gaussRand2</a> (T mean, T std_deviation)</td></tr>
76 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaad5585d8d9e84791ae9e71a43fb55fa5"></a><!-- doxytag: member="gtx_random::gaussRand2" ref="gaad5585d8d9e84791ae9e71a43fb55fa5" args="(const detail::tvec2&lt; T &gt; &amp;mean, T std_deviation)" -->
77 template&lt;typename T &gt; </td></tr>
78 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gaad5585d8d9e84791ae9e71a43fb55fa5">gaussRand2</a> (const detail::tvec2&lt; T &gt; &amp;mean, T std_deviation)</td></tr>
79 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab3ead682395579c9accbcf0cd8ec3396"></a><!-- doxytag: member="gtx_random::gaussRand2" ref="gab3ead682395579c9accbcf0cd8ec3396" args="(T mean, const detail::tvec2&lt; T &gt; &amp;std_deviation)" -->
80 template&lt;typename T &gt; </td></tr>
81 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gab3ead682395579c9accbcf0cd8ec3396">gaussRand2</a> (T mean, const detail::tvec2&lt; T &gt; &amp;std_deviation)</td></tr>
82 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga09905dda9035dc260eb593b84b887cbb"></a><!-- doxytag: member="gtx_random::gaussRand3" ref="ga09905dda9035dc260eb593b84b887cbb" args="(const detail::tvec3&lt; T &gt; &amp;mean, const detail::tvec3&lt; T &gt; &amp;std_deviation)" -->
83 template&lt;typename T &gt; </td></tr>
84 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga09905dda9035dc260eb593b84b887cbb">gaussRand3</a> (const detail::tvec3&lt; T &gt; &amp;mean, const detail::tvec3&lt; T &gt; &amp;std_deviation)</td></tr>
85 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga103cde6c382abea173da6b1800acd5c9"></a><!-- doxytag: member="gtx_random::gaussRand3" ref="ga103cde6c382abea173da6b1800acd5c9" args="(T mean, T std_deviation)" -->
86 template&lt;typename T &gt; </td></tr>
87 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga103cde6c382abea173da6b1800acd5c9">gaussRand3</a> (T mean, T std_deviation)</td></tr>
88 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga03af4b788f7777963bdb3ff10fda356d"></a><!-- doxytag: member="gtx_random::gaussRand3" ref="ga03af4b788f7777963bdb3ff10fda356d" args="(const detail::tvec3&lt; T &gt; &amp;mean, T std_deviation)" -->
89 template&lt;typename T &gt; </td></tr>
90 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga03af4b788f7777963bdb3ff10fda356d">gaussRand3</a> (const detail::tvec3&lt; T &gt; &amp;mean, T std_deviation)</td></tr>
91 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadb3cbe26ec31e593af84c46b1a63a073"></a><!-- doxytag: member="gtx_random::gaussRand3" ref="gadb3cbe26ec31e593af84c46b1a63a073" args="(T mean, const detail::tvec3&lt; T &gt; &amp;std_deviation)" -->
92 template&lt;typename T &gt; </td></tr>
93 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gadb3cbe26ec31e593af84c46b1a63a073">gaussRand3</a> (T mean, const detail::tvec3&lt; T &gt; &amp;std_deviation)</td></tr>
94 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab9f9cf1859278ad7f1ccc38cf3092cf2"></a><!-- doxytag: member="gtx_random::gaussRand4" ref="gab9f9cf1859278ad7f1ccc38cf3092cf2" args="(T mean, T std_deviation)" -->
95 template&lt;typename T &gt; </td></tr>
96 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gab9f9cf1859278ad7f1ccc38cf3092cf2">gaussRand4</a> (T mean, T std_deviation)</td></tr>
97 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4d2be5ff350c5348477351d3c67f35bd"></a><!-- doxytag: member="gtx_random::gaussRand4" ref="ga4d2be5ff350c5348477351d3c67f35bd" args="(T mean, const detail::tvec4&lt; T &gt; &amp;std_deviation)" -->
98 template&lt;typename T &gt; </td></tr>
99 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga4d2be5ff350c5348477351d3c67f35bd">gaussRand4</a> (T mean, const detail::tvec4&lt; T &gt; &amp;std_deviation)</td></tr>
100 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga95b58192c05082f2eef5a06b5a4814a0"></a><!-- doxytag: member="gtx_random::gaussRand4" ref="ga95b58192c05082f2eef5a06b5a4814a0" args="(const detail::tvec4&lt; T &gt; &amp;mean, const detail::tvec4&lt; T &gt; &amp;std_deviation)" -->
101 template&lt;typename T &gt; </td></tr>
102 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga95b58192c05082f2eef5a06b5a4814a0">gaussRand4</a> (const detail::tvec4&lt; T &gt; &amp;mean, const detail::tvec4&lt; T &gt; &amp;std_deviation)</td></tr>
103 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8daff7d57575e5ab4a44a46f52ed72fe"></a><!-- doxytag: member="gtx_random::gaussRand4" ref="ga8daff7d57575e5ab4a44a46f52ed72fe" args="(const detail::tvec4&lt; T &gt; &amp;mean, T std_deviation)" -->
104 template&lt;typename T &gt; </td></tr>
105 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga8daff7d57575e5ab4a44a46f52ed72fe">gaussRand4</a> (const detail::tvec4&lt; T &gt; &amp;mean, T std_deviation)</td></tr>
106 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5d05c63350546c1e7aa058bbf1b7f547"></a><!-- doxytag: member="gtx_random::normalizedRand2" ref="ga5d05c63350546c1e7aa058bbf1b7f547" args="()" -->
107 template&lt;typename T &gt; </td></tr>
108 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga5d05c63350546c1e7aa058bbf1b7f547">normalizedRand2</a> ()</td></tr>
109 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaea95fa28751387132c57e06827abd024"></a><!-- doxytag: member="gtx_random::normalizedRand2" ref="gaea95fa28751387132c57e06827abd024" args="(T Min, T Max)" -->
110 template&lt;typename T &gt; </td></tr>
111 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gaea95fa28751387132c57e06827abd024">normalizedRand2</a> (T Min, T Max)</td></tr>
112 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4c732e0408a54bbd709e0c5906e3ecde"></a><!-- doxytag: member="gtx_random::normalizedRand3" ref="ga4c732e0408a54bbd709e0c5906e3ecde" args="(T Min, T Max)" -->
113 template&lt;typename T &gt; </td></tr>
114 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga4c732e0408a54bbd709e0c5906e3ecde">normalizedRand3</a> (T Min, T Max)</td></tr>
115 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4d7a132cc05433f7c4c8263797f9d5b4"></a><!-- doxytag: member="gtx_random::normalizedRand3" ref="ga4d7a132cc05433f7c4c8263797f9d5b4" args="()" -->
116 template&lt;typename T &gt; </td></tr>
117 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga4d7a132cc05433f7c4c8263797f9d5b4">normalizedRand3</a> ()</td></tr>
118 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
119 <tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga8b6a21d90d07f7a655264009590ddcce">signedRand1</a> ()</td></tr>
120 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga65f615e428d1e4009cdf872d434d5267"></a><!-- doxytag: member="gtx_random::signedRand2" ref="ga65f615e428d1e4009cdf872d434d5267" args="()" -->
121 template&lt;typename T &gt; </td></tr>
122 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga65f615e428d1e4009cdf872d434d5267">signedRand2</a> ()</td></tr>
123 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab3a7fc45bf10792e96e5bbc6aa3ff30b"></a><!-- doxytag: member="gtx_random::signedRand3" ref="gab3a7fc45bf10792e96e5bbc6aa3ff30b" args="()" -->
124 template&lt;typename T &gt; </td></tr>
125 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gab3a7fc45bf10792e96e5bbc6aa3ff30b">signedRand3</a> ()</td></tr>
126 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga917ac879bf910263d7af720d03342e8a"></a><!-- doxytag: member="gtx_random::signedRand4" ref="ga917ac879bf910263d7af720d03342e8a" args="()" -->
127 template&lt;typename T &gt; </td></tr>
128 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga917ac879bf910263d7af720d03342e8a">signedRand4</a> ()</td></tr>
129 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga12d03cc32f213b4173e58f05d74232b3"></a><!-- doxytag: member="gtx_random::vecRand2" ref="ga12d03cc32f213b4173e58f05d74232b3" args="()" -->
130 template&lt;typename T &gt; </td></tr>
131 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga12d03cc32f213b4173e58f05d74232b3">vecRand2</a> ()</td></tr>
132 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab335a743d4c6bdbc95cf482b1a2edf24"></a><!-- doxytag: member="gtx_random::vecRand2" ref="gab335a743d4c6bdbc95cf482b1a2edf24" args="(T MinRadius, T MaxRadius)" -->
133 template&lt;typename T &gt; </td></tr>
134 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gab335a743d4c6bdbc95cf482b1a2edf24">vecRand2</a> (T MinRadius, T MaxRadius)</td></tr>
135 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga63249d58e1327a83638f1cf8b421a0de"></a><!-- doxytag: member="gtx_random::vecRand3" ref="ga63249d58e1327a83638f1cf8b421a0de" args="()" -->
136 template&lt;typename T &gt; </td></tr>
137 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga63249d58e1327a83638f1cf8b421a0de">vecRand3</a> ()</td></tr>
138 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4e2bc1fdcc9bbb6292b858d50d467393"></a><!-- doxytag: member="gtx_random::vecRand3" ref="ga4e2bc1fdcc9bbb6292b858d50d467393" args="(T MinRadius, T MaxRadius)" -->
139 template&lt;typename T &gt; </td></tr>
140 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#ga4e2bc1fdcc9bbb6292b858d50d467393">vecRand3</a> (T MinRadius, T MaxRadius)</td></tr>
141 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gafa1635f3e6a4db81474e4002f9f3e64b"></a><!-- doxytag: member="gtx_random::vecRand4" ref="gafa1635f3e6a4db81474e4002f9f3e64b" args="(T MinRadius, T MaxRadius)" -->
142 template&lt;typename T &gt; </td></tr>
143 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gafa1635f3e6a4db81474e4002f9f3e64b">vecRand4</a> (T MinRadius, T MaxRadius)</td></tr>
144 <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac2d7a76d889e0b5e9414791b9403c98c"></a><!-- doxytag: member="gtx_random::vecRand4" ref="gac2d7a76d889e0b5e9414791b9403c98c" args="()" -->
145 template&lt;typename T &gt; </td></tr>
146 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00287.html#gac2d7a76d889e0b5e9414791b9403c98c">vecRand4</a> ()</td></tr>
41 <tr><td colspan="2"><h2><a name="typedef-members"></a>
42 Typedefs</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">typedef uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga4a5def5e5e8468de8e97132ddf5c72c5">byte</a></td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top">typedef uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga162201f4386c2973e6ebd76ac0941de0">dword</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">typedef uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#gab7872fb6c3bcddc8658fe3209f04d275">qword</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">typedef uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga9599d4794d33c5d5d07675b5250b74bd">word</a></td></tr>
14747 </table>
14848 <hr/><a name="_details"></a><h2>Detailed Description</h2>
149 <p>Generate random number from various distribution methods. </p>
150 <p>&lt;<a class="el" href="a00096_source.html">glm/gtx/random.hpp</a>&gt; need to be included to use these functionalities. </p>
151 <hr/><h2>Function Documentation</h2>
152 <a class="anchor" id="ga8b6a21d90d07f7a655264009590ddcce"></a><!-- doxytag: member="glm::gtx::random::signedRand1" ref="ga8b6a21d90d07f7a655264009590ddcce" args="()" -->
49 <p>Projection of a vector to other one. </p>
50 <p>&lt;<a class="el" href="a00097_source.html">glm/gtx/raw_data.hpp</a>&gt; need to be included to use these functionalities. </p>
51 <hr/><h2>Typedef Documentation</h2>
52 <a class="anchor" id="ga4a5def5e5e8468de8e97132ddf5c72c5"></a><!-- doxytag: member="glm::gtx::raw_data::byte" ref="ga4a5def5e5e8468de8e97132ddf5c72c5" args="" -->
15353 <div class="memitem">
15454 <div class="memproto">
15555 <table class="memname">
15656 <tr>
157 <td class="memname">T glm::gtx::random::signedRand1 </td>
158 <td>(</td>
159 <td class="paramname"></td><td>)</td>
160 <td></td>
57 <td class="memname">typedef uint8 byte</td>
16158 </tr>
16259 </table>
16360 </div>
16461 <div class="memdoc">
16562
166 <p>Generate a random number in the interval [-1, 1], according a linear distribution. </p>
167 <p>From GLM_GTX_random extension. </p>
63 <p>Type for byte numbers. </p>
64 <p>From GLM_GTX_raw_data extension. </p>
65
66 <p>Definition at line <a class="el" href="a00097_source.html#l00035">35</a> of file <a class="el" href="a00097_source.html">raw_data.hpp</a>.</p>
67
68 </div>
69 </div>
70 <a class="anchor" id="ga162201f4386c2973e6ebd76ac0941de0"></a><!-- doxytag: member="glm::gtx::raw_data::dword" ref="ga162201f4386c2973e6ebd76ac0941de0" args="" -->
71 <div class="memitem">
72 <div class="memproto">
73 <table class="memname">
74 <tr>
75 <td class="memname">typedef uint32 dword</td>
76 </tr>
77 </table>
78 </div>
79 <div class="memdoc">
80
81 <p>Type for dword numbers. </p>
82 <p>From GLM_GTX_raw_data extension. </p>
83
84 <p>Definition at line <a class="el" href="a00097_source.html#l00043">43</a> of file <a class="el" href="a00097_source.html">raw_data.hpp</a>.</p>
85
86 </div>
87 </div>
88 <a class="anchor" id="gab7872fb6c3bcddc8658fe3209f04d275"></a><!-- doxytag: member="glm::gtx::raw_data::qword" ref="gab7872fb6c3bcddc8658fe3209f04d275" args="" -->
89 <div class="memitem">
90 <div class="memproto">
91 <table class="memname">
92 <tr>
93 <td class="memname">typedef uint64 qword</td>
94 </tr>
95 </table>
96 </div>
97 <div class="memdoc">
98
99 <p>Type for qword numbers. </p>
100 <p>From GLM_GTX_raw_data extension. </p>
101
102 <p>Definition at line <a class="el" href="a00097_source.html#l00047">47</a> of file <a class="el" href="a00097_source.html">raw_data.hpp</a>.</p>
103
104 </div>
105 </div>
106 <a class="anchor" id="ga9599d4794d33c5d5d07675b5250b74bd"></a><!-- doxytag: member="glm::gtx::raw_data::word" ref="ga9599d4794d33c5d5d07675b5250b74bd" args="" -->
107 <div class="memitem">
108 <div class="memproto">
109 <table class="memname">
110 <tr>
111 <td class="memname">typedef uint16 word</td>
112 </tr>
113 </table>
114 </div>
115 <div class="memdoc">
116
117 <p>Type for word numbers. </p>
118 <p>From GLM_GTX_raw_data extension. </p>
119
120 <p>Definition at line <a class="el" href="a00097_source.html#l00039">39</a> of file <a class="el" href="a00097_source.html">raw_data.hpp</a>.</p>
168121
169122 </div>
170123 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_raw_data: Raw data</title>
4 <title>GLM_GTX_reciprocal: Reciprocal</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#typedef-members">Typedefs</a> </div>
32 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_raw_data: Raw data</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_reciprocal: Reciprocal</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Projection of a vector to other one.
38 <p>Define secant, cosecant and cotangent functions.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
41 <tr><td colspan="2"><h2><a name="typedef-members"></a>
42 Typedefs</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">typedef uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga4a5def5e5e8468de8e97132ddf5c72c5">byte</a></td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top">typedef uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga162201f4386c2973e6ebd76ac0941de0">dword</a></td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">typedef uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#gab7872fb6c3bcddc8658fe3209f04d275">qword</a></td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">typedef uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga9599d4794d33c5d5d07675b5250b74bd">word</a></td></tr>
41 <tr><td colspan="2"><h2><a name="func-members"></a>
42 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#gad8b3e1d0a99ffb209157baa47370e684">acot</a> (genType const &amp;x)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#gabef15ad1a12c56d39cee1afb251d9086">acoth</a> (genType const &amp;x)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#gacc31bf591741480d2cde587b598badf7">acsc</a> (genType const &amp;x)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga33970e21bf86b28fcb1079a656a6aa97">acsch</a> (genType const &amp;x)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#gadf3d5c2b777dd7f9ccb284919daeb15b">asec</a> (genType const &amp;x)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga43313adedfb151b9d019fbda2388fa4b">asech</a> (genType const &amp;x)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga6c2f14ab2a9148b461392b320259ac62">cot</a> (genType const &amp;angle)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#gaf3c2cc20b634fcd623840ecc99a038ad">coth</a> (genType const &amp;angle)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga1f21e65ffedffde468d93a790f875637">csc</a> (genType const &amp;angle)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#gad690383d8014e5c46a2d35a6a59ff053">csch</a> (genType const &amp;angle)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#gace10a38c1888d5fe0f77c08ba1775b41">sec</a> (genType const &amp;angle)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga3d6f2c8efdefcf326be500a565d48a29">sech</a> (genType const &amp;angle)</td></tr>
4767 </table>
4868 <hr/><a name="_details"></a><h2>Detailed Description</h2>
49 <p>Projection of a vector to other one. </p>
50 <p>&lt;<a class="el" href="a00097_source.html">glm/gtx/raw_data.hpp</a>&gt; need to be included to use these functionalities. </p>
51 <hr/><h2>Typedef Documentation</h2>
52 <a class="anchor" id="ga4a5def5e5e8468de8e97132ddf5c72c5"></a><!-- doxytag: member="glm::gtx::raw_data::byte" ref="ga4a5def5e5e8468de8e97132ddf5c72c5" args="" -->
53 <div class="memitem">
54 <div class="memproto">
55 <table class="memname">
56 <tr>
57 <td class="memname">typedef uint8 byte</td>
58 </tr>
59 </table>
60 </div>
61 <div class="memdoc">
62
63 <p>Type for byte numbers. </p>
64 <p>From GLM_GTX_raw_data extension. </p>
65
66 <p>Definition at line <a class="el" href="a00097_source.html#l00037">37</a> of file <a class="el" href="a00097_source.html">raw_data.hpp</a>.</p>
67
68 </div>
69 </div>
70 <a class="anchor" id="ga162201f4386c2973e6ebd76ac0941de0"></a><!-- doxytag: member="glm::gtx::raw_data::dword" ref="ga162201f4386c2973e6ebd76ac0941de0" args="" -->
71 <div class="memitem">
72 <div class="memproto">
73 <table class="memname">
74 <tr>
75 <td class="memname">typedef uint32 dword</td>
76 </tr>
77 </table>
78 </div>
79 <div class="memdoc">
80
81 <p>Type for dword numbers. </p>
82 <p>From GLM_GTX_raw_data extension. </p>
83
84 <p>Definition at line <a class="el" href="a00097_source.html#l00045">45</a> of file <a class="el" href="a00097_source.html">raw_data.hpp</a>.</p>
85
86 </div>
87 </div>
88 <a class="anchor" id="gab7872fb6c3bcddc8658fe3209f04d275"></a><!-- doxytag: member="glm::gtx::raw_data::qword" ref="gab7872fb6c3bcddc8658fe3209f04d275" args="" -->
89 <div class="memitem">
90 <div class="memproto">
91 <table class="memname">
92 <tr>
93 <td class="memname">typedef uint64 qword</td>
94 </tr>
95 </table>
96 </div>
97 <div class="memdoc">
98
99 <p>Type for qword numbers. </p>
100 <p>From GLM_GTX_raw_data extension. </p>
101
102 <p>Definition at line <a class="el" href="a00097_source.html#l00049">49</a> of file <a class="el" href="a00097_source.html">raw_data.hpp</a>.</p>
103
104 </div>
105 </div>
106 <a class="anchor" id="ga9599d4794d33c5d5d07675b5250b74bd"></a><!-- doxytag: member="glm::gtx::raw_data::word" ref="ga9599d4794d33c5d5d07675b5250b74bd" args="" -->
107 <div class="memitem">
108 <div class="memproto">
109 <table class="memname">
110 <tr>
111 <td class="memname">typedef uint16 word</td>
112 </tr>
113 </table>
114 </div>
115 <div class="memdoc">
116
117 <p>Type for word numbers. </p>
118 <p>From GLM_GTX_raw_data extension. </p>
119
120 <p>Definition at line <a class="el" href="a00097_source.html#l00041">41</a> of file <a class="el" href="a00097_source.html">raw_data.hpp</a>.</p>
69 <p>Define secant, cosecant and cotangent functions. </p>
70 <p>&lt;<a class="el" href="a00098_source.html">glm/gtx/reciprocal.hpp</a>&gt; need to be included to use these functionalities. </p>
71 <hr/><h2>Function Documentation</h2>
72 <a class="anchor" id="gad8b3e1d0a99ffb209157baa47370e684"></a><!-- doxytag: member="glm::gtx::reciprocal::acot" ref="gad8b3e1d0a99ffb209157baa47370e684" args="(genType const &amp;x)" -->
73 <div class="memitem">
74 <div class="memproto">
75 <table class="memname">
76 <tr>
77 <td class="memname">genType glm::gtx::reciprocal::acot </td>
78 <td>(</td>
79 <td class="paramtype">genType const &amp;&#160;</td>
80 <td class="paramname"><em>x</em></td><td>)</td>
81 <td></td>
82 </tr>
83 </table>
84 </div>
85 <div class="memdoc">
86
87 <p>Inverse cotangent function. </p>
88 <p>From GLM_GTX_reciprocal extension. </p>
89
90 </div>
91 </div>
92 <a class="anchor" id="gabef15ad1a12c56d39cee1afb251d9086"></a><!-- doxytag: member="glm::gtx::reciprocal::acoth" ref="gabef15ad1a12c56d39cee1afb251d9086" args="(genType const &amp;x)" -->
93 <div class="memitem">
94 <div class="memproto">
95 <table class="memname">
96 <tr>
97 <td class="memname">genType glm::gtx::reciprocal::acoth </td>
98 <td>(</td>
99 <td class="paramtype">genType const &amp;&#160;</td>
100 <td class="paramname"><em>x</em></td><td>)</td>
101 <td></td>
102 </tr>
103 </table>
104 </div>
105 <div class="memdoc">
106
107 <p>Inverse cotangent hyperbolic function. </p>
108 <p>From GLM_GTX_reciprocal extension. </p>
109
110 </div>
111 </div>
112 <a class="anchor" id="gacc31bf591741480d2cde587b598badf7"></a><!-- doxytag: member="glm::gtx::reciprocal::acsc" ref="gacc31bf591741480d2cde587b598badf7" args="(genType const &amp;x)" -->
113 <div class="memitem">
114 <div class="memproto">
115 <table class="memname">
116 <tr>
117 <td class="memname">genType glm::gtx::reciprocal::acsc </td>
118 <td>(</td>
119 <td class="paramtype">genType const &amp;&#160;</td>
120 <td class="paramname"><em>x</em></td><td>)</td>
121 <td></td>
122 </tr>
123 </table>
124 </div>
125 <div class="memdoc">
126
127 <p>Inverse cosecant function. </p>
128 <p>From GLM_GTX_reciprocal extension. </p>
129
130 </div>
131 </div>
132 <a class="anchor" id="ga33970e21bf86b28fcb1079a656a6aa97"></a><!-- doxytag: member="glm::gtx::reciprocal::acsch" ref="ga33970e21bf86b28fcb1079a656a6aa97" args="(genType const &amp;x)" -->
133 <div class="memitem">
134 <div class="memproto">
135 <table class="memname">
136 <tr>
137 <td class="memname">genType glm::gtx::reciprocal::acsch </td>
138 <td>(</td>
139 <td class="paramtype">genType const &amp;&#160;</td>
140 <td class="paramname"><em>x</em></td><td>)</td>
141 <td></td>
142 </tr>
143 </table>
144 </div>
145 <div class="memdoc">
146
147 <p>Inverse cosecant hyperbolic function. </p>
148 <p>From GLM_GTX_reciprocal extension. </p>
149
150 </div>
151 </div>
152 <a class="anchor" id="gadf3d5c2b777dd7f9ccb284919daeb15b"></a><!-- doxytag: member="glm::gtx::reciprocal::asec" ref="gadf3d5c2b777dd7f9ccb284919daeb15b" args="(genType const &amp;x)" -->
153 <div class="memitem">
154 <div class="memproto">
155 <table class="memname">
156 <tr>
157 <td class="memname">genType glm::gtx::reciprocal::asec </td>
158 <td>(</td>
159 <td class="paramtype">genType const &amp;&#160;</td>
160 <td class="paramname"><em>x</em></td><td>)</td>
161 <td></td>
162 </tr>
163 </table>
164 </div>
165 <div class="memdoc">
166
167 <p>Inverse secant function. </p>
168 <p>From GLM_GTX_reciprocal extension. </p>
169
170 </div>
171 </div>
172 <a class="anchor" id="ga43313adedfb151b9d019fbda2388fa4b"></a><!-- doxytag: member="glm::gtx::reciprocal::asech" ref="ga43313adedfb151b9d019fbda2388fa4b" args="(genType const &amp;x)" -->
173 <div class="memitem">
174 <div class="memproto">
175 <table class="memname">
176 <tr>
177 <td class="memname">genType glm::gtx::reciprocal::asech </td>
178 <td>(</td>
179 <td class="paramtype">genType const &amp;&#160;</td>
180 <td class="paramname"><em>x</em></td><td>)</td>
181 <td></td>
182 </tr>
183 </table>
184 </div>
185 <div class="memdoc">
186
187 <p>Inverse secant hyperbolic function. </p>
188 <p>From GLM_GTX_reciprocal extension. </p>
189
190 </div>
191 </div>
192 <a class="anchor" id="ga6c2f14ab2a9148b461392b320259ac62"></a><!-- doxytag: member="glm::gtx::reciprocal::cot" ref="ga6c2f14ab2a9148b461392b320259ac62" args="(genType const &amp;angle)" -->
193 <div class="memitem">
194 <div class="memproto">
195 <table class="memname">
196 <tr>
197 <td class="memname">genType glm::gtx::reciprocal::cot </td>
198 <td>(</td>
199 <td class="paramtype">genType const &amp;&#160;</td>
200 <td class="paramname"><em>angle</em></td><td>)</td>
201 <td></td>
202 </tr>
203 </table>
204 </div>
205 <div class="memdoc">
206
207 <p>Cotangent function. </p>
208 <p>adjacent / opposite or 1 / tan(x) From GLM_GTX_reciprocal extension. </p>
209
210 </div>
211 </div>
212 <a class="anchor" id="gaf3c2cc20b634fcd623840ecc99a038ad"></a><!-- doxytag: member="glm::gtx::reciprocal::coth" ref="gaf3c2cc20b634fcd623840ecc99a038ad" args="(genType const &amp;angle)" -->
213 <div class="memitem">
214 <div class="memproto">
215 <table class="memname">
216 <tr>
217 <td class="memname">genType glm::gtx::reciprocal::coth </td>
218 <td>(</td>
219 <td class="paramtype">genType const &amp;&#160;</td>
220 <td class="paramname"><em>angle</em></td><td>)</td>
221 <td></td>
222 </tr>
223 </table>
224 </div>
225 <div class="memdoc">
226
227 <p>Cotangent hyperbolic function. </p>
228 <p>From GLM_GTX_reciprocal extension. </p>
229
230 </div>
231 </div>
232 <a class="anchor" id="ga1f21e65ffedffde468d93a790f875637"></a><!-- doxytag: member="glm::gtx::reciprocal::csc" ref="ga1f21e65ffedffde468d93a790f875637" args="(genType const &amp;angle)" -->
233 <div class="memitem">
234 <div class="memproto">
235 <table class="memname">
236 <tr>
237 <td class="memname">genType glm::gtx::reciprocal::csc </td>
238 <td>(</td>
239 <td class="paramtype">genType const &amp;&#160;</td>
240 <td class="paramname"><em>angle</em></td><td>)</td>
241 <td></td>
242 </tr>
243 </table>
244 </div>
245 <div class="memdoc">
246
247 <p>Cosecant function. </p>
248 <p>hypotenuse / opposite or 1 / sin(x) From GLM_GTX_reciprocal extension. </p>
249
250 </div>
251 </div>
252 <a class="anchor" id="gad690383d8014e5c46a2d35a6a59ff053"></a><!-- doxytag: member="glm::gtx::reciprocal::csch" ref="gad690383d8014e5c46a2d35a6a59ff053" args="(genType const &amp;angle)" -->
253 <div class="memitem">
254 <div class="memproto">
255 <table class="memname">
256 <tr>
257 <td class="memname">genType glm::gtx::reciprocal::csch </td>
258 <td>(</td>
259 <td class="paramtype">genType const &amp;&#160;</td>
260 <td class="paramname"><em>angle</em></td><td>)</td>
261 <td></td>
262 </tr>
263 </table>
264 </div>
265 <div class="memdoc">
266
267 <p>Cosecant hyperbolic function. </p>
268 <p>From GLM_GTX_reciprocal extension. </p>
269
270 </div>
271 </div>
272 <a class="anchor" id="gace10a38c1888d5fe0f77c08ba1775b41"></a><!-- doxytag: member="glm::gtx::reciprocal::sec" ref="gace10a38c1888d5fe0f77c08ba1775b41" args="(genType const &amp;angle)" -->
273 <div class="memitem">
274 <div class="memproto">
275 <table class="memname">
276 <tr>
277 <td class="memname">genType glm::gtx::reciprocal::sec </td>
278 <td>(</td>
279 <td class="paramtype">genType const &amp;&#160;</td>
280 <td class="paramname"><em>angle</em></td><td>)</td>
281 <td></td>
282 </tr>
283 </table>
284 </div>
285 <div class="memdoc">
286
287 <p>Secant function. </p>
288 <p>hypotenuse / adjacent or 1 / cos(x) From GLM_GTX_reciprocal extension. </p>
289
290 </div>
291 </div>
292 <a class="anchor" id="ga3d6f2c8efdefcf326be500a565d48a29"></a><!-- doxytag: member="glm::gtx::reciprocal::sech" ref="ga3d6f2c8efdefcf326be500a565d48a29" args="(genType const &amp;angle)" -->
293 <div class="memitem">
294 <div class="memproto">
295 <table class="memname">
296 <tr>
297 <td class="memname">genType glm::gtx::reciprocal::sech </td>
298 <td>(</td>
299 <td class="paramtype">genType const &amp;&#160;</td>
300 <td class="paramname"><em>angle</em></td><td>)</td>
301 <td></td>
302 </tr>
303 </table>
304 </div>
305 <div class="memdoc">
306
307 <p>Secant hyperbolic function. </p>
308 <p>From GLM_GTX_reciprocal extension. </p>
121309
122310 </div>
123311 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_reciprocal: Reciprocal</title>
4 <title>GLM_GTX_rotate_vector: Rotate vector</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_reciprocal: Reciprocal</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_rotate_vector: Rotate vector</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Define secant, cosecant and cotangent functions.
38 <p>Function to directly rotate a vector.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gad8b3e1d0a99ffb209157baa47370e684">acot</a> (genType const &amp;x)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gabef15ad1a12c56d39cee1afb251d9086">acoth</a> (genType const &amp;x)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gacc31bf591741480d2cde587b598badf7">acsc</a> (genType const &amp;x)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga33970e21bf86b28fcb1079a656a6aa97">acsch</a> (genType const &amp;x)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gadf3d5c2b777dd7f9ccb284919daeb15b">asec</a> (genType const &amp;x)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga43313adedfb151b9d019fbda2388fa4b">asech</a> (genType const &amp;x)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga6c2f14ab2a9148b461392b320259ac62">cot</a> (genType const &amp;angle)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gaf3c2cc20b634fcd623840ecc99a038ad">coth</a> (genType const &amp;angle)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga1f21e65ffedffde468d93a790f875637">csc</a> (genType const &amp;angle)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gad690383d8014e5c46a2d35a6a59ff053">csch</a> (genType const &amp;angle)</td></tr>
63 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
64 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gace10a38c1888d5fe0f77c08ba1775b41">sec</a> (genType const &amp;angle)</td></tr>
65 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
66 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga3d6f2c8efdefcf326be500a565d48a29">sech</a> (genType const &amp;angle)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gae3a2b116deb10aa573c9931c9ea3c258">orientation</a> (detail::tvec3&lt; T &gt; const &amp;Normal, detail::tvec3&lt; T &gt; const &amp;Up)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga74ee9d3b702b3ddfc07478b86c89ce18">rotate</a> (detail::tvec2&lt; T &gt; const &amp;v, T const &amp;angle)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga0f8b7835ac8d51587476bfcf51f2667f">rotate</a> (detail::tvec3&lt; T &gt; const &amp;v, T const &amp;angle, detail::tvec3&lt; T &gt; const &amp;normal)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gacbdc12006e75f857cf9ad07377499d6a">rotate</a> (detail::tvec4&lt; T &gt; const &amp;v, T const &amp;angle, detail::tvec3&lt; T &gt; const &amp;normal)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gabb24431b78204cb7852f0597f4514e6a">rotateX</a> (detail::tvec3&lt; T &gt; const &amp;v, T const &amp;angle)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga89a8f325ae8ed133bc17c3fe21eb729e">rotateX</a> (detail::tvec4&lt; T &gt; const &amp;v, T const &amp;angle)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga34f0e716fadf266f55945f18b3bc87e9">rotateY</a> (detail::tvec3&lt; T &gt; const &amp;v, T const &amp;angle)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga6d4d0d7e78fc92f77e3e5474d46e703f">rotateY</a> (detail::tvec4&lt; T &gt; const &amp;v, T const &amp;angle)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gafb9ff0a66486f10ad1c4937bfa54d6e8">rotateZ</a> (detail::tvec3&lt; T &gt; const &amp;v, T const &amp;angle)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga3137076b99675a999459d52475a926e6">rotateZ</a> (detail::tvec4&lt; T &gt; const &amp;v, T const &amp;angle)</td></tr>
6763 </table>
6864 <hr/><a name="_details"></a><h2>Detailed Description</h2>
69 <p>Define secant, cosecant and cotangent functions. </p>
70 <p>&lt;<a class="el" href="a00098_source.html">glm/gtx/reciprocal.hpp</a>&gt; need to be included to use these functionalities. </p>
65 <p>Function to directly rotate a vector. </p>
66 <p>&lt;<a class="el" href="a00099_source.html">glm/gtx/rotate_vector.hpp</a>&gt; need to be included to use these functionalities. </p>
7167 <hr/><h2>Function Documentation</h2>
72 <a class="anchor" id="gad8b3e1d0a99ffb209157baa47370e684"></a><!-- doxytag: member="glm::gtx::reciprocal::acot" ref="gad8b3e1d0a99ffb209157baa47370e684" args="(genType const &amp;x)" -->
73 <div class="memitem">
74 <div class="memproto">
75 <table class="memname">
76 <tr>
77 <td class="memname">genType glm::gtx::reciprocal::acot </td>
78 <td>(</td>
79 <td class="paramtype">genType const &amp;&#160;</td>
80 <td class="paramname"><em>x</em></td><td>)</td>
81 <td></td>
82 </tr>
83 </table>
84 </div>
85 <div class="memdoc">
86
87 <p>Inverse cotangent function. </p>
88 <p>From GLM_GTX_reciprocal extension. </p>
89
90 </div>
91 </div>
92 <a class="anchor" id="gabef15ad1a12c56d39cee1afb251d9086"></a><!-- doxytag: member="glm::gtx::reciprocal::acoth" ref="gabef15ad1a12c56d39cee1afb251d9086" args="(genType const &amp;x)" -->
93 <div class="memitem">
94 <div class="memproto">
95 <table class="memname">
96 <tr>
97 <td class="memname">genType glm::gtx::reciprocal::acoth </td>
98 <td>(</td>
99 <td class="paramtype">genType const &amp;&#160;</td>
100 <td class="paramname"><em>x</em></td><td>)</td>
101 <td></td>
102 </tr>
103 </table>
104 </div>
105 <div class="memdoc">
106
107 <p>Inverse cotangent hyperbolic function. </p>
108 <p>From GLM_GTX_reciprocal extension. </p>
109
110 </div>
111 </div>
112 <a class="anchor" id="gacc31bf591741480d2cde587b598badf7"></a><!-- doxytag: member="glm::gtx::reciprocal::acsc" ref="gacc31bf591741480d2cde587b598badf7" args="(genType const &amp;x)" -->
113 <div class="memitem">
114 <div class="memproto">
115 <table class="memname">
116 <tr>
117 <td class="memname">genType glm::gtx::reciprocal::acsc </td>
118 <td>(</td>
119 <td class="paramtype">genType const &amp;&#160;</td>
120 <td class="paramname"><em>x</em></td><td>)</td>
121 <td></td>
122 </tr>
123 </table>
124 </div>
125 <div class="memdoc">
126
127 <p>Inverse cosecant function. </p>
128 <p>From GLM_GTX_reciprocal extension. </p>
129
130 </div>
131 </div>
132 <a class="anchor" id="ga33970e21bf86b28fcb1079a656a6aa97"></a><!-- doxytag: member="glm::gtx::reciprocal::acsch" ref="ga33970e21bf86b28fcb1079a656a6aa97" args="(genType const &amp;x)" -->
133 <div class="memitem">
134 <div class="memproto">
135 <table class="memname">
136 <tr>
137 <td class="memname">genType glm::gtx::reciprocal::acsch </td>
138 <td>(</td>
139 <td class="paramtype">genType const &amp;&#160;</td>
140 <td class="paramname"><em>x</em></td><td>)</td>
141 <td></td>
142 </tr>
143 </table>
144 </div>
145 <div class="memdoc">
146
147 <p>Inverse cosecant hyperbolic function. </p>
148 <p>From GLM_GTX_reciprocal extension. </p>
149
150 </div>
151 </div>
152 <a class="anchor" id="gadf3d5c2b777dd7f9ccb284919daeb15b"></a><!-- doxytag: member="glm::gtx::reciprocal::asec" ref="gadf3d5c2b777dd7f9ccb284919daeb15b" args="(genType const &amp;x)" -->
153 <div class="memitem">
154 <div class="memproto">
155 <table class="memname">
156 <tr>
157 <td class="memname">genType glm::gtx::reciprocal::asec </td>
158 <td>(</td>
159 <td class="paramtype">genType const &amp;&#160;</td>
160 <td class="paramname"><em>x</em></td><td>)</td>
161 <td></td>
162 </tr>
163 </table>
164 </div>
165 <div class="memdoc">
166
167 <p>Inverse secant function. </p>
168 <p>From GLM_GTX_reciprocal extension. </p>
169
170 </div>
171 </div>
172 <a class="anchor" id="ga43313adedfb151b9d019fbda2388fa4b"></a><!-- doxytag: member="glm::gtx::reciprocal::asech" ref="ga43313adedfb151b9d019fbda2388fa4b" args="(genType const &amp;x)" -->
173 <div class="memitem">
174 <div class="memproto">
175 <table class="memname">
176 <tr>
177 <td class="memname">genType glm::gtx::reciprocal::asech </td>
178 <td>(</td>
179 <td class="paramtype">genType const &amp;&#160;</td>
180 <td class="paramname"><em>x</em></td><td>)</td>
181 <td></td>
182 </tr>
183 </table>
184 </div>
185 <div class="memdoc">
186
187 <p>Inverse secant hyperbolic function. </p>
188 <p>From GLM_GTX_reciprocal extension. </p>
189
190 </div>
191 </div>
192 <a class="anchor" id="ga6c2f14ab2a9148b461392b320259ac62"></a><!-- doxytag: member="glm::gtx::reciprocal::cot" ref="ga6c2f14ab2a9148b461392b320259ac62" args="(genType const &amp;angle)" -->
193 <div class="memitem">
194 <div class="memproto">
195 <table class="memname">
196 <tr>
197 <td class="memname">genType glm::gtx::reciprocal::cot </td>
198 <td>(</td>
199 <td class="paramtype">genType const &amp;&#160;</td>
200 <td class="paramname"><em>angle</em></td><td>)</td>
201 <td></td>
202 </tr>
203 </table>
204 </div>
205 <div class="memdoc">
206
207 <p>Cotangent function. </p>
208 <p>adjacent / opposite or 1 / tan(x) From GLM_GTX_reciprocal extension. </p>
209
210 </div>
211 </div>
212 <a class="anchor" id="gaf3c2cc20b634fcd623840ecc99a038ad"></a><!-- doxytag: member="glm::gtx::reciprocal::coth" ref="gaf3c2cc20b634fcd623840ecc99a038ad" args="(genType const &amp;angle)" -->
213 <div class="memitem">
214 <div class="memproto">
215 <table class="memname">
216 <tr>
217 <td class="memname">genType glm::gtx::reciprocal::coth </td>
218 <td>(</td>
219 <td class="paramtype">genType const &amp;&#160;</td>
220 <td class="paramname"><em>angle</em></td><td>)</td>
221 <td></td>
222 </tr>
223 </table>
224 </div>
225 <div class="memdoc">
226
227 <p>Cotangent hyperbolic function. </p>
228 <p>From GLM_GTX_reciprocal extension. </p>
229
230 </div>
231 </div>
232 <a class="anchor" id="ga1f21e65ffedffde468d93a790f875637"></a><!-- doxytag: member="glm::gtx::reciprocal::csc" ref="ga1f21e65ffedffde468d93a790f875637" args="(genType const &amp;angle)" -->
233 <div class="memitem">
234 <div class="memproto">
235 <table class="memname">
236 <tr>
237 <td class="memname">genType glm::gtx::reciprocal::csc </td>
238 <td>(</td>
239 <td class="paramtype">genType const &amp;&#160;</td>
240 <td class="paramname"><em>angle</em></td><td>)</td>
241 <td></td>
242 </tr>
243 </table>
244 </div>
245 <div class="memdoc">
246
247 <p>Cosecant function. </p>
248 <p>hypotenuse / opposite or 1 / sin(x) From GLM_GTX_reciprocal extension. </p>
249
250 </div>
251 </div>
252 <a class="anchor" id="gad690383d8014e5c46a2d35a6a59ff053"></a><!-- doxytag: member="glm::gtx::reciprocal::csch" ref="gad690383d8014e5c46a2d35a6a59ff053" args="(genType const &amp;angle)" -->
253 <div class="memitem">
254 <div class="memproto">
255 <table class="memname">
256 <tr>
257 <td class="memname">genType glm::gtx::reciprocal::csch </td>
258 <td>(</td>
259 <td class="paramtype">genType const &amp;&#160;</td>
260 <td class="paramname"><em>angle</em></td><td>)</td>
261 <td></td>
262 </tr>
263 </table>
264 </div>
265 <div class="memdoc">
266
267 <p>Cosecant hyperbolic function. </p>
268 <p>From GLM_GTX_reciprocal extension. </p>
269
270 </div>
271 </div>
272 <a class="anchor" id="gace10a38c1888d5fe0f77c08ba1775b41"></a><!-- doxytag: member="glm::gtx::reciprocal::sec" ref="gace10a38c1888d5fe0f77c08ba1775b41" args="(genType const &amp;angle)" -->
273 <div class="memitem">
274 <div class="memproto">
275 <table class="memname">
276 <tr>
277 <td class="memname">genType glm::gtx::reciprocal::sec </td>
278 <td>(</td>
279 <td class="paramtype">genType const &amp;&#160;</td>
280 <td class="paramname"><em>angle</em></td><td>)</td>
281 <td></td>
282 </tr>
283 </table>
284 </div>
285 <div class="memdoc">
286
287 <p>Secant function. </p>
288 <p>hypotenuse / adjacent or 1 / cos(x) From GLM_GTX_reciprocal extension. </p>
289
290 </div>
291 </div>
292 <a class="anchor" id="ga3d6f2c8efdefcf326be500a565d48a29"></a><!-- doxytag: member="glm::gtx::reciprocal::sech" ref="ga3d6f2c8efdefcf326be500a565d48a29" args="(genType const &amp;angle)" -->
293 <div class="memitem">
294 <div class="memproto">
295 <table class="memname">
296 <tr>
297 <td class="memname">genType glm::gtx::reciprocal::sech </td>
298 <td>(</td>
299 <td class="paramtype">genType const &amp;&#160;</td>
300 <td class="paramname"><em>angle</em></td><td>)</td>
301 <td></td>
302 </tr>
303 </table>
304 </div>
305 <div class="memdoc">
306
307 <p>Secant hyperbolic function. </p>
308 <p>From GLM_GTX_reciprocal extension. </p>
68 <a class="anchor" id="gae3a2b116deb10aa573c9931c9ea3c258"></a><!-- doxytag: member="glm::gtx::rotate_vector::orientation" ref="gae3a2b116deb10aa573c9931c9ea3c258" args="(detail::tvec3&lt; T &gt; const &amp;Normal, detail::tvec3&lt; T &gt; const &amp;Up)" -->
69 <div class="memitem">
70 <div class="memproto">
71 <table class="memname">
72 <tr>
73 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::rotate_vector::orientation </td>
74 <td>(</td>
75 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
76 <td class="paramname"><em>Normal</em>, </td>
77 </tr>
78 <tr>
79 <td class="paramkey"></td>
80 <td></td>
81 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
82 <td class="paramname"><em>Up</em>&#160;</td>
83 </tr>
84 <tr>
85 <td></td>
86 <td>)</td>
87 <td></td><td></td>
88 </tr>
89 </table>
90 </div>
91 <div class="memdoc">
92
93 <p>Build a rotation matrix from a normal and a up vector. </p>
94 <p>From GLM_GTX_rotate_vector extension. </p>
95
96 </div>
97 </div>
98 <a class="anchor" id="ga74ee9d3b702b3ddfc07478b86c89ce18"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotate" ref="ga74ee9d3b702b3ddfc07478b86c89ce18" args="(detail::tvec2&lt; T &gt; const &amp;v, T const &amp;angle)" -->
99 <div class="memitem">
100 <div class="memproto">
101 <table class="memname">
102 <tr>
103 <td class="memname">detail::tvec2&lt;T&gt; glm::gtx::rotate_vector::rotate </td>
104 <td>(</td>
105 <td class="paramtype">detail::tvec2&lt; T &gt; const &amp;&#160;</td>
106 <td class="paramname"><em>v</em>, </td>
107 </tr>
108 <tr>
109 <td class="paramkey"></td>
110 <td></td>
111 <td class="paramtype">T const &amp;&#160;</td>
112 <td class="paramname"><em>angle</em>&#160;</td>
113 </tr>
114 <tr>
115 <td></td>
116 <td>)</td>
117 <td></td><td></td>
118 </tr>
119 </table>
120 </div>
121 <div class="memdoc">
122
123 <p>Rotate a two dimensional vector. </p>
124 <p>From GLM_GTX_rotate_vector extension. </p>
125
126 </div>
127 </div>
128 <a class="anchor" id="ga0f8b7835ac8d51587476bfcf51f2667f"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotate" ref="ga0f8b7835ac8d51587476bfcf51f2667f" args="(detail::tvec3&lt; T &gt; const &amp;v, T const &amp;angle, detail::tvec3&lt; T &gt; const &amp;normal)" -->
129 <div class="memitem">
130 <div class="memproto">
131 <table class="memname">
132 <tr>
133 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::rotate_vector::rotate </td>
134 <td>(</td>
135 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
136 <td class="paramname"><em>v</em>, </td>
137 </tr>
138 <tr>
139 <td class="paramkey"></td>
140 <td></td>
141 <td class="paramtype">T const &amp;&#160;</td>
142 <td class="paramname"><em>angle</em>, </td>
143 </tr>
144 <tr>
145 <td class="paramkey"></td>
146 <td></td>
147 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
148 <td class="paramname"><em>normal</em>&#160;</td>
149 </tr>
150 <tr>
151 <td></td>
152 <td>)</td>
153 <td></td><td></td>
154 </tr>
155 </table>
156 </div>
157 <div class="memdoc">
158
159 <p>Rotate a three dimensional vector around an axis. </p>
160 <p>From GLM_GTX_rotate_vector extension. </p>
161
162 </div>
163 </div>
164 <a class="anchor" id="gacbdc12006e75f857cf9ad07377499d6a"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotate" ref="gacbdc12006e75f857cf9ad07377499d6a" args="(detail::tvec4&lt; T &gt; const &amp;v, T const &amp;angle, detail::tvec3&lt; T &gt; const &amp;normal)" -->
165 <div class="memitem">
166 <div class="memproto">
167 <table class="memname">
168 <tr>
169 <td class="memname">detail::tvec4&lt;T&gt; glm::gtx::rotate_vector::rotate </td>
170 <td>(</td>
171 <td class="paramtype">detail::tvec4&lt; T &gt; const &amp;&#160;</td>
172 <td class="paramname"><em>v</em>, </td>
173 </tr>
174 <tr>
175 <td class="paramkey"></td>
176 <td></td>
177 <td class="paramtype">T const &amp;&#160;</td>
178 <td class="paramname"><em>angle</em>, </td>
179 </tr>
180 <tr>
181 <td class="paramkey"></td>
182 <td></td>
183 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
184 <td class="paramname"><em>normal</em>&#160;</td>
185 </tr>
186 <tr>
187 <td></td>
188 <td>)</td>
189 <td></td><td></td>
190 </tr>
191 </table>
192 </div>
193 <div class="memdoc">
194
195 <p>Rotate a four dimensional vector around an axis. </p>
196 <p>From GLM_GTX_rotate_vector extension. </p>
197
198 </div>
199 </div>
200 <a class="anchor" id="gabb24431b78204cb7852f0597f4514e6a"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotateX" ref="gabb24431b78204cb7852f0597f4514e6a" args="(detail::tvec3&lt; T &gt; const &amp;v, T const &amp;angle)" -->
201 <div class="memitem">
202 <div class="memproto">
203 <table class="memname">
204 <tr>
205 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::rotate_vector::rotateX </td>
206 <td>(</td>
207 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
208 <td class="paramname"><em>v</em>, </td>
209 </tr>
210 <tr>
211 <td class="paramkey"></td>
212 <td></td>
213 <td class="paramtype">T const &amp;&#160;</td>
214 <td class="paramname"><em>angle</em>&#160;</td>
215 </tr>
216 <tr>
217 <td></td>
218 <td>)</td>
219 <td></td><td></td>
220 </tr>
221 </table>
222 </div>
223 <div class="memdoc">
224
225 <p>Rotate a three dimensional vector around the X axis. </p>
226 <p>From GLM_GTX_rotate_vector extension. </p>
227
228 </div>
229 </div>
230 <a class="anchor" id="ga89a8f325ae8ed133bc17c3fe21eb729e"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotateX" ref="ga89a8f325ae8ed133bc17c3fe21eb729e" args="(detail::tvec4&lt; T &gt; const &amp;v, T const &amp;angle)" -->
231 <div class="memitem">
232 <div class="memproto">
233 <table class="memname">
234 <tr>
235 <td class="memname">detail::tvec4&lt;T&gt; glm::gtx::rotate_vector::rotateX </td>
236 <td>(</td>
237 <td class="paramtype">detail::tvec4&lt; T &gt; const &amp;&#160;</td>
238 <td class="paramname"><em>v</em>, </td>
239 </tr>
240 <tr>
241 <td class="paramkey"></td>
242 <td></td>
243 <td class="paramtype">T const &amp;&#160;</td>
244 <td class="paramname"><em>angle</em>&#160;</td>
245 </tr>
246 <tr>
247 <td></td>
248 <td>)</td>
249 <td></td><td></td>
250 </tr>
251 </table>
252 </div>
253 <div class="memdoc">
254
255 <p>Rotate a four dimentionnals vector around the X axis. </p>
256 <p>From GLM_GTX_rotate_vector extension. </p>
257
258 </div>
259 </div>
260 <a class="anchor" id="ga34f0e716fadf266f55945f18b3bc87e9"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotateY" ref="ga34f0e716fadf266f55945f18b3bc87e9" args="(detail::tvec3&lt; T &gt; const &amp;v, T const &amp;angle)" -->
261 <div class="memitem">
262 <div class="memproto">
263 <table class="memname">
264 <tr>
265 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::rotate_vector::rotateY </td>
266 <td>(</td>
267 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
268 <td class="paramname"><em>v</em>, </td>
269 </tr>
270 <tr>
271 <td class="paramkey"></td>
272 <td></td>
273 <td class="paramtype">T const &amp;&#160;</td>
274 <td class="paramname"><em>angle</em>&#160;</td>
275 </tr>
276 <tr>
277 <td></td>
278 <td>)</td>
279 <td></td><td></td>
280 </tr>
281 </table>
282 </div>
283 <div class="memdoc">
284
285 <p>Rotate a three dimensional vector around the Y axis. </p>
286 <p>From GLM_GTX_rotate_vector extension. </p>
287
288 </div>
289 </div>
290 <a class="anchor" id="ga6d4d0d7e78fc92f77e3e5474d46e703f"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotateY" ref="ga6d4d0d7e78fc92f77e3e5474d46e703f" args="(detail::tvec4&lt; T &gt; const &amp;v, T const &amp;angle)" -->
291 <div class="memitem">
292 <div class="memproto">
293 <table class="memname">
294 <tr>
295 <td class="memname">detail::tvec4&lt;T&gt; glm::gtx::rotate_vector::rotateY </td>
296 <td>(</td>
297 <td class="paramtype">detail::tvec4&lt; T &gt; const &amp;&#160;</td>
298 <td class="paramname"><em>v</em>, </td>
299 </tr>
300 <tr>
301 <td class="paramkey"></td>
302 <td></td>
303 <td class="paramtype">T const &amp;&#160;</td>
304 <td class="paramname"><em>angle</em>&#160;</td>
305 </tr>
306 <tr>
307 <td></td>
308 <td>)</td>
309 <td></td><td></td>
310 </tr>
311 </table>
312 </div>
313 <div class="memdoc">
314
315 <p>Rotate a four dimensional vector around the X axis. </p>
316 <p>From GLM_GTX_rotate_vector extension. </p>
317
318 </div>
319 </div>
320 <a class="anchor" id="gafb9ff0a66486f10ad1c4937bfa54d6e8"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotateZ" ref="gafb9ff0a66486f10ad1c4937bfa54d6e8" args="(detail::tvec3&lt; T &gt; const &amp;v, T const &amp;angle)" -->
321 <div class="memitem">
322 <div class="memproto">
323 <table class="memname">
324 <tr>
325 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::rotate_vector::rotateZ </td>
326 <td>(</td>
327 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
328 <td class="paramname"><em>v</em>, </td>
329 </tr>
330 <tr>
331 <td class="paramkey"></td>
332 <td></td>
333 <td class="paramtype">T const &amp;&#160;</td>
334 <td class="paramname"><em>angle</em>&#160;</td>
335 </tr>
336 <tr>
337 <td></td>
338 <td>)</td>
339 <td></td><td></td>
340 </tr>
341 </table>
342 </div>
343 <div class="memdoc">
344
345 <p>Rotate a three dimensional vector around the Z axis. </p>
346 <p>From GLM_GTX_rotate_vector extension. </p>
347
348 </div>
349 </div>
350 <a class="anchor" id="ga3137076b99675a999459d52475a926e6"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotateZ" ref="ga3137076b99675a999459d52475a926e6" args="(detail::tvec4&lt; T &gt; const &amp;v, T const &amp;angle)" -->
351 <div class="memitem">
352 <div class="memproto">
353 <table class="memname">
354 <tr>
355 <td class="memname">detail::tvec4&lt;T&gt; glm::gtx::rotate_vector::rotateZ </td>
356 <td>(</td>
357 <td class="paramtype">detail::tvec4&lt; T &gt; const &amp;&#160;</td>
358 <td class="paramname"><em>v</em>, </td>
359 </tr>
360 <tr>
361 <td class="paramkey"></td>
362 <td></td>
363 <td class="paramtype">T const &amp;&#160;</td>
364 <td class="paramname"><em>angle</em>&#160;</td>
365 </tr>
366 <tr>
367 <td></td>
368 <td>)</td>
369 <td></td><td></td>
370 </tr>
371 </table>
372 </div>
373 <div class="memdoc">
374
375 <p>Rotate a four dimensional vector around the X axis. </p>
376 <p>From GLM_GTX_rotate_vector extension. </p>
309377
310378 </div>
311379 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_rotate_vector: Rotate vector</title>
4 <title>GLM_GTX_simd_mat4: SIMD mat4 type and functions</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_rotate_vector: Rotate vector</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_simd_mat4: SIMD mat4 type and functions</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Function to directly rotate a vector.
38 <p>SIMD implementation of mat4 type.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#ga98e847d33908bb6e38273214671dbc25">orientation</a> (const detail::tvec3&lt; T &gt; &amp;Normal, const detail::tvec3&lt; T &gt; &amp;Up)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#ga916271935bb670e1a75797860af56ae0">rotate</a> (const detail::tvec2&lt; T &gt; &amp;v, T angle)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#gaf1ec9b9e94a158726c62296e92eebcae">rotate</a> (const detail::tvec3&lt; T &gt; &amp;v, T angle, const detail::tvec3&lt; T &gt; &amp;normal)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#ga9f87d898a478a135fbe49b103c0549e9">rotate</a> (const detail::tvec4&lt; T &gt; &amp;v, T angle, const detail::tvec3&lt; T &gt; &amp;normal)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#ga1c732f02c6ac2ae68614baa28635be83">rotateX</a> (const detail::tvec3&lt; T &gt; &amp;v, T angle)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#ga414970e186de4d267d6aa36c568a8bcc">rotateX</a> (const detail::tvec4&lt; T &gt; &amp;v, T angle)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#ga6b8ce5c2c1896d3bc1c91dd5e9db96b5">rotateY</a> (const detail::tvec3&lt; T &gt; &amp;v, T angle)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#gae2831fcaafe493b83b75f775cb9fe39e">rotateY</a> (const detail::tvec4&lt; T &gt; &amp;v, T angle)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#ga22980e5be58ee40790e1e7ee1ad4e2fe">rotateZ</a> (const detail::tvec3&lt; T &gt; &amp;v, T angle)</td></tr>
61 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
62 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00290.html#gafd0e0ce6a665978a3c72d31f0028d77d">rotateZ</a> (const detail::tvec4&lt; T &gt; &amp;v, T angle)</td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga9be926c258e64bf2413671d104b393e8">determinant</a> (detail::fmat4x4SIMD const &amp;m)</td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga7210a12f9861ab5585662dc1bf5a8221">GLM_ALIGNED_STRUCT</a> (16) fmat4x4SIMD</td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">detail::fmat4x4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#gace9ca056446fc614a846bac6a3ee1a1e">inverse</a> (detail::fmat4x4SIMD const &amp;m)</td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">detail::tmat4x4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga8759e2cf163948c9c7ff138c1f56d501">mat4_cast</a> (detail::fmat4x4SIMD const &amp;x)</td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">detail::fmat4x4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga5ae5a4950d3e354236390edfaa25301a">matrixCompMult</a> (detail::fmat4x4SIMD const &amp;x, detail::fmat4x4SIMD const &amp;y)</td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">detail::fmat4x4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#gafed2233ac30495621c2bdd4d121f9ced">outerProduct</a> (detail::fvec4SIMD const &amp;c, detail::fvec4SIMD const &amp;r)</td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">detail::fmat4x4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga5da402c7d42808dfc8c8d51e0ac9c868">transpose</a> (detail::fmat4x4SIMD const &amp;x)</td></tr>
6350 </table>
6451 <hr/><a name="_details"></a><h2>Detailed Description</h2>
65 <p>Function to directly rotate a vector. </p>
66 <p>&lt;<a class="el" href="a00099_source.html">glm/gtx/rotate_vector.hpp</a>&gt; need to be included to use these functionalities. </p>
52 <p>SIMD implementation of mat4 type. </p>
53 <p>&lt;<a class="el" href="a00101_source.html">glm/gtx/simd_mat4.hpp</a>&gt; need to be included to use these functionalities. </p>
6754 <hr/><h2>Function Documentation</h2>
68 <a class="anchor" id="ga98e847d33908bb6e38273214671dbc25"></a><!-- doxytag: member="glm::gtx::rotate_vector::orientation" ref="ga98e847d33908bb6e38273214671dbc25" args="(const detail::tvec3&lt; T &gt; &amp;Normal, const detail::tvec3&lt; T &gt; &amp;Up)" -->
69 <div class="memitem">
70 <div class="memproto">
71 <table class="memname">
72 <tr>
73 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::rotate_vector::orientation </td>
74 <td>(</td>
75 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
76 <td class="paramname"><em>Normal</em>, </td>
55 <a class="anchor" id="ga9be926c258e64bf2413671d104b393e8"></a><!-- doxytag: member="glm::gtx::simd_mat4::determinant" ref="ga9be926c258e64bf2413671d104b393e8" args="(detail::fmat4x4SIMD const &amp;m)" -->
56 <div class="memitem">
57 <div class="memproto">
58 <table class="memname">
59 <tr>
60 <td class="memname">float glm::gtx::simd_mat4::determinant </td>
61 <td>(</td>
62 <td class="paramtype">detail::fmat4x4SIMD const &amp;&#160;</td>
63 <td class="paramname"><em>m</em></td><td>)</td>
64 <td></td>
65 </tr>
66 </table>
67 </div>
68 <div class="memdoc">
69
70 <p>Return the determinant of a mat4 matrix. </p>
71 <p>(From GLM_GTX_simd_mat4 extension). </p>
72
73 </div>
74 </div>
75 <a class="anchor" id="ga7210a12f9861ab5585662dc1bf5a8221"></a><!-- doxytag: member="glm::detail::GLM_ALIGNED_STRUCT" ref="ga7210a12f9861ab5585662dc1bf5a8221" args="(16) fmat4x4SIMD" -->
76 <div class="memitem">
77 <div class="memproto">
78 <table class="memname">
79 <tr>
80 <td class="memname">GLM_ALIGNED_STRUCT </td>
81 <td>(</td>
82 <td class="paramtype">16&#160;</td>
83 <td class="paramname"></td><td>)</td>
84 <td></td>
85 </tr>
86 </table>
87 </div>
88 <div class="memdoc">
89
90 <p>4x4 Matrix implemented using SIMD SEE intrinsics. </p>
91 <p>4-dimensional vector implemented using SIMD SEE intrinsics. </p>
92
93 <p>Definition at line <a class="el" href="a00101_source.html#l00036">36</a> of file <a class="el" href="a00101_source.html">simd_mat4.hpp</a>.</p>
94
95 </div>
96 </div>
97 <a class="anchor" id="gace9ca056446fc614a846bac6a3ee1a1e"></a><!-- doxytag: member="glm::gtx::simd_mat4::inverse" ref="gace9ca056446fc614a846bac6a3ee1a1e" args="(detail::fmat4x4SIMD const &amp;m)" -->
98 <div class="memitem">
99 <div class="memproto">
100 <table class="memname">
101 <tr>
102 <td class="memname">detail::fmat4x4SIMD glm::gtx::simd_mat4::inverse </td>
103 <td>(</td>
104 <td class="paramtype">detail::fmat4x4SIMD const &amp;&#160;</td>
105 <td class="paramname"><em>m</em></td><td>)</td>
106 <td></td>
107 </tr>
108 </table>
109 </div>
110 <div class="memdoc">
111
112 <p>Return the inverse of a mat4 matrix. </p>
113 <p>(From GLM_GTX_simd_mat4 extension). </p>
114
115 </div>
116 </div>
117 <a class="anchor" id="ga8759e2cf163948c9c7ff138c1f56d501"></a><!-- doxytag: member="glm::gtx::simd_mat4::mat4_cast" ref="ga8759e2cf163948c9c7ff138c1f56d501" args="(detail::fmat4x4SIMD const &amp;x)" -->
118 <div class="memitem">
119 <div class="memproto">
120 <table class="memname">
121 <tr>
122 <td class="memname">detail::tmat4x4&lt;float&gt; glm::gtx::simd_mat4::mat4_cast </td>
123 <td>(</td>
124 <td class="paramtype">detail::fmat4x4SIMD const &amp;&#160;</td>
125 <td class="paramname"><em>x</em></td><td>)</td>
126 <td></td>
127 </tr>
128 </table>
129 </div>
130 <div class="memdoc">
131
132 <p>Convert a simdMat4 to a mat4. </p>
133 <p>(From GLM_GTX_simd_mat4 extension) </p>
134
135 </div>
136 </div>
137 <a class="anchor" id="ga5ae5a4950d3e354236390edfaa25301a"></a><!-- doxytag: member="glm::gtx::simd_mat4::matrixCompMult" ref="ga5ae5a4950d3e354236390edfaa25301a" args="(detail::fmat4x4SIMD const &amp;x, detail::fmat4x4SIMD const &amp;y)" -->
138 <div class="memitem">
139 <div class="memproto">
140 <table class="memname">
141 <tr>
142 <td class="memname">detail::fmat4x4SIMD glm::gtx::simd_mat4::matrixCompMult </td>
143 <td>(</td>
144 <td class="paramtype">detail::fmat4x4SIMD const &amp;&#160;</td>
145 <td class="paramname"><em>x</em>, </td>
77146 </tr>
78147 <tr>
79148 <td class="paramkey"></td>
80149 <td></td>
81 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
82 <td class="paramname"><em>Up</em>&#160;</td>
150 <td class="paramtype">detail::fmat4x4SIMD const &amp;&#160;</td>
151 <td class="paramname"><em>y</em>&#160;</td>
83152 </tr>
84153 <tr>
85154 <td></td>
90159 </div>
91160 <div class="memdoc">
92161
93 <p>Build a rotation matrix from a normal and a up vector. </p>
94 <p>From GLM_GTX_rotate_vector extension. </p>
95
96 </div>
97 </div>
98 <a class="anchor" id="ga916271935bb670e1a75797860af56ae0"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotate" ref="ga916271935bb670e1a75797860af56ae0" args="(const detail::tvec2&lt; T &gt; &amp;v, T angle)" -->
99 <div class="memitem">
100 <div class="memproto">
101 <table class="memname">
102 <tr>
103 <td class="memname">detail::tvec2&lt;T&gt; glm::gtx::rotate_vector::rotate </td>
104 <td>(</td>
105 <td class="paramtype">const detail::tvec2&lt; T &gt; &amp;&#160;</td>
106 <td class="paramname"><em>v</em>, </td>
162 <p>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]. </p>
163 <p>(From GLM_GTX_simd_mat4 extension). </p>
164
165 </div>
166 </div>
167 <a class="anchor" id="gafed2233ac30495621c2bdd4d121f9ced"></a><!-- doxytag: member="glm::gtx::simd_mat4::outerProduct" ref="gafed2233ac30495621c2bdd4d121f9ced" args="(detail::fvec4SIMD const &amp;c, detail::fvec4SIMD const &amp;r)" -->
168 <div class="memitem">
169 <div class="memproto">
170 <table class="memname">
171 <tr>
172 <td class="memname">detail::fmat4x4SIMD glm::gtx::simd_mat4::outerProduct </td>
173 <td>(</td>
174 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
175 <td class="paramname"><em>c</em>, </td>
107176 </tr>
108177 <tr>
109178 <td class="paramkey"></td>
110179 <td></td>
111 <td class="paramtype">T&#160;</td>
112 <td class="paramname"><em>angle</em>&#160;</td>
180 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
181 <td class="paramname"><em>r</em>&#160;</td>
113182 </tr>
114183 <tr>
115184 <td></td>
120189 </div>
121190 <div class="memdoc">
122191
123 <p>Rotate a two dimensional vector. </p>
124 <p>From GLM_GTX_rotate_vector extension. </p>
125
126 </div>
127 </div>
128 <a class="anchor" id="gaf1ec9b9e94a158726c62296e92eebcae"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotate" ref="gaf1ec9b9e94a158726c62296e92eebcae" args="(const detail::tvec3&lt; T &gt; &amp;v, T angle, const detail::tvec3&lt; T &gt; &amp;normal)" -->
129 <div class="memitem">
130 <div class="memproto">
131 <table class="memname">
132 <tr>
133 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::rotate_vector::rotate </td>
134 <td>(</td>
135 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
136 <td class="paramname"><em>v</em>, </td>
137 </tr>
138 <tr>
139 <td class="paramkey"></td>
140 <td></td>
141 <td class="paramtype">T&#160;</td>
142 <td class="paramname"><em>angle</em>, </td>
143 </tr>
144 <tr>
145 <td class="paramkey"></td>
146 <td></td>
147 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
148 <td class="paramname"><em>normal</em>&#160;</td>
149 </tr>
150 <tr>
151 <td></td>
152 <td>)</td>
153 <td></td><td></td>
154 </tr>
155 </table>
156 </div>
157 <div class="memdoc">
158
159 <p>Rotate a three dimensional vector around an axis. </p>
160 <p>From GLM_GTX_rotate_vector extension. </p>
161
162 </div>
163 </div>
164 <a class="anchor" id="ga9f87d898a478a135fbe49b103c0549e9"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotate" ref="ga9f87d898a478a135fbe49b103c0549e9" args="(const detail::tvec4&lt; T &gt; &amp;v, T angle, const detail::tvec3&lt; T &gt; &amp;normal)" -->
165 <div class="memitem">
166 <div class="memproto">
167 <table class="memname">
168 <tr>
169 <td class="memname">detail::tvec4&lt;T&gt; glm::gtx::rotate_vector::rotate </td>
170 <td>(</td>
171 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
172 <td class="paramname"><em>v</em>, </td>
173 </tr>
174 <tr>
175 <td class="paramkey"></td>
176 <td></td>
177 <td class="paramtype">T&#160;</td>
178 <td class="paramname"><em>angle</em>, </td>
179 </tr>
180 <tr>
181 <td class="paramkey"></td>
182 <td></td>
183 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
184 <td class="paramname"><em>normal</em>&#160;</td>
185 </tr>
186 <tr>
187 <td></td>
188 <td>)</td>
189 <td></td><td></td>
190 </tr>
191 </table>
192 </div>
193 <div class="memdoc">
194
195 <p>Rotate a four dimensional vector around an axis. </p>
196 <p>From GLM_GTX_rotate_vector extension. </p>
197
198 </div>
199 </div>
200 <a class="anchor" id="ga1c732f02c6ac2ae68614baa28635be83"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotateX" ref="ga1c732f02c6ac2ae68614baa28635be83" args="(const detail::tvec3&lt; T &gt; &amp;v, T angle)" -->
201 <div class="memitem">
202 <div class="memproto">
203 <table class="memname">
204 <tr>
205 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::rotate_vector::rotateX </td>
206 <td>(</td>
207 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
208 <td class="paramname"><em>v</em>, </td>
209 </tr>
210 <tr>
211 <td class="paramkey"></td>
212 <td></td>
213 <td class="paramtype">T&#160;</td>
214 <td class="paramname"><em>angle</em>&#160;</td>
215 </tr>
216 <tr>
217 <td></td>
218 <td>)</td>
219 <td></td><td></td>
220 </tr>
221 </table>
222 </div>
223 <div class="memdoc">
224
225 <p>Rotate a three dimensional vector around the X axis. </p>
226 <p>From GLM_GTX_rotate_vector extension. </p>
227
228 </div>
229 </div>
230 <a class="anchor" id="ga414970e186de4d267d6aa36c568a8bcc"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotateX" ref="ga414970e186de4d267d6aa36c568a8bcc" args="(const detail::tvec4&lt; T &gt; &amp;v, T angle)" -->
231 <div class="memitem">
232 <div class="memproto">
233 <table class="memname">
234 <tr>
235 <td class="memname">detail::tvec4&lt;T&gt; glm::gtx::rotate_vector::rotateX </td>
236 <td>(</td>
237 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
238 <td class="paramname"><em>v</em>, </td>
239 </tr>
240 <tr>
241 <td class="paramkey"></td>
242 <td></td>
243 <td class="paramtype">T&#160;</td>
244 <td class="paramname"><em>angle</em>&#160;</td>
245 </tr>
246 <tr>
247 <td></td>
248 <td>)</td>
249 <td></td><td></td>
250 </tr>
251 </table>
252 </div>
253 <div class="memdoc">
254
255 <p>Rotate a four dimentionnals vector around the X axis. </p>
256 <p>From GLM_GTX_rotate_vector extension. </p>
257
258 </div>
259 </div>
260 <a class="anchor" id="ga6b8ce5c2c1896d3bc1c91dd5e9db96b5"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotateY" ref="ga6b8ce5c2c1896d3bc1c91dd5e9db96b5" args="(const detail::tvec3&lt; T &gt; &amp;v, T angle)" -->
261 <div class="memitem">
262 <div class="memproto">
263 <table class="memname">
264 <tr>
265 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::rotate_vector::rotateY </td>
266 <td>(</td>
267 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
268 <td class="paramname"><em>v</em>, </td>
269 </tr>
270 <tr>
271 <td class="paramkey"></td>
272 <td></td>
273 <td class="paramtype">T&#160;</td>
274 <td class="paramname"><em>angle</em>&#160;</td>
275 </tr>
276 <tr>
277 <td></td>
278 <td>)</td>
279 <td></td><td></td>
280 </tr>
281 </table>
282 </div>
283 <div class="memdoc">
284
285 <p>Rotate a three dimensional vector around the Y axis. </p>
286 <p>From GLM_GTX_rotate_vector extension. </p>
287
288 </div>
289 </div>
290 <a class="anchor" id="gae2831fcaafe493b83b75f775cb9fe39e"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotateY" ref="gae2831fcaafe493b83b75f775cb9fe39e" args="(const detail::tvec4&lt; T &gt; &amp;v, T angle)" -->
291 <div class="memitem">
292 <div class="memproto">
293 <table class="memname">
294 <tr>
295 <td class="memname">detail::tvec4&lt;T&gt; glm::gtx::rotate_vector::rotateY </td>
296 <td>(</td>
297 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
298 <td class="paramname"><em>v</em>, </td>
299 </tr>
300 <tr>
301 <td class="paramkey"></td>
302 <td></td>
303 <td class="paramtype">T&#160;</td>
304 <td class="paramname"><em>angle</em>&#160;</td>
305 </tr>
306 <tr>
307 <td></td>
308 <td>)</td>
309 <td></td><td></td>
310 </tr>
311 </table>
312 </div>
313 <div class="memdoc">
314
315 <p>Rotate a four dimensional vector around the X axis. </p>
316 <p>From GLM_GTX_rotate_vector extension. </p>
317
318 </div>
319 </div>
320 <a class="anchor" id="ga22980e5be58ee40790e1e7ee1ad4e2fe"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotateZ" ref="ga22980e5be58ee40790e1e7ee1ad4e2fe" args="(const detail::tvec3&lt; T &gt; &amp;v, T angle)" -->
321 <div class="memitem">
322 <div class="memproto">
323 <table class="memname">
324 <tr>
325 <td class="memname">detail::tvec3&lt;T&gt; glm::gtx::rotate_vector::rotateZ </td>
326 <td>(</td>
327 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
328 <td class="paramname"><em>v</em>, </td>
329 </tr>
330 <tr>
331 <td class="paramkey"></td>
332 <td></td>
333 <td class="paramtype">T&#160;</td>
334 <td class="paramname"><em>angle</em>&#160;</td>
335 </tr>
336 <tr>
337 <td></td>
338 <td>)</td>
339 <td></td><td></td>
340 </tr>
341 </table>
342 </div>
343 <div class="memdoc">
344
345 <p>Rotate a three dimensional vector around the Z axis. </p>
346 <p>From GLM_GTX_rotate_vector extension. </p>
347
348 </div>
349 </div>
350 <a class="anchor" id="gafd0e0ce6a665978a3c72d31f0028d77d"></a><!-- doxytag: member="glm::gtx::rotate_vector::rotateZ" ref="gafd0e0ce6a665978a3c72d31f0028d77d" args="(const detail::tvec4&lt; T &gt; &amp;v, T angle)" -->
351 <div class="memitem">
352 <div class="memproto">
353 <table class="memname">
354 <tr>
355 <td class="memname">detail::tvec4&lt;T&gt; glm::gtx::rotate_vector::rotateZ </td>
356 <td>(</td>
357 <td class="paramtype">const detail::tvec4&lt; T &gt; &amp;&#160;</td>
358 <td class="paramname"><em>v</em>, </td>
359 </tr>
360 <tr>
361 <td class="paramkey"></td>
362 <td></td>
363 <td class="paramtype">T&#160;</td>
364 <td class="paramname"><em>angle</em>&#160;</td>
365 </tr>
366 <tr>
367 <td></td>
368 <td>)</td>
369 <td></td><td></td>
370 </tr>
371 </table>
372 </div>
373 <div class="memdoc">
374
375 <p>Rotate a four dimensional vector around the X axis. </p>
376 <p>From GLM_GTX_rotate_vector extension. </p>
192 <p>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. </p>
193 <p>(From GLM_GTX_simd_mat4 extension). </p>
194
195 </div>
196 </div>
197 <a class="anchor" id="ga5da402c7d42808dfc8c8d51e0ac9c868"></a><!-- doxytag: member="glm::gtx::simd_mat4::transpose" ref="ga5da402c7d42808dfc8c8d51e0ac9c868" args="(detail::fmat4x4SIMD const &amp;x)" -->
198 <div class="memitem">
199 <div class="memproto">
200 <table class="memname">
201 <tr>
202 <td class="memname">detail::fmat4x4SIMD glm::gtx::simd_mat4::transpose </td>
203 <td>(</td>
204 <td class="paramtype">detail::fmat4x4SIMD const &amp;&#160;</td>
205 <td class="paramname"><em>x</em></td><td>)</td>
206 <td></td>
207 </tr>
208 </table>
209 </div>
210 <div class="memdoc">
211
212 <p>Returns the transposed matrix of x (From GLM_GTX_simd_mat4 extension). </p>
377213
378214 </div>
379215 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_simd_mat4: SIMD mat4 type and functions</title>
4 <title>GLM_GTX_simd_vec4: SIMD vec4 type and functions</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_simd_mat4: SIMD mat4 type and functions</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_simd_vec4: SIMD vec4 type and functions</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>SIMD implementation of mat4 type.
38 <p>SIMD implementation of vec4 type.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga9be926c258e64bf2413671d104b393e8">determinant</a> (detail::fmat4x4SIMD const &amp;m)</td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac10c19d68b9f99a089ff3cfde58760a7"></a><!-- doxytag: member="gtx_simd_mat4::GLM_ALIGNED_STRUCT" ref="gac10c19d68b9f99a089ff3cfde58760a7" args="(16) fmat4x4SIMD" -->
45 &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gac10c19d68b9f99a089ff3cfde58760a7">GLM_ALIGNED_STRUCT</a> (16) fmat4x4SIMD</td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">detail::fmat4x4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gace9ca056446fc614a846bac6a3ee1a1e">inverse</a> (detail::fmat4x4SIMD const &amp;m)</td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">detail::tmat4x4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga8759e2cf163948c9c7ff138c1f56d501">mat4_cast</a> (detail::fmat4x4SIMD const &amp;x)</td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">detail::fmat4x4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga5ae5a4950d3e354236390edfaa25301a">matrixCompMult</a> (detail::fmat4x4SIMD const &amp;x, detail::fmat4x4SIMD const &amp;y)</td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">detail::fmat4x4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gafed2233ac30495621c2bdd4d121f9ced">outerProduct</a> (detail::fvec4SIMD const &amp;c, detail::fvec4SIMD const &amp;r)</td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">detail::fmat4x4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga5da402c7d42808dfc8c8d51e0ac9c868">transpose</a> (detail::fmat4x4SIMD const &amp;x)</td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga427e341830f94e41ece21ea4ebc854c3">abs</a> (detail::fvec4SIMD const &amp;x)</td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga3ce76f0bb739c0d5f04e7bfa4251993d">ceil</a> (detail::fvec4SIMD const &amp;x)</td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga73e895d1fdba2b620e84383517c552b0">clamp</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;minVal, detail::fvec4SIMD const &amp;maxVal)</td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gabe4bd036ccfd0e1d53ea828d478cdd2c">cross</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gac514ca90bcc5a17bd7162ea32a220580">distance</a> (detail::fvec4SIMD const &amp;p0, detail::fvec4SIMD const &amp;p1)</td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gae9238f5011fd124d44dad7b39f0d5a0f">distance4</a> (detail::fvec4SIMD const &amp;p0, detail::fvec4SIMD const &amp;p1)</td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gaa50f94e3de246ea1a1914266aef2f74b">dot4</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gab299477526abc9646263950bfbe32b3f">fastInversesqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga0d4469acfe98c8b2eab8696bf25a3dde">fastLength</a> (detail::fvec4SIMD const &amp;x)</td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga1c85830900d5d3f29902b12d46c60dd3">fastLength4</a> (detail::fvec4SIMD const &amp;x)</td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga58eeeead0d2b381f7d461dac26381125">fastNormalize</a> (detail::fvec4SIMD const &amp;x)</td></tr>
54 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga56465ed17cafbff1e225f82eeb7184e5">fastSqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gab7b1e6c9349aec87e1d3346e867588d6">floor</a> (detail::fvec4SIMD const &amp;x)</td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga4b9f36f4524482b43324f4631944569d">fma</a> (detail::fvec4SIMD const &amp;a, detail::fvec4SIMD const &amp;b, detail::fvec4SIMD const &amp;c)</td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga0a98f9d76fee0ca46c1f97861e3e366c">fract</a> (detail::fvec4SIMD const &amp;x)</td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gaa4e215b72e48012a6388a1477c84e2ad">inversesqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gaf76a38ce8c466c9b0bc4c1b5db1a6faa">length</a> (detail::fvec4SIMD const &amp;x)</td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga6c7fffeb58db66f602585b24a8e4f2db">length4</a> (detail::fvec4SIMD const &amp;x)</td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga10dbe289232abf23c8d668c646ff05d6">max</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gac8850ebd4ae655de76f375105cf7b3d8">min</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gafb120dd721c6b87f5f23c3edd159cfaa">mix</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y, detail::fvec4SIMD const &amp;a)</td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gaf95a2c5c60a6f2a36911d32901e44aba">mod</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gaba1f7a090566667c615a4a53c2f4a0c6">mod</a> (detail::fvec4SIMD const &amp;x, float const &amp;y)</td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga97a71f5eed0feb541ea1131a46e4422e">niceLength</a> (detail::fvec4SIMD const &amp;x)</td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga159f5857abf0df4250bae94f95b9d015">niceLength4</a> (detail::fvec4SIMD const &amp;x)</td></tr>
68 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga163877845325804cda05e8b5142822d5">niceSqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
69 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga4e5cbc78bdd522b61ecd2154b50251af">normalize</a> (detail::fvec4SIMD const &amp;x)</td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga42f1073cf493e7c299c72ae95180265d">reflect</a> (detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;N)</td></tr>
71 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga894c3ec0524d03313dc9c72d36290c00">refract</a> (detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;N, float const &amp;eta)</td></tr>
72 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gad17e750a691edfe51fd1f60d8cac2329">round</a> (detail::fvec4SIMD const &amp;x)</td></tr>
73 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga5a32ecd67af075293c5c8278f2938d4d">sign</a> (detail::fvec4SIMD const &amp;x)</td></tr>
74 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga44faf22be31f5809ed97bf611a56f3e9">simdDot</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
75 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gac11cb08f6ba68f761b7146a60e72da55">simdFaceforward</a> (detail::fvec4SIMD const &amp;N, detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;Nref)</td></tr>
76 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gaeadaacf6c87b0699292de98b7140a278">smoothstep</a> (detail::fvec4SIMD const &amp;edge0, detail::fvec4SIMD const &amp;edge1, detail::fvec4SIMD const &amp;x)</td></tr>
77 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga28dbd1d165fc4301de4fb16a049fcfb2">sqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
78 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga459647604ac2aa0a97c4eb739a7302cb">step</a> (detail::fvec4SIMD const &amp;edge, detail::fvec4SIMD const &amp;x)</td></tr>
79 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#ga4733720fa96ed2125f15e4b96578f486">trunc</a> (detail::fvec4SIMD const &amp;x)</td></tr>
80 <tr><td class="memItemLeft" align="right" valign="top">detail::tvec4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html#gaf44c64b2f9e70746b8a83571812670fc">vec4_cast</a> (detail::fvec4SIMD const &amp;x)</td></tr>
5181 </table>
5282 <hr/><a name="_details"></a><h2>Detailed Description</h2>
53 <p>SIMD implementation of mat4 type. </p>
54 <p>&lt;<a class="el" href="a00101_source.html">glm/gtx/simd_mat4.hpp</a>&gt; need to be included to use these functionalities. </p>
83 <p>SIMD implementation of vec4 type. </p>
84 <p>&lt;<a class="el" href="a00102_source.html">glm/gtx/simd_vec4.hpp</a>&gt; need to be included to use these functionalities. </p>
5585 <hr/><h2>Function Documentation</h2>
56 <a class="anchor" id="ga9be926c258e64bf2413671d104b393e8"></a><!-- doxytag: member="glm::gtx::simd_mat4::determinant" ref="ga9be926c258e64bf2413671d104b393e8" args="(detail::fmat4x4SIMD const &amp;m)" -->
57 <div class="memitem">
58 <div class="memproto">
59 <table class="memname">
60 <tr>
61 <td class="memname">float glm::gtx::simd_mat4::determinant </td>
62 <td>(</td>
63 <td class="paramtype">detail::fmat4x4SIMD const &amp;&#160;</td>
64 <td class="paramname"><em>m</em></td><td>)</td>
65 <td></td>
66 </tr>
67 </table>
68 </div>
69 <div class="memdoc">
70
71 <p>Return the determinant of a mat4 matrix. </p>
72 <p>(From GLM_GTX_simd_mat4 extension). </p>
73
74 </div>
75 </div>
76 <a class="anchor" id="gace9ca056446fc614a846bac6a3ee1a1e"></a><!-- doxytag: member="glm::gtx::simd_mat4::inverse" ref="gace9ca056446fc614a846bac6a3ee1a1e" args="(detail::fmat4x4SIMD const &amp;m)" -->
77 <div class="memitem">
78 <div class="memproto">
79 <table class="memname">
80 <tr>
81 <td class="memname">detail::fmat4x4SIMD glm::gtx::simd_mat4::inverse </td>
82 <td>(</td>
83 <td class="paramtype">detail::fmat4x4SIMD const &amp;&#160;</td>
84 <td class="paramname"><em>m</em></td><td>)</td>
85 <td></td>
86 </tr>
87 </table>
88 </div>
89 <div class="memdoc">
90
91 <p>Return the inverse of a mat4 matrix. </p>
92 <p>(From GLM_GTX_simd_mat4 extension). </p>
93
94 </div>
95 </div>
96 <a class="anchor" id="ga8759e2cf163948c9c7ff138c1f56d501"></a><!-- doxytag: member="glm::gtx::simd_mat4::mat4_cast" ref="ga8759e2cf163948c9c7ff138c1f56d501" args="(detail::fmat4x4SIMD const &amp;x)" -->
97 <div class="memitem">
98 <div class="memproto">
99 <table class="memname">
100 <tr>
101 <td class="memname">detail::tmat4x4&lt;float&gt; glm::gtx::simd_mat4::mat4_cast </td>
102 <td>(</td>
103 <td class="paramtype">detail::fmat4x4SIMD const &amp;&#160;</td>
104 <td class="paramname"><em>x</em></td><td>)</td>
105 <td></td>
106 </tr>
107 </table>
108 </div>
109 <div class="memdoc">
110
111 <p>Convert a simdMat4 to a mat4. </p>
112 <p>(From GLM_GTX_simd_mat4 extension) </p>
113
114 </div>
115 </div>
116 <a class="anchor" id="ga5ae5a4950d3e354236390edfaa25301a"></a><!-- doxytag: member="glm::gtx::simd_mat4::matrixCompMult" ref="ga5ae5a4950d3e354236390edfaa25301a" args="(detail::fmat4x4SIMD const &amp;x, detail::fmat4x4SIMD const &amp;y)" -->
117 <div class="memitem">
118 <div class="memproto">
119 <table class="memname">
120 <tr>
121 <td class="memname">detail::fmat4x4SIMD glm::gtx::simd_mat4::matrixCompMult </td>
122 <td>(</td>
123 <td class="paramtype">detail::fmat4x4SIMD const &amp;&#160;</td>
86 <a class="anchor" id="ga427e341830f94e41ece21ea4ebc854c3"></a><!-- doxytag: member="glm::gtx::simd_vec4::abs" ref="ga427e341830f94e41ece21ea4ebc854c3" args="(detail::fvec4SIMD const &amp;x)" -->
87 <div class="memitem">
88 <div class="memproto">
89 <table class="memname">
90 <tr>
91 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::abs </td>
92 <td>(</td>
93 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
94 <td class="paramname"><em>x</em></td><td>)</td>
95 <td></td>
96 </tr>
97 </table>
98 </div>
99 <div class="memdoc">
100
101 <p>Returns x if x &gt;= 0; otherwise, it returns -x. </p>
102 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
103
104 </div>
105 </div>
106 <a class="anchor" id="ga3ce76f0bb739c0d5f04e7bfa4251993d"></a><!-- doxytag: member="glm::gtx::simd_vec4::ceil" ref="ga3ce76f0bb739c0d5f04e7bfa4251993d" args="(detail::fvec4SIMD const &amp;x)" -->
107 <div class="memitem">
108 <div class="memproto">
109 <table class="memname">
110 <tr>
111 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::ceil </td>
112 <td>(</td>
113 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
114 <td class="paramname"><em>x</em></td><td>)</td>
115 <td></td>
116 </tr>
117 </table>
118 </div>
119 <div class="memdoc">
120
121 <p>Returns a value equal to the nearest integer to x. </p>
122 <p>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.) (From GLM_GTX_simd_vec4 extension, common function) Returns a value equal to the nearest integer that is greater than or equal to x. (From GLM_GTX_simd_vec4 extension, common function) </p>
123
124 </div>
125 </div>
126 <a class="anchor" id="ga73e895d1fdba2b620e84383517c552b0"></a><!-- doxytag: member="glm::gtx::simd_vec4::clamp" ref="ga73e895d1fdba2b620e84383517c552b0" args="(detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;minVal, detail::fvec4SIMD const &amp;maxVal)" -->
127 <div class="memitem">
128 <div class="memproto">
129 <table class="memname">
130 <tr>
131 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::clamp </td>
132 <td>(</td>
133 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
124134 <td class="paramname"><em>x</em>, </td>
125135 </tr>
126136 <tr>
127137 <td class="paramkey"></td>
128138 <td></td>
129 <td class="paramtype">detail::fmat4x4SIMD const &amp;&#160;</td>
139 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
140 <td class="paramname"><em>minVal</em>, </td>
141 </tr>
142 <tr>
143 <td class="paramkey"></td>
144 <td></td>
145 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
146 <td class="paramname"><em>maxVal</em>&#160;</td>
147 </tr>
148 <tr>
149 <td></td>
150 <td>)</td>
151 <td></td><td></td>
152 </tr>
153 </table>
154 </div>
155 <div class="memdoc">
156
157 <p>Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. </p>
158 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
159
160 </div>
161 </div>
162 <a class="anchor" id="gabe4bd036ccfd0e1d53ea828d478cdd2c"></a><!-- doxytag: member="glm::gtx::simd_vec4::cross" ref="gabe4bd036ccfd0e1d53ea828d478cdd2c" args="(detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)" -->
163 <div class="memitem">
164 <div class="memproto">
165 <table class="memname">
166 <tr>
167 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::cross </td>
168 <td>(</td>
169 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
170 <td class="paramname"><em>x</em>, </td>
171 </tr>
172 <tr>
173 <td class="paramkey"></td>
174 <td></td>
175 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
130176 <td class="paramname"><em>y</em>&#160;</td>
131177 </tr>
132178 <tr>
138184 </div>
139185 <div class="memdoc">
140186
141 <p>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]. </p>
142 <p>(From GLM_GTX_simd_mat4 extension). </p>
143
144 </div>
145 </div>
146 <a class="anchor" id="gafed2233ac30495621c2bdd4d121f9ced"></a><!-- doxytag: member="glm::gtx::simd_mat4::outerProduct" ref="gafed2233ac30495621c2bdd4d121f9ced" args="(detail::fvec4SIMD const &amp;c, detail::fvec4SIMD const &amp;r)" -->
147 <div class="memitem">
148 <div class="memproto">
149 <table class="memname">
150 <tr>
151 <td class="memname">detail::fmat4x4SIMD glm::gtx::simd_mat4::outerProduct </td>
152 <td>(</td>
153 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
154 <td class="paramname"><em>c</em>, </td>
155 </tr>
156 <tr>
157 <td class="paramkey"></td>
158 <td></td>
159 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
160 <td class="paramname"><em>r</em>&#160;</td>
161 </tr>
162 <tr>
163 <td></td>
164 <td>)</td>
165 <td></td><td></td>
166 </tr>
167 </table>
168 </div>
169 <div class="memdoc">
170
171 <p>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. </p>
172 <p>(From GLM_GTX_simd_mat4 extension). </p>
173
174 </div>
175 </div>
176 <a class="anchor" id="ga5da402c7d42808dfc8c8d51e0ac9c868"></a><!-- doxytag: member="glm::gtx::simd_mat4::transpose" ref="ga5da402c7d42808dfc8c8d51e0ac9c868" args="(detail::fmat4x4SIMD const &amp;x)" -->
177 <div class="memitem">
178 <div class="memproto">
179 <table class="memname">
180 <tr>
181 <td class="memname">detail::fmat4x4SIMD glm::gtx::simd_mat4::transpose </td>
182 <td>(</td>
183 <td class="paramtype">detail::fmat4x4SIMD const &amp;&#160;</td>
184 <td class="paramname"><em>x</em></td><td>)</td>
185 <td></td>
186 </tr>
187 </table>
188 </div>
189 <div class="memdoc">
190
191 <p>Returns the transposed matrix of x (From GLM_GTX_simd_mat4 extension). </p>
187 <p>Returns the cross product of x and y. </p>
188 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
189
190 </div>
191 </div>
192 <a class="anchor" id="gac514ca90bcc5a17bd7162ea32a220580"></a><!-- doxytag: member="glm::gtx::simd_vec4::distance" ref="gac514ca90bcc5a17bd7162ea32a220580" args="(detail::fvec4SIMD const &amp;p0, detail::fvec4SIMD const &amp;p1)" -->
193 <div class="memitem">
194 <div class="memproto">
195 <table class="memname">
196 <tr>
197 <td class="memname">float glm::gtx::simd_vec4::distance </td>
198 <td>(</td>
199 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
200 <td class="paramname"><em>p0</em>, </td>
201 </tr>
202 <tr>
203 <td class="paramkey"></td>
204 <td></td>
205 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
206 <td class="paramname"><em>p1</em>&#160;</td>
207 </tr>
208 <tr>
209 <td></td>
210 <td>)</td>
211 <td></td><td></td>
212 </tr>
213 </table>
214 </div>
215 <div class="memdoc">
216
217 <p>Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). </p>
218 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
219
220 </div>
221 </div>
222 <a class="anchor" id="gae9238f5011fd124d44dad7b39f0d5a0f"></a><!-- doxytag: member="glm::gtx::simd_vec4::distance4" ref="gae9238f5011fd124d44dad7b39f0d5a0f" args="(detail::fvec4SIMD const &amp;p0, detail::fvec4SIMD const &amp;p1)" -->
223 <div class="memitem">
224 <div class="memproto">
225 <table class="memname">
226 <tr>
227 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::distance4 </td>
228 <td>(</td>
229 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
230 <td class="paramname"><em>p0</em>, </td>
231 </tr>
232 <tr>
233 <td class="paramkey"></td>
234 <td></td>
235 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
236 <td class="paramname"><em>p1</em>&#160;</td>
237 </tr>
238 <tr>
239 <td></td>
240 <td>)</td>
241 <td></td><td></td>
242 </tr>
243 </table>
244 </div>
245 <div class="memdoc">
246
247 <p>Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). </p>
248 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
249
250 </div>
251 </div>
252 <a class="anchor" id="gaa50f94e3de246ea1a1914266aef2f74b"></a><!-- doxytag: member="glm::gtx::simd_vec4::dot4" ref="gaa50f94e3de246ea1a1914266aef2f74b" args="(detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)" -->
253 <div class="memitem">
254 <div class="memproto">
255 <table class="memname">
256 <tr>
257 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::dot4 </td>
258 <td>(</td>
259 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
260 <td class="paramname"><em>x</em>, </td>
261 </tr>
262 <tr>
263 <td class="paramkey"></td>
264 <td></td>
265 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
266 <td class="paramname"><em>y</em>&#160;</td>
267 </tr>
268 <tr>
269 <td></td>
270 <td>)</td>
271 <td></td><td></td>
272 </tr>
273 </table>
274 </div>
275 <div class="memdoc">
276
277 <p>Returns the dot product of x and y, i.e., result = x * y. </p>
278 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
279
280 </div>
281 </div>
282 <a class="anchor" id="gab299477526abc9646263950bfbe32b3f"></a><!-- doxytag: member="glm::gtx::simd_vec4::fastInversesqrt" ref="gab299477526abc9646263950bfbe32b3f" args="(detail::fvec4SIMD const &amp;x)" -->
283 <div class="memitem">
284 <div class="memproto">
285 <table class="memname">
286 <tr>
287 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::fastInversesqrt </td>
288 <td>(</td>
289 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
290 <td class="paramname"><em>x</em></td><td>)</td>
291 <td></td>
292 </tr>
293 </table>
294 </div>
295 <div class="memdoc">
296
297 <p>Returns the reciprocal of the positive square root of x. </p>
298 <p>Faster than inversesqrt but less accurate. (From GLM_GTX_simd_vec4 extension, exponential function) </p>
299
300 </div>
301 </div>
302 <a class="anchor" id="ga0d4469acfe98c8b2eab8696bf25a3dde"></a><!-- doxytag: member="glm::gtx::simd_vec4::fastLength" ref="ga0d4469acfe98c8b2eab8696bf25a3dde" args="(detail::fvec4SIMD const &amp;x)" -->
303 <div class="memitem">
304 <div class="memproto">
305 <table class="memname">
306 <tr>
307 <td class="memname">float glm::gtx::simd_vec4::fastLength </td>
308 <td>(</td>
309 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
310 <td class="paramname"><em>x</em></td><td>)</td>
311 <td></td>
312 </tr>
313 </table>
314 </div>
315 <div class="memdoc">
316
317 <p>Returns the length of x, i.e., sqrt(x * x). </p>
318 <p>Less accurate but much faster than simdLength. (From GLM_GTX_simd_vec4 extension, geometry functions) </p>
319
320 </div>
321 </div>
322 <a class="anchor" id="ga1c85830900d5d3f29902b12d46c60dd3"></a><!-- doxytag: member="glm::gtx::simd_vec4::fastLength4" ref="ga1c85830900d5d3f29902b12d46c60dd3" args="(detail::fvec4SIMD const &amp;x)" -->
323 <div class="memitem">
324 <div class="memproto">
325 <table class="memname">
326 <tr>
327 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::fastLength4 </td>
328 <td>(</td>
329 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
330 <td class="paramname"><em>x</em></td><td>)</td>
331 <td></td>
332 </tr>
333 </table>
334 </div>
335 <div class="memdoc">
336
337 <p>Returns the length of x, i.e., sqrt(x * x). </p>
338 <p>Less accurate but much faster than simdLength4. (From GLM_GTX_simd_vec4 extension, geometry functions) </p>
339
340 </div>
341 </div>
342 <a class="anchor" id="ga58eeeead0d2b381f7d461dac26381125"></a><!-- doxytag: member="glm::gtx::simd_vec4::fastNormalize" ref="ga58eeeead0d2b381f7d461dac26381125" args="(detail::fvec4SIMD const &amp;x)" -->
343 <div class="memitem">
344 <div class="memproto">
345 <table class="memname">
346 <tr>
347 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::fastNormalize </td>
348 <td>(</td>
349 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
350 <td class="paramname"><em>x</em></td><td>)</td>
351 <td></td>
352 </tr>
353 </table>
354 </div>
355 <div class="memdoc">
356
357 <p>Returns a vector in the same direction as x but with length of 1. </p>
358 <p>Less accurate but much faster than simdNormalize. (From GLM_GTX_simd_vec4 extension, geometry functions) </p>
359
360 </div>
361 </div>
362 <a class="anchor" id="ga56465ed17cafbff1e225f82eeb7184e5"></a><!-- doxytag: member="glm::gtx::simd_vec4::fastSqrt" ref="ga56465ed17cafbff1e225f82eeb7184e5" args="(detail::fvec4SIMD const &amp;x)" -->
363 <div class="memitem">
364 <div class="memproto">
365 <table class="memname">
366 <tr>
367 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::fastSqrt </td>
368 <td>(</td>
369 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
370 <td class="paramname"><em>x</em></td><td>)</td>
371 <td></td>
372 </tr>
373 </table>
374 </div>
375 <div class="memdoc">
376
377 <p>Returns the positive square root of x Less accurate but much faster than sqrt. </p>
378 <p>(From GLM_GTX_simd_vec4 extension, exponential function) </p>
379
380 </div>
381 </div>
382 <a class="anchor" id="gab7b1e6c9349aec87e1d3346e867588d6"></a><!-- doxytag: member="glm::gtx::simd_vec4::floor" ref="gab7b1e6c9349aec87e1d3346e867588d6" args="(detail::fvec4SIMD const &amp;x)" -->
383 <div class="memitem">
384 <div class="memproto">
385 <table class="memname">
386 <tr>
387 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::floor </td>
388 <td>(</td>
389 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
390 <td class="paramname"><em>x</em></td><td>)</td>
391 <td></td>
392 </tr>
393 </table>
394 </div>
395 <div class="memdoc">
396
397 <p>Returns a value equal to the nearest integer that is less then or equal to x. </p>
398 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
399
400 </div>
401 </div>
402 <a class="anchor" id="ga4b9f36f4524482b43324f4631944569d"></a><!-- doxytag: member="glm::gtx::simd_vec4::fma" ref="ga4b9f36f4524482b43324f4631944569d" args="(detail::fvec4SIMD const &amp;a, detail::fvec4SIMD const &amp;b, detail::fvec4SIMD const &amp;c)" -->
403 <div class="memitem">
404 <div class="memproto">
405 <table class="memname">
406 <tr>
407 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::fma </td>
408 <td>(</td>
409 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
410 <td class="paramname"><em>a</em>, </td>
411 </tr>
412 <tr>
413 <td class="paramkey"></td>
414 <td></td>
415 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
416 <td class="paramname"><em>b</em>, </td>
417 </tr>
418 <tr>
419 <td class="paramkey"></td>
420 <td></td>
421 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
422 <td class="paramname"><em>c</em>&#160;</td>
423 </tr>
424 <tr>
425 <td></td>
426 <td>)</td>
427 <td></td><td></td>
428 </tr>
429 </table>
430 </div>
431 <div class="memdoc">
432
433 <p>Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. </p>
434 <p>Returns false otherwise, including for implementations with no NaN representations. (From GLM_GTX_simd_vec4 extension, common function) 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. (From GLM_GTX_simd_vec4 extension, common function) Returns a signed or unsigned integer value representing the encoding of a floating-point value. The floatingpoint value's bit-level representation is preserved. (From GLM_GTX_simd_vec4 extension, common function) Returns a floating-point value corresponding to a signed or 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. (From GLM_GTX_simd_vec4 extension, common function) Computes and returns a * b + c. (From GLM_GTX_simd_vec4 extension, common function) </p>
435
436 </div>
437 </div>
438 <a class="anchor" id="ga0a98f9d76fee0ca46c1f97861e3e366c"></a><!-- doxytag: member="glm::gtx::simd_vec4::fract" ref="ga0a98f9d76fee0ca46c1f97861e3e366c" args="(detail::fvec4SIMD const &amp;x)" -->
439 <div class="memitem">
440 <div class="memproto">
441 <table class="memname">
442 <tr>
443 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::fract </td>
444 <td>(</td>
445 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
446 <td class="paramname"><em>x</em></td><td>)</td>
447 <td></td>
448 </tr>
449 </table>
450 </div>
451 <div class="memdoc">
452
453 <p>Return x - floor(x). </p>
454 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
455
456 </div>
457 </div>
458 <a class="anchor" id="gaa4e215b72e48012a6388a1477c84e2ad"></a><!-- doxytag: member="glm::gtx::simd_vec4::inversesqrt" ref="gaa4e215b72e48012a6388a1477c84e2ad" args="(detail::fvec4SIMD const &amp;x)" -->
459 <div class="memitem">
460 <div class="memproto">
461 <table class="memname">
462 <tr>
463 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::inversesqrt </td>
464 <td>(</td>
465 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
466 <td class="paramname"><em>x</em></td><td>)</td>
467 <td></td>
468 </tr>
469 </table>
470 </div>
471 <div class="memdoc">
472
473 <p>Returns the reciprocal of the positive square root of x. </p>
474 <p>(From GLM_GTX_simd_vec4 extension, exponential function) </p>
475
476 </div>
477 </div>
478 <a class="anchor" id="gaf76a38ce8c466c9b0bc4c1b5db1a6faa"></a><!-- doxytag: member="glm::gtx::simd_vec4::length" ref="gaf76a38ce8c466c9b0bc4c1b5db1a6faa" args="(detail::fvec4SIMD const &amp;x)" -->
479 <div class="memitem">
480 <div class="memproto">
481 <table class="memname">
482 <tr>
483 <td class="memname">float glm::gtx::simd_vec4::length </td>
484 <td>(</td>
485 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
486 <td class="paramname"><em>x</em></td><td>)</td>
487 <td></td>
488 </tr>
489 </table>
490 </div>
491 <div class="memdoc">
492
493 <p>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. </p>
494 <p>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. (From GLM_GTX_simd_vec4 extension, common function) 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. (From GLM_GTX_simd_vec4 extension, common function) Returns the length of x, i.e., sqrt(x * x). (From GLM_GTX_simd_vec4 extension, geometry functions) </p>
495
496 </div>
497 </div>
498 <a class="anchor" id="ga6c7fffeb58db66f602585b24a8e4f2db"></a><!-- doxytag: member="glm::gtx::simd_vec4::length4" ref="ga6c7fffeb58db66f602585b24a8e4f2db" args="(detail::fvec4SIMD const &amp;x)" -->
499 <div class="memitem">
500 <div class="memproto">
501 <table class="memname">
502 <tr>
503 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::length4 </td>
504 <td>(</td>
505 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
506 <td class="paramname"><em>x</em></td><td>)</td>
507 <td></td>
508 </tr>
509 </table>
510 </div>
511 <div class="memdoc">
512
513 <p>Returns the length of x, i.e., sqrt(x * x). </p>
514 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
515
516 </div>
517 </div>
518 <a class="anchor" id="ga10dbe289232abf23c8d668c646ff05d6"></a><!-- doxytag: member="glm::gtx::simd_vec4::max" ref="ga10dbe289232abf23c8d668c646ff05d6" args="(detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)" -->
519 <div class="memitem">
520 <div class="memproto">
521 <table class="memname">
522 <tr>
523 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::max </td>
524 <td>(</td>
525 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
526 <td class="paramname"><em>x</em>, </td>
527 </tr>
528 <tr>
529 <td class="paramkey"></td>
530 <td></td>
531 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
532 <td class="paramname"><em>y</em>&#160;</td>
533 </tr>
534 <tr>
535 <td></td>
536 <td>)</td>
537 <td></td><td></td>
538 </tr>
539 </table>
540 </div>
541 <div class="memdoc">
542
543 <p>Returns y if x &lt; y; otherwise, it returns x. </p>
544 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
545
546 </div>
547 </div>
548 <a class="anchor" id="gac8850ebd4ae655de76f375105cf7b3d8"></a><!-- doxytag: member="glm::gtx::simd_vec4::min" ref="gac8850ebd4ae655de76f375105cf7b3d8" args="(detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)" -->
549 <div class="memitem">
550 <div class="memproto">
551 <table class="memname">
552 <tr>
553 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::min </td>
554 <td>(</td>
555 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
556 <td class="paramname"><em>x</em>, </td>
557 </tr>
558 <tr>
559 <td class="paramkey"></td>
560 <td></td>
561 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
562 <td class="paramname"><em>y</em>&#160;</td>
563 </tr>
564 <tr>
565 <td></td>
566 <td>)</td>
567 <td></td><td></td>
568 </tr>
569 </table>
570 </div>
571 <div class="memdoc">
572
573 <p>Returns the fractional part of x and sets i to the integer part (as a whole number floating point value). </p>
574 <p>Both the return value and the output parameter will have the same sign as x. (From GLM_GTX_simd_vec4 extension, common function) Returns y if y &lt; x; otherwise, it returns x. (From GLM_GTX_simd_vec4 extension, common function) </p>
575
576 </div>
577 </div>
578 <a class="anchor" id="gafb120dd721c6b87f5f23c3edd159cfaa"></a><!-- doxytag: member="glm::gtx::simd_vec4::mix" ref="gafb120dd721c6b87f5f23c3edd159cfaa" args="(detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y, detail::fvec4SIMD const &amp;a)" -->
579 <div class="memitem">
580 <div class="memproto">
581 <table class="memname">
582 <tr>
583 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::mix </td>
584 <td>(</td>
585 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
586 <td class="paramname"><em>x</em>, </td>
587 </tr>
588 <tr>
589 <td class="paramkey"></td>
590 <td></td>
591 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
592 <td class="paramname"><em>y</em>, </td>
593 </tr>
594 <tr>
595 <td class="paramkey"></td>
596 <td></td>
597 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
598 <td class="paramname"><em>a</em>&#160;</td>
599 </tr>
600 <tr>
601 <td></td>
602 <td>)</td>
603 <td></td><td></td>
604 </tr>
605 </table>
606 </div>
607 <div class="memdoc">
608
609 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
610 <dl class="return"><dt><b>Returns:</b></dt><dd>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].</dd>
611 <dd>
612 If genTypeU is a boolean scalar or vector: Selects which vector each returned component comes from. For a component of a 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.</dd></dl>
613 <p>From GLSL 1.30.08 specification, section 8.3</p>
614 <dl><dt><b>Parameters:</b></dt><dd>
615 <table class="params">
616 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Floating point scalar or vector. </td></tr>
617 <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Floating point scalar or vector. </td></tr>
618 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Floating point or boolean scalar or vector. </td></tr>
619 </table>
620 </dd>
621 </dl>
622
623 </div>
624 </div>
625 <a class="anchor" id="gaf95a2c5c60a6f2a36911d32901e44aba"></a><!-- doxytag: member="glm::gtx::simd_vec4::mod" ref="gaf95a2c5c60a6f2a36911d32901e44aba" args="(detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)" -->
626 <div class="memitem">
627 <div class="memproto">
628 <table class="memname">
629 <tr>
630 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::mod </td>
631 <td>(</td>
632 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
633 <td class="paramname"><em>x</em>, </td>
634 </tr>
635 <tr>
636 <td class="paramkey"></td>
637 <td></td>
638 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
639 <td class="paramname"><em>y</em>&#160;</td>
640 </tr>
641 <tr>
642 <td></td>
643 <td>)</td>
644 <td></td><td></td>
645 </tr>
646 </table>
647 </div>
648 <div class="memdoc">
649
650 <p>Modulus. </p>
651 <p>Returns x - y * floor(x / y) for each component in x using the floating point value y. (From GLM_GTX_simd_vec4 extension, common function) </p>
652
653 </div>
654 </div>
655 <a class="anchor" id="gaba1f7a090566667c615a4a53c2f4a0c6"></a><!-- doxytag: member="glm::gtx::simd_vec4::mod" ref="gaba1f7a090566667c615a4a53c2f4a0c6" args="(detail::fvec4SIMD const &amp;x, float const &amp;y)" -->
656 <div class="memitem">
657 <div class="memproto">
658 <table class="memname">
659 <tr>
660 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::mod </td>
661 <td>(</td>
662 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
663 <td class="paramname"><em>x</em>, </td>
664 </tr>
665 <tr>
666 <td class="paramkey"></td>
667 <td></td>
668 <td class="paramtype">float const &amp;&#160;</td>
669 <td class="paramname"><em>y</em>&#160;</td>
670 </tr>
671 <tr>
672 <td></td>
673 <td>)</td>
674 <td></td><td></td>
675 </tr>
676 </table>
677 </div>
678 <div class="memdoc">
679
680 <p>Modulus. </p>
681 <p>Returns x - y * floor(x / y) for each component in x using the floating point value y. (From GLM_GTX_simd_vec4 extension, common function) </p>
682
683 </div>
684 </div>
685 <a class="anchor" id="ga97a71f5eed0feb541ea1131a46e4422e"></a><!-- doxytag: member="glm::gtx::simd_vec4::niceLength" ref="ga97a71f5eed0feb541ea1131a46e4422e" args="(detail::fvec4SIMD const &amp;x)" -->
686 <div class="memitem">
687 <div class="memproto">
688 <table class="memname">
689 <tr>
690 <td class="memname">float glm::gtx::simd_vec4::niceLength </td>
691 <td>(</td>
692 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
693 <td class="paramname"><em>x</em></td><td>)</td>
694 <td></td>
695 </tr>
696 </table>
697 </div>
698 <div class="memdoc">
699
700 <p>Returns the length of x, i.e., sqrt(x * x). </p>
701 <p>Slightly more accurate but much slower than simdLength. (From GLM_GTX_simd_vec4 extension, geometry functions) </p>
702
703 </div>
704 </div>
705 <a class="anchor" id="ga159f5857abf0df4250bae94f95b9d015"></a><!-- doxytag: member="glm::gtx::simd_vec4::niceLength4" ref="ga159f5857abf0df4250bae94f95b9d015" args="(detail::fvec4SIMD const &amp;x)" -->
706 <div class="memitem">
707 <div class="memproto">
708 <table class="memname">
709 <tr>
710 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::niceLength4 </td>
711 <td>(</td>
712 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
713 <td class="paramname"><em>x</em></td><td>)</td>
714 <td></td>
715 </tr>
716 </table>
717 </div>
718 <div class="memdoc">
719
720 <p>Returns the length of x, i.e., sqrt(x * x). </p>
721 <p>Slightly more accurate but much slower than simdLength4. (From GLM_GTX_simd_vec4 extension, geometry functions) </p>
722
723 </div>
724 </div>
725 <a class="anchor" id="ga163877845325804cda05e8b5142822d5"></a><!-- doxytag: member="glm::gtx::simd_vec4::niceSqrt" ref="ga163877845325804cda05e8b5142822d5" args="(detail::fvec4SIMD const &amp;x)" -->
726 <div class="memitem">
727 <div class="memproto">
728 <table class="memname">
729 <tr>
730 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::niceSqrt </td>
731 <td>(</td>
732 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
733 <td class="paramname"><em>x</em></td><td>)</td>
734 <td></td>
735 </tr>
736 </table>
737 </div>
738 <div class="memdoc">
739
740 <p>Returns the positive square root of x with the nicest quality but very slow. </p>
741 <p>Slightly more accurate but much slower than simdSqrt. (From GLM_GTX_simd_vec4 extension, exponential function) </p>
742
743 </div>
744 </div>
745 <a class="anchor" id="ga4e5cbc78bdd522b61ecd2154b50251af"></a><!-- doxytag: member="glm::gtx::simd_vec4::normalize" ref="ga4e5cbc78bdd522b61ecd2154b50251af" args="(detail::fvec4SIMD const &amp;x)" -->
746 <div class="memitem">
747 <div class="memproto">
748 <table class="memname">
749 <tr>
750 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::normalize </td>
751 <td>(</td>
752 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
753 <td class="paramname"><em>x</em></td><td>)</td>
754 <td></td>
755 </tr>
756 </table>
757 </div>
758 <div class="memdoc">
759
760 <p>Returns a vector in the same direction as x but with length of 1. </p>
761 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
762
763 </div>
764 </div>
765 <a class="anchor" id="ga42f1073cf493e7c299c72ae95180265d"></a><!-- doxytag: member="glm::gtx::simd_vec4::reflect" ref="ga42f1073cf493e7c299c72ae95180265d" args="(detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;N)" -->
766 <div class="memitem">
767 <div class="memproto">
768 <table class="memname">
769 <tr>
770 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::reflect </td>
771 <td>(</td>
772 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
773 <td class="paramname"><em>I</em>, </td>
774 </tr>
775 <tr>
776 <td class="paramkey"></td>
777 <td></td>
778 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
779 <td class="paramname"><em>N</em>&#160;</td>
780 </tr>
781 <tr>
782 <td></td>
783 <td>)</td>
784 <td></td><td></td>
785 </tr>
786 </table>
787 </div>
788 <div class="memdoc">
789
790 <p>For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N. </p>
791 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
792
793 </div>
794 </div>
795 <a class="anchor" id="ga894c3ec0524d03313dc9c72d36290c00"></a><!-- doxytag: member="glm::gtx::simd_vec4::refract" ref="ga894c3ec0524d03313dc9c72d36290c00" args="(detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;N, float const &amp;eta)" -->
796 <div class="memitem">
797 <div class="memproto">
798 <table class="memname">
799 <tr>
800 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::refract </td>
801 <td>(</td>
802 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
803 <td class="paramname"><em>I</em>, </td>
804 </tr>
805 <tr>
806 <td class="paramkey"></td>
807 <td></td>
808 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
809 <td class="paramname"><em>N</em>, </td>
810 </tr>
811 <tr>
812 <td class="paramkey"></td>
813 <td></td>
814 <td class="paramtype">float const &amp;&#160;</td>
815 <td class="paramname"><em>eta</em>&#160;</td>
816 </tr>
817 <tr>
818 <td></td>
819 <td>)</td>
820 <td></td><td></td>
821 </tr>
822 </table>
823 </div>
824 <div class="memdoc">
825
826 <p>For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector. </p>
827 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
828
829 </div>
830 </div>
831 <a class="anchor" id="gad17e750a691edfe51fd1f60d8cac2329"></a><!-- doxytag: member="glm::gtx::simd_vec4::round" ref="gad17e750a691edfe51fd1f60d8cac2329" args="(detail::fvec4SIMD const &amp;x)" -->
832 <div class="memitem">
833 <div class="memproto">
834 <table class="memname">
835 <tr>
836 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::round </td>
837 <td>(</td>
838 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
839 <td class="paramname"><em>x</em></td><td>)</td>
840 <td></td>
841 </tr>
842 </table>
843 </div>
844 <div class="memdoc">
845
846 <p>Returns a value equal to the nearest integer to x. </p>
847 <p>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. (From GLM_GTX_simd_vec4 extension, common function) </p>
848
849 </div>
850 </div>
851 <a class="anchor" id="ga5a32ecd67af075293c5c8278f2938d4d"></a><!-- doxytag: member="glm::gtx::simd_vec4::sign" ref="ga5a32ecd67af075293c5c8278f2938d4d" args="(detail::fvec4SIMD const &amp;x)" -->
852 <div class="memitem">
853 <div class="memproto">
854 <table class="memname">
855 <tr>
856 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::sign </td>
857 <td>(</td>
858 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
859 <td class="paramname"><em>x</em></td><td>)</td>
860 <td></td>
861 </tr>
862 </table>
863 </div>
864 <div class="memdoc">
865
866 <p>Returns 1.0 if x &gt; 0, 0.0 if x = 0, or -1.0 if x &lt; 0. </p>
867 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
868
869 </div>
870 </div>
871 <a class="anchor" id="ga44faf22be31f5809ed97bf611a56f3e9"></a><!-- doxytag: member="glm::gtx::simd_vec4::simdDot" ref="ga44faf22be31f5809ed97bf611a56f3e9" args="(detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)" -->
872 <div class="memitem">
873 <div class="memproto">
874 <table class="memname">
875 <tr>
876 <td class="memname">float glm::gtx::simd_vec4::simdDot </td>
877 <td>(</td>
878 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
879 <td class="paramname"><em>x</em>, </td>
880 </tr>
881 <tr>
882 <td class="paramkey"></td>
883 <td></td>
884 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
885 <td class="paramname"><em>y</em>&#160;</td>
886 </tr>
887 <tr>
888 <td></td>
889 <td>)</td>
890 <td></td><td></td>
891 </tr>
892 </table>
893 </div>
894 <div class="memdoc">
895
896 <p>Returns the dot product of x and y, i.e., result = x * y. </p>
897 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
898
899 </div>
900 </div>
901 <a class="anchor" id="gac11cb08f6ba68f761b7146a60e72da55"></a><!-- doxytag: member="glm::gtx::simd_vec4::simdFaceforward" ref="gac11cb08f6ba68f761b7146a60e72da55" args="(detail::fvec4SIMD const &amp;N, detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;Nref)" -->
902 <div class="memitem">
903 <div class="memproto">
904 <table class="memname">
905 <tr>
906 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::simdFaceforward </td>
907 <td>(</td>
908 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
909 <td class="paramname"><em>N</em>, </td>
910 </tr>
911 <tr>
912 <td class="paramkey"></td>
913 <td></td>
914 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
915 <td class="paramname"><em>I</em>, </td>
916 </tr>
917 <tr>
918 <td class="paramkey"></td>
919 <td></td>
920 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
921 <td class="paramname"><em>Nref</em>&#160;</td>
922 </tr>
923 <tr>
924 <td></td>
925 <td>)</td>
926 <td></td><td></td>
927 </tr>
928 </table>
929 </div>
930 <div class="memdoc">
931
932 <p>If dot(Nref, I) &lt; 0.0, return N, otherwise, return -N. </p>
933 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
934
935 </div>
936 </div>
937 <a class="anchor" id="gaeadaacf6c87b0699292de98b7140a278"></a><!-- doxytag: member="glm::gtx::simd_vec4::smoothstep" ref="gaeadaacf6c87b0699292de98b7140a278" args="(detail::fvec4SIMD const &amp;edge0, detail::fvec4SIMD const &amp;edge1, detail::fvec4SIMD const &amp;x)" -->
938 <div class="memitem">
939 <div class="memproto">
940 <table class="memname">
941 <tr>
942 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::smoothstep </td>
943 <td>(</td>
944 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
945 <td class="paramname"><em>edge0</em>, </td>
946 </tr>
947 <tr>
948 <td class="paramkey"></td>
949 <td></td>
950 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
951 <td class="paramname"><em>edge1</em>, </td>
952 </tr>
953 <tr>
954 <td class="paramkey"></td>
955 <td></td>
956 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
957 <td class="paramname"><em>x</em>&#160;</td>
958 </tr>
959 <tr>
960 <td></td>
961 <td>)</td>
962 <td></td><td></td>
963 </tr>
964 </table>
965 </div>
966 <div class="memdoc">
967
968 <p>Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 &lt; x &lt; edge1. </p>
969 <p>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 &gt;= edge1. (From GLM_GTX_simd_vec4 extension, common function) </p>
970
971 </div>
972 </div>
973 <a class="anchor" id="ga28dbd1d165fc4301de4fb16a049fcfb2"></a><!-- doxytag: member="glm::gtx::simd_vec4::sqrt" ref="ga28dbd1d165fc4301de4fb16a049fcfb2" args="(detail::fvec4SIMD const &amp;x)" -->
974 <div class="memitem">
975 <div class="memproto">
976 <table class="memname">
977 <tr>
978 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::sqrt </td>
979 <td>(</td>
980 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
981 <td class="paramname"><em>x</em></td><td>)</td>
982 <td></td>
983 </tr>
984 </table>
985 </div>
986 <div class="memdoc">
987
988 <p>Returns the positive square root of x. </p>
989 <p>(From GLM_GTX_simd_vec4 extension, exponential function) </p>
990
991 </div>
992 </div>
993 <a class="anchor" id="ga459647604ac2aa0a97c4eb739a7302cb"></a><!-- doxytag: member="glm::gtx::simd_vec4::step" ref="ga459647604ac2aa0a97c4eb739a7302cb" args="(detail::fvec4SIMD const &amp;edge, detail::fvec4SIMD const &amp;x)" -->
994 <div class="memitem">
995 <div class="memproto">
996 <table class="memname">
997 <tr>
998 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::step </td>
999 <td>(</td>
1000 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
1001 <td class="paramname"><em>edge</em>, </td>
1002 </tr>
1003 <tr>
1004 <td class="paramkey"></td>
1005 <td></td>
1006 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
1007 <td class="paramname"><em>x</em>&#160;</td>
1008 </tr>
1009 <tr>
1010 <td></td>
1011 <td>)</td>
1012 <td></td><td></td>
1013 </tr>
1014 </table>
1015 </div>
1016 <div class="memdoc">
1017
1018 <p>Returns 0.0 if x &lt; edge, otherwise it returns 1.0. </p>
1019 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
1020
1021 </div>
1022 </div>
1023 <a class="anchor" id="ga4733720fa96ed2125f15e4b96578f486"></a><!-- doxytag: member="glm::gtx::simd_vec4::trunc" ref="ga4733720fa96ed2125f15e4b96578f486" args="(detail::fvec4SIMD const &amp;x)" -->
1024 <div class="memitem">
1025 <div class="memproto">
1026 <table class="memname">
1027 <tr>
1028 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::trunc </td>
1029 <td>(</td>
1030 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
1031 <td class="paramname"><em>x</em></td><td>)</td>
1032 <td></td>
1033 </tr>
1034 </table>
1035 </div>
1036 <div class="memdoc">
1037
1038 <p>Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x. </p>
1039 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
1040
1041 </div>
1042 </div>
1043 <a class="anchor" id="gaf44c64b2f9e70746b8a83571812670fc"></a><!-- doxytag: member="glm::gtx::simd_vec4::vec4_cast" ref="gaf44c64b2f9e70746b8a83571812670fc" args="(detail::fvec4SIMD const &amp;x)" -->
1044 <div class="memitem">
1045 <div class="memproto">
1046 <table class="memname">
1047 <tr>
1048 <td class="memname">detail::tvec4&lt;float&gt; glm::gtx::simd_vec4::vec4_cast </td>
1049 <td>(</td>
1050 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
1051 <td class="paramname"><em>x</em></td><td>)</td>
1052 <td></td>
1053 </tr>
1054 </table>
1055 </div>
1056 <div class="memdoc">
1057
1058 <p>Convert a simdVec4 to a vec4. </p>
1059 <p>(From GLM_GTX_simd_vec4 extension) </p>
1921060
1931061 </div>
1941062 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_simd_vec4: SIMD vec4 type and functions</title>
4 <title>GLM_GTX_spline: Spline</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_simd_vec4: SIMD vec4 type and functions</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_spline: Spline</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>SIMD implementation of vec4 type.
38 <p>Spline functions.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga427e341830f94e41ece21ea4ebc854c3">abs</a> (detail::fvec4SIMD const &amp;x)</td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga3ce76f0bb739c0d5f04e7bfa4251993d">ceil</a> (detail::fvec4SIMD const &amp;x)</td></tr>
45 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga73e895d1fdba2b620e84383517c552b0">clamp</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;minVal, detail::fvec4SIMD const &amp;maxVal)</td></tr>
46 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gabe4bd036ccfd0e1d53ea828d478cdd2c">cross</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gac514ca90bcc5a17bd7162ea32a220580">distance</a> (detail::fvec4SIMD const &amp;p0, detail::fvec4SIMD const &amp;p1)</td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gae9238f5011fd124d44dad7b39f0d5a0f">distance4</a> (detail::fvec4SIMD const &amp;p0, detail::fvec4SIMD const &amp;p1)</td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gaa50f94e3de246ea1a1914266aef2f74b">dot4</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gab299477526abc9646263950bfbe32b3f">fastInversesqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga0d4469acfe98c8b2eab8696bf25a3dde">fastLength</a> (detail::fvec4SIMD const &amp;x)</td></tr>
52 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga1c85830900d5d3f29902b12d46c60dd3">fastLength4</a> (detail::fvec4SIMD const &amp;x)</td></tr>
53 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga58eeeead0d2b381f7d461dac26381125">fastNormalize</a> (detail::fvec4SIMD const &amp;x)</td></tr>
54 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga56465ed17cafbff1e225f82eeb7184e5">fastSqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
55 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gab7b1e6c9349aec87e1d3346e867588d6">floor</a> (detail::fvec4SIMD const &amp;x)</td></tr>
56 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga4b9f36f4524482b43324f4631944569d">fma</a> (detail::fvec4SIMD const &amp;a, detail::fvec4SIMD const &amp;b, detail::fvec4SIMD const &amp;c)</td></tr>
57 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga0a98f9d76fee0ca46c1f97861e3e366c">fract</a> (detail::fvec4SIMD const &amp;x)</td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeda6f1f188c8e15cb4ad041bdbcbc22b"></a><!-- doxytag: member="gtx_simd_vec4::GLM_ALIGNED_STRUCT" ref="gaeda6f1f188c8e15cb4ad041bdbcbc22b" args="(4) fvec4SIMD" -->
59 &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gaeda6f1f188c8e15cb4ad041bdbcbc22b">GLM_ALIGNED_STRUCT</a> (4) fvec4SIMD</td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gaa4e215b72e48012a6388a1477c84e2ad">inversesqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
61 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gaf76a38ce8c466c9b0bc4c1b5db1a6faa">length</a> (detail::fvec4SIMD const &amp;x)</td></tr>
62 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga6c7fffeb58db66f602585b24a8e4f2db">length4</a> (detail::fvec4SIMD const &amp;x)</td></tr>
63 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga10dbe289232abf23c8d668c646ff05d6">max</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
64 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gac8850ebd4ae655de76f375105cf7b3d8">min</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
65 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gafb120dd721c6b87f5f23c3edd159cfaa">mix</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y, detail::fvec4SIMD const &amp;a)</td></tr>
66 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gaf95a2c5c60a6f2a36911d32901e44aba">mod</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
67 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gaba1f7a090566667c615a4a53c2f4a0c6">mod</a> (detail::fvec4SIMD const &amp;x, float const &amp;y)</td></tr>
68 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga97a71f5eed0feb541ea1131a46e4422e">niceLength</a> (detail::fvec4SIMD const &amp;x)</td></tr>
69 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga159f5857abf0df4250bae94f95b9d015">niceLength4</a> (detail::fvec4SIMD const &amp;x)</td></tr>
70 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga163877845325804cda05e8b5142822d5">niceSqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
71 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga4e5cbc78bdd522b61ecd2154b50251af">normalize</a> (detail::fvec4SIMD const &amp;x)</td></tr>
72 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga42f1073cf493e7c299c72ae95180265d">reflect</a> (detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;N)</td></tr>
73 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga894c3ec0524d03313dc9c72d36290c00">refract</a> (detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;N, float const &amp;eta)</td></tr>
74 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gad17e750a691edfe51fd1f60d8cac2329">round</a> (detail::fvec4SIMD const &amp;x)</td></tr>
75 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga5a32ecd67af075293c5c8278f2938d4d">sign</a> (detail::fvec4SIMD const &amp;x)</td></tr>
76 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga44faf22be31f5809ed97bf611a56f3e9">simdDot</a> (detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)</td></tr>
77 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gac11cb08f6ba68f761b7146a60e72da55">simdFaceforward</a> (detail::fvec4SIMD const &amp;N, detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;Nref)</td></tr>
78 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gaeadaacf6c87b0699292de98b7140a278">smoothstep</a> (detail::fvec4SIMD const &amp;edge0, detail::fvec4SIMD const &amp;edge1, detail::fvec4SIMD const &amp;x)</td></tr>
79 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga28dbd1d165fc4301de4fb16a049fcfb2">sqrt</a> (detail::fvec4SIMD const &amp;x)</td></tr>
80 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga459647604ac2aa0a97c4eb739a7302cb">step</a> (detail::fvec4SIMD const &amp;edge, detail::fvec4SIMD const &amp;x)</td></tr>
81 <tr><td class="memItemLeft" align="right" valign="top">detail::fvec4SIMD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ga4733720fa96ed2125f15e4b96578f486">trunc</a> (detail::fvec4SIMD const &amp;x)</td></tr>
82 <tr><td class="memItemLeft" align="right" valign="top">detail::tvec4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#gaf44c64b2f9e70746b8a83571812670fc">vec4_cast</a> (detail::fvec4SIMD const &amp;x)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00292.html#gaecb37259be4b2370eab845c6d531f55b">catmullRom</a> (genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00292.html#gaae38edb178e0256e966955b19b61f617">cubic</a> (genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00292.html#ga3ea772a4bdf8b3514ef12b47944c844c">hermite</a> (genType const &amp;v1, genType const &amp;t1, genType const &amp;v2, genType const &amp;t2, typename genType::value_type const &amp;s)</td></tr>
8349 </table>
8450 <hr/><a name="_details"></a><h2>Detailed Description</h2>
85 <p>SIMD implementation of vec4 type. </p>
86 <p>&lt;<a class="el" href="a00102_source.html">glm/gtx/simd_vec4.hpp</a>&gt; need to be included to use these functionalities. </p>
51 <p>Spline functions. </p>
52 <p>&lt;<a class="el" href="a00104_source.html">glm/gtx/spline.hpp</a>&gt; need to be included to use these functionalities. </p>
8753 <hr/><h2>Function Documentation</h2>
88 <a class="anchor" id="ga427e341830f94e41ece21ea4ebc854c3"></a><!-- doxytag: member="glm::gtx::simd_vec4::abs" ref="ga427e341830f94e41ece21ea4ebc854c3" args="(detail::fvec4SIMD const &amp;x)" -->
54 <a class="anchor" id="gaecb37259be4b2370eab845c6d531f55b"></a><!-- doxytag: member="glm::gtx::spline::catmullRom" ref="gaecb37259be4b2370eab845c6d531f55b" args="(genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)" -->
8955 <div class="memitem">
9056 <div class="memproto">
9157 <table class="memname">
9258 <tr>
93 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::abs </td>
59 <td class="memname">genType catmullRom </td>
9460 <td>(</td>
95 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
96 <td class="paramname"><em>x</em></td><td>)</td>
97 <td></td>
61 <td class="paramtype">genType const &amp;&#160;</td>
62 <td class="paramname"><em>v1</em>, </td>
63 </tr>
64 <tr>
65 <td class="paramkey"></td>
66 <td></td>
67 <td class="paramtype">genType const &amp;&#160;</td>
68 <td class="paramname"><em>v2</em>, </td>
69 </tr>
70 <tr>
71 <td class="paramkey"></td>
72 <td></td>
73 <td class="paramtype">genType const &amp;&#160;</td>
74 <td class="paramname"><em>v3</em>, </td>
75 </tr>
76 <tr>
77 <td class="paramkey"></td>
78 <td></td>
79 <td class="paramtype">genType const &amp;&#160;</td>
80 <td class="paramname"><em>v4</em>, </td>
81 </tr>
82 <tr>
83 <td class="paramkey"></td>
84 <td></td>
85 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
86 <td class="paramname"><em>s</em>&#160;</td>
87 </tr>
88 <tr>
89 <td></td>
90 <td>)</td>
91 <td></td><td></td>
9892 </tr>
9993 </table>
10094 </div>
10195 <div class="memdoc">
10296
103 <p>Returns x if x &gt;= 0; otherwise, it returns -x. </p>
104 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
105
106 </div>
107 </div>
108 <a class="anchor" id="ga3ce76f0bb739c0d5f04e7bfa4251993d"></a><!-- doxytag: member="glm::gtx::simd_vec4::ceil" ref="ga3ce76f0bb739c0d5f04e7bfa4251993d" args="(detail::fvec4SIMD const &amp;x)" -->
97 <p>Return a point from a catmull rom curve. </p>
98 <p>From GLM_GTX_spline extension. </p>
99
100 </div>
101 </div>
102 <a class="anchor" id="gaae38edb178e0256e966955b19b61f617"></a><!-- doxytag: member="glm::gtx::spline::cubic" ref="gaae38edb178e0256e966955b19b61f617" args="(genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)" -->
109103 <div class="memitem">
110104 <div class="memproto">
111105 <table class="memname">
112106 <tr>
113 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::ceil </td>
107 <td class="memname">genType cubic </td>
114108 <td>(</td>
115 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
116 <td class="paramname"><em>x</em></td><td>)</td>
117 <td></td>
109 <td class="paramtype">genType const &amp;&#160;</td>
110 <td class="paramname"><em>v1</em>, </td>
111 </tr>
112 <tr>
113 <td class="paramkey"></td>
114 <td></td>
115 <td class="paramtype">genType const &amp;&#160;</td>
116 <td class="paramname"><em>v2</em>, </td>
117 </tr>
118 <tr>
119 <td class="paramkey"></td>
120 <td></td>
121 <td class="paramtype">genType const &amp;&#160;</td>
122 <td class="paramname"><em>v3</em>, </td>
123 </tr>
124 <tr>
125 <td class="paramkey"></td>
126 <td></td>
127 <td class="paramtype">genType const &amp;&#160;</td>
128 <td class="paramname"><em>v4</em>, </td>
129 </tr>
130 <tr>
131 <td class="paramkey"></td>
132 <td></td>
133 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
134 <td class="paramname"><em>s</em>&#160;</td>
135 </tr>
136 <tr>
137 <td></td>
138 <td>)</td>
139 <td></td><td></td>
118140 </tr>
119141 </table>
120142 </div>
121143 <div class="memdoc">
122144
123 <p>Returns a value equal to the nearest integer to x. </p>
124 <p>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.) (From GLM_GTX_simd_vec4 extension, common function) Returns a value equal to the nearest integer that is greater than or equal to x. (From GLM_GTX_simd_vec4 extension, common function) </p>
125
126 </div>
127 </div>
128 <a class="anchor" id="ga73e895d1fdba2b620e84383517c552b0"></a><!-- doxytag: member="glm::gtx::simd_vec4::clamp" ref="ga73e895d1fdba2b620e84383517c552b0" args="(detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;minVal, detail::fvec4SIMD const &amp;maxVal)" -->
145 <p>Return a point from a cubic curve. </p>
146 <p>From GLM_GTX_spline extension. </p>
147
148 </div>
149 </div>
150 <a class="anchor" id="ga3ea772a4bdf8b3514ef12b47944c844c"></a><!-- doxytag: member="glm::gtx::spline::hermite" ref="ga3ea772a4bdf8b3514ef12b47944c844c" args="(genType const &amp;v1, genType const &amp;t1, genType const &amp;v2, genType const &amp;t2, typename genType::value_type const &amp;s)" -->
129151 <div class="memitem">
130152 <div class="memproto">
131153 <table class="memname">
132154 <tr>
133 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::clamp </td>
155 <td class="memname">genType hermite </td>
134156 <td>(</td>
135 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
136 <td class="paramname"><em>x</em>, </td>
137 </tr>
138 <tr>
139 <td class="paramkey"></td>
140 <td></td>
141 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
142 <td class="paramname"><em>minVal</em>, </td>
143 </tr>
144 <tr>
145 <td class="paramkey"></td>
146 <td></td>
147 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
148 <td class="paramname"><em>maxVal</em>&#160;</td>
157 <td class="paramtype">genType const &amp;&#160;</td>
158 <td class="paramname"><em>v1</em>, </td>
159 </tr>
160 <tr>
161 <td class="paramkey"></td>
162 <td></td>
163 <td class="paramtype">genType const &amp;&#160;</td>
164 <td class="paramname"><em>t1</em>, </td>
165 </tr>
166 <tr>
167 <td class="paramkey"></td>
168 <td></td>
169 <td class="paramtype">genType const &amp;&#160;</td>
170 <td class="paramname"><em>v2</em>, </td>
171 </tr>
172 <tr>
173 <td class="paramkey"></td>
174 <td></td>
175 <td class="paramtype">genType const &amp;&#160;</td>
176 <td class="paramname"><em>t2</em>, </td>
177 </tr>
178 <tr>
179 <td class="paramkey"></td>
180 <td></td>
181 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
182 <td class="paramname"><em>s</em>&#160;</td>
149183 </tr>
150184 <tr>
151185 <td></td>
156190 </div>
157191 <div class="memdoc">
158192
159 <p>Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. </p>
160 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
161
162 </div>
163 </div>
164 <a class="anchor" id="gabe4bd036ccfd0e1d53ea828d478cdd2c"></a><!-- doxytag: member="glm::gtx::simd_vec4::cross" ref="gabe4bd036ccfd0e1d53ea828d478cdd2c" args="(detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)" -->
165 <div class="memitem">
166 <div class="memproto">
167 <table class="memname">
168 <tr>
169 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::cross </td>
170 <td>(</td>
171 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
172 <td class="paramname"><em>x</em>, </td>
173 </tr>
174 <tr>
175 <td class="paramkey"></td>
176 <td></td>
177 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
178 <td class="paramname"><em>y</em>&#160;</td>
179 </tr>
180 <tr>
181 <td></td>
182 <td>)</td>
183 <td></td><td></td>
184 </tr>
185 </table>
186 </div>
187 <div class="memdoc">
188
189 <p>Returns the cross product of x and y. </p>
190 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
191
192 </div>
193 </div>
194 <a class="anchor" id="gac514ca90bcc5a17bd7162ea32a220580"></a><!-- doxytag: member="glm::gtx::simd_vec4::distance" ref="gac514ca90bcc5a17bd7162ea32a220580" args="(detail::fvec4SIMD const &amp;p0, detail::fvec4SIMD const &amp;p1)" -->
195 <div class="memitem">
196 <div class="memproto">
197 <table class="memname">
198 <tr>
199 <td class="memname">float glm::gtx::simd_vec4::distance </td>
200 <td>(</td>
201 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
202 <td class="paramname"><em>p0</em>, </td>
203 </tr>
204 <tr>
205 <td class="paramkey"></td>
206 <td></td>
207 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
208 <td class="paramname"><em>p1</em>&#160;</td>
209 </tr>
210 <tr>
211 <td></td>
212 <td>)</td>
213 <td></td><td></td>
214 </tr>
215 </table>
216 </div>
217 <div class="memdoc">
218
219 <p>Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). </p>
220 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
221
222 </div>
223 </div>
224 <a class="anchor" id="gae9238f5011fd124d44dad7b39f0d5a0f"></a><!-- doxytag: member="glm::gtx::simd_vec4::distance4" ref="gae9238f5011fd124d44dad7b39f0d5a0f" args="(detail::fvec4SIMD const &amp;p0, detail::fvec4SIMD const &amp;p1)" -->
225 <div class="memitem">
226 <div class="memproto">
227 <table class="memname">
228 <tr>
229 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::distance4 </td>
230 <td>(</td>
231 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
232 <td class="paramname"><em>p0</em>, </td>
233 </tr>
234 <tr>
235 <td class="paramkey"></td>
236 <td></td>
237 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
238 <td class="paramname"><em>p1</em>&#160;</td>
239 </tr>
240 <tr>
241 <td></td>
242 <td>)</td>
243 <td></td><td></td>
244 </tr>
245 </table>
246 </div>
247 <div class="memdoc">
248
249 <p>Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). </p>
250 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
251
252 </div>
253 </div>
254 <a class="anchor" id="gaa50f94e3de246ea1a1914266aef2f74b"></a><!-- doxytag: member="glm::gtx::simd_vec4::dot4" ref="gaa50f94e3de246ea1a1914266aef2f74b" args="(detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)" -->
255 <div class="memitem">
256 <div class="memproto">
257 <table class="memname">
258 <tr>
259 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::dot4 </td>
260 <td>(</td>
261 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
262 <td class="paramname"><em>x</em>, </td>
263 </tr>
264 <tr>
265 <td class="paramkey"></td>
266 <td></td>
267 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
268 <td class="paramname"><em>y</em>&#160;</td>
269 </tr>
270 <tr>
271 <td></td>
272 <td>)</td>
273 <td></td><td></td>
274 </tr>
275 </table>
276 </div>
277 <div class="memdoc">
278
279 <p>Returns the dot product of x and y, i.e., result = x * y. </p>
280 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
281
282 </div>
283 </div>
284 <a class="anchor" id="gab299477526abc9646263950bfbe32b3f"></a><!-- doxytag: member="glm::gtx::simd_vec4::fastInversesqrt" ref="gab299477526abc9646263950bfbe32b3f" args="(detail::fvec4SIMD const &amp;x)" -->
285 <div class="memitem">
286 <div class="memproto">
287 <table class="memname">
288 <tr>
289 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::fastInversesqrt </td>
290 <td>(</td>
291 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
292 <td class="paramname"><em>x</em></td><td>)</td>
293 <td></td>
294 </tr>
295 </table>
296 </div>
297 <div class="memdoc">
298
299 <p>Returns the reciprocal of the positive square root of x. </p>
300 <p>Faster than inversesqrt but less accurate. (From GLM_GTX_simd_vec4 extension, exponential function) </p>
301
302 </div>
303 </div>
304 <a class="anchor" id="ga0d4469acfe98c8b2eab8696bf25a3dde"></a><!-- doxytag: member="glm::gtx::simd_vec4::fastLength" ref="ga0d4469acfe98c8b2eab8696bf25a3dde" args="(detail::fvec4SIMD const &amp;x)" -->
305 <div class="memitem">
306 <div class="memproto">
307 <table class="memname">
308 <tr>
309 <td class="memname">float glm::gtx::simd_vec4::fastLength </td>
310 <td>(</td>
311 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
312 <td class="paramname"><em>x</em></td><td>)</td>
313 <td></td>
314 </tr>
315 </table>
316 </div>
317 <div class="memdoc">
318
319 <p>Returns the length of x, i.e., sqrt(x * x). </p>
320 <p>Less accurate but much faster than simdLength. (From GLM_GTX_simd_vec4 extension, geometry functions) </p>
321
322 </div>
323 </div>
324 <a class="anchor" id="ga1c85830900d5d3f29902b12d46c60dd3"></a><!-- doxytag: member="glm::gtx::simd_vec4::fastLength4" ref="ga1c85830900d5d3f29902b12d46c60dd3" args="(detail::fvec4SIMD const &amp;x)" -->
325 <div class="memitem">
326 <div class="memproto">
327 <table class="memname">
328 <tr>
329 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::fastLength4 </td>
330 <td>(</td>
331 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
332 <td class="paramname"><em>x</em></td><td>)</td>
333 <td></td>
334 </tr>
335 </table>
336 </div>
337 <div class="memdoc">
338
339 <p>Returns the length of x, i.e., sqrt(x * x). </p>
340 <p>Less accurate but much faster than simdLength4. (From GLM_GTX_simd_vec4 extension, geometry functions) </p>
341
342 </div>
343 </div>
344 <a class="anchor" id="ga58eeeead0d2b381f7d461dac26381125"></a><!-- doxytag: member="glm::gtx::simd_vec4::fastNormalize" ref="ga58eeeead0d2b381f7d461dac26381125" args="(detail::fvec4SIMD const &amp;x)" -->
345 <div class="memitem">
346 <div class="memproto">
347 <table class="memname">
348 <tr>
349 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::fastNormalize </td>
350 <td>(</td>
351 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
352 <td class="paramname"><em>x</em></td><td>)</td>
353 <td></td>
354 </tr>
355 </table>
356 </div>
357 <div class="memdoc">
358
359 <p>Returns a vector in the same direction as x but with length of 1. </p>
360 <p>Less accurate but much faster than simdNormalize. (From GLM_GTX_simd_vec4 extension, geometry functions) </p>
361
362 </div>
363 </div>
364 <a class="anchor" id="ga56465ed17cafbff1e225f82eeb7184e5"></a><!-- doxytag: member="glm::gtx::simd_vec4::fastSqrt" ref="ga56465ed17cafbff1e225f82eeb7184e5" args="(detail::fvec4SIMD const &amp;x)" -->
365 <div class="memitem">
366 <div class="memproto">
367 <table class="memname">
368 <tr>
369 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::fastSqrt </td>
370 <td>(</td>
371 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
372 <td class="paramname"><em>x</em></td><td>)</td>
373 <td></td>
374 </tr>
375 </table>
376 </div>
377 <div class="memdoc">
378
379 <p>Returns the positive square root of x Less accurate but much faster than sqrt. </p>
380 <p>(From GLM_GTX_simd_vec4 extension, exponential function) </p>
381
382 </div>
383 </div>
384 <a class="anchor" id="gab7b1e6c9349aec87e1d3346e867588d6"></a><!-- doxytag: member="glm::gtx::simd_vec4::floor" ref="gab7b1e6c9349aec87e1d3346e867588d6" args="(detail::fvec4SIMD const &amp;x)" -->
385 <div class="memitem">
386 <div class="memproto">
387 <table class="memname">
388 <tr>
389 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::floor </td>
390 <td>(</td>
391 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
392 <td class="paramname"><em>x</em></td><td>)</td>
393 <td></td>
394 </tr>
395 </table>
396 </div>
397 <div class="memdoc">
398
399 <p>Returns a value equal to the nearest integer that is less then or equal to x. </p>
400 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
401
402 </div>
403 </div>
404 <a class="anchor" id="ga4b9f36f4524482b43324f4631944569d"></a><!-- doxytag: member="glm::gtx::simd_vec4::fma" ref="ga4b9f36f4524482b43324f4631944569d" args="(detail::fvec4SIMD const &amp;a, detail::fvec4SIMD const &amp;b, detail::fvec4SIMD const &amp;c)" -->
405 <div class="memitem">
406 <div class="memproto">
407 <table class="memname">
408 <tr>
409 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::fma </td>
410 <td>(</td>
411 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
412 <td class="paramname"><em>a</em>, </td>
413 </tr>
414 <tr>
415 <td class="paramkey"></td>
416 <td></td>
417 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
418 <td class="paramname"><em>b</em>, </td>
419 </tr>
420 <tr>
421 <td class="paramkey"></td>
422 <td></td>
423 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
424 <td class="paramname"><em>c</em>&#160;</td>
425 </tr>
426 <tr>
427 <td></td>
428 <td>)</td>
429 <td></td><td></td>
430 </tr>
431 </table>
432 </div>
433 <div class="memdoc">
434
435 <p>Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. </p>
436 <p>Returns false otherwise, including for implementations with no NaN representations. (From GLM_GTX_simd_vec4 extension, common function) 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. (From GLM_GTX_simd_vec4 extension, common function) Returns a signed or unsigned integer value representing the encoding of a floating-point value. The floatingpoint value's bit-level representation is preserved. (From GLM_GTX_simd_vec4 extension, common function) Returns a floating-point value corresponding to a signed or 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. (From GLM_GTX_simd_vec4 extension, common function) Computes and returns a * b + c. (From GLM_GTX_simd_vec4 extension, common function) </p>
437
438 </div>
439 </div>
440 <a class="anchor" id="ga0a98f9d76fee0ca46c1f97861e3e366c"></a><!-- doxytag: member="glm::gtx::simd_vec4::fract" ref="ga0a98f9d76fee0ca46c1f97861e3e366c" args="(detail::fvec4SIMD const &amp;x)" -->
441 <div class="memitem">
442 <div class="memproto">
443 <table class="memname">
444 <tr>
445 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::fract </td>
446 <td>(</td>
447 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
448 <td class="paramname"><em>x</em></td><td>)</td>
449 <td></td>
450 </tr>
451 </table>
452 </div>
453 <div class="memdoc">
454
455 <p>Return x - floor(x). </p>
456 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
457
458 </div>
459 </div>
460 <a class="anchor" id="gaa4e215b72e48012a6388a1477c84e2ad"></a><!-- doxytag: member="glm::gtx::simd_vec4::inversesqrt" ref="gaa4e215b72e48012a6388a1477c84e2ad" args="(detail::fvec4SIMD const &amp;x)" -->
461 <div class="memitem">
462 <div class="memproto">
463 <table class="memname">
464 <tr>
465 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::inversesqrt </td>
466 <td>(</td>
467 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
468 <td class="paramname"><em>x</em></td><td>)</td>
469 <td></td>
470 </tr>
471 </table>
472 </div>
473 <div class="memdoc">
474
475 <p>Returns the reciprocal of the positive square root of x. </p>
476 <p>(From GLM_GTX_simd_vec4 extension, exponential function) </p>
477
478 </div>
479 </div>
480 <a class="anchor" id="gaf76a38ce8c466c9b0bc4c1b5db1a6faa"></a><!-- doxytag: member="glm::gtx::simd_vec4::length" ref="gaf76a38ce8c466c9b0bc4c1b5db1a6faa" args="(detail::fvec4SIMD const &amp;x)" -->
481 <div class="memitem">
482 <div class="memproto">
483 <table class="memname">
484 <tr>
485 <td class="memname">float glm::gtx::simd_vec4::length </td>
486 <td>(</td>
487 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
488 <td class="paramname"><em>x</em></td><td>)</td>
489 <td></td>
490 </tr>
491 </table>
492 </div>
493 <div class="memdoc">
494
495 <p>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. </p>
496 <p>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. (From GLM_GTX_simd_vec4 extension, common function) 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. (From GLM_GTX_simd_vec4 extension, common function) Returns the length of x, i.e., sqrt(x * x). (From GLM_GTX_simd_vec4 extension, geometry functions) </p>
497
498 </div>
499 </div>
500 <a class="anchor" id="ga6c7fffeb58db66f602585b24a8e4f2db"></a><!-- doxytag: member="glm::gtx::simd_vec4::length4" ref="ga6c7fffeb58db66f602585b24a8e4f2db" args="(detail::fvec4SIMD const &amp;x)" -->
501 <div class="memitem">
502 <div class="memproto">
503 <table class="memname">
504 <tr>
505 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::length4 </td>
506 <td>(</td>
507 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
508 <td class="paramname"><em>x</em></td><td>)</td>
509 <td></td>
510 </tr>
511 </table>
512 </div>
513 <div class="memdoc">
514
515 <p>Returns the length of x, i.e., sqrt(x * x). </p>
516 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
517
518 </div>
519 </div>
520 <a class="anchor" id="ga10dbe289232abf23c8d668c646ff05d6"></a><!-- doxytag: member="glm::gtx::simd_vec4::max" ref="ga10dbe289232abf23c8d668c646ff05d6" args="(detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)" -->
521 <div class="memitem">
522 <div class="memproto">
523 <table class="memname">
524 <tr>
525 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::max </td>
526 <td>(</td>
527 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
528 <td class="paramname"><em>x</em>, </td>
529 </tr>
530 <tr>
531 <td class="paramkey"></td>
532 <td></td>
533 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
534 <td class="paramname"><em>y</em>&#160;</td>
535 </tr>
536 <tr>
537 <td></td>
538 <td>)</td>
539 <td></td><td></td>
540 </tr>
541 </table>
542 </div>
543 <div class="memdoc">
544
545 <p>Returns y if x &lt; y; otherwise, it returns x. </p>
546 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
547
548 </div>
549 </div>
550 <a class="anchor" id="gac8850ebd4ae655de76f375105cf7b3d8"></a><!-- doxytag: member="glm::gtx::simd_vec4::min" ref="gac8850ebd4ae655de76f375105cf7b3d8" args="(detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)" -->
551 <div class="memitem">
552 <div class="memproto">
553 <table class="memname">
554 <tr>
555 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::min </td>
556 <td>(</td>
557 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
558 <td class="paramname"><em>x</em>, </td>
559 </tr>
560 <tr>
561 <td class="paramkey"></td>
562 <td></td>
563 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
564 <td class="paramname"><em>y</em>&#160;</td>
565 </tr>
566 <tr>
567 <td></td>
568 <td>)</td>
569 <td></td><td></td>
570 </tr>
571 </table>
572 </div>
573 <div class="memdoc">
574
575 <p>Returns the fractional part of x and sets i to the integer part (as a whole number floating point value). </p>
576 <p>Both the return value and the output parameter will have the same sign as x. (From GLM_GTX_simd_vec4 extension, common function) Returns y if y &lt; x; otherwise, it returns x. (From GLM_GTX_simd_vec4 extension, common function) </p>
577
578 </div>
579 </div>
580 <a class="anchor" id="gafb120dd721c6b87f5f23c3edd159cfaa"></a><!-- doxytag: member="glm::gtx::simd_vec4::mix" ref="gafb120dd721c6b87f5f23c3edd159cfaa" args="(detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y, detail::fvec4SIMD const &amp;a)" -->
581 <div class="memitem">
582 <div class="memproto">
583 <table class="memname">
584 <tr>
585 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::mix </td>
586 <td>(</td>
587 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
588 <td class="paramname"><em>x</em>, </td>
589 </tr>
590 <tr>
591 <td class="paramkey"></td>
592 <td></td>
593 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
594 <td class="paramname"><em>y</em>, </td>
595 </tr>
596 <tr>
597 <td class="paramkey"></td>
598 <td></td>
599 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
600 <td class="paramname"><em>a</em>&#160;</td>
601 </tr>
602 <tr>
603 <td></td>
604 <td>)</td>
605 <td></td><td></td>
606 </tr>
607 </table>
608 </div>
609 <div class="memdoc">
610
611 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
612 <dl class="return"><dt><b>Returns:</b></dt><dd>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].</dd>
613 <dd>
614 If genTypeU is a boolean scalar or vector: Selects which vector each returned component comes from. For a component of a 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.</dd></dl>
615 <p>From GLSL 1.30.08 specification, section 8.3</p>
616 <dl><dt><b>Parameters:</b></dt><dd>
617 <table class="params">
618 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Floating point scalar or vector. </td></tr>
619 <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Floating point scalar or vector. </td></tr>
620 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Floating point or boolean scalar or vector. </td></tr>
621 </table>
622 </dd>
623 </dl>
624
625 </div>
626 </div>
627 <a class="anchor" id="gaf95a2c5c60a6f2a36911d32901e44aba"></a><!-- doxytag: member="glm::gtx::simd_vec4::mod" ref="gaf95a2c5c60a6f2a36911d32901e44aba" args="(detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)" -->
628 <div class="memitem">
629 <div class="memproto">
630 <table class="memname">
631 <tr>
632 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::mod </td>
633 <td>(</td>
634 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
635 <td class="paramname"><em>x</em>, </td>
636 </tr>
637 <tr>
638 <td class="paramkey"></td>
639 <td></td>
640 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
641 <td class="paramname"><em>y</em>&#160;</td>
642 </tr>
643 <tr>
644 <td></td>
645 <td>)</td>
646 <td></td><td></td>
647 </tr>
648 </table>
649 </div>
650 <div class="memdoc">
651
652 <p>Modulus. </p>
653 <p>Returns x - y * floor(x / y) for each component in x using the floating point value y. (From GLM_GTX_simd_vec4 extension, common function) </p>
654
655 </div>
656 </div>
657 <a class="anchor" id="gaba1f7a090566667c615a4a53c2f4a0c6"></a><!-- doxytag: member="glm::gtx::simd_vec4::mod" ref="gaba1f7a090566667c615a4a53c2f4a0c6" args="(detail::fvec4SIMD const &amp;x, float const &amp;y)" -->
658 <div class="memitem">
659 <div class="memproto">
660 <table class="memname">
661 <tr>
662 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::mod </td>
663 <td>(</td>
664 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
665 <td class="paramname"><em>x</em>, </td>
666 </tr>
667 <tr>
668 <td class="paramkey"></td>
669 <td></td>
670 <td class="paramtype">float const &amp;&#160;</td>
671 <td class="paramname"><em>y</em>&#160;</td>
672 </tr>
673 <tr>
674 <td></td>
675 <td>)</td>
676 <td></td><td></td>
677 </tr>
678 </table>
679 </div>
680 <div class="memdoc">
681
682 <p>Modulus. </p>
683 <p>Returns x - y * floor(x / y) for each component in x using the floating point value y. (From GLM_GTX_simd_vec4 extension, common function) </p>
684
685 </div>
686 </div>
687 <a class="anchor" id="ga97a71f5eed0feb541ea1131a46e4422e"></a><!-- doxytag: member="glm::gtx::simd_vec4::niceLength" ref="ga97a71f5eed0feb541ea1131a46e4422e" args="(detail::fvec4SIMD const &amp;x)" -->
688 <div class="memitem">
689 <div class="memproto">
690 <table class="memname">
691 <tr>
692 <td class="memname">float glm::gtx::simd_vec4::niceLength </td>
693 <td>(</td>
694 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
695 <td class="paramname"><em>x</em></td><td>)</td>
696 <td></td>
697 </tr>
698 </table>
699 </div>
700 <div class="memdoc">
701
702 <p>Returns the length of x, i.e., sqrt(x * x). </p>
703 <p>Slightly more accurate but much slower than simdLength. (From GLM_GTX_simd_vec4 extension, geometry functions) </p>
704
705 </div>
706 </div>
707 <a class="anchor" id="ga159f5857abf0df4250bae94f95b9d015"></a><!-- doxytag: member="glm::gtx::simd_vec4::niceLength4" ref="ga159f5857abf0df4250bae94f95b9d015" args="(detail::fvec4SIMD const &amp;x)" -->
708 <div class="memitem">
709 <div class="memproto">
710 <table class="memname">
711 <tr>
712 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::niceLength4 </td>
713 <td>(</td>
714 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
715 <td class="paramname"><em>x</em></td><td>)</td>
716 <td></td>
717 </tr>
718 </table>
719 </div>
720 <div class="memdoc">
721
722 <p>Returns the length of x, i.e., sqrt(x * x). </p>
723 <p>Slightly more accurate but much slower than simdLength4. (From GLM_GTX_simd_vec4 extension, geometry functions) </p>
724
725 </div>
726 </div>
727 <a class="anchor" id="ga163877845325804cda05e8b5142822d5"></a><!-- doxytag: member="glm::gtx::simd_vec4::niceSqrt" ref="ga163877845325804cda05e8b5142822d5" args="(detail::fvec4SIMD const &amp;x)" -->
728 <div class="memitem">
729 <div class="memproto">
730 <table class="memname">
731 <tr>
732 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::niceSqrt </td>
733 <td>(</td>
734 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
735 <td class="paramname"><em>x</em></td><td>)</td>
736 <td></td>
737 </tr>
738 </table>
739 </div>
740 <div class="memdoc">
741
742 <p>Returns the positive square root of x with the nicest quality but very slow. </p>
743 <p>Slightly more accurate but much slower than simdSqrt. (From GLM_GTX_simd_vec4 extension, exponential function) </p>
744
745 </div>
746 </div>
747 <a class="anchor" id="ga4e5cbc78bdd522b61ecd2154b50251af"></a><!-- doxytag: member="glm::gtx::simd_vec4::normalize" ref="ga4e5cbc78bdd522b61ecd2154b50251af" args="(detail::fvec4SIMD const &amp;x)" -->
748 <div class="memitem">
749 <div class="memproto">
750 <table class="memname">
751 <tr>
752 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::normalize </td>
753 <td>(</td>
754 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
755 <td class="paramname"><em>x</em></td><td>)</td>
756 <td></td>
757 </tr>
758 </table>
759 </div>
760 <div class="memdoc">
761
762 <p>Returns a vector in the same direction as x but with length of 1. </p>
763 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
764
765 </div>
766 </div>
767 <a class="anchor" id="ga42f1073cf493e7c299c72ae95180265d"></a><!-- doxytag: member="glm::gtx::simd_vec4::reflect" ref="ga42f1073cf493e7c299c72ae95180265d" args="(detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;N)" -->
768 <div class="memitem">
769 <div class="memproto">
770 <table class="memname">
771 <tr>
772 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::reflect </td>
773 <td>(</td>
774 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
775 <td class="paramname"><em>I</em>, </td>
776 </tr>
777 <tr>
778 <td class="paramkey"></td>
779 <td></td>
780 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
781 <td class="paramname"><em>N</em>&#160;</td>
782 </tr>
783 <tr>
784 <td></td>
785 <td>)</td>
786 <td></td><td></td>
787 </tr>
788 </table>
789 </div>
790 <div class="memdoc">
791
792 <p>For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N. </p>
793 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
794
795 </div>
796 </div>
797 <a class="anchor" id="ga894c3ec0524d03313dc9c72d36290c00"></a><!-- doxytag: member="glm::gtx::simd_vec4::refract" ref="ga894c3ec0524d03313dc9c72d36290c00" args="(detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;N, float const &amp;eta)" -->
798 <div class="memitem">
799 <div class="memproto">
800 <table class="memname">
801 <tr>
802 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::refract </td>
803 <td>(</td>
804 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
805 <td class="paramname"><em>I</em>, </td>
806 </tr>
807 <tr>
808 <td class="paramkey"></td>
809 <td></td>
810 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
811 <td class="paramname"><em>N</em>, </td>
812 </tr>
813 <tr>
814 <td class="paramkey"></td>
815 <td></td>
816 <td class="paramtype">float const &amp;&#160;</td>
817 <td class="paramname"><em>eta</em>&#160;</td>
818 </tr>
819 <tr>
820 <td></td>
821 <td>)</td>
822 <td></td><td></td>
823 </tr>
824 </table>
825 </div>
826 <div class="memdoc">
827
828 <p>For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector. </p>
829 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
830
831 </div>
832 </div>
833 <a class="anchor" id="gad17e750a691edfe51fd1f60d8cac2329"></a><!-- doxytag: member="glm::gtx::simd_vec4::round" ref="gad17e750a691edfe51fd1f60d8cac2329" args="(detail::fvec4SIMD const &amp;x)" -->
834 <div class="memitem">
835 <div class="memproto">
836 <table class="memname">
837 <tr>
838 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::round </td>
839 <td>(</td>
840 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
841 <td class="paramname"><em>x</em></td><td>)</td>
842 <td></td>
843 </tr>
844 </table>
845 </div>
846 <div class="memdoc">
847
848 <p>Returns a value equal to the nearest integer to x. </p>
849 <p>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. (From GLM_GTX_simd_vec4 extension, common function) </p>
850
851 </div>
852 </div>
853 <a class="anchor" id="ga5a32ecd67af075293c5c8278f2938d4d"></a><!-- doxytag: member="glm::gtx::simd_vec4::sign" ref="ga5a32ecd67af075293c5c8278f2938d4d" args="(detail::fvec4SIMD const &amp;x)" -->
854 <div class="memitem">
855 <div class="memproto">
856 <table class="memname">
857 <tr>
858 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::sign </td>
859 <td>(</td>
860 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
861 <td class="paramname"><em>x</em></td><td>)</td>
862 <td></td>
863 </tr>
864 </table>
865 </div>
866 <div class="memdoc">
867
868 <p>Returns 1.0 if x &gt; 0, 0.0 if x = 0, or -1.0 if x &lt; 0. </p>
869 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
870
871 </div>
872 </div>
873 <a class="anchor" id="ga44faf22be31f5809ed97bf611a56f3e9"></a><!-- doxytag: member="glm::gtx::simd_vec4::simdDot" ref="ga44faf22be31f5809ed97bf611a56f3e9" args="(detail::fvec4SIMD const &amp;x, detail::fvec4SIMD const &amp;y)" -->
874 <div class="memitem">
875 <div class="memproto">
876 <table class="memname">
877 <tr>
878 <td class="memname">float glm::gtx::simd_vec4::simdDot </td>
879 <td>(</td>
880 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
881 <td class="paramname"><em>x</em>, </td>
882 </tr>
883 <tr>
884 <td class="paramkey"></td>
885 <td></td>
886 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
887 <td class="paramname"><em>y</em>&#160;</td>
888 </tr>
889 <tr>
890 <td></td>
891 <td>)</td>
892 <td></td><td></td>
893 </tr>
894 </table>
895 </div>
896 <div class="memdoc">
897
898 <p>Returns the dot product of x and y, i.e., result = x * y. </p>
899 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
900
901 </div>
902 </div>
903 <a class="anchor" id="gac11cb08f6ba68f761b7146a60e72da55"></a><!-- doxytag: member="glm::gtx::simd_vec4::simdFaceforward" ref="gac11cb08f6ba68f761b7146a60e72da55" args="(detail::fvec4SIMD const &amp;N, detail::fvec4SIMD const &amp;I, detail::fvec4SIMD const &amp;Nref)" -->
904 <div class="memitem">
905 <div class="memproto">
906 <table class="memname">
907 <tr>
908 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::simdFaceforward </td>
909 <td>(</td>
910 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
911 <td class="paramname"><em>N</em>, </td>
912 </tr>
913 <tr>
914 <td class="paramkey"></td>
915 <td></td>
916 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
917 <td class="paramname"><em>I</em>, </td>
918 </tr>
919 <tr>
920 <td class="paramkey"></td>
921 <td></td>
922 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
923 <td class="paramname"><em>Nref</em>&#160;</td>
924 </tr>
925 <tr>
926 <td></td>
927 <td>)</td>
928 <td></td><td></td>
929 </tr>
930 </table>
931 </div>
932 <div class="memdoc">
933
934 <p>If dot(Nref, I) &lt; 0.0, return N, otherwise, return -N. </p>
935 <p>(From GLM_GTX_simd_vec4 extension, geometry functions) </p>
936
937 </div>
938 </div>
939 <a class="anchor" id="gaeadaacf6c87b0699292de98b7140a278"></a><!-- doxytag: member="glm::gtx::simd_vec4::smoothstep" ref="gaeadaacf6c87b0699292de98b7140a278" args="(detail::fvec4SIMD const &amp;edge0, detail::fvec4SIMD const &amp;edge1, detail::fvec4SIMD const &amp;x)" -->
940 <div class="memitem">
941 <div class="memproto">
942 <table class="memname">
943 <tr>
944 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::smoothstep </td>
945 <td>(</td>
946 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
947 <td class="paramname"><em>edge0</em>, </td>
948 </tr>
949 <tr>
950 <td class="paramkey"></td>
951 <td></td>
952 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
953 <td class="paramname"><em>edge1</em>, </td>
954 </tr>
955 <tr>
956 <td class="paramkey"></td>
957 <td></td>
958 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
959 <td class="paramname"><em>x</em>&#160;</td>
960 </tr>
961 <tr>
962 <td></td>
963 <td>)</td>
964 <td></td><td></td>
965 </tr>
966 </table>
967 </div>
968 <div class="memdoc">
969
970 <p>Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 &lt; x &lt; edge1. </p>
971 <p>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 &gt;= edge1. (From GLM_GTX_simd_vec4 extension, common function) </p>
972
973 </div>
974 </div>
975 <a class="anchor" id="ga28dbd1d165fc4301de4fb16a049fcfb2"></a><!-- doxytag: member="glm::gtx::simd_vec4::sqrt" ref="ga28dbd1d165fc4301de4fb16a049fcfb2" args="(detail::fvec4SIMD const &amp;x)" -->
976 <div class="memitem">
977 <div class="memproto">
978 <table class="memname">
979 <tr>
980 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::sqrt </td>
981 <td>(</td>
982 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
983 <td class="paramname"><em>x</em></td><td>)</td>
984 <td></td>
985 </tr>
986 </table>
987 </div>
988 <div class="memdoc">
989
990 <p>Returns the positive square root of x. </p>
991 <p>(From GLM_GTX_simd_vec4 extension, exponential function) </p>
992
993 </div>
994 </div>
995 <a class="anchor" id="ga459647604ac2aa0a97c4eb739a7302cb"></a><!-- doxytag: member="glm::gtx::simd_vec4::step" ref="ga459647604ac2aa0a97c4eb739a7302cb" args="(detail::fvec4SIMD const &amp;edge, detail::fvec4SIMD const &amp;x)" -->
996 <div class="memitem">
997 <div class="memproto">
998 <table class="memname">
999 <tr>
1000 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::step </td>
1001 <td>(</td>
1002 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
1003 <td class="paramname"><em>edge</em>, </td>
1004 </tr>
1005 <tr>
1006 <td class="paramkey"></td>
1007 <td></td>
1008 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
1009 <td class="paramname"><em>x</em>&#160;</td>
1010 </tr>
1011 <tr>
1012 <td></td>
1013 <td>)</td>
1014 <td></td><td></td>
1015 </tr>
1016 </table>
1017 </div>
1018 <div class="memdoc">
1019
1020 <p>Returns 0.0 if x &lt; edge, otherwise it returns 1.0. </p>
1021 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
1022
1023 </div>
1024 </div>
1025 <a class="anchor" id="ga4733720fa96ed2125f15e4b96578f486"></a><!-- doxytag: member="glm::gtx::simd_vec4::trunc" ref="ga4733720fa96ed2125f15e4b96578f486" args="(detail::fvec4SIMD const &amp;x)" -->
1026 <div class="memitem">
1027 <div class="memproto">
1028 <table class="memname">
1029 <tr>
1030 <td class="memname">detail::fvec4SIMD glm::gtx::simd_vec4::trunc </td>
1031 <td>(</td>
1032 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
1033 <td class="paramname"><em>x</em></td><td>)</td>
1034 <td></td>
1035 </tr>
1036 </table>
1037 </div>
1038 <div class="memdoc">
1039
1040 <p>Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x. </p>
1041 <p>(From GLM_GTX_simd_vec4 extension, common function) </p>
1042
1043 </div>
1044 </div>
1045 <a class="anchor" id="gaf44c64b2f9e70746b8a83571812670fc"></a><!-- doxytag: member="glm::gtx::simd_vec4::vec4_cast" ref="gaf44c64b2f9e70746b8a83571812670fc" args="(detail::fvec4SIMD const &amp;x)" -->
1046 <div class="memitem">
1047 <div class="memproto">
1048 <table class="memname">
1049 <tr>
1050 <td class="memname">detail::tvec4&lt;float&gt; glm::gtx::simd_vec4::vec4_cast </td>
1051 <td>(</td>
1052 <td class="paramtype">detail::fvec4SIMD const &amp;&#160;</td>
1053 <td class="paramname"><em>x</em></td><td>)</td>
1054 <td></td>
1055 </tr>
1056 </table>
1057 </div>
1058 <div class="memdoc">
1059
1060 <p>Convert a simdVec4 to a vec4. </p>
1061 <p>(From GLM_GTX_simd_vec4 extension) </p>
193 <p>Return a point from a hermite curve. </p>
194 <p>From GLM_GTX_spline extension. </p>
1062195
1063196 </div>
1064197 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_spline: Spline</title>
4 <title>GLM_GTX_string_cast: String cast</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_spline: Spline</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_string_cast: String cast</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Spline functions.
38 <p>Setup strings for GLM type values.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
4343 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00293.html#gaecb37259be4b2370eab845c6d531f55b">catmullRom</a> (genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00293.html#gaae38edb178e0256e966955b19b61f617">cubic</a> (genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00293.html#ga3ea772a4bdf8b3514ef12b47944c844c">hermite</a> (genType const &amp;v1, genType const &amp;t1, genType const &amp;v2, genType const &amp;t2, typename genType::value_type const &amp;s)</td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00293.html#ga9ab4dfc4ab5f29591638fb56d7752fff">to_string</a> (genType const &amp;x)</td></tr>
4945 </table>
5046 <hr/><a name="_details"></a><h2>Detailed Description</h2>
51 <p>Spline functions. </p>
52 <p>&lt;<a class="el" href="a00104_source.html">glm/gtx/spline.hpp</a>&gt; need to be included to use these functionalities. </p>
47 <p>Setup strings for GLM type values. </p>
48 <p>&lt;<a class="el" href="a00106_source.html">glm/gtx/string_cast.hpp</a>&gt; need to be included to use these functionalities. </p>
5349 <hr/><h2>Function Documentation</h2>
54 <a class="anchor" id="gaecb37259be4b2370eab845c6d531f55b"></a><!-- doxytag: member="glm::gtx::spline::catmullRom" ref="gaecb37259be4b2370eab845c6d531f55b" args="(genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)" -->
50 <a class="anchor" id="ga9ab4dfc4ab5f29591638fb56d7752fff"></a><!-- doxytag: member="glm::gtx::string_cast::to_string" ref="ga9ab4dfc4ab5f29591638fb56d7752fff" args="(genType const &amp;x)" -->
5551 <div class="memitem">
5652 <div class="memproto">
5753 <table class="memname">
5854 <tr>
59 <td class="memname">genType catmullRom </td>
55 <td class="memname">std::string glm::gtx::string_cast::to_string </td>
6056 <td>(</td>
6157 <td class="paramtype">genType const &amp;&#160;</td>
62 <td class="paramname"><em>v1</em>, </td>
63 </tr>
64 <tr>
65 <td class="paramkey"></td>
58 <td class="paramname"><em>x</em></td><td>)</td>
6659 <td></td>
67 <td class="paramtype">genType const &amp;&#160;</td>
68 <td class="paramname"><em>v2</em>, </td>
69 </tr>
70 <tr>
71 <td class="paramkey"></td>
72 <td></td>
73 <td class="paramtype">genType const &amp;&#160;</td>
74 <td class="paramname"><em>v3</em>, </td>
75 </tr>
76 <tr>
77 <td class="paramkey"></td>
78 <td></td>
79 <td class="paramtype">genType const &amp;&#160;</td>
80 <td class="paramname"><em>v4</em>, </td>
81 </tr>
82 <tr>
83 <td class="paramkey"></td>
84 <td></td>
85 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
86 <td class="paramname"><em>s</em>&#160;</td>
87 </tr>
88 <tr>
89 <td></td>
90 <td>)</td>
91 <td></td><td></td>
9260 </tr>
9361 </table>
9462 </div>
9563 <div class="memdoc">
9664
97 <p>Return a point from a catmull rom curve. </p>
98 <p>From GLM_GTX_spline extension. </p>
99
100 </div>
101 </div>
102 <a class="anchor" id="gaae38edb178e0256e966955b19b61f617"></a><!-- doxytag: member="glm::gtx::spline::cubic" ref="gaae38edb178e0256e966955b19b61f617" args="(genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)" -->
103 <div class="memitem">
104 <div class="memproto">
105 <table class="memname">
106 <tr>
107 <td class="memname">genType cubic </td>
108 <td>(</td>
109 <td class="paramtype">genType const &amp;&#160;</td>
110 <td class="paramname"><em>v1</em>, </td>
111 </tr>
112 <tr>
113 <td class="paramkey"></td>
114 <td></td>
115 <td class="paramtype">genType const &amp;&#160;</td>
116 <td class="paramname"><em>v2</em>, </td>
117 </tr>
118 <tr>
119 <td class="paramkey"></td>
120 <td></td>
121 <td class="paramtype">genType const &amp;&#160;</td>
122 <td class="paramname"><em>v3</em>, </td>
123 </tr>
124 <tr>
125 <td class="paramkey"></td>
126 <td></td>
127 <td class="paramtype">genType const &amp;&#160;</td>
128 <td class="paramname"><em>v4</em>, </td>
129 </tr>
130 <tr>
131 <td class="paramkey"></td>
132 <td></td>
133 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
134 <td class="paramname"><em>s</em>&#160;</td>
135 </tr>
136 <tr>
137 <td></td>
138 <td>)</td>
139 <td></td><td></td>
140 </tr>
141 </table>
142 </div>
143 <div class="memdoc">
144
145 <p>Return a point from a cubic curve. </p>
146 <p>From GLM_GTX_spline extension. </p>
147
148 </div>
149 </div>
150 <a class="anchor" id="ga3ea772a4bdf8b3514ef12b47944c844c"></a><!-- doxytag: member="glm::gtx::spline::hermite" ref="ga3ea772a4bdf8b3514ef12b47944c844c" args="(genType const &amp;v1, genType const &amp;t1, genType const &amp;v2, genType const &amp;t2, typename genType::value_type const &amp;s)" -->
151 <div class="memitem">
152 <div class="memproto">
153 <table class="memname">
154 <tr>
155 <td class="memname">genType hermite </td>
156 <td>(</td>
157 <td class="paramtype">genType const &amp;&#160;</td>
158 <td class="paramname"><em>v1</em>, </td>
159 </tr>
160 <tr>
161 <td class="paramkey"></td>
162 <td></td>
163 <td class="paramtype">genType const &amp;&#160;</td>
164 <td class="paramname"><em>t1</em>, </td>
165 </tr>
166 <tr>
167 <td class="paramkey"></td>
168 <td></td>
169 <td class="paramtype">genType const &amp;&#160;</td>
170 <td class="paramname"><em>v2</em>, </td>
171 </tr>
172 <tr>
173 <td class="paramkey"></td>
174 <td></td>
175 <td class="paramtype">genType const &amp;&#160;</td>
176 <td class="paramname"><em>t2</em>, </td>
177 </tr>
178 <tr>
179 <td class="paramkey"></td>
180 <td></td>
181 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
182 <td class="paramname"><em>s</em>&#160;</td>
183 </tr>
184 <tr>
185 <td></td>
186 <td>)</td>
187 <td></td><td></td>
188 </tr>
189 </table>
190 </div>
191 <div class="memdoc">
192
193 <p>Return a point from a hermite curve. </p>
194 <p>From GLM_GTX_spline extension. </p>
65 <p>Create a string from a GLM type value. </p>
66 <p>From GLM_GTX_string_cast extension. </p>
19567
19668 </div>
19769 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_string_cast: String cast</title>
4 <title>GLM_GTX_transform: Extented transformation matrices</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_string_cast: String cast</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_transform: Extented transformation matrices</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Setup strings for GLM type values.
38 <p>Add transformation matrices.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#ga9ab4dfc4ab5f29591638fb56d7752fff">to_string</a> (genType const &amp;x)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#ga6051e4c2205da027f721331b22f70d9d">rotate</a> (T angle, T x, T y, T z)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#gaab3c5f8b6405944aaaa6268ab3749f5f">rotate</a> (T angle, detail::tvec3&lt; T &gt; const &amp;v)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#gac5913a422b1a75e764f1e4de2a04dac3">rotate</a> (detail::tmat4x4&lt; T &gt; const &amp;m, T angle, T x, T y, T z)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#ga9080c798473b0f9c114d8ad5ab82371d">scale</a> (detail::tvec3&lt; T &gt; const &amp;v)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#ga192ab17a07acc4465e397991182b8edb">scale</a> (detail::tmat4x4&lt; T &gt; const &amp;m, T x, T y, T z)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#ga491ec926cfd56184de78ce4594e004a0">scale</a> (T x, T y, T z)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#ga21cd332c98fa99eeeff42dc518a081d5">translate</a> (detail::tmat4x4&lt; T &gt; const &amp;m, T x, T y, T z)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#ga982331dbdf3a14d1ed6601e67178cff3">translate</a> (T x, T y, T z)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00294.html#gac0a389d3a4a74010983db8bccab78d7f">translate</a> (detail::tvec3&lt; T &gt; const &amp;v)</td></tr>
4561 </table>
4662 <hr/><a name="_details"></a><h2>Detailed Description</h2>
47 <p>Setup strings for GLM type values. </p>
48 <p>&lt;<a class="el" href="a00106_source.html">glm/gtx/string_cast.hpp</a>&gt; need to be included to use these functionalities. </p>
63 <p>Add transformation matrices. </p>
64 <p>&lt;<a class="el" href="a00108_source.html">glm/gtx/transform.hpp</a>&gt; need to be included to use these functionalities. </p>
4965 <hr/><h2>Function Documentation</h2>
50 <a class="anchor" id="ga9ab4dfc4ab5f29591638fb56d7752fff"></a><!-- doxytag: member="glm::gtx::string_cast::to_string" ref="ga9ab4dfc4ab5f29591638fb56d7752fff" args="(genType const &amp;x)" -->
51 <div class="memitem">
52 <div class="memproto">
53 <table class="memname">
54 <tr>
55 <td class="memname">std::string glm::gtx::string_cast::to_string </td>
56 <td>(</td>
57 <td class="paramtype">genType const &amp;&#160;</td>
58 <td class="paramname"><em>x</em></td><td>)</td>
59 <td></td>
60 </tr>
61 </table>
62 </div>
63 <div class="memdoc">
64
65 <p>Create a string from a GLM type value. </p>
66 <p>From GLM_GTX_string_cast extension. </p>
66 <a class="anchor" id="ga6051e4c2205da027f721331b22f70d9d"></a><!-- doxytag: member="glm::gtx::transform::rotate" ref="ga6051e4c2205da027f721331b22f70d9d" args="(T angle, T x, T y, T z)" -->
67 <div class="memitem">
68 <div class="memproto">
69 <table class="memname">
70 <tr>
71 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::rotate </td>
72 <td>(</td>
73 <td class="paramtype">T&#160;</td>
74 <td class="paramname"><em>angle</em>, </td>
75 </tr>
76 <tr>
77 <td class="paramkey"></td>
78 <td></td>
79 <td class="paramtype">T&#160;</td>
80 <td class="paramname"><em>x</em>, </td>
81 </tr>
82 <tr>
83 <td class="paramkey"></td>
84 <td></td>
85 <td class="paramtype">T&#160;</td>
86 <td class="paramname"><em>y</em>, </td>
87 </tr>
88 <tr>
89 <td class="paramkey"></td>
90 <td></td>
91 <td class="paramtype">T&#160;</td>
92 <td class="paramname"><em>z</em>&#160;</td>
93 </tr>
94 <tr>
95 <td></td>
96 <td>)</td>
97 <td></td><td></td>
98 </tr>
99 </table>
100 </div>
101 <div class="memdoc">
102
103 <p>Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees. </p>
104 <p>From GLM_GTX_transform extension. </p>
105
106 </div>
107 </div>
108 <a class="anchor" id="gaab3c5f8b6405944aaaa6268ab3749f5f"></a><!-- doxytag: member="glm::gtx::transform::rotate" ref="gaab3c5f8b6405944aaaa6268ab3749f5f" args="(T angle, detail::tvec3&lt; T &gt; const &amp;v)" -->
109 <div class="memitem">
110 <div class="memproto">
111 <table class="memname">
112 <tr>
113 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::rotate </td>
114 <td>(</td>
115 <td class="paramtype">T&#160;</td>
116 <td class="paramname"><em>angle</em>, </td>
117 </tr>
118 <tr>
119 <td class="paramkey"></td>
120 <td></td>
121 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
122 <td class="paramname"><em>v</em>&#160;</td>
123 </tr>
124 <tr>
125 <td></td>
126 <td>)</td>
127 <td></td><td></td>
128 </tr>
129 </table>
130 </div>
131 <div class="memdoc">
132
133 <p>Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees. </p>
134 <p>From GLM_GTX_transform extension. </p>
135
136 </div>
137 </div>
138 <a class="anchor" id="gac5913a422b1a75e764f1e4de2a04dac3"></a><!-- doxytag: member="glm::gtx::transform::rotate" ref="gac5913a422b1a75e764f1e4de2a04dac3" args="(detail::tmat4x4&lt; T &gt; const &amp;m, T angle, T x, T y, T z)" -->
139 <div class="memitem">
140 <div class="memproto">
141 <table class="memname">
142 <tr>
143 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::rotate </td>
144 <td>(</td>
145 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
146 <td class="paramname"><em>m</em>, </td>
147 </tr>
148 <tr>
149 <td class="paramkey"></td>
150 <td></td>
151 <td class="paramtype">T&#160;</td>
152 <td class="paramname"><em>angle</em>, </td>
153 </tr>
154 <tr>
155 <td class="paramkey"></td>
156 <td></td>
157 <td class="paramtype">T&#160;</td>
158 <td class="paramname"><em>x</em>, </td>
159 </tr>
160 <tr>
161 <td class="paramkey"></td>
162 <td></td>
163 <td class="paramtype">T&#160;</td>
164 <td class="paramname"><em>y</em>, </td>
165 </tr>
166 <tr>
167 <td class="paramkey"></td>
168 <td></td>
169 <td class="paramtype">T&#160;</td>
170 <td class="paramname"><em>z</em>&#160;</td>
171 </tr>
172 <tr>
173 <td></td>
174 <td>)</td>
175 <td></td><td></td>
176 </tr>
177 </table>
178 </div>
179 <div class="memdoc">
180
181 <p>Transforms a matrix with a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees. </p>
182 <p>From GLM_GTX_transform extension. </p>
183
184 </div>
185 </div>
186 <a class="anchor" id="ga9080c798473b0f9c114d8ad5ab82371d"></a><!-- doxytag: member="glm::gtx::transform::scale" ref="ga9080c798473b0f9c114d8ad5ab82371d" args="(detail::tvec3&lt; T &gt; const &amp;v)" -->
187 <div class="memitem">
188 <div class="memproto">
189 <table class="memname">
190 <tr>
191 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::scale </td>
192 <td>(</td>
193 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
194 <td class="paramname"><em>v</em></td><td>)</td>
195 <td></td>
196 </tr>
197 </table>
198 </div>
199 <div class="memdoc">
200
201 <p>Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components. </p>
202 <p>From GLM_GTX_transform extension. </p>
203
204 </div>
205 </div>
206 <a class="anchor" id="ga192ab17a07acc4465e397991182b8edb"></a><!-- doxytag: member="glm::gtx::transform::scale" ref="ga192ab17a07acc4465e397991182b8edb" args="(detail::tmat4x4&lt; T &gt; const &amp;m, T x, T y, T z)" -->
207 <div class="memitem">
208 <div class="memproto">
209 <table class="memname">
210 <tr>
211 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::scale </td>
212 <td>(</td>
213 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
214 <td class="paramname"><em>m</em>, </td>
215 </tr>
216 <tr>
217 <td class="paramkey"></td>
218 <td></td>
219 <td class="paramtype">T&#160;</td>
220 <td class="paramname"><em>x</em>, </td>
221 </tr>
222 <tr>
223 <td class="paramkey"></td>
224 <td></td>
225 <td class="paramtype">T&#160;</td>
226 <td class="paramname"><em>y</em>, </td>
227 </tr>
228 <tr>
229 <td class="paramkey"></td>
230 <td></td>
231 <td class="paramtype">T&#160;</td>
232 <td class="paramname"><em>z</em>&#160;</td>
233 </tr>
234 <tr>
235 <td></td>
236 <td>)</td>
237 <td></td><td></td>
238 </tr>
239 </table>
240 </div>
241 <div class="memdoc">
242
243 <p>Transforms a matrix with a scale 4 * 4 matrix created from 3 scalars. </p>
244 <p>From GLM_GTX_transform extension. </p>
245
246 </div>
247 </div>
248 <a class="anchor" id="ga491ec926cfd56184de78ce4594e004a0"></a><!-- doxytag: member="glm::gtx::transform::scale" ref="ga491ec926cfd56184de78ce4594e004a0" args="(T x, T y, T z)" -->
249 <div class="memitem">
250 <div class="memproto">
251 <table class="memname">
252 <tr>
253 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::scale </td>
254 <td>(</td>
255 <td class="paramtype">T&#160;</td>
256 <td class="paramname"><em>x</em>, </td>
257 </tr>
258 <tr>
259 <td class="paramkey"></td>
260 <td></td>
261 <td class="paramtype">T&#160;</td>
262 <td class="paramname"><em>y</em>, </td>
263 </tr>
264 <tr>
265 <td class="paramkey"></td>
266 <td></td>
267 <td class="paramtype">T&#160;</td>
268 <td class="paramname"><em>z</em>&#160;</td>
269 </tr>
270 <tr>
271 <td></td>
272 <td>)</td>
273 <td></td><td></td>
274 </tr>
275 </table>
276 </div>
277 <div class="memdoc">
278
279 <p>Builds a scale 4 * 4 matrix created from 3 scalars. </p>
280 <p>From GLM_GTX_transform extension. </p>
281
282 </div>
283 </div>
284 <a class="anchor" id="ga21cd332c98fa99eeeff42dc518a081d5"></a><!-- doxytag: member="glm::gtx::transform::translate" ref="ga21cd332c98fa99eeeff42dc518a081d5" args="(detail::tmat4x4&lt; T &gt; const &amp;m, T x, T y, T z)" -->
285 <div class="memitem">
286 <div class="memproto">
287 <table class="memname">
288 <tr>
289 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::translate </td>
290 <td>(</td>
291 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
292 <td class="paramname"><em>m</em>, </td>
293 </tr>
294 <tr>
295 <td class="paramkey"></td>
296 <td></td>
297 <td class="paramtype">T&#160;</td>
298 <td class="paramname"><em>x</em>, </td>
299 </tr>
300 <tr>
301 <td class="paramkey"></td>
302 <td></td>
303 <td class="paramtype">T&#160;</td>
304 <td class="paramname"><em>y</em>, </td>
305 </tr>
306 <tr>
307 <td class="paramkey"></td>
308 <td></td>
309 <td class="paramtype">T&#160;</td>
310 <td class="paramname"><em>z</em>&#160;</td>
311 </tr>
312 <tr>
313 <td></td>
314 <td>)</td>
315 <td></td><td></td>
316 </tr>
317 </table>
318 </div>
319 <div class="memdoc">
320
321 <p>Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. </p>
322 <p>From GLM_GTX_transform extension. </p>
323
324 </div>
325 </div>
326 <a class="anchor" id="ga982331dbdf3a14d1ed6601e67178cff3"></a><!-- doxytag: member="glm::gtx::transform::translate" ref="ga982331dbdf3a14d1ed6601e67178cff3" args="(T x, T y, T z)" -->
327 <div class="memitem">
328 <div class="memproto">
329 <table class="memname">
330 <tr>
331 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::translate </td>
332 <td>(</td>
333 <td class="paramtype">T&#160;</td>
334 <td class="paramname"><em>x</em>, </td>
335 </tr>
336 <tr>
337 <td class="paramkey"></td>
338 <td></td>
339 <td class="paramtype">T&#160;</td>
340 <td class="paramname"><em>y</em>, </td>
341 </tr>
342 <tr>
343 <td class="paramkey"></td>
344 <td></td>
345 <td class="paramtype">T&#160;</td>
346 <td class="paramname"><em>z</em>&#160;</td>
347 </tr>
348 <tr>
349 <td></td>
350 <td>)</td>
351 <td></td><td></td>
352 </tr>
353 </table>
354 </div>
355 <div class="memdoc">
356
357 <p>Builds a translation 4 * 4 matrix created from 3 scalars. </p>
358 <p>From GLM_GTX_transform extension. </p>
359
360 </div>
361 </div>
362 <a class="anchor" id="gac0a389d3a4a74010983db8bccab78d7f"></a><!-- doxytag: member="glm::gtx::transform::translate" ref="gac0a389d3a4a74010983db8bccab78d7f" args="(detail::tvec3&lt; T &gt; const &amp;v)" -->
363 <div class="memitem">
364 <div class="memproto">
365 <table class="memname">
366 <tr>
367 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::translate </td>
368 <td>(</td>
369 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
370 <td class="paramname"><em>v</em></td><td>)</td>
371 <td></td>
372 </tr>
373 </table>
374 </div>
375 <div class="memdoc">
376
377 <p>Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. </p>
378 <p>From GLM_GTX_transform extension. </p>
67379
68380 </div>
69381 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_transform: Extented transformation matrices</title>
4 <title>GLM_GTX_transform2: Extra transformation matrices</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_transform: Extented transformation matrices</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_transform2: Extra transformation matrices</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Add transformation matrices.
38 <p>Add extra transformation matrices.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
4343 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga6051e4c2205da027f721331b22f70d9d">rotate</a> (T angle, T x, T y, T z)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#gaab3c5f8b6405944aaaa6268ab3749f5f">rotate</a> (T angle, detail::tvec3&lt; T &gt; const &amp;v)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#gac5913a422b1a75e764f1e4de2a04dac3">rotate</a> (detail::tmat4x4&lt; T &gt; const &amp;m, T angle, T x, T y, T z)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga9080c798473b0f9c114d8ad5ab82371d">scale</a> (detail::tvec3&lt; T &gt; const &amp;v)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga192ab17a07acc4465e397991182b8edb">scale</a> (detail::tmat4x4&lt; T &gt; const &amp;m, T x, T y, T z)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga491ec926cfd56184de78ce4594e004a0">scale</a> (T x, T y, T z)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga21cd332c98fa99eeeff42dc518a081d5">translate</a> (detail::tmat4x4&lt; T &gt; const &amp;m, T x, T y, T z)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga982331dbdf3a14d1ed6601e67178cff3">translate</a> (T x, T y, T z)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#gac0a389d3a4a74010983db8bccab78d7f">translate</a> (detail::tvec3&lt; T &gt; const &amp;v)</td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#gad67f97fe49fb1709d6d8b6810c7c52fb">proj2D</a> (const detail::tmat3x3&lt; T &gt; &amp;m, const detail::tvec3&lt; T &gt; &amp;normal)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#gabc160967cd323027f973976457590482">proj3D</a> (const detail::tmat4x4&lt; T &gt; &amp;m, const detail::tvec3&lt; T &gt; &amp;normal)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#gae193c4807264f8454b1786ceeac02455">scaleBias</a> (valType scale, valType bias)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga54ded59dc618054791cca47fd9bf1680">scaleBias</a> (detail::tmat4x4&lt; valType &gt; const &amp;m, valType scale, valType bias)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#gaf9900000ffffcb4e50f0f97101a35a27">shearX2D</a> (detail::tmat3x3&lt; T &gt; const &amp;m, T y)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga8b165c7be525526861e19675cca6e192">shearX3D</a> (const detail::tmat4x4&lt; T &gt; &amp;m, T y, T z)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga73d1c5572f57bc69cd8296fa6411370a">shearY2D</a> (detail::tmat3x3&lt; T &gt; const &amp;m, T x)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#gab059e40261cbfe782efb81aa866f1399">shearY3D</a> (const detail::tmat4x4&lt; T &gt; &amp;m, T x, T z)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00295.html#ga3fbd91d387fea4c3f2d74e0ef2250996">shearZ3D</a> (const detail::tmat4x4&lt; T &gt; &amp;m, T x, T y)</td></tr>
6161 </table>
6262 <hr/><a name="_details"></a><h2>Detailed Description</h2>
63 <p>Add transformation matrices. </p>
64 <p>&lt;<a class="el" href="a00108_source.html">glm/gtx/transform.hpp</a>&gt; need to be included to use these functionalities. </p>
63 <p>Add extra transformation matrices. </p>
64 <p>&lt;<a class="el" href="a00109_source.html">glm/gtx/transform2.hpp</a>&gt; need to be included to use these functionalities. </p>
6565 <hr/><h2>Function Documentation</h2>
66 <a class="anchor" id="ga6051e4c2205da027f721331b22f70d9d"></a><!-- doxytag: member="glm::gtx::transform::rotate" ref="ga6051e4c2205da027f721331b22f70d9d" args="(T angle, T x, T y, T z)" -->
67 <div class="memitem">
68 <div class="memproto">
69 <table class="memname">
70 <tr>
71 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::rotate </td>
72 <td>(</td>
73 <td class="paramtype">T&#160;</td>
74 <td class="paramname"><em>angle</em>, </td>
66 <a class="anchor" id="gad67f97fe49fb1709d6d8b6810c7c52fb"></a><!-- doxytag: member="glm::gtx::transform2::proj2D" ref="gad67f97fe49fb1709d6d8b6810c7c52fb" args="(const detail::tmat3x3&lt; T &gt; &amp;m, const detail::tvec3&lt; T &gt; &amp;normal)" -->
67 <div class="memitem">
68 <div class="memproto">
69 <table class="memname">
70 <tr>
71 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::transform2::proj2D </td>
72 <td>(</td>
73 <td class="paramtype">const detail::tmat3x3&lt; T &gt; &amp;&#160;</td>
74 <td class="paramname"><em>m</em>, </td>
75 </tr>
76 <tr>
77 <td class="paramkey"></td>
78 <td></td>
79 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
80 <td class="paramname"><em>normal</em>&#160;</td>
81 </tr>
82 <tr>
83 <td></td>
84 <td>)</td>
85 <td></td><td></td>
86 </tr>
87 </table>
88 </div>
89 <div class="memdoc">
90
91 <p>Build planar projection matrix along normal axis. </p>
92 <p>From GLM_GTX_transform2 extension. </p>
93
94 </div>
95 </div>
96 <a class="anchor" id="gabc160967cd323027f973976457590482"></a><!-- doxytag: member="glm::gtx::transform2::proj3D" ref="gabc160967cd323027f973976457590482" args="(const detail::tmat4x4&lt; T &gt; &amp;m, const detail::tvec3&lt; T &gt; &amp;normal)" -->
97 <div class="memitem">
98 <div class="memproto">
99 <table class="memname">
100 <tr>
101 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform2::proj3D </td>
102 <td>(</td>
103 <td class="paramtype">const detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
104 <td class="paramname"><em>m</em>, </td>
105 </tr>
106 <tr>
107 <td class="paramkey"></td>
108 <td></td>
109 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
110 <td class="paramname"><em>normal</em>&#160;</td>
111 </tr>
112 <tr>
113 <td></td>
114 <td>)</td>
115 <td></td><td></td>
116 </tr>
117 </table>
118 </div>
119 <div class="memdoc">
120
121 <p>Build planar projection matrix along normal axis. </p>
122 <p>From GLM_GTX_transform2 extension. </p>
123
124 </div>
125 </div>
126 <a class="anchor" id="gae193c4807264f8454b1786ceeac02455"></a><!-- doxytag: member="glm::gtx::transform2::scaleBias" ref="gae193c4807264f8454b1786ceeac02455" args="(valType scale, valType bias)" -->
127 <div class="memitem">
128 <div class="memproto">
129 <table class="memname">
130 <tr>
131 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::transform2::scaleBias </td>
132 <td>(</td>
133 <td class="paramtype">valType&#160;</td>
134 <td class="paramname"><em>scale</em>, </td>
135 </tr>
136 <tr>
137 <td class="paramkey"></td>
138 <td></td>
139 <td class="paramtype">valType&#160;</td>
140 <td class="paramname"><em>bias</em>&#160;</td>
141 </tr>
142 <tr>
143 <td></td>
144 <td>)</td>
145 <td></td><td></td>
146 </tr>
147 </table>
148 </div>
149 <div class="memdoc">
150
151 <p>Build a scale bias matrix. </p>
152 <p>From GLM_GTX_transform2 extension. </p>
153
154 </div>
155 </div>
156 <a class="anchor" id="ga54ded59dc618054791cca47fd9bf1680"></a><!-- doxytag: member="glm::gtx::transform2::scaleBias" ref="ga54ded59dc618054791cca47fd9bf1680" args="(detail::tmat4x4&lt; valType &gt; const &amp;m, valType scale, valType bias)" -->
157 <div class="memitem">
158 <div class="memproto">
159 <table class="memname">
160 <tr>
161 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::transform2::scaleBias </td>
162 <td>(</td>
163 <td class="paramtype">detail::tmat4x4&lt; valType &gt; const &amp;&#160;</td>
164 <td class="paramname"><em>m</em>, </td>
165 </tr>
166 <tr>
167 <td class="paramkey"></td>
168 <td></td>
169 <td class="paramtype">valType&#160;</td>
170 <td class="paramname"><em>scale</em>, </td>
171 </tr>
172 <tr>
173 <td class="paramkey"></td>
174 <td></td>
175 <td class="paramtype">valType&#160;</td>
176 <td class="paramname"><em>bias</em>&#160;</td>
177 </tr>
178 <tr>
179 <td></td>
180 <td>)</td>
181 <td></td><td></td>
182 </tr>
183 </table>
184 </div>
185 <div class="memdoc">
186
187 <p>Build a scale bias matrix. </p>
188 <p>From GLM_GTX_transform2 extension. </p>
189
190 </div>
191 </div>
192 <a class="anchor" id="gaf9900000ffffcb4e50f0f97101a35a27"></a><!-- doxytag: member="glm::gtx::transform2::shearX2D" ref="gaf9900000ffffcb4e50f0f97101a35a27" args="(detail::tmat3x3&lt; T &gt; const &amp;m, T y)" -->
193 <div class="memitem">
194 <div class="memproto">
195 <table class="memname">
196 <tr>
197 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::transform2::shearX2D </td>
198 <td>(</td>
199 <td class="paramtype">detail::tmat3x3&lt; T &gt; const &amp;&#160;</td>
200 <td class="paramname"><em>m</em>, </td>
201 </tr>
202 <tr>
203 <td class="paramkey"></td>
204 <td></td>
205 <td class="paramtype">T&#160;</td>
206 <td class="paramname"><em>y</em>&#160;</td>
207 </tr>
208 <tr>
209 <td></td>
210 <td>)</td>
211 <td></td><td></td>
212 </tr>
213 </table>
214 </div>
215 <div class="memdoc">
216
217 <p>Transforms a matrix with a shearing on X axis. </p>
218 <p>From GLM_GTX_transform2 extension. </p>
219
220 </div>
221 </div>
222 <a class="anchor" id="ga8b165c7be525526861e19675cca6e192"></a><!-- doxytag: member="glm::gtx::transform2::shearX3D" ref="ga8b165c7be525526861e19675cca6e192" args="(const detail::tmat4x4&lt; T &gt; &amp;m, T y, T z)" -->
223 <div class="memitem">
224 <div class="memproto">
225 <table class="memname">
226 <tr>
227 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform2::shearX3D </td>
228 <td>(</td>
229 <td class="paramtype">const detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
230 <td class="paramname"><em>m</em>, </td>
231 </tr>
232 <tr>
233 <td class="paramkey"></td>
234 <td></td>
235 <td class="paramtype">T&#160;</td>
236 <td class="paramname"><em>y</em>, </td>
237 </tr>
238 <tr>
239 <td class="paramkey"></td>
240 <td></td>
241 <td class="paramtype">T&#160;</td>
242 <td class="paramname"><em>z</em>&#160;</td>
243 </tr>
244 <tr>
245 <td></td>
246 <td>)</td>
247 <td></td><td></td>
248 </tr>
249 </table>
250 </div>
251 <div class="memdoc">
252
253 <p>Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension. </p>
254
255 </div>
256 </div>
257 <a class="anchor" id="ga73d1c5572f57bc69cd8296fa6411370a"></a><!-- doxytag: member="glm::gtx::transform2::shearY2D" ref="ga73d1c5572f57bc69cd8296fa6411370a" args="(detail::tmat3x3&lt; T &gt; const &amp;m, T x)" -->
258 <div class="memitem">
259 <div class="memproto">
260 <table class="memname">
261 <tr>
262 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::transform2::shearY2D </td>
263 <td>(</td>
264 <td class="paramtype">detail::tmat3x3&lt; T &gt; const &amp;&#160;</td>
265 <td class="paramname"><em>m</em>, </td>
266 </tr>
267 <tr>
268 <td class="paramkey"></td>
269 <td></td>
270 <td class="paramtype">T&#160;</td>
271 <td class="paramname"><em>x</em>&#160;</td>
272 </tr>
273 <tr>
274 <td></td>
275 <td>)</td>
276 <td></td><td></td>
277 </tr>
278 </table>
279 </div>
280 <div class="memdoc">
281
282 <p>Transforms a matrix with a shearing on Y axis. </p>
283 <p>From GLM_GTX_transform2 extension. </p>
284
285 </div>
286 </div>
287 <a class="anchor" id="gab059e40261cbfe782efb81aa866f1399"></a><!-- doxytag: member="glm::gtx::transform2::shearY3D" ref="gab059e40261cbfe782efb81aa866f1399" args="(const detail::tmat4x4&lt; T &gt; &amp;m, T x, T z)" -->
288 <div class="memitem">
289 <div class="memproto">
290 <table class="memname">
291 <tr>
292 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform2::shearY3D </td>
293 <td>(</td>
294 <td class="paramtype">const detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
295 <td class="paramname"><em>m</em>, </td>
75296 </tr>
76297 <tr>
77298 <td class="paramkey"></td>
83304 <td class="paramkey"></td>
84305 <td></td>
85306 <td class="paramtype">T&#160;</td>
86 <td class="paramname"><em>y</em>, </td>
87 </tr>
88 <tr>
89 <td class="paramkey"></td>
90 <td></td>
91 <td class="paramtype">T&#160;</td>
92307 <td class="paramname"><em>z</em>&#160;</td>
93308 </tr>
94309 <tr>
100315 </div>
101316 <div class="memdoc">
102317
103 <p>Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees. </p>
104 <p>From GLM_GTX_transform extension. </p>
105
106 </div>
107 </div>
108 <a class="anchor" id="gaab3c5f8b6405944aaaa6268ab3749f5f"></a><!-- doxytag: member="glm::gtx::transform::rotate" ref="gaab3c5f8b6405944aaaa6268ab3749f5f" args="(T angle, detail::tvec3&lt; T &gt; const &amp;v)" -->
109 <div class="memitem">
110 <div class="memproto">
111 <table class="memname">
112 <tr>
113 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::rotate </td>
114 <td>(</td>
115 <td class="paramtype">T&#160;</td>
116 <td class="paramname"><em>angle</em>, </td>
117 </tr>
118 <tr>
119 <td class="paramkey"></td>
120 <td></td>
121 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
122 <td class="paramname"><em>v</em>&#160;</td>
123 </tr>
124 <tr>
125 <td></td>
126 <td>)</td>
127 <td></td><td></td>
128 </tr>
129 </table>
130 </div>
131 <div class="memdoc">
132
133 <p>Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees. </p>
134 <p>From GLM_GTX_transform extension. </p>
135
136 </div>
137 </div>
138 <a class="anchor" id="gac5913a422b1a75e764f1e4de2a04dac3"></a><!-- doxytag: member="glm::gtx::transform::rotate" ref="gac5913a422b1a75e764f1e4de2a04dac3" args="(detail::tmat4x4&lt; T &gt; const &amp;m, T angle, T x, T y, T z)" -->
139 <div class="memitem">
140 <div class="memproto">
141 <table class="memname">
142 <tr>
143 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::rotate </td>
144 <td>(</td>
145 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
146 <td class="paramname"><em>m</em>, </td>
147 </tr>
148 <tr>
149 <td class="paramkey"></td>
150 <td></td>
151 <td class="paramtype">T&#160;</td>
152 <td class="paramname"><em>angle</em>, </td>
318 <p>Transforms a matrix with a shearing on Y axis. </p>
319 <p>From GLM_GTX_transform2 extension. </p>
320
321 </div>
322 </div>
323 <a class="anchor" id="ga3fbd91d387fea4c3f2d74e0ef2250996"></a><!-- doxytag: member="glm::gtx::transform2::shearZ3D" ref="ga3fbd91d387fea4c3f2d74e0ef2250996" args="(const detail::tmat4x4&lt; T &gt; &amp;m, T x, T y)" -->
324 <div class="memitem">
325 <div class="memproto">
326 <table class="memname">
327 <tr>
328 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform2::shearZ3D </td>
329 <td>(</td>
330 <td class="paramtype">const detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
331 <td class="paramname"><em>m</em>, </td>
153332 </tr>
154333 <tr>
155334 <td class="paramkey"></td>
161340 <td class="paramkey"></td>
162341 <td></td>
163342 <td class="paramtype">T&#160;</td>
164 <td class="paramname"><em>y</em>, </td>
165 </tr>
166 <tr>
167 <td class="paramkey"></td>
168 <td></td>
169 <td class="paramtype">T&#160;</td>
170 <td class="paramname"><em>z</em>&#160;</td>
171 </tr>
172 <tr>
173 <td></td>
174 <td>)</td>
175 <td></td><td></td>
176 </tr>
177 </table>
178 </div>
179 <div class="memdoc">
180
181 <p>Transforms a matrix with a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees. </p>
182 <p>From GLM_GTX_transform extension. </p>
183
184 </div>
185 </div>
186 <a class="anchor" id="ga9080c798473b0f9c114d8ad5ab82371d"></a><!-- doxytag: member="glm::gtx::transform::scale" ref="ga9080c798473b0f9c114d8ad5ab82371d" args="(detail::tvec3&lt; T &gt; const &amp;v)" -->
187 <div class="memitem">
188 <div class="memproto">
189 <table class="memname">
190 <tr>
191 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::scale </td>
192 <td>(</td>
193 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
194 <td class="paramname"><em>v</em></td><td>)</td>
195 <td></td>
196 </tr>
197 </table>
198 </div>
199 <div class="memdoc">
200
201 <p>Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components. </p>
202 <p>From GLM_GTX_transform extension. </p>
203
204 </div>
205 </div>
206 <a class="anchor" id="ga192ab17a07acc4465e397991182b8edb"></a><!-- doxytag: member="glm::gtx::transform::scale" ref="ga192ab17a07acc4465e397991182b8edb" args="(detail::tmat4x4&lt; T &gt; const &amp;m, T x, T y, T z)" -->
207 <div class="memitem">
208 <div class="memproto">
209 <table class="memname">
210 <tr>
211 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::scale </td>
212 <td>(</td>
213 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
214 <td class="paramname"><em>m</em>, </td>
215 </tr>
216 <tr>
217 <td class="paramkey"></td>
218 <td></td>
219 <td class="paramtype">T&#160;</td>
220 <td class="paramname"><em>x</em>, </td>
221 </tr>
222 <tr>
223 <td class="paramkey"></td>
224 <td></td>
225 <td class="paramtype">T&#160;</td>
226 <td class="paramname"><em>y</em>, </td>
227 </tr>
228 <tr>
229 <td class="paramkey"></td>
230 <td></td>
231 <td class="paramtype">T&#160;</td>
232 <td class="paramname"><em>z</em>&#160;</td>
233 </tr>
234 <tr>
235 <td></td>
236 <td>)</td>
237 <td></td><td></td>
238 </tr>
239 </table>
240 </div>
241 <div class="memdoc">
242
243 <p>Transforms a matrix with a scale 4 * 4 matrix created from 3 scalars. </p>
244 <p>From GLM_GTX_transform extension. </p>
245
246 </div>
247 </div>
248 <a class="anchor" id="ga491ec926cfd56184de78ce4594e004a0"></a><!-- doxytag: member="glm::gtx::transform::scale" ref="ga491ec926cfd56184de78ce4594e004a0" args="(T x, T y, T z)" -->
249 <div class="memitem">
250 <div class="memproto">
251 <table class="memname">
252 <tr>
253 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::scale </td>
254 <td>(</td>
255 <td class="paramtype">T&#160;</td>
256 <td class="paramname"><em>x</em>, </td>
257 </tr>
258 <tr>
259 <td class="paramkey"></td>
260 <td></td>
261 <td class="paramtype">T&#160;</td>
262 <td class="paramname"><em>y</em>, </td>
263 </tr>
264 <tr>
265 <td class="paramkey"></td>
266 <td></td>
267 <td class="paramtype">T&#160;</td>
268 <td class="paramname"><em>z</em>&#160;</td>
269 </tr>
270 <tr>
271 <td></td>
272 <td>)</td>
273 <td></td><td></td>
274 </tr>
275 </table>
276 </div>
277 <div class="memdoc">
278
279 <p>Builds a scale 4 * 4 matrix created from 3 scalars. </p>
280 <p>From GLM_GTX_transform extension. </p>
281
282 </div>
283 </div>
284 <a class="anchor" id="ga21cd332c98fa99eeeff42dc518a081d5"></a><!-- doxytag: member="glm::gtx::transform::translate" ref="ga21cd332c98fa99eeeff42dc518a081d5" args="(detail::tmat4x4&lt; T &gt; const &amp;m, T x, T y, T z)" -->
285 <div class="memitem">
286 <div class="memproto">
287 <table class="memname">
288 <tr>
289 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::translate </td>
290 <td>(</td>
291 <td class="paramtype">detail::tmat4x4&lt; T &gt; const &amp;&#160;</td>
292 <td class="paramname"><em>m</em>, </td>
293 </tr>
294 <tr>
295 <td class="paramkey"></td>
296 <td></td>
297 <td class="paramtype">T&#160;</td>
298 <td class="paramname"><em>x</em>, </td>
299 </tr>
300 <tr>
301 <td class="paramkey"></td>
302 <td></td>
303 <td class="paramtype">T&#160;</td>
304 <td class="paramname"><em>y</em>, </td>
305 </tr>
306 <tr>
307 <td class="paramkey"></td>
308 <td></td>
309 <td class="paramtype">T&#160;</td>
310 <td class="paramname"><em>z</em>&#160;</td>
311 </tr>
312 <tr>
313 <td></td>
314 <td>)</td>
315 <td></td><td></td>
316 </tr>
317 </table>
318 </div>
319 <div class="memdoc">
320
321 <p>Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. </p>
322 <p>From GLM_GTX_transform extension. </p>
323
324 </div>
325 </div>
326 <a class="anchor" id="ga982331dbdf3a14d1ed6601e67178cff3"></a><!-- doxytag: member="glm::gtx::transform::translate" ref="ga982331dbdf3a14d1ed6601e67178cff3" args="(T x, T y, T z)" -->
327 <div class="memitem">
328 <div class="memproto">
329 <table class="memname">
330 <tr>
331 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::translate </td>
332 <td>(</td>
333 <td class="paramtype">T&#160;</td>
334 <td class="paramname"><em>x</em>, </td>
335 </tr>
336 <tr>
337 <td class="paramkey"></td>
338 <td></td>
339 <td class="paramtype">T&#160;</td>
340 <td class="paramname"><em>y</em>, </td>
341 </tr>
342 <tr>
343 <td class="paramkey"></td>
344 <td></td>
345 <td class="paramtype">T&#160;</td>
346 <td class="paramname"><em>z</em>&#160;</td>
347 </tr>
348 <tr>
349 <td></td>
350 <td>)</td>
351 <td></td><td></td>
352 </tr>
353 </table>
354 </div>
355 <div class="memdoc">
356
357 <p>Builds a translation 4 * 4 matrix created from 3 scalars. </p>
358 <p>From GLM_GTX_transform extension. </p>
359
360 </div>
361 </div>
362 <a class="anchor" id="gac0a389d3a4a74010983db8bccab78d7f"></a><!-- doxytag: member="glm::gtx::transform::translate" ref="gac0a389d3a4a74010983db8bccab78d7f" args="(detail::tvec3&lt; T &gt; const &amp;v)" -->
363 <div class="memitem">
364 <div class="memproto">
365 <table class="memname">
366 <tr>
367 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform::translate </td>
368 <td>(</td>
369 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
370 <td class="paramname"><em>v</em></td><td>)</td>
371 <td></td>
372 </tr>
373 </table>
374 </div>
375 <div class="memdoc">
376
377 <p>Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. </p>
378 <p>From GLM_GTX_transform extension. </p>
343 <td class="paramname"><em>y</em>&#160;</td>
344 </tr>
345 <tr>
346 <td></td>
347 <td>)</td>
348 <td></td><td></td>
349 </tr>
350 </table>
351 </div>
352 <div class="memdoc">
353
354 <p>Transforms a matrix with a shearing on Z axis. </p>
355 <p>From GLM_GTX_transform2 extension. </p>
379356
380357 </div>
381358 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_transform2: Extra transformation matrices</title>
4 <title>GLM_GTX_unsigned_int: Unsigned int</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#typedef-members">Typedefs</a> &#124;
3233 <a href="#func-members">Functions</a> </div>
3334 <div class="headertitle">
34 <h1>GLM_GTX_transform2: Extra transformation matrices</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
35 <h1>GLM_GTX_unsigned_int: Unsigned int</h1> </div>
36 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3637 <div class="contents">
3738
38 <p>Add extra transformation matrices.
39 <p>Add support for unsigned integer for core functions.
3940 <a href="#_details">More...</a></p>
4041 <table class="memberdecls">
42 <tr><td colspan="2"><h2><a name="typedef-members"></a>
43 Typedefs</h2></td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top">typedef signed int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00296.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a></td></tr>
4145 <tr><td colspan="2"><h2><a name="func-members"></a>
4246 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#gad67f97fe49fb1709d6d8b6810c7c52fb">proj2D</a> (const detail::tmat3x3&lt; T &gt; &amp;m, const detail::tvec3&lt; T &gt; &amp;normal)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#gabc160967cd323027f973976457590482">proj3D</a> (const detail::tmat4x4&lt; T &gt; &amp;m, const detail::tvec3&lt; T &gt; &amp;normal)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#gae193c4807264f8454b1786ceeac02455">scaleBias</a> (valType scale, valType bias)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#ga54ded59dc618054791cca47fd9bf1680">scaleBias</a> (detail::tmat4x4&lt; valType &gt; const &amp;m, valType scale, valType bias)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#gaf9900000ffffcb4e50f0f97101a35a27">shearX2D</a> (detail::tmat3x3&lt; T &gt; const &amp;m, T y)</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#ga8b165c7be525526861e19675cca6e192">shearX3D</a> (const detail::tmat4x4&lt; T &gt; &amp;m, T y, T z)</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#ga73d1c5572f57bc69cd8296fa6411370a">shearY2D</a> (detail::tmat3x3&lt; T &gt; const &amp;m, T x)</td></tr>
57 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
58 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#gab059e40261cbfe782efb81aa866f1399">shearY3D</a> (const detail::tmat4x4&lt; T &gt; &amp;m, T x, T z)</td></tr>
59 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
60 <tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00296.html#ga3fbd91d387fea4c3f2d74e0ef2250996">shearZ3D</a> (const detail::tmat4x4&lt; T &gt; &amp;m, T x, T y)</td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00296.html#ga61b96cbe026915bfa3f471d7d1e8d0e7">mod</a> (uint x, uint y)</td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00296.html#ga9f8b197b576d9b2f0b5bfe63dc1f638f">pow</a> (uint x, uint y)</td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00296.html#ga0fe1b8123e6661dda5969ee76a2b23df">sqrt</a> (uint x)</td></tr>
6150 </table>
6251 <hr/><a name="_details"></a><h2>Detailed Description</h2>
63 <p>Add extra transformation matrices. </p>
64 <p>&lt;<a class="el" href="a00109_source.html">glm/gtx/transform2.hpp</a>&gt; need to be included to use these functionalities. </p>
65 <hr/><h2>Function Documentation</h2>
66 <a class="anchor" id="gad67f97fe49fb1709d6d8b6810c7c52fb"></a><!-- doxytag: member="glm::gtx::transform2::proj2D" ref="gad67f97fe49fb1709d6d8b6810c7c52fb" args="(const detail::tmat3x3&lt; T &gt; &amp;m, const detail::tvec3&lt; T &gt; &amp;normal)" -->
52 <p>Add support for unsigned integer for core functions. </p>
53 <p>&lt;<a class="el" href="a00134_source.html">glm/gtx/unsigned_int.hpp</a>&gt; need to be included to use these functionalities. </p>
54 <hr/><h2>Typedef Documentation</h2>
55 <a class="anchor" id="gada7e83fdfe943aba4f1d5bf80cb66f40"></a><!-- doxytag: member="glm::gtx::unsigned_int::sint" ref="gada7e83fdfe943aba4f1d5bf80cb66f40" args="" -->
6756 <div class="memitem">
6857 <div class="memproto">
6958 <table class="memname">
7059 <tr>
71 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::transform2::proj2D </td>
72 <td>(</td>
73 <td class="paramtype">const detail::tmat3x3&lt; T &gt; &amp;&#160;</td>
74 <td class="paramname"><em>m</em>, </td>
75 </tr>
76 <tr>
77 <td class="paramkey"></td>
78 <td></td>
79 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
80 <td class="paramname"><em>normal</em>&#160;</td>
81 </tr>
82 <tr>
83 <td></td>
84 <td>)</td>
85 <td></td><td></td>
60 <td class="memname">typedef signed int sint</td>
8661 </tr>
8762 </table>
8863 </div>
8964 <div class="memdoc">
9065
91 <p>Build planar projection matrix along normal axis. </p>
92 <p>From GLM_GTX_transform2 extension. </p>
66 <p>32bit signed integer. </p>
67 <p>From GLM_GTX_unsigned_int extension. </p>
68
69 <p>Definition at line <a class="el" href="a00134_source.html#l00036">36</a> of file <a class="el" href="a00134_source.html">unsigned_int.hpp</a>.</p>
9370
9471 </div>
9572 </div>
96 <a class="anchor" id="gabc160967cd323027f973976457590482"></a><!-- doxytag: member="glm::gtx::transform2::proj3D" ref="gabc160967cd323027f973976457590482" args="(const detail::tmat4x4&lt; T &gt; &amp;m, const detail::tvec3&lt; T &gt; &amp;normal)" -->
73 <hr/><h2>Function Documentation</h2>
74 <a class="anchor" id="ga61b96cbe026915bfa3f471d7d1e8d0e7"></a><!-- doxytag: member="glm::gtx::unsigned_int::mod" ref="ga61b96cbe026915bfa3f471d7d1e8d0e7" args="(uint x, uint y)" -->
9775 <div class="memitem">
9876 <div class="memproto">
9977 <table class="memname">
10078 <tr>
101 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform2::proj3D </td>
79 <td class="memname">uint glm::gtx::unsigned_int::mod </td>
10280 <td>(</td>
103 <td class="paramtype">const detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
104 <td class="paramname"><em>m</em>, </td>
81 <td class="paramtype">uint&#160;</td>
82 <td class="paramname"><em>x</em>, </td>
10583 </tr>
10684 <tr>
10785 <td class="paramkey"></td>
10886 <td></td>
109 <td class="paramtype">const detail::tvec3&lt; T &gt; &amp;&#160;</td>
110 <td class="paramname"><em>normal</em>&#160;</td>
111 </tr>
112 <tr>
113 <td></td>
114 <td>)</td>
115 <td></td><td></td>
116 </tr>
117 </table>
118 </div>
119 <div class="memdoc">
120
121 <p>Build planar projection matrix along normal axis. </p>
122 <p>From GLM_GTX_transform2 extension. </p>
123
124 </div>
125 </div>
126 <a class="anchor" id="gae193c4807264f8454b1786ceeac02455"></a><!-- doxytag: member="glm::gtx::transform2::scaleBias" ref="gae193c4807264f8454b1786ceeac02455" args="(valType scale, valType bias)" -->
127 <div class="memitem">
128 <div class="memproto">
129 <table class="memname">
130 <tr>
131 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::transform2::scaleBias </td>
132 <td>(</td>
133 <td class="paramtype">valType&#160;</td>
134 <td class="paramname"><em>scale</em>, </td>
135 </tr>
136 <tr>
137 <td class="paramkey"></td>
138 <td></td>
139 <td class="paramtype">valType&#160;</td>
140 <td class="paramname"><em>bias</em>&#160;</td>
141 </tr>
142 <tr>
143 <td></td>
144 <td>)</td>
145 <td></td><td></td>
146 </tr>
147 </table>
148 </div>
149 <div class="memdoc">
150
151 <p>Build a scale bias matrix. </p>
152 <p>From GLM_GTX_transform2 extension. </p>
153
154 </div>
155 </div>
156 <a class="anchor" id="ga54ded59dc618054791cca47fd9bf1680"></a><!-- doxytag: member="glm::gtx::transform2::scaleBias" ref="ga54ded59dc618054791cca47fd9bf1680" args="(detail::tmat4x4&lt; valType &gt; const &amp;m, valType scale, valType bias)" -->
157 <div class="memitem">
158 <div class="memproto">
159 <table class="memname">
160 <tr>
161 <td class="memname">detail::tmat4x4&lt;valType&gt; glm::gtx::transform2::scaleBias </td>
162 <td>(</td>
163 <td class="paramtype">detail::tmat4x4&lt; valType &gt; const &amp;&#160;</td>
164 <td class="paramname"><em>m</em>, </td>
165 </tr>
166 <tr>
167 <td class="paramkey"></td>
168 <td></td>
169 <td class="paramtype">valType&#160;</td>
170 <td class="paramname"><em>scale</em>, </td>
171 </tr>
172 <tr>
173 <td class="paramkey"></td>
174 <td></td>
175 <td class="paramtype">valType&#160;</td>
176 <td class="paramname"><em>bias</em>&#160;</td>
177 </tr>
178 <tr>
179 <td></td>
180 <td>)</td>
181 <td></td><td></td>
182 </tr>
183 </table>
184 </div>
185 <div class="memdoc">
186
187 <p>Build a scale bias matrix. </p>
188 <p>From GLM_GTX_transform2 extension. </p>
189
190 </div>
191 </div>
192 <a class="anchor" id="gaf9900000ffffcb4e50f0f97101a35a27"></a><!-- doxytag: member="glm::gtx::transform2::shearX2D" ref="gaf9900000ffffcb4e50f0f97101a35a27" args="(detail::tmat3x3&lt; T &gt; const &amp;m, T y)" -->
193 <div class="memitem">
194 <div class="memproto">
195 <table class="memname">
196 <tr>
197 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::transform2::shearX2D </td>
198 <td>(</td>
199 <td class="paramtype">detail::tmat3x3&lt; T &gt; const &amp;&#160;</td>
200 <td class="paramname"><em>m</em>, </td>
201 </tr>
202 <tr>
203 <td class="paramkey"></td>
204 <td></td>
205 <td class="paramtype">T&#160;</td>
87 <td class="paramtype">uint&#160;</td>
20688 <td class="paramname"><em>y</em>&#160;</td>
20789 </tr>
20890 <tr>
21496 </div>
21597 <div class="memdoc">
21698
217 <p>Transforms a matrix with a shearing on X axis. </p>
218 <p>From GLM_GTX_transform2 extension. </p>
99 <p>Modulus. </p>
100 <p>Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_unsigned_int extension. </p>
219101
220102 </div>
221103 </div>
222 <a class="anchor" id="ga8b165c7be525526861e19675cca6e192"></a><!-- doxytag: member="glm::gtx::transform2::shearX3D" ref="ga8b165c7be525526861e19675cca6e192" args="(const detail::tmat4x4&lt; T &gt; &amp;m, T y, T z)" -->
104 <a class="anchor" id="ga9f8b197b576d9b2f0b5bfe63dc1f638f"></a><!-- doxytag: member="glm::gtx::unsigned_int::pow" ref="ga9f8b197b576d9b2f0b5bfe63dc1f638f" args="(uint x, uint y)" -->
223105 <div class="memitem">
224106 <div class="memproto">
225107 <table class="memname">
226108 <tr>
227 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform2::shearX3D </td>
109 <td class="memname">uint glm::gtx::unsigned_int::pow </td>
228110 <td>(</td>
229 <td class="paramtype">const detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
230 <td class="paramname"><em>m</em>, </td>
231 </tr>
232 <tr>
233 <td class="paramkey"></td>
234 <td></td>
235 <td class="paramtype">T&#160;</td>
236 <td class="paramname"><em>y</em>, </td>
237 </tr>
238 <tr>
239 <td class="paramkey"></td>
240 <td></td>
241 <td class="paramtype">T&#160;</td>
242 <td class="paramname"><em>z</em>&#160;</td>
243 </tr>
244 <tr>
245 <td></td>
246 <td>)</td>
247 <td></td><td></td>
248 </tr>
249 </table>
250 </div>
251 <div class="memdoc">
252
253 <p>Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension. </p>
254
255 </div>
256 </div>
257 <a class="anchor" id="ga73d1c5572f57bc69cd8296fa6411370a"></a><!-- doxytag: member="glm::gtx::transform2::shearY2D" ref="ga73d1c5572f57bc69cd8296fa6411370a" args="(detail::tmat3x3&lt; T &gt; const &amp;m, T x)" -->
258 <div class="memitem">
259 <div class="memproto">
260 <table class="memname">
261 <tr>
262 <td class="memname">detail::tmat3x3&lt;T&gt; glm::gtx::transform2::shearY2D </td>
263 <td>(</td>
264 <td class="paramtype">detail::tmat3x3&lt; T &gt; const &amp;&#160;</td>
265 <td class="paramname"><em>m</em>, </td>
266 </tr>
267 <tr>
268 <td class="paramkey"></td>
269 <td></td>
270 <td class="paramtype">T&#160;</td>
271 <td class="paramname"><em>x</em>&#160;</td>
272 </tr>
273 <tr>
274 <td></td>
275 <td>)</td>
276 <td></td><td></td>
277 </tr>
278 </table>
279 </div>
280 <div class="memdoc">
281
282 <p>Transforms a matrix with a shearing on Y axis. </p>
283 <p>From GLM_GTX_transform2 extension. </p>
284
285 </div>
286 </div>
287 <a class="anchor" id="gab059e40261cbfe782efb81aa866f1399"></a><!-- doxytag: member="glm::gtx::transform2::shearY3D" ref="gab059e40261cbfe782efb81aa866f1399" args="(const detail::tmat4x4&lt; T &gt; &amp;m, T x, T z)" -->
288 <div class="memitem">
289 <div class="memproto">
290 <table class="memname">
291 <tr>
292 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform2::shearY3D </td>
293 <td>(</td>
294 <td class="paramtype">const detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
295 <td class="paramname"><em>m</em>, </td>
296 </tr>
297 <tr>
298 <td class="paramkey"></td>
299 <td></td>
300 <td class="paramtype">T&#160;</td>
111 <td class="paramtype">uint&#160;</td>
301112 <td class="paramname"><em>x</em>, </td>
302113 </tr>
303114 <tr>
304115 <td class="paramkey"></td>
305116 <td></td>
306 <td class="paramtype">T&#160;</td>
307 <td class="paramname"><em>z</em>&#160;</td>
308 </tr>
309 <tr>
310 <td></td>
311 <td>)</td>
312 <td></td><td></td>
313 </tr>
314 </table>
315 </div>
316 <div class="memdoc">
317
318 <p>Transforms a matrix with a shearing on Y axis. </p>
319 <p>From GLM_GTX_transform2 extension. </p>
320
321 </div>
322 </div>
323 <a class="anchor" id="ga3fbd91d387fea4c3f2d74e0ef2250996"></a><!-- doxytag: member="glm::gtx::transform2::shearZ3D" ref="ga3fbd91d387fea4c3f2d74e0ef2250996" args="(const detail::tmat4x4&lt; T &gt; &amp;m, T x, T y)" -->
324 <div class="memitem">
325 <div class="memproto">
326 <table class="memname">
327 <tr>
328 <td class="memname">detail::tmat4x4&lt;T&gt; glm::gtx::transform2::shearZ3D </td>
329 <td>(</td>
330 <td class="paramtype">const detail::tmat4x4&lt; T &gt; &amp;&#160;</td>
331 <td class="paramname"><em>m</em>, </td>
332 </tr>
333 <tr>
334 <td class="paramkey"></td>
335 <td></td>
336 <td class="paramtype">T&#160;</td>
337 <td class="paramname"><em>x</em>, </td>
338 </tr>
339 <tr>
340 <td class="paramkey"></td>
341 <td></td>
342 <td class="paramtype">T&#160;</td>
117 <td class="paramtype">uint&#160;</td>
343118 <td class="paramname"><em>y</em>&#160;</td>
344119 </tr>
345120 <tr>
351126 </div>
352127 <div class="memdoc">
353128
354 <p>Transforms a matrix with a shearing on Z axis. </p>
355 <p>From GLM_GTX_transform2 extension. </p>
129 <p>Returns x raised to the y power. </p>
130 <p>From GLM_GTX_unsigned_int extension. </p>
131
132 </div>
133 </div>
134 <a class="anchor" id="ga0fe1b8123e6661dda5969ee76a2b23df"></a><!-- doxytag: member="glm::gtx::unsigned_int::sqrt" ref="ga0fe1b8123e6661dda5969ee76a2b23df" args="(uint x)" -->
135 <div class="memitem">
136 <div class="memproto">
137 <table class="memname">
138 <tr>
139 <td class="memname">uint glm::gtx::unsigned_int::sqrt </td>
140 <td>(</td>
141 <td class="paramtype">uint&#160;</td>
142 <td class="paramname"><em>x</em></td><td>)</td>
143 <td></td>
144 </tr>
145 </table>
146 </div>
147 <div class="memdoc">
148
149 <p>Returns the positive square root of x. </p>
150 <p>From GLM_GTX_unsigned_int extension. </p>
356151
357152 </div>
358153 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_unsigned_int: Unsigned int</title>
4 <title>GLM_GTX_vector_access: Vector access</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#typedef-members">Typedefs</a> &#124;
3332 <a href="#func-members">Functions</a> </div>
3433 <div class="headertitle">
35 <h1>GLM_GTX_unsigned_int: Unsigned int</h1> </div>
36 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_vector_access: Vector access</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3736 <div class="contents">
3837
39 <p>Add support for unsigned integer for core functions.
38 <p>Function to set values to vectors.
4039 <a href="#_details">More...</a></p>
4140 <table class="memberdecls">
42 <tr><td colspan="2"><h2><a name="typedef-members"></a>
43 Typedefs</h2></td></tr>
44 <tr><td class="memItemLeft" align="right" valign="top">typedef signed int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00297.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a></td></tr>
4541 <tr><td colspan="2"><h2><a name="func-members"></a>
4642 Functions</h2></td></tr>
47 <tr><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00297.html#ga61b96cbe026915bfa3f471d7d1e8d0e7">mod</a> (uint x, uint y)</td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00297.html#ga9f8b197b576d9b2f0b5bfe63dc1f638f">pow</a> (uint x, uint y)</td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00297.html#ga0fe1b8123e6661dda5969ee76a2b23df">sqrt</a> (uint x)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00297.html#ga97b820e01a1b136b670aaa01d0a634bf">set</a> (detail::tvec2&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00297.html#ga6488f8e2334661e56c5439845ad2d8d9">set</a> (detail::tvec4&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y, valType const &amp;z, valType const &amp;w)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00297.html#ga035a27cb5b0c30a1f1719e007ffb890e">set</a> (detail::tvec3&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y, valType const &amp;z)</td></tr>
5049 </table>
5150 <hr/><a name="_details"></a><h2>Detailed Description</h2>
52 <p>Add support for unsigned integer for core functions. </p>
53 <p>&lt;<a class="el" href="a00134_source.html">glm/gtx/unsigned_int.hpp</a>&gt; need to be included to use these functionalities. </p>
54 <hr/><h2>Typedef Documentation</h2>
55 <a class="anchor" id="gada7e83fdfe943aba4f1d5bf80cb66f40"></a><!-- doxytag: member="glm::gtx::unsigned_int::sint" ref="gada7e83fdfe943aba4f1d5bf80cb66f40" args="" -->
51 <p>Function to set values to vectors. </p>
52 <p>&lt;<a class="el" href="a00136_source.html">glm/gtx/vector_access.hpp</a>&gt; need to be included to use these functionalities. </p>
53 <hr/><h2>Function Documentation</h2>
54 <a class="anchor" id="ga97b820e01a1b136b670aaa01d0a634bf"></a><!-- doxytag: member="glm::gtx::vector_access::set" ref="ga97b820e01a1b136b670aaa01d0a634bf" args="(detail::tvec2&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y)" -->
5655 <div class="memitem">
5756 <div class="memproto">
5857 <table class="memname">
5958 <tr>
60 <td class="memname">typedef signed int sint</td>
59 <td class="memname">void glm::gtx::vector_access::set </td>
60 <td>(</td>
61 <td class="paramtype">detail::tvec2&lt; valType &gt; &amp;&#160;</td>
62 <td class="paramname"><em>v</em>, </td>
6163 </tr>
62 </table>
63 </div>
64 <div class="memdoc">
65
66 <p>32bit signed integer. </p>
67 <p>From GLM_GTX_unsigned_int extension. </p>
68
69 <p>Definition at line <a class="el" href="a00134_source.html#l00042">42</a> of file <a class="el" href="a00134_source.html">unsigned_int.hpp</a>.</p>
70
71 </div>
72 </div>
73 <hr/><h2>Function Documentation</h2>
74 <a class="anchor" id="ga61b96cbe026915bfa3f471d7d1e8d0e7"></a><!-- doxytag: member="glm::gtx::unsigned_int::mod" ref="ga61b96cbe026915bfa3f471d7d1e8d0e7" args="(uint x, uint y)" -->
75 <div class="memitem">
76 <div class="memproto">
77 <table class="memname">
7864 <tr>
79 <td class="memname">uint glm::gtx::unsigned_int::mod </td>
80 <td>(</td>
81 <td class="paramtype">uint&#160;</td>
65 <td class="paramkey"></td>
66 <td></td>
67 <td class="paramtype">valType const &amp;&#160;</td>
8268 <td class="paramname"><em>x</em>, </td>
8369 </tr>
8470 <tr>
8571 <td class="paramkey"></td>
8672 <td></td>
87 <td class="paramtype">uint&#160;</td>
73 <td class="paramtype">valType const &amp;&#160;</td>
8874 <td class="paramname"><em>y</em>&#160;</td>
8975 </tr>
9076 <tr>
9682 </div>
9783 <div class="memdoc">
9884
99 <p>Modulus. </p>
100 <p>Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_unsigned_int extension. </p>
85 <p>Set values to a 2 components vector. </p>
86 <p>From GLM_GTX_vector_access extension. </p>
10187
10288 </div>
10389 </div>
104 <a class="anchor" id="ga9f8b197b576d9b2f0b5bfe63dc1f638f"></a><!-- doxytag: member="glm::gtx::unsigned_int::pow" ref="ga9f8b197b576d9b2f0b5bfe63dc1f638f" args="(uint x, uint y)" -->
90 <a class="anchor" id="ga6488f8e2334661e56c5439845ad2d8d9"></a><!-- doxytag: member="glm::gtx::vector_access::set" ref="ga6488f8e2334661e56c5439845ad2d8d9" args="(detail::tvec4&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y, valType const &amp;z, valType const &amp;w)" -->
10591 <div class="memitem">
10692 <div class="memproto">
10793 <table class="memname">
10894 <tr>
109 <td class="memname">uint glm::gtx::unsigned_int::pow </td>
95 <td class="memname">void glm::gtx::vector_access::set </td>
11096 <td>(</td>
111 <td class="paramtype">uint&#160;</td>
97 <td class="paramtype">detail::tvec4&lt; valType &gt; &amp;&#160;</td>
98 <td class="paramname"><em>v</em>, </td>
99 </tr>
100 <tr>
101 <td class="paramkey"></td>
102 <td></td>
103 <td class="paramtype">valType const &amp;&#160;</td>
112104 <td class="paramname"><em>x</em>, </td>
113105 </tr>
114106 <tr>
115107 <td class="paramkey"></td>
116108 <td></td>
117 <td class="paramtype">uint&#160;</td>
118 <td class="paramname"><em>y</em>&#160;</td>
109 <td class="paramtype">valType const &amp;&#160;</td>
110 <td class="paramname"><em>y</em>, </td>
111 </tr>
112 <tr>
113 <td class="paramkey"></td>
114 <td></td>
115 <td class="paramtype">valType const &amp;&#160;</td>
116 <td class="paramname"><em>z</em>, </td>
117 </tr>
118 <tr>
119 <td class="paramkey"></td>
120 <td></td>
121 <td class="paramtype">valType const &amp;&#160;</td>
122 <td class="paramname"><em>w</em>&#160;</td>
119123 </tr>
120124 <tr>
121125 <td></td>
126130 </div>
127131 <div class="memdoc">
128132
129 <p>Returns x raised to the y power. </p>
130 <p>From GLM_GTX_unsigned_int extension. </p>
133 <p>Set values to a 4 components vector. </p>
134 <p>From GLM_GTX_vector_access extension. </p>
131135
132136 </div>
133137 </div>
134 <a class="anchor" id="ga0fe1b8123e6661dda5969ee76a2b23df"></a><!-- doxytag: member="glm::gtx::unsigned_int::sqrt" ref="ga0fe1b8123e6661dda5969ee76a2b23df" args="(uint x)" -->
138 <a class="anchor" id="ga035a27cb5b0c30a1f1719e007ffb890e"></a><!-- doxytag: member="glm::gtx::vector_access::set" ref="ga035a27cb5b0c30a1f1719e007ffb890e" args="(detail::tvec3&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y, valType const &amp;z)" -->
135139 <div class="memitem">
136140 <div class="memproto">
137141 <table class="memname">
138142 <tr>
139 <td class="memname">uint glm::gtx::unsigned_int::sqrt </td>
143 <td class="memname">void glm::gtx::vector_access::set </td>
140144 <td>(</td>
141 <td class="paramtype">uint&#160;</td>
142 <td class="paramname"><em>x</em></td><td>)</td>
145 <td class="paramtype">detail::tvec3&lt; valType &gt; &amp;&#160;</td>
146 <td class="paramname"><em>v</em>, </td>
147 </tr>
148 <tr>
149 <td class="paramkey"></td>
143150 <td></td>
151 <td class="paramtype">valType const &amp;&#160;</td>
152 <td class="paramname"><em>x</em>, </td>
153 </tr>
154 <tr>
155 <td class="paramkey"></td>
156 <td></td>
157 <td class="paramtype">valType const &amp;&#160;</td>
158 <td class="paramname"><em>y</em>, </td>
159 </tr>
160 <tr>
161 <td class="paramkey"></td>
162 <td></td>
163 <td class="paramtype">valType const &amp;&#160;</td>
164 <td class="paramname"><em>z</em>&#160;</td>
165 </tr>
166 <tr>
167 <td></td>
168 <td>)</td>
169 <td></td><td></td>
144170 </tr>
145171 </table>
146172 </div>
147173 <div class="memdoc">
148174
149 <p>Returns the positive square root of x. </p>
150 <p>From GLM_GTX_unsigned_int extension. </p>
175 <p>Set values to a 3 components vector. </p>
176 <p>From GLM_GTX_vector_access extension. </p>
151177
152178 </div>
153179 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_vector_angle: Vector access</title>
4 <title>GLM_GTX_vector_angle: Vector angle</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_vector_angle: Vector access</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_vector_angle: Vector angle</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Function to set values to vectors.
38 <p>Compute angle between vectors.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00298.html#ga97b820e01a1b136b670aaa01d0a634bf">set</a> (detail::tvec2&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00298.html#ga6488f8e2334661e56c5439845ad2d8d9">set</a> (detail::tvec4&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y, valType const &amp;z, valType const &amp;w)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00298.html#ga035a27cb5b0c30a1f1719e007ffb890e">set</a> (detail::tvec3&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y, valType const &amp;z)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
45 vecType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00298.html#ga772681c48065b380295f25ded4c9a70e">angle</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
46 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
47 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00298.html#ga694a29c83046cc64d917e654f044e792">orientedAngle</a> (detail::tvec3&lt; T &gt; const &amp;x, detail::tvec3&lt; T &gt; const &amp;y, detail::tvec3&lt; T &gt; const &amp;ref)</td></tr>
48 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
49 <tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00298.html#ga4ac0ffd1ca09ae58ff79486240296663">orientedAngle</a> (detail::tvec2&lt; T &gt; const &amp;x, detail::tvec2&lt; T &gt; const &amp;y)</td></tr>
4950 </table>
5051 <hr/><a name="_details"></a><h2>Detailed Description</h2>
51 <p>Function to set values to vectors. </p>
52 <p>&lt;<a class="el" href="a00136_source.html">glm/gtx/vector_access.hpp</a>&gt; need to be included to use these functionalities. </p>
52 <p>Compute angle between vectors. </p>
53 <p>&lt;<a class="el" href="a00137_source.html">glm/gtx/vector_angle.hpp</a>&gt; need to be included to use these functionalities. </p>
5354 <hr/><h2>Function Documentation</h2>
54 <a class="anchor" id="ga97b820e01a1b136b670aaa01d0a634bf"></a><!-- doxytag: member="glm::gtx::vector_access::set" ref="ga97b820e01a1b136b670aaa01d0a634bf" args="(detail::tvec2&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y)" -->
55 <a class="anchor" id="ga772681c48065b380295f25ded4c9a70e"></a><!-- doxytag: member="glm::gtx::vector_angle::angle" ref="ga772681c48065b380295f25ded4c9a70e" args="(vecType const &amp;x, vecType const &amp;y)" -->
5556 <div class="memitem">
5657 <div class="memproto">
5758 <table class="memname">
5859 <tr>
59 <td class="memname">void glm::gtx::vector_access::set </td>
60 <td class="memname">GLM_FUNC_QUALIFIER vecType::value_type glm::gtx::vector_angle::angle </td>
6061 <td>(</td>
61 <td class="paramtype">detail::tvec2&lt; valType &gt; &amp;&#160;</td>
62 <td class="paramname"><em>v</em>, </td>
63 </tr>
64 <tr>
65 <td class="paramkey"></td>
66 <td></td>
67 <td class="paramtype">valType const &amp;&#160;</td>
62 <td class="paramtype">vecType const &amp;&#160;</td>
6863 <td class="paramname"><em>x</em>, </td>
6964 </tr>
7065 <tr>
7166 <td class="paramkey"></td>
7267 <td></td>
73 <td class="paramtype">valType const &amp;&#160;</td>
68 <td class="paramtype">vecType const &amp;&#160;</td>
7469 <td class="paramname"><em>y</em>&#160;</td>
7570 </tr>
7671 <tr>
8277 </div>
8378 <div class="memdoc">
8479
85 <p>Set values to a 2 components vector. </p>
86 <p>From GLM_GTX_vector_access extension. </p>
80 <p>Returns the absolute angle between two vectors Parameters need to be normalized. </p>
81 <p>From GLM_GTX_vector_angle extension </p>
8782
8883 </div>
8984 </div>
90 <a class="anchor" id="ga6488f8e2334661e56c5439845ad2d8d9"></a><!-- doxytag: member="glm::gtx::vector_access::set" ref="ga6488f8e2334661e56c5439845ad2d8d9" args="(detail::tvec4&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y, valType const &amp;z, valType const &amp;w)" -->
85 <a class="anchor" id="ga694a29c83046cc64d917e654f044e792"></a><!-- doxytag: member="glm::gtx::vector_angle::orientedAngle" ref="ga694a29c83046cc64d917e654f044e792" args="(detail::tvec3&lt; T &gt; const &amp;x, detail::tvec3&lt; T &gt; const &amp;y, detail::tvec3&lt; T &gt; const &amp;ref)" -->
9186 <div class="memitem">
9287 <div class="memproto">
9388 <table class="memname">
9489 <tr>
95 <td class="memname">void glm::gtx::vector_access::set </td>
90 <td class="memname">GLM_FUNC_QUALIFIER T glm::gtx::vector_angle::orientedAngle </td>
9691 <td>(</td>
97 <td class="paramtype">detail::tvec4&lt; valType &gt; &amp;&#160;</td>
98 <td class="paramname"><em>v</em>, </td>
99 </tr>
100 <tr>
101 <td class="paramkey"></td>
102 <td></td>
103 <td class="paramtype">valType const &amp;&#160;</td>
92 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
10493 <td class="paramname"><em>x</em>, </td>
10594 </tr>
10695 <tr>
10796 <td class="paramkey"></td>
10897 <td></td>
109 <td class="paramtype">valType const &amp;&#160;</td>
98 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
11099 <td class="paramname"><em>y</em>, </td>
111100 </tr>
112101 <tr>
113102 <td class="paramkey"></td>
114103 <td></td>
115 <td class="paramtype">valType const &amp;&#160;</td>
116 <td class="paramname"><em>z</em>, </td>
117 </tr>
118 <tr>
119 <td class="paramkey"></td>
120 <td></td>
121 <td class="paramtype">valType const &amp;&#160;</td>
122 <td class="paramname"><em>w</em>&#160;</td>
104 <td class="paramtype">detail::tvec3&lt; T &gt; const &amp;&#160;</td>
105 <td class="paramname"><em>ref</em>&#160;</td>
123106 </tr>
124107 <tr>
125108 <td></td>
130113 </div>
131114 <div class="memdoc">
132115
133 <p>Set values to a 4 components vector. </p>
134 <p>From GLM_GTX_vector_access extension. </p>
116 <p>Returns the oriented angle between two 3d vectors based from a reference axis. </p>
117 <p>Parameters need to be normalized. From GLM_GTX_vector_angle extension. </p>
135118
136119 </div>
137120 </div>
138 <a class="anchor" id="ga035a27cb5b0c30a1f1719e007ffb890e"></a><!-- doxytag: member="glm::gtx::vector_access::set" ref="ga035a27cb5b0c30a1f1719e007ffb890e" args="(detail::tvec3&lt; valType &gt; &amp;v, valType const &amp;x, valType const &amp;y, valType const &amp;z)" -->
121 <a class="anchor" id="ga4ac0ffd1ca09ae58ff79486240296663"></a><!-- doxytag: member="glm::gtx::vector_angle::orientedAngle" ref="ga4ac0ffd1ca09ae58ff79486240296663" args="(detail::tvec2&lt; T &gt; const &amp;x, detail::tvec2&lt; T &gt; const &amp;y)" -->
139122 <div class="memitem">
140123 <div class="memproto">
141124 <table class="memname">
142125 <tr>
143 <td class="memname">void glm::gtx::vector_access::set </td>
126 <td class="memname">GLM_FUNC_QUALIFIER T glm::gtx::vector_angle::orientedAngle </td>
144127 <td>(</td>
145 <td class="paramtype">detail::tvec3&lt; valType &gt; &amp;&#160;</td>
146 <td class="paramname"><em>v</em>, </td>
147 </tr>
148 <tr>
149 <td class="paramkey"></td>
150 <td></td>
151 <td class="paramtype">valType const &amp;&#160;</td>
128 <td class="paramtype">detail::tvec2&lt; T &gt; const &amp;&#160;</td>
152129 <td class="paramname"><em>x</em>, </td>
153130 </tr>
154131 <tr>
155132 <td class="paramkey"></td>
156133 <td></td>
157 <td class="paramtype">valType const &amp;&#160;</td>
158 <td class="paramname"><em>y</em>, </td>
159 </tr>
160 <tr>
161 <td class="paramkey"></td>
162 <td></td>
163 <td class="paramtype">valType const &amp;&#160;</td>
164 <td class="paramname"><em>z</em>&#160;</td>
134 <td class="paramtype">detail::tvec2&lt; T &gt; const &amp;&#160;</td>
135 <td class="paramname"><em>y</em>&#160;</td>
165136 </tr>
166137 <tr>
167138 <td></td>
172143 </div>
173144 <div class="memdoc">
174145
175 <p>Set values to a 3 components vector. </p>
176 <p>From GLM_GTX_vector_access extension. </p>
146 <p>Returns the oriented angle between two 2d vectors Parameters need to be normalized. </p>
147 <p>From GLM_GTX_vector_angle extension. </p>
177148
178149 </div>
179150 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_vector_angle: Vector angle</title>
4 <title>GLM_GTX_vector_query: Vector query</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_vector_angle: Vector angle</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_vector_query: Vector query</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Compute angle between vectors.
38 <p>Query informations of vector types.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">vecType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#ga279a2aed9a8061eb517a59fecdb6196a">angle</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">vecType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#gae5ca5e80b176900509b0f12a6ca8b164">orientedAngle</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">vecType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#gad9f384cfa3b7879dc5926fad0023cce9">orientedAngleFromRef</a> (vecType const &amp;x, vecType const &amp;y, detail::tvec3&lt; typename vecType::value_type &gt; const &amp;ref)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#gadf4603b05ea58193d1f63f128160757e">areCollinear</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#gacac4975ef9ab28dafe0b07f543fd1d35">areOpposite</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#ga6d56f0cfc253d49844bac10cefb1ec92">areOrthogonal</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#ga300e715a70b718689fd405e65b09f26a">areOrthonormal</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#gac91707dd854ae62484e9670311105545">areSimilar</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#ga727dbe962529a68632f779ccc79e2cef">isNormalized</a> (genType const &amp;v, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00299.html#gab8f7a48850ba11f19dbbfcc0429b116c">isNull</a> (genType const &amp;v, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
4957 </table>
5058 <hr/><a name="_details"></a><h2>Detailed Description</h2>
51 <p>Compute angle between vectors. </p>
52 <p>&lt;<a class="el" href="a00137_source.html">glm/gtx/vector_angle.hpp</a>&gt; need to be included to use these functionalities. </p>
59 <p>Query informations of vector types. </p>
60 <p>&lt;<a class="el" href="a00138_source.html">glm/gtx/vector_query.hpp</a>&gt; need to be included to use these functionalities. </p>
5361 <hr/><h2>Function Documentation</h2>
54 <a class="anchor" id="ga279a2aed9a8061eb517a59fecdb6196a"></a><!-- doxytag: member="glm::gtx::vector_angle::angle" ref="ga279a2aed9a8061eb517a59fecdb6196a" args="(vecType const &amp;x, vecType const &amp;y)" -->
55 <div class="memitem">
56 <div class="memproto">
57 <table class="memname">
58 <tr>
59 <td class="memname">vecType::value_type glm::gtx::vector_angle::angle </td>
60 <td>(</td>
61 <td class="paramtype">vecType const &amp;&#160;</td>
62 <td class="paramname"><em>x</em>, </td>
63 </tr>
64 <tr>
65 <td class="paramkey"></td>
66 <td></td>
67 <td class="paramtype">vecType const &amp;&#160;</td>
68 <td class="paramname"><em>y</em>&#160;</td>
69 </tr>
70 <tr>
71 <td></td>
72 <td>)</td>
73 <td></td><td></td>
74 </tr>
75 </table>
76 </div>
77 <div class="memdoc">
78
79 <p>Returns the absolute angle between x and y. </p>
80 <p>Parameters need to be normalized. From GLM_GTX_vector_angle extension </p>
81
82 </div>
83 </div>
84 <a class="anchor" id="gae5ca5e80b176900509b0f12a6ca8b164"></a><!-- doxytag: member="glm::gtx::vector_angle::orientedAngle" ref="gae5ca5e80b176900509b0f12a6ca8b164" args="(vecType const &amp;x, vecType const &amp;y)" -->
85 <div class="memitem">
86 <div class="memproto">
87 <table class="memname">
88 <tr>
89 <td class="memname">vecType::value_type glm::gtx::vector_angle::orientedAngle </td>
90 <td>(</td>
91 <td class="paramtype">vecType const &amp;&#160;</td>
92 <td class="paramname"><em>x</em>, </td>
93 </tr>
94 <tr>
95 <td class="paramkey"></td>
96 <td></td>
97 <td class="paramtype">vecType const &amp;&#160;</td>
98 <td class="paramname"><em>y</em>&#160;</td>
99 </tr>
100 <tr>
101 <td></td>
102 <td>)</td>
103 <td></td><td></td>
104 </tr>
105 </table>
106 </div>
107 <div class="memdoc">
108
109 <p>Returns the oriented angle between x and y Parameters need to be normalized. </p>
110 <p>From GLM_GTX_vector_angle extension. </p>
111
112 </div>
113 </div>
114 <a class="anchor" id="gad9f384cfa3b7879dc5926fad0023cce9"></a><!-- doxytag: member="glm::gtx::vector_angle::orientedAngleFromRef" ref="gad9f384cfa3b7879dc5926fad0023cce9" args="(vecType const &amp;x, vecType const &amp;y, detail::tvec3&lt; typename vecType::value_type &gt; const &amp;ref)" -->
115 <div class="memitem">
116 <div class="memproto">
117 <table class="memname">
118 <tr>
119 <td class="memname">vecType::value_type glm::gtx::vector_angle::orientedAngleFromRef </td>
120 <td>(</td>
121 <td class="paramtype">vecType const &amp;&#160;</td>
122 <td class="paramname"><em>x</em>, </td>
123 </tr>
124 <tr>
125 <td class="paramkey"></td>
126 <td></td>
127 <td class="paramtype">vecType const &amp;&#160;</td>
128 <td class="paramname"><em>y</em>, </td>
129 </tr>
130 <tr>
131 <td class="paramkey"></td>
132 <td></td>
133 <td class="paramtype">detail::tvec3&lt; typename vecType::value_type &gt; const &amp;&#160;</td>
134 <td class="paramname"><em>ref</em>&#160;</td>
135 </tr>
136 <tr>
137 <td></td>
138 <td>)</td>
139 <td></td><td></td>
140 </tr>
141 </table>
142 </div>
143 <div class="memdoc">
144
145 <p>Returns the orientation of a two vector base from a normal. </p>
146 <p>Parameters need to be normalized. From GLM_GTX_vector_angle extension. </p>
62 <a class="anchor" id="gadf4603b05ea58193d1f63f128160757e"></a><!-- doxytag: member="glm::gtx::vector_query::areCollinear" ref="gadf4603b05ea58193d1f63f128160757e" args="(genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
63 <div class="memitem">
64 <div class="memproto">
65 <table class="memname">
66 <tr>
67 <td class="memname">bool glm::gtx::vector_query::areCollinear </td>
68 <td>(</td>
69 <td class="paramtype">genType const &amp;&#160;</td>
70 <td class="paramname"><em>v0</em>, </td>
71 </tr>
72 <tr>
73 <td class="paramkey"></td>
74 <td></td>
75 <td class="paramtype">genType const &amp;&#160;</td>
76 <td class="paramname"><em>v1</em>, </td>
77 </tr>
78 <tr>
79 <td class="paramkey"></td>
80 <td></td>
81 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
82 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
83 </tr>
84 <tr>
85 <td></td>
86 <td>)</td>
87 <td></td><td></td>
88 </tr>
89 </table>
90 </div>
91 <div class="memdoc">
92
93 <p>Check if two vectors are collinears. </p>
94 <p>From GLM_GTX_vector_query extensions. </p>
95
96 </div>
97 </div>
98 <a class="anchor" id="gacac4975ef9ab28dafe0b07f543fd1d35"></a><!-- doxytag: member="glm::gtx::vector_query::areOpposite" ref="gacac4975ef9ab28dafe0b07f543fd1d35" args="(genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
99 <div class="memitem">
100 <div class="memproto">
101 <table class="memname">
102 <tr>
103 <td class="memname">bool glm::gtx::vector_query::areOpposite </td>
104 <td>(</td>
105 <td class="paramtype">genType const &amp;&#160;</td>
106 <td class="paramname"><em>v0</em>, </td>
107 </tr>
108 <tr>
109 <td class="paramkey"></td>
110 <td></td>
111 <td class="paramtype">genType const &amp;&#160;</td>
112 <td class="paramname"><em>v1</em>, </td>
113 </tr>
114 <tr>
115 <td class="paramkey"></td>
116 <td></td>
117 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
118 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
119 </tr>
120 <tr>
121 <td></td>
122 <td>)</td>
123 <td></td><td></td>
124 </tr>
125 </table>
126 </div>
127 <div class="memdoc">
128
129 <p>Check if two vectors are opposites. </p>
130 <p>From GLM_GTX_vector_query extensions. </p>
131
132 </div>
133 </div>
134 <a class="anchor" id="ga6d56f0cfc253d49844bac10cefb1ec92"></a><!-- doxytag: member="glm::gtx::vector_query::areOrthogonal" ref="ga6d56f0cfc253d49844bac10cefb1ec92" args="(genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
135 <div class="memitem">
136 <div class="memproto">
137 <table class="memname">
138 <tr>
139 <td class="memname">bool glm::gtx::vector_query::areOrthogonal </td>
140 <td>(</td>
141 <td class="paramtype">genType const &amp;&#160;</td>
142 <td class="paramname"><em>v0</em>, </td>
143 </tr>
144 <tr>
145 <td class="paramkey"></td>
146 <td></td>
147 <td class="paramtype">genType const &amp;&#160;</td>
148 <td class="paramname"><em>v1</em>, </td>
149 </tr>
150 <tr>
151 <td class="paramkey"></td>
152 <td></td>
153 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
154 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
155 </tr>
156 <tr>
157 <td></td>
158 <td>)</td>
159 <td></td><td></td>
160 </tr>
161 </table>
162 </div>
163 <div class="memdoc">
164
165 <p>Check if two vectors are orthogonals. </p>
166 <p>From GLM_GTX_vector_query extensions. </p>
167
168 </div>
169 </div>
170 <a class="anchor" id="ga300e715a70b718689fd405e65b09f26a"></a><!-- doxytag: member="glm::gtx::vector_query::areOrthonormal" ref="ga300e715a70b718689fd405e65b09f26a" args="(genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
171 <div class="memitem">
172 <div class="memproto">
173 <table class="memname">
174 <tr>
175 <td class="memname">bool glm::gtx::vector_query::areOrthonormal </td>
176 <td>(</td>
177 <td class="paramtype">genType const &amp;&#160;</td>
178 <td class="paramname"><em>v0</em>, </td>
179 </tr>
180 <tr>
181 <td class="paramkey"></td>
182 <td></td>
183 <td class="paramtype">genType const &amp;&#160;</td>
184 <td class="paramname"><em>v1</em>, </td>
185 </tr>
186 <tr>
187 <td class="paramkey"></td>
188 <td></td>
189 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
190 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
191 </tr>
192 <tr>
193 <td></td>
194 <td>)</td>
195 <td></td><td></td>
196 </tr>
197 </table>
198 </div>
199 <div class="memdoc">
200
201 <p>Check if two vectors are orthonormal. </p>
202 <p>From GLM_GTX_vector_query extensions. </p>
203
204 </div>
205 </div>
206 <a class="anchor" id="gac91707dd854ae62484e9670311105545"></a><!-- doxytag: member="glm::gtx::vector_query::areSimilar" ref="gac91707dd854ae62484e9670311105545" args="(genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
207 <div class="memitem">
208 <div class="memproto">
209 <table class="memname">
210 <tr>
211 <td class="memname">bool glm::gtx::vector_query::areSimilar </td>
212 <td>(</td>
213 <td class="paramtype">genType const &amp;&#160;</td>
214 <td class="paramname"><em>v0</em>, </td>
215 </tr>
216 <tr>
217 <td class="paramkey"></td>
218 <td></td>
219 <td class="paramtype">genType const &amp;&#160;</td>
220 <td class="paramname"><em>v1</em>, </td>
221 </tr>
222 <tr>
223 <td class="paramkey"></td>
224 <td></td>
225 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
226 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
227 </tr>
228 <tr>
229 <td></td>
230 <td>)</td>
231 <td></td><td></td>
232 </tr>
233 </table>
234 </div>
235 <div class="memdoc">
236
237 <p>Check if two vectors are similar. </p>
238 <p>From GLM_GTX_vector_query extensions. </p>
239
240 </div>
241 </div>
242 <a class="anchor" id="ga727dbe962529a68632f779ccc79e2cef"></a><!-- doxytag: member="glm::gtx::vector_query::isNormalized" ref="ga727dbe962529a68632f779ccc79e2cef" args="(genType const &amp;v, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
243 <div class="memitem">
244 <div class="memproto">
245 <table class="memname">
246 <tr>
247 <td class="memname">bool glm::gtx::vector_query::isNormalized </td>
248 <td>(</td>
249 <td class="paramtype">genType const &amp;&#160;</td>
250 <td class="paramname"><em>v</em>, </td>
251 </tr>
252 <tr>
253 <td class="paramkey"></td>
254 <td></td>
255 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
256 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
257 </tr>
258 <tr>
259 <td></td>
260 <td>)</td>
261 <td></td><td></td>
262 </tr>
263 </table>
264 </div>
265 <div class="memdoc">
266
267 <p>Check if a vector is normalized. </p>
268 <p>From GLM_GTX_vector_query extensions. </p>
269
270 </div>
271 </div>
272 <a class="anchor" id="gab8f7a48850ba11f19dbbfcc0429b116c"></a><!-- doxytag: member="glm::gtx::vector_query::isNull" ref="gab8f7a48850ba11f19dbbfcc0429b116c" args="(genType const &amp;v, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
273 <div class="memitem">
274 <div class="memproto">
275 <table class="memname">
276 <tr>
277 <td class="memname">bool glm::gtx::vector_query::isNull </td>
278 <td>(</td>
279 <td class="paramtype">genType const &amp;&#160;</td>
280 <td class="paramname"><em>v</em>, </td>
281 </tr>
282 <tr>
283 <td class="paramkey"></td>
284 <td></td>
285 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
286 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
287 </tr>
288 <tr>
289 <td></td>
290 <td>)</td>
291 <td></td><td></td>
292 </tr>
293 </table>
294 </div>
295 <div class="memdoc">
296
297 <p>Check if a vector is null. </p>
298 <p>From GLM_GTX_vector_query extensions. </p>
147299
148300 </div>
149301 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_vector_query: Vector query</title>
4 <title>GLM_GTX_verbose_operator: Verbose operator</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_vector_query: Vector query</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_verbose_operator: Verbose operator</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Query informations of vector types.
38 <p>Use words to replace operators.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#gadf4603b05ea58193d1f63f128160757e">areCollinear</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#gacac4975ef9ab28dafe0b07f543fd1d35">areOpposite</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#ga6d56f0cfc253d49844bac10cefb1ec92">areOrthogonal</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#ga300e715a70b718689fd405e65b09f26a">areOrthonormal</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#gac91707dd854ae62484e9670311105545">areSimilar</a> (genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
53 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
54 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#ga727dbe962529a68632f779ccc79e2cef">isNormalized</a> (genType const &amp;v, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
55 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
56 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#gab8f7a48850ba11f19dbbfcc0429b116c">isNull</a> (genType const &amp;v, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#ga43dc29338ef121abd4a47c93dcd822f7">add</a> (genTypeT const &amp;a, genTypeU const &amp;b)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#gac3fc94c8ffc6cdbfd36cffc6d06c8072">div</a> (genTypeT const &amp;a, genTypeU const &amp;b)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU , typename genTypeV &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#ga4997f51a19fbe8f947fd5589af27619f">mad</a> (genTypeT const &amp;a, genTypeU const &amp;b, genTypeV const &amp;c)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#gac87bf44315f4f2b57ace7dc9eb2cf851">mul</a> (genTypeT const &amp;a, genTypeU const &amp;b)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00300.html#gae0f130b059368ee8ef65522b0d434e7e">sub</a> (genTypeT const &amp;a, genTypeU const &amp;b)</td></tr>
5753 </table>
5854 <hr/><a name="_details"></a><h2>Detailed Description</h2>
59 <p>Query informations of vector types. </p>
60 <p>&lt;<a class="el" href="a00138_source.html">glm/gtx/vector_query.hpp</a>&gt; need to be included to use these functionalities. </p>
55 <p>Use words to replace operators. </p>
56 <p>&lt;<a class="el" href="a00139_source.html">glm/gtx/verbose_operator.hpp</a>&gt; need to be included to use these functionalities. </p>
6157 <hr/><h2>Function Documentation</h2>
62 <a class="anchor" id="gadf4603b05ea58193d1f63f128160757e"></a><!-- doxytag: member="glm::gtx::vector_query::areCollinear" ref="gadf4603b05ea58193d1f63f128160757e" args="(genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
63 <div class="memitem">
64 <div class="memproto">
65 <table class="memname">
66 <tr>
67 <td class="memname">bool glm::gtx::vector_query::areCollinear </td>
68 <td>(</td>
69 <td class="paramtype">genType const &amp;&#160;</td>
70 <td class="paramname"><em>v0</em>, </td>
71 </tr>
72 <tr>
73 <td class="paramkey"></td>
74 <td></td>
75 <td class="paramtype">genType const &amp;&#160;</td>
76 <td class="paramname"><em>v1</em>, </td>
77 </tr>
78 <tr>
79 <td class="paramkey"></td>
80 <td></td>
81 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
82 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
83 </tr>
84 <tr>
85 <td></td>
86 <td>)</td>
87 <td></td><td></td>
88 </tr>
89 </table>
90 </div>
91 <div class="memdoc">
92
93 <p>Check if two vectors are collinears. </p>
94 <p>From GLM_GTX_vector_query extensions. </p>
95
96 </div>
97 </div>
98 <a class="anchor" id="gacac4975ef9ab28dafe0b07f543fd1d35"></a><!-- doxytag: member="glm::gtx::vector_query::areOpposite" ref="gacac4975ef9ab28dafe0b07f543fd1d35" args="(genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
99 <div class="memitem">
100 <div class="memproto">
101 <table class="memname">
102 <tr>
103 <td class="memname">bool glm::gtx::vector_query::areOpposite </td>
104 <td>(</td>
105 <td class="paramtype">genType const &amp;&#160;</td>
106 <td class="paramname"><em>v0</em>, </td>
107 </tr>
108 <tr>
109 <td class="paramkey"></td>
110 <td></td>
111 <td class="paramtype">genType const &amp;&#160;</td>
112 <td class="paramname"><em>v1</em>, </td>
113 </tr>
114 <tr>
115 <td class="paramkey"></td>
116 <td></td>
117 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
118 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
119 </tr>
120 <tr>
121 <td></td>
122 <td>)</td>
123 <td></td><td></td>
124 </tr>
125 </table>
126 </div>
127 <div class="memdoc">
128
129 <p>Check if two vectors are opposites. </p>
130 <p>From GLM_GTX_vector_query extensions. </p>
131
132 </div>
133 </div>
134 <a class="anchor" id="ga6d56f0cfc253d49844bac10cefb1ec92"></a><!-- doxytag: member="glm::gtx::vector_query::areOrthogonal" ref="ga6d56f0cfc253d49844bac10cefb1ec92" args="(genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
135 <div class="memitem">
136 <div class="memproto">
137 <table class="memname">
138 <tr>
139 <td class="memname">bool glm::gtx::vector_query::areOrthogonal </td>
140 <td>(</td>
141 <td class="paramtype">genType const &amp;&#160;</td>
142 <td class="paramname"><em>v0</em>, </td>
143 </tr>
144 <tr>
145 <td class="paramkey"></td>
146 <td></td>
147 <td class="paramtype">genType const &amp;&#160;</td>
148 <td class="paramname"><em>v1</em>, </td>
149 </tr>
150 <tr>
151 <td class="paramkey"></td>
152 <td></td>
153 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
154 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
155 </tr>
156 <tr>
157 <td></td>
158 <td>)</td>
159 <td></td><td></td>
160 </tr>
161 </table>
162 </div>
163 <div class="memdoc">
164
165 <p>Check if two vectors are orthogonals. </p>
166 <p>From GLM_GTX_vector_query extensions. </p>
167
168 </div>
169 </div>
170 <a class="anchor" id="ga300e715a70b718689fd405e65b09f26a"></a><!-- doxytag: member="glm::gtx::vector_query::areOrthonormal" ref="ga300e715a70b718689fd405e65b09f26a" args="(genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
171 <div class="memitem">
172 <div class="memproto">
173 <table class="memname">
174 <tr>
175 <td class="memname">bool glm::gtx::vector_query::areOrthonormal </td>
176 <td>(</td>
177 <td class="paramtype">genType const &amp;&#160;</td>
178 <td class="paramname"><em>v0</em>, </td>
179 </tr>
180 <tr>
181 <td class="paramkey"></td>
182 <td></td>
183 <td class="paramtype">genType const &amp;&#160;</td>
184 <td class="paramname"><em>v1</em>, </td>
185 </tr>
186 <tr>
187 <td class="paramkey"></td>
188 <td></td>
189 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
190 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
191 </tr>
192 <tr>
193 <td></td>
194 <td>)</td>
195 <td></td><td></td>
196 </tr>
197 </table>
198 </div>
199 <div class="memdoc">
200
201 <p>Check if two vectors are orthonormal. </p>
202 <p>From GLM_GTX_vector_query extensions. </p>
203
204 </div>
205 </div>
206 <a class="anchor" id="gac91707dd854ae62484e9670311105545"></a><!-- doxytag: member="glm::gtx::vector_query::areSimilar" ref="gac91707dd854ae62484e9670311105545" args="(genType const &amp;v0, genType const &amp;v1, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
207 <div class="memitem">
208 <div class="memproto">
209 <table class="memname">
210 <tr>
211 <td class="memname">bool glm::gtx::vector_query::areSimilar </td>
212 <td>(</td>
213 <td class="paramtype">genType const &amp;&#160;</td>
214 <td class="paramname"><em>v0</em>, </td>
215 </tr>
216 <tr>
217 <td class="paramkey"></td>
218 <td></td>
219 <td class="paramtype">genType const &amp;&#160;</td>
220 <td class="paramname"><em>v1</em>, </td>
221 </tr>
222 <tr>
223 <td class="paramkey"></td>
224 <td></td>
225 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
226 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
227 </tr>
228 <tr>
229 <td></td>
230 <td>)</td>
231 <td></td><td></td>
232 </tr>
233 </table>
234 </div>
235 <div class="memdoc">
236
237 <p>Check if two vectors are similar. </p>
238 <p>From GLM_GTX_vector_query extensions. </p>
239
240 </div>
241 </div>
242 <a class="anchor" id="ga727dbe962529a68632f779ccc79e2cef"></a><!-- doxytag: member="glm::gtx::vector_query::isNormalized" ref="ga727dbe962529a68632f779ccc79e2cef" args="(genType const &amp;v, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
243 <div class="memitem">
244 <div class="memproto">
245 <table class="memname">
246 <tr>
247 <td class="memname">bool glm::gtx::vector_query::isNormalized </td>
248 <td>(</td>
249 <td class="paramtype">genType const &amp;&#160;</td>
250 <td class="paramname"><em>v</em>, </td>
251 </tr>
252 <tr>
253 <td class="paramkey"></td>
254 <td></td>
255 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
256 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
257 </tr>
258 <tr>
259 <td></td>
260 <td>)</td>
261 <td></td><td></td>
262 </tr>
263 </table>
264 </div>
265 <div class="memdoc">
266
267 <p>Check if a vector is normalized. </p>
268 <p>From GLM_GTX_vector_query extensions. </p>
269
270 </div>
271 </div>
272 <a class="anchor" id="gab8f7a48850ba11f19dbbfcc0429b116c"></a><!-- doxytag: member="glm::gtx::vector_query::isNull" ref="gab8f7a48850ba11f19dbbfcc0429b116c" args="(genType const &amp;v, typename genType::value_type const &amp;epsilon=std::numeric_limits&lt; typename genType::value_type &gt;::epsilon())" -->
273 <div class="memitem">
274 <div class="memproto">
275 <table class="memname">
276 <tr>
277 <td class="memname">bool glm::gtx::vector_query::isNull </td>
278 <td>(</td>
279 <td class="paramtype">genType const &amp;&#160;</td>
280 <td class="paramname"><em>v</em>, </td>
281 </tr>
282 <tr>
283 <td class="paramkey"></td>
284 <td></td>
285 <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
286 <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;&#160;typename&#160;genType::value_type&#160;&gt;::epsilon()</code>&#160;</td>
287 </tr>
288 <tr>
289 <td></td>
290 <td>)</td>
291 <td></td><td></td>
292 </tr>
293 </table>
294 </div>
295 <div class="memdoc">
296
297 <p>Check if a vector is null. </p>
298 <p>From GLM_GTX_vector_query extensions. </p>
58 <a class="anchor" id="ga43dc29338ef121abd4a47c93dcd822f7"></a><!-- doxytag: member="glm::gtx::verbose_operator::add" ref="ga43dc29338ef121abd4a47c93dcd822f7" args="(genTypeT const &amp;a, genTypeU const &amp;b)" -->
59 <div class="memitem">
60 <div class="memproto">
61 <table class="memname">
62 <tr>
63 <td class="memname">genTypeT glm::gtx::verbose_operator::add </td>
64 <td>(</td>
65 <td class="paramtype">genTypeT const &amp;&#160;</td>
66 <td class="paramname"><em>a</em>, </td>
67 </tr>
68 <tr>
69 <td class="paramkey"></td>
70 <td></td>
71 <td class="paramtype">genTypeU const &amp;&#160;</td>
72 <td class="paramname"><em>b</em>&#160;</td>
73 </tr>
74 <tr>
75 <td></td>
76 <td>)</td>
77 <td></td><td></td>
78 </tr>
79 </table>
80 </div>
81 <div class="memdoc">
82
83 <p>Addition of two values From GLM_GTX_verbose_operator extension. </p>
84
85 </div>
86 </div>
87 <a class="anchor" id="gac3fc94c8ffc6cdbfd36cffc6d06c8072"></a><!-- doxytag: member="glm::gtx::verbose_operator::div" ref="gac3fc94c8ffc6cdbfd36cffc6d06c8072" args="(genTypeT const &amp;a, genTypeU const &amp;b)" -->
88 <div class="memitem">
89 <div class="memproto">
90 <table class="memname">
91 <tr>
92 <td class="memname">genTypeT glm::gtx::verbose_operator::div </td>
93 <td>(</td>
94 <td class="paramtype">genTypeT const &amp;&#160;</td>
95 <td class="paramname"><em>a</em>, </td>
96 </tr>
97 <tr>
98 <td class="paramkey"></td>
99 <td></td>
100 <td class="paramtype">genTypeU const &amp;&#160;</td>
101 <td class="paramname"><em>b</em>&#160;</td>
102 </tr>
103 <tr>
104 <td></td>
105 <td>)</td>
106 <td></td><td></td>
107 </tr>
108 </table>
109 </div>
110 <div class="memdoc">
111
112 <p>Division of two values From GLM_GTX_verbose_operator extension. </p>
113
114 </div>
115 </div>
116 <a class="anchor" id="ga4997f51a19fbe8f947fd5589af27619f"></a><!-- doxytag: member="glm::gtx::verbose_operator::mad" ref="ga4997f51a19fbe8f947fd5589af27619f" args="(genTypeT const &amp;a, genTypeU const &amp;b, genTypeV const &amp;c)" -->
117 <div class="memitem">
118 <div class="memproto">
119 <table class="memname">
120 <tr>
121 <td class="memname">genTypeT glm::gtx::verbose_operator::mad </td>
122 <td>(</td>
123 <td class="paramtype">genTypeT const &amp;&#160;</td>
124 <td class="paramname"><em>a</em>, </td>
125 </tr>
126 <tr>
127 <td class="paramkey"></td>
128 <td></td>
129 <td class="paramtype">genTypeU const &amp;&#160;</td>
130 <td class="paramname"><em>b</em>, </td>
131 </tr>
132 <tr>
133 <td class="paramkey"></td>
134 <td></td>
135 <td class="paramtype">genTypeV const &amp;&#160;</td>
136 <td class="paramname"><em>c</em>&#160;</td>
137 </tr>
138 <tr>
139 <td></td>
140 <td>)</td>
141 <td></td><td></td>
142 </tr>
143 </table>
144 </div>
145 <div class="memdoc">
146
147 <p>Multiplication and addition of three values From GLM_GTX_verbose_operator extension. </p>
148
149 </div>
150 </div>
151 <a class="anchor" id="gac87bf44315f4f2b57ace7dc9eb2cf851"></a><!-- doxytag: member="glm::gtx::verbose_operator::mul" ref="gac87bf44315f4f2b57ace7dc9eb2cf851" args="(genTypeT const &amp;a, genTypeU const &amp;b)" -->
152 <div class="memitem">
153 <div class="memproto">
154 <table class="memname">
155 <tr>
156 <td class="memname">genTypeT glm::gtx::verbose_operator::mul </td>
157 <td>(</td>
158 <td class="paramtype">genTypeT const &amp;&#160;</td>
159 <td class="paramname"><em>a</em>, </td>
160 </tr>
161 <tr>
162 <td class="paramkey"></td>
163 <td></td>
164 <td class="paramtype">genTypeU const &amp;&#160;</td>
165 <td class="paramname"><em>b</em>&#160;</td>
166 </tr>
167 <tr>
168 <td></td>
169 <td>)</td>
170 <td></td><td></td>
171 </tr>
172 </table>
173 </div>
174 <div class="memdoc">
175
176 <p>Multiplication of two values From GLM_GTX_verbose_operator extension. </p>
177
178 </div>
179 </div>
180 <a class="anchor" id="gae0f130b059368ee8ef65522b0d434e7e"></a><!-- doxytag: member="glm::gtx::verbose_operator::sub" ref="gae0f130b059368ee8ef65522b0d434e7e" args="(genTypeT const &amp;a, genTypeU const &amp;b)" -->
181 <div class="memitem">
182 <div class="memproto">
183 <table class="memname">
184 <tr>
185 <td class="memname">genTypeT glm::gtx::verbose_operator::sub </td>
186 <td>(</td>
187 <td class="paramtype">genTypeT const &amp;&#160;</td>
188 <td class="paramname"><em>a</em>, </td>
189 </tr>
190 <tr>
191 <td class="paramkey"></td>
192 <td></td>
193 <td class="paramtype">genTypeU const &amp;&#160;</td>
194 <td class="paramname"><em>b</em>&#160;</td>
195 </tr>
196 <tr>
197 <td></td>
198 <td>)</td>
199 <td></td><td></td>
200 </tr>
201 </table>
202 </div>
203 <div class="memdoc">
204
205 <p>Substration of two values From GLM_GTX_verbose_operator extension. </p>
299206
300207 </div>
301208 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_verbose_operator: Verbose operator</title>
4 <title>GLM_GTX_wrap: Texture coordinate wrap modes</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
3131 <div class="summary">
3232 <a href="#func-members">Functions</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_verbose_operator: Verbose operator</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>GLM_GTX_wrap: Texture coordinate wrap modes</h1> </div>
35 <div class="ingroups"><a class="el" href="a00247.html">GTX Extensions (Experimental)</a></div></div>
3636 <div class="contents">
3737
38 <p>Use words to replace operators.
38 <p>Wrapping mode of texture coordinates.
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
4141 <tr><td colspan="2"><h2><a name="func-members"></a>
4242 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00301.html#ga43dc29338ef121abd4a47c93dcd822f7">add</a> (genTypeT const &amp;a, genTypeU const &amp;b)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00301.html#gac3fc94c8ffc6cdbfd36cffc6d06c8072">div</a> (genTypeT const &amp;a, genTypeU const &amp;b)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU , typename genTypeV &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00301.html#ga4997f51a19fbe8f947fd5589af27619f">mad</a> (genTypeT const &amp;a, genTypeU const &amp;b, genTypeV const &amp;c)</td></tr>
49 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
50 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00301.html#gac87bf44315f4f2b57ace7dc9eb2cf851">mul</a> (genTypeT const &amp;a, genTypeU const &amp;b)</td></tr>
51 <tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
52 <tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00301.html#gae0f130b059368ee8ef65522b0d434e7e">sub</a> (genTypeT const &amp;a, genTypeU const &amp;b)</td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00301.html#ga4cadbe69771221fe96b15a747b89948e">clamp</a> (genType const &amp;Texcoord)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00301.html#gae158e6e90ba29f07f3fe590b3e9a077e">mirrorRepeat</a> (genType const &amp;Texcoord)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00301.html#ga3a80250939448f34862edddfb763e2ce">repeat</a> (genType const &amp;Texcoord)</td></tr>
5349 </table>
5450 <hr/><a name="_details"></a><h2>Detailed Description</h2>
55 <p>Use words to replace operators. </p>
56 <p>&lt;<a class="el" href="a00139_source.html">glm/gtx/verbose_operator.hpp</a>&gt; need to be included to use these functionalities. </p>
51 <p>Wrapping mode of texture coordinates. </p>
52 <p>&lt;<a class="el" href="a00141_source.html">glm/gtx/wrap.hpp</a>&gt; need to be included to use these functionalities. </p>
5753 <hr/><h2>Function Documentation</h2>
58 <a class="anchor" id="ga43dc29338ef121abd4a47c93dcd822f7"></a><!-- doxytag: member="glm::gtx::verbose_operator::add" ref="ga43dc29338ef121abd4a47c93dcd822f7" args="(genTypeT const &amp;a, genTypeU const &amp;b)" -->
54 <a class="anchor" id="ga4cadbe69771221fe96b15a747b89948e"></a><!-- doxytag: member="glm::gtx::wrap::clamp" ref="ga4cadbe69771221fe96b15a747b89948e" args="(genType const &amp;Texcoord)" -->
5955 <div class="memitem">
6056 <div class="memproto">
6157 <table class="memname">
6258 <tr>
63 <td class="memname">genTypeT glm::gtx::verbose_operator::add </td>
59 <td class="memname">genType glm::gtx::wrap::clamp </td>
6460 <td>(</td>
65 <td class="paramtype">genTypeT const &amp;&#160;</td>
66 <td class="paramname"><em>a</em>, </td>
67 </tr>
68 <tr>
69 <td class="paramkey"></td>
61 <td class="paramtype">genType const &amp;&#160;</td>
62 <td class="paramname"><em>Texcoord</em></td><td>)</td>
7063 <td></td>
71 <td class="paramtype">genTypeU const &amp;&#160;</td>
72 <td class="paramname"><em>b</em>&#160;</td>
73 </tr>
74 <tr>
75 <td></td>
76 <td>)</td>
77 <td></td><td></td>
7864 </tr>
7965 </table>
8066 </div>
8167 <div class="memdoc">
8268
83 <p>Addition of two values From GLM_GTX_verbose_operator extension. </p>
69 <p>Simulate GL_CLAMP OpenGL wrap mode From GLM_GTX_wrap extension. </p>
8470
8571 </div>
8672 </div>
87 <a class="anchor" id="gac3fc94c8ffc6cdbfd36cffc6d06c8072"></a><!-- doxytag: member="glm::gtx::verbose_operator::div" ref="gac3fc94c8ffc6cdbfd36cffc6d06c8072" args="(genTypeT const &amp;a, genTypeU const &amp;b)" -->
73 <a class="anchor" id="gae158e6e90ba29f07f3fe590b3e9a077e"></a><!-- doxytag: member="glm::gtx::wrap::mirrorRepeat" ref="gae158e6e90ba29f07f3fe590b3e9a077e" args="(genType const &amp;Texcoord)" -->
8874 <div class="memitem">
8975 <div class="memproto">
9076 <table class="memname">
9177 <tr>
92 <td class="memname">genTypeT glm::gtx::verbose_operator::div </td>
78 <td class="memname">genType glm::gtx::wrap::mirrorRepeat </td>
9379 <td>(</td>
94 <td class="paramtype">genTypeT const &amp;&#160;</td>
95 <td class="paramname"><em>a</em>, </td>
96 </tr>
97 <tr>
98 <td class="paramkey"></td>
80 <td class="paramtype">genType const &amp;&#160;</td>
81 <td class="paramname"><em>Texcoord</em></td><td>)</td>
9982 <td></td>
100 <td class="paramtype">genTypeU const &amp;&#160;</td>
101 <td class="paramname"><em>b</em>&#160;</td>
102 </tr>
103 <tr>
104 <td></td>
105 <td>)</td>
106 <td></td><td></td>
10783 </tr>
10884 </table>
10985 </div>
11086 <div class="memdoc">
11187
112 <p>Division of two values From GLM_GTX_verbose_operator extension. </p>
88 <p>Simulate GL_MIRROR_REPEAT OpenGL wrap mode From GLM_GTX_wrap extension. </p>
11389
11490 </div>
11591 </div>
116 <a class="anchor" id="ga4997f51a19fbe8f947fd5589af27619f"></a><!-- doxytag: member="glm::gtx::verbose_operator::mad" ref="ga4997f51a19fbe8f947fd5589af27619f" args="(genTypeT const &amp;a, genTypeU const &amp;b, genTypeV const &amp;c)" -->
92 <a class="anchor" id="ga3a80250939448f34862edddfb763e2ce"></a><!-- doxytag: member="glm::gtx::wrap::repeat" ref="ga3a80250939448f34862edddfb763e2ce" args="(genType const &amp;Texcoord)" -->
11793 <div class="memitem">
11894 <div class="memproto">
11995 <table class="memname">
12096 <tr>
121 <td class="memname">genTypeT glm::gtx::verbose_operator::mad </td>
97 <td class="memname">genType glm::gtx::wrap::repeat </td>
12298 <td>(</td>
123 <td class="paramtype">genTypeT const &amp;&#160;</td>
124 <td class="paramname"><em>a</em>, </td>
125 </tr>
126 <tr>
127 <td class="paramkey"></td>
99 <td class="paramtype">genType const &amp;&#160;</td>
100 <td class="paramname"><em>Texcoord</em></td><td>)</td>
128101 <td></td>
129 <td class="paramtype">genTypeU const &amp;&#160;</td>
130 <td class="paramname"><em>b</em>, </td>
131 </tr>
132 <tr>
133 <td class="paramkey"></td>
134 <td></td>
135 <td class="paramtype">genTypeV const &amp;&#160;</td>
136 <td class="paramname"><em>c</em>&#160;</td>
137 </tr>
138 <tr>
139 <td></td>
140 <td>)</td>
141 <td></td><td></td>
142102 </tr>
143103 </table>
144104 </div>
145105 <div class="memdoc">
146106
147 <p>Multiplication and addition of three values From GLM_GTX_verbose_operator extension. </p>
148
149 </div>
150 </div>
151 <a class="anchor" id="gac87bf44315f4f2b57ace7dc9eb2cf851"></a><!-- doxytag: member="glm::gtx::verbose_operator::mul" ref="gac87bf44315f4f2b57ace7dc9eb2cf851" args="(genTypeT const &amp;a, genTypeU const &amp;b)" -->
152 <div class="memitem">
153 <div class="memproto">
154 <table class="memname">
155 <tr>
156 <td class="memname">genTypeT glm::gtx::verbose_operator::mul </td>
157 <td>(</td>
158 <td class="paramtype">genTypeT const &amp;&#160;</td>
159 <td class="paramname"><em>a</em>, </td>
160 </tr>
161 <tr>
162 <td class="paramkey"></td>
163 <td></td>
164 <td class="paramtype">genTypeU const &amp;&#160;</td>
165 <td class="paramname"><em>b</em>&#160;</td>
166 </tr>
167 <tr>
168 <td></td>
169 <td>)</td>
170 <td></td><td></td>
171 </tr>
172 </table>
173 </div>
174 <div class="memdoc">
175
176 <p>Multiplication of two values From GLM_GTX_verbose_operator extension. </p>
177
178 </div>
179 </div>
180 <a class="anchor" id="gae0f130b059368ee8ef65522b0d434e7e"></a><!-- doxytag: member="glm::gtx::verbose_operator::sub" ref="gae0f130b059368ee8ef65522b0d434e7e" args="(genTypeT const &amp;a, genTypeU const &amp;b)" -->
181 <div class="memitem">
182 <div class="memproto">
183 <table class="memname">
184 <tr>
185 <td class="memname">genTypeT glm::gtx::verbose_operator::sub </td>
186 <td>(</td>
187 <td class="paramtype">genTypeT const &amp;&#160;</td>
188 <td class="paramname"><em>a</em>, </td>
189 </tr>
190 <tr>
191 <td class="paramkey"></td>
192 <td></td>
193 <td class="paramtype">genTypeU const &amp;&#160;</td>
194 <td class="paramname"><em>b</em>&#160;</td>
195 </tr>
196 <tr>
197 <td></td>
198 <td>)</td>
199 <td></td><td></td>
200 </tr>
201 </table>
202 </div>
203 <div class="memdoc">
204
205 <p>Substration of two values From GLM_GTX_verbose_operator extension. </p>
107 <p>Simulate GL_REPEAT OpenGL wrap mode From GLM_GTX_wrap extension. </p>
206108
207109 </div>
208110 </div>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_GTX_wrap: Texture coordinate wrap modes</title>
4 <title>VIRTREV Extensions</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="summary">
32 <a href="#func-members">Functions</a> </div>
32 <a href="#groups">Modules</a> </div>
3333 <div class="headertitle">
34 <h1>GLM_GTX_wrap: Texture coordinate wrap modes</h1> </div>
35 <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
34 <h1>VIRTREV Extensions</h1> </div>
35 </div>
3636 <div class="contents">
3737
38 <p>Wrapping mode of texture coordinates.
38 <p>Extensions develop and maintain by Mathieu [matrem] Roumillac (<a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showprofile&User=22660">http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showprofile&amp;User=22660</a>).
3939 <a href="#_details">More...</a></p>
4040 <table class="memberdecls">
41 <tr><td colspan="2"><h2><a name="func-members"></a>
42 Functions</h2></td></tr>
43 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
44 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00302.html#ga4cadbe69771221fe96b15a747b89948e">clamp</a> (genType const &amp;Texcoord)</td></tr>
45 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
46 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00302.html#gae158e6e90ba29f07f3fe590b3e9a077e">mirrorRepeat</a> (genType const &amp;Texcoord)</td></tr>
47 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
48 <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00302.html#ga3a80250939448f34862edddfb763e2ce">repeat</a> (genType const &amp;Texcoord)</td></tr>
41 <tr><td colspan="2"><h2><a name="groups"></a>
42 Modules</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00303.html">GLM_VIRTREV_xstream: xml like output</a></td></tr>
4944 </table>
5045 <hr/><a name="_details"></a><h2>Detailed Description</h2>
51 <p>Wrapping mode of texture coordinates. </p>
52 <p>&lt;<a class="el" href="a00141_source.html">glm/gtx/wrap.hpp</a>&gt; need to be included to use these functionalities. </p>
53 <hr/><h2>Function Documentation</h2>
54 <a class="anchor" id="ga4cadbe69771221fe96b15a747b89948e"></a><!-- doxytag: member="glm::gtx::wrap::clamp" ref="ga4cadbe69771221fe96b15a747b89948e" args="(genType const &amp;Texcoord)" -->
55 <div class="memitem">
56 <div class="memproto">
57 <table class="memname">
58 <tr>
59 <td class="memname">genType glm::gtx::wrap::clamp </td>
60 <td>(</td>
61 <td class="paramtype">genType const &amp;&#160;</td>
62 <td class="paramname"><em>Texcoord</em></td><td>)</td>
63 <td></td>
64 </tr>
65 </table>
66 </div>
67 <div class="memdoc">
68
69 <p>Simulate GL_CLAMP OpenGL wrap mode From GLM_GTX_wrap extension. </p>
70
71 </div>
72 </div>
73 <a class="anchor" id="gae158e6e90ba29f07f3fe590b3e9a077e"></a><!-- doxytag: member="glm::gtx::wrap::mirrorRepeat" ref="gae158e6e90ba29f07f3fe590b3e9a077e" args="(genType const &amp;Texcoord)" -->
74 <div class="memitem">
75 <div class="memproto">
76 <table class="memname">
77 <tr>
78 <td class="memname">genType glm::gtx::wrap::mirrorRepeat </td>
79 <td>(</td>
80 <td class="paramtype">genType const &amp;&#160;</td>
81 <td class="paramname"><em>Texcoord</em></td><td>)</td>
82 <td></td>
83 </tr>
84 </table>
85 </div>
86 <div class="memdoc">
87
88 <p>Simulate GL_MIRROR_REPEAT OpenGL wrap mode From GLM_GTX_wrap extension. </p>
89
90 </div>
91 </div>
92 <a class="anchor" id="ga3a80250939448f34862edddfb763e2ce"></a><!-- doxytag: member="glm::gtx::wrap::repeat" ref="ga3a80250939448f34862edddfb763e2ce" args="(genType const &amp;Texcoord)" -->
93 <div class="memitem">
94 <div class="memproto">
95 <table class="memname">
96 <tr>
97 <td class="memname">genType glm::gtx::wrap::repeat </td>
98 <td>(</td>
99 <td class="paramtype">genType const &amp;&#160;</td>
100 <td class="paramname"><em>Texcoord</em></td><td>)</td>
101 <td></td>
102 </tr>
103 </table>
104 </div>
105 <div class="memdoc">
106
107 <p>Simulate GL_REPEAT OpenGL wrap mode From GLM_GTX_wrap extension. </p>
108
109 </div>
110 </div>
46 <p>Extensions develop and maintain by Mathieu [matrem] Roumillac (<a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showprofile&User=22660">http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showprofile&amp;User=22660</a>). </p>
11147 </div>
11248 <hr class="footer"/><address class="footer"><small>Generated by&#160;
11349 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>VIRTREV Extensions</title>
4 <title>GLM_VIRTREV_xstream: xml like output</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2828 </div>
2929 </div>
3030 <div class="header">
31 <div class="summary">
32 <a href="#groups">Modules</a> </div>
3331 <div class="headertitle">
34 <h1>VIRTREV Extensions</h1> </div>
35 </div>
32 <h1>GLM_VIRTREV_xstream: xml like output</h1> </div>
33 <div class="ingroups"><a class="el" href="a00302.html">VIRTREV Extensions</a></div></div>
3634 <div class="contents">
3735
38 <p>Extensions develop and maintain by Mathieu [matrem] Roumillac (<a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showprofile&User=22660">http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showprofile&amp;User=22660</a>).
36 <p>Streaming vector and matrix in a xml way.
3937 <a href="#_details">More...</a></p>
4038 <table class="memberdecls">
41 <tr><td colspan="2"><h2><a name="groups"></a>
42 Modules</h2></td></tr>
43 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00304.html">GLM_VIRTREV_xstream: xml like output</a></td></tr>
4439 </table>
45 <hr/><a name="_details"></a><h2>Detailed Description</h2>
46 <p>Extensions develop and maintain by Mathieu [matrem] Roumillac (<a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showprofile&User=22660">http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showprofile&amp;User=22660</a>). </p>
40 <p>Streaming vector and matrix in a xml way. </p>
41 <p>Include &lt;<a class="el" href="a00142_source.html">glm/virtrev/xstream.hpp</a>&gt; for this functionality. </p>
4742 </div>
4843 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4944 <a href="http://www.doxygen.org/index.html">
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>GLM_VIRTREV_xstream: xml like output</title>
4 <title>Gtx_gradient_paint</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
2929 </div>
3030 <div class="header">
3131 <div class="headertitle">
32 <h1>GLM_VIRTREV_xstream: xml like output</h1> </div>
33 <div class="ingroups"><a class="el" href="a00303.html">VIRTREV Extensions</a></div></div>
32 <h1>Gtx_gradient_paint</h1> </div>
33 </div>
3434 <div class="contents">
35
36 <p>Streaming vector and matrix in a xml way.
37 <a href="#_details">More...</a></p>
3835 <table class="memberdecls">
3936 </table>
40 <p>Streaming vector and matrix in a xml way. </p>
41 <p>Include &lt;<a class="el" href="a00142_source.html">glm/virtrev/xstream.hpp</a>&gt; for this functionality. </p>
4237 </div>
4338 <hr class="footer"/><address class="footer"><small>Generated by&#160;
4439 <a href="http://www.doxygen.org/index.html">
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00009.html">thalf</a> </li>
4040 </ul>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00010.html">tmat2x2</a> </li>
4040 </ul>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00011.html">tmat2x3</a> </li>
4040 </ul>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00012.html">tmat2x4</a> </li>
4040 </ul>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00013.html">tmat3x2</a> </li>
4040 </ul>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00014.html">tmat3x3</a> </li>
4040 </ul>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00015.html">tmat3x4</a> </li>
4040 </ul>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00016.html">tmat4x2</a> </li>
4040 </ul>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00017.html">tmat4x3</a> </li>
4040 </ul>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00018.html">tmat4x4</a> </li>
4040 </ul>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00019.html">tquat</a> </li>
4040 </ul>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00020.html">tvec2</a> </li>
4040 </ul>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00021.html">tvec3</a> </li>
4040 </ul>
3434 </div>
3535 <div id="nav-path" class="navpath">
3636 <ul>
37 <li class="navelem"><a class="el" href="a00143.html">glm</a> </li>
37 <li class="navelem"><a class="el" href="a00145.html">glm</a> </li>
3838 <li class="navelem"><b>detail</b> </li>
3939 <li class="navelem"><a class="el" href="a00022.html">tvec4</a> </li>
4040 </ul>
3636 <p>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.</p>
3737 <p>This project isn't limited by GLSL features. An extension system, based on the GLSL extension conventions, provides extended capabilities: matrix transformations, quaternions, half-based types, random numbers, etc...</p>
3838 <p>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 context that requires a simple and convenient mathematics library.</p>
39 <p>GLM is written as a platform independent library with no dependence and officially supports the following compilers: 1. GCC 3.4 and higher 2. LLVM 2.3 through GCC 4.2 front-end and higher 3. Visual Studio 2005 and higher</p>
40 <dl class="note"><dt><b>Note:</b></dt><dd>The Doxygen-generated documentation will often state that a type or function is defined in a namespace that is a child of the <a class="el" href="a00143.html">glm </a> namespace. Please ignore this; All publicly available types and functions can be accessed as a direct children of the glm namespace.</dd></dl>
39 <p>GLM is written as a platform independent library with no dependence and officially supports the following compilers: 1. Clang 2.0 and higher 2. CUDA 3.0 and higher 3. GCC 3.4 and higher 4. LLVM 2.3 through GCC 4.2 front-end and higher 5. Visual Studio 2005 and higher</p>
40 <dl class="note"><dt><b>Note:</b></dt><dd>The Doxygen-generated documentation will often state that a type or function is defined in a namespace that is a child of the <a class="el" href="a00145.html">glm </a> namespace. Please ignore this; All publicly available types and functions can be accessed as a direct children of the glm namespace.</dd></dl>
4141 <p>The source code is licenced under the <a href="http://www.opensource.org/licenses/mit-license.php">MIT licence</a>.</p>
4242 <p>Thanks for contributing to the project by <a href="https://sourceforge.net/apps/trac/ogl-math/newticket">submitting tickets for bug reports and feature requests</a>. (SF.net account required). Any feedback is welcome at <a href="mailto:glm@g-truc.net">glm@g-truc.net</a>.</p>
4343 <ul>
3333 </div>
3434 <div class="contents">
3535 <div class="textblock">Here is a list of all modules:</div><ul>
36 <li><a class="el" href="a00234.html">GLM Core</a><ul>
37 <li><a class="el" href="a00235.html">Types</a></li>
38 <li><a class="el" href="a00236.html">Precision types</a></li>
39 <li><a class="el" href="a00237.html">Template types</a></li>
40 <li><a class="el" href="a00238.html">Functions</a></li>
36 <li><a class="el" href="a00233.html">GLM Core</a><ul>
37 <li><a class="el" href="a00234.html">Types</a></li>
38 <li><a class="el" href="a00235.html">Precision types</a></li>
39 <li><a class="el" href="a00236.html">Template types</a></li>
40 <li><a class="el" href="a00237.html">Functions</a></li>
4141 </ul>
4242 </li>
43 <li><a class="el" href="a00239.html">GTC Extensions (Stable)</a><ul>
44 <li><a class="el" href="a00240.html">GLM_GTC_half_float: Half-precision floating-point based types and functions.</a></li>
45 <li><a class="el" href="a00241.html">GLM_GTC_matrix_access: Access matrix rows and columns.</a></li>
46 <li><a class="el" href="a00242.html">GLM_GTC_matrix_integer: Integer matrix types.</a></li>
47 <li><a class="el" href="a00243.html">GLM_GTC_matrix_inverse: Additional matrix inverse function</a></li>
48 <li><a class="el" href="a00244.html">GLM_GTC_matrix_transform: Matrix transform functions.</a></li>
49 <li><a class="el" href="a00245.html">GLM_GTC_quaternion: Quaternion types and functions</a></li>
50 <li><a class="el" href="a00246.html">GLM_GTC_type_precision: Vector and matrix types with defined precisions.</a></li>
51 <li><a class="el" href="a00247.html">GLM_GTC_type_ptr: Memory layout access.</a></li>
43 <li><a class="el" href="a00238.html">GTC Extensions (Stable)</a><ul>
44 <li><a class="el" href="a00239.html">GLM_GTC_half_float: Half-precision floating-point based types and functions.</a></li>
45 <li><a class="el" href="a00240.html">GLM_GTC_matrix_access: Access matrix rows and columns.</a></li>
46 <li><a class="el" href="a00241.html">GLM_GTC_matrix_integer: Integer matrix types.</a></li>
47 <li><a class="el" href="a00242.html">GLM_GTC_matrix_inverse: Additional matrix inverse function</a></li>
48 <li><a class="el" href="a00243.html">GLM_GTC_matrix_transform: Matrix transform functions.</a></li>
49 <li><a class="el" href="a00244.html">GLM_GTC_quaternion: Quaternion types and functions</a></li>
50 <li><a class="el" href="a00245.html">GLM_GTC_type_precision: Vector and matrix types with defined precisions.</a></li>
51 <li><a class="el" href="a00246.html">GLM_GTC_type_ptr: Memory layout access.</a></li>
5252 </ul>
5353 </li>
54 <li><a class="el" href="a00248.html">GTX Extensions (Experimental)</a><ul>
55 <li><a class="el" href="a00249.html">GLM_GTX_associated_min_max: Associated Min/Max</a></li>
56 <li><a class="el" href="a00250.html">GLM_GTX_bit: Extended bitwise operations</a></li>
57 <li><a class="el" href="a00251.html">GLM_GTX_closest_point: Find closest point</a></li>
58 <li><a class="el" href="a00252.html">GLM_GTX_color_cast: Color conversion</a></li>
59 <li><a class="el" href="a00253.html">GLM_GTX_color_space: RGB to HSV conversion</a></li>
60 <li><a class="el" href="a00254.html">GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion</a></li>
61 <li><a class="el" href="a00255.html">GLM_GTX_compatibility: Cg and HLSL compatibility</a></li>
62 <li><a class="el" href="a00256.html">GLM_GTX_component_wise: Component wise</a></li>
63 <li><a class="el" href="a00257.html">GLM_GTX_epsilon: Epsilon comparison</a></li>
64 <li><a class="el" href="a00258.html">GLM_GTX_euler_angles: Matrix from euler angles</a></li>
65 <li><a class="el" href="a00259.html">GLM_GTX_extend: Position extending</a></li>
66 <li><a class="el" href="a00260.html">GLM_GTX_extented_min_max: Extended min max</a></li>
67 <li><a class="el" href="a00261.html">GLM_GTX_fast_exponential: Fast exponentiation functions</a></li>
68 <li><a class="el" href="a00262.html">GLM_GTX_fast_square_root: Fast square root functions</a></li>
69 <li><a class="el" href="a00263.html">GLM_GTX_fast_trigonometry: Fast trigonometric functions</a></li>
70 <li><a class="el" href="a00264.html">GLM_GTX_handed_coordinate_space: Space Handedness</a></li>
71 <li><a class="el" href="a00265.html">GLM_GTX_inertia: Intertial matrix</a></li>
72 <li><a class="el" href="a00266.html">GLM_GTX_int_10_10_10_2: Packed integer</a></li>
73 <li><a class="el" href="a00267.html">GLM_GTX_integer: Extended integer functions</a></li>
74 <li><a class="el" href="a00268.html">GLM_GTX_intersect: Intersection tests</a></li>
75 <li><a class="el" href="a00269.html">GLM_GTX_log_base: Log with base</a></li>
76 <li><a class="el" href="a00270.html">GLM_GTX_matrix_cross_product: Cross product matrix form</a></li>
77 <li><a class="el" href="a00271.html">GLM_GTX_matrix_major_storage: Build matrix</a></li>
78 <li><a class="el" href="a00272.html">GLM_GTX_matrix_operation: Extended matrix operations</a></li>
79 <li><a class="el" href="a00273.html">GLM_GTX_matrix_query: Query matrix properties</a></li>
80 <li><a class="el" href="a00274.html">GLM_GTX_mixed_producte: Mixed product</a></li>
81 <li><a class="el" href="a00275.html">GLM_GTX_multiple: Multiples</a></li>
82 <li><a class="el" href="a00276.html">GLM_GTX_norm: Vector norm calculations</a></li>
83 <li><a class="el" href="a00277.html">GLM_GTX_normal: Compute normals</a></li>
84 <li><a class="el" href="a00278.html">GLM_GTX_normalize_dot: Normalize dot product</a></li>
85 <li><a class="el" href="a00279.html">GLM_GTX_number_precision: Number precision</a></li>
86 <li><a class="el" href="a00280.html">GLM_GTX_ocl_type: OpenCL types</a></li>
87 <li><a class="el" href="a00281.html">GLM_GTX_optimum_pow: Optimum pow</a></li>
88 <li><a class="el" href="a00282.html">GLM_GTX_orthonormalize: Orthonormalize</a></li>
89 <li><a class="el" href="a00283.html">GLM_GTX_perpendicular: Perpendicular</a></li>
90 <li><a class="el" href="a00284.html">GLM_GTX_polar_coordinates: Polar coordinates</a></li>
91 <li><a class="el" href="a00285.html">GLM_GTX_projection: Projection</a></li>
92 <li><a class="el" href="a00286.html">GLM_GTX_quaternion: Extented quaternion types and functions</a></li>
93 <li><a class="el" href="a00287.html">GLM_GTX_random: Random</a></li>
94 <li><a class="el" href="a00288.html">GLM_GTX_raw_data: Raw data</a></li>
95 <li><a class="el" href="a00289.html">GLM_GTX_reciprocal: Reciprocal</a></li>
96 <li><a class="el" href="a00290.html">GLM_GTX_rotate_vector: Rotate vector</a></li>
97 <li><a class="el" href="a00291.html">GLM_GTX_simd_mat4: SIMD mat4 type and functions</a></li>
98 <li><a class="el" href="a00292.html">GLM_GTX_simd_vec4: SIMD vec4 type and functions</a></li>
99 <li><a class="el" href="a00293.html">GLM_GTX_spline: Spline</a></li>
100 <li><a class="el" href="a00294.html">GLM_GTX_string_cast: String cast</a></li>
101 <li><a class="el" href="a00295.html">GLM_GTX_transform: Extented transformation matrices</a></li>
102 <li><a class="el" href="a00296.html">GLM_GTX_transform2: Extra transformation matrices</a></li>
103 <li><a class="el" href="a00297.html">GLM_GTX_unsigned_int: Unsigned int</a></li>
104 <li><a class="el" href="a00298.html">GLM_GTX_vector_angle: Vector access</a></li>
105 <li><a class="el" href="a00299.html">GLM_GTX_vector_angle: Vector angle</a></li>
106 <li><a class="el" href="a00300.html">GLM_GTX_vector_query: Vector query</a></li>
107 <li><a class="el" href="a00301.html">GLM_GTX_verbose_operator: Verbose operator</a></li>
108 <li><a class="el" href="a00302.html">GLM_GTX_wrap: Texture coordinate wrap modes</a></li>
54 <li><a class="el" href="a00247.html">GTX Extensions (Experimental)</a><ul>
55 <li><a class="el" href="a00248.html">GLM_GTX_associated_min_max: Associated Min/Max</a></li>
56 <li><a class="el" href="a00249.html">GLM_GTX_bit: Extended bitwise operations</a></li>
57 <li><a class="el" href="a00250.html">GLM_GTX_closest_point: Find closest point</a></li>
58 <li><a class="el" href="a00251.html">GLM_GTX_color_cast: Color conversion</a></li>
59 <li><a class="el" href="a00252.html">GLM_GTX_color_space: RGB to HSV conversion</a></li>
60 <li><a class="el" href="a00253.html">GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion</a></li>
61 <li><a class="el" href="a00254.html">GLM_GTX_compatibility: Cg and HLSL compatibility</a></li>
62 <li><a class="el" href="a00255.html">GLM_GTX_component_wise: Component wise</a></li>
63 <li><a class="el" href="a00256.html">GLM_GTX_epsilon: Epsilon comparison</a></li>
64 <li><a class="el" href="a00257.html">GLM_GTX_euler_angles: Matrix from euler angles</a></li>
65 <li><a class="el" href="a00258.html">GLM_GTX_extend: Position extending</a></li>
66 <li><a class="el" href="a00259.html">GLM_GTX_extented_min_max: Extended min max</a></li>
67 <li><a class="el" href="a00260.html">GLM_GTX_fast_exponential: Fast exponentiation functions</a></li>
68 <li><a class="el" href="a00261.html">GLM_GTX_fast_square_root: Fast square root functions</a></li>
69 <li><a class="el" href="a00262.html">GLM_GTX_fast_trigonometry: Fast trigonometric functions</a></li>
70 <li><a class="el" href="a00263.html">GLM_GTX_handed_coordinate_space: Space Handedness</a></li>
71 <li><a class="el" href="a00264.html">GLM_GTX_inertia: Intertial matrix</a></li>
72 <li><a class="el" href="a00265.html">GLM_GTX_int_10_10_10_2: Packed integer</a></li>
73 <li><a class="el" href="a00266.html">GLM_GTX_integer: Extended integer functions</a></li>
74 <li><a class="el" href="a00267.html">GLM_GTX_intersect: Intersection tests</a></li>
75 <li><a class="el" href="a00268.html">GLM_GTX_log_base: Log with base</a></li>
76 <li><a class="el" href="a00269.html">GLM_GTX_matrix_cross_product: Cross product matrix form</a></li>
77 <li><a class="el" href="a00270.html">GLM_GTX_matrix_major_storage: Build matrix</a></li>
78 <li><a class="el" href="a00271.html">GLM_GTX_matrix_operation: Extended matrix operations</a></li>
79 <li><a class="el" href="a00272.html">GLM_GTX_matrix_query: Query matrix properties</a></li>
80 <li><a class="el" href="a00273.html">GLM_GTX_mixed_producte: Mixed product</a></li>
81 <li><a class="el" href="a00274.html">GLM_GTX_multiple: Multiples</a></li>
82 <li><a class="el" href="a00275.html">GLM_GTX_norm: Vector norm calculations</a></li>
83 <li><a class="el" href="a00276.html">GLM_GTX_normal: Compute normals</a></li>
84 <li><a class="el" href="a00277.html">GLM_GTX_normalize_dot: Normalize dot product</a></li>
85 <li><a class="el" href="a00278.html">GLM_GTX_number_precision: Number precision</a></li>
86 <li><a class="el" href="a00279.html">GLM_GTX_ocl_type: OpenCL types</a></li>
87 <li><a class="el" href="a00280.html">GLM_GTX_optimum_pow: Optimum pow</a></li>
88 <li><a class="el" href="a00281.html">GLM_GTX_orthonormalize: Orthonormalize</a></li>
89 <li><a class="el" href="a00282.html">GLM_GTX_perpendicular: Perpendicular</a></li>
90 <li><a class="el" href="a00283.html">GLM_GTX_polar_coordinates: Polar coordinates</a></li>
91 <li><a class="el" href="a00284.html">GLM_GTX_projection: Projection</a></li>
92 <li><a class="el" href="a00285.html">GLM_GTX_quaternion: Extented quaternion types and functions</a></li>
93 <li><a class="el" href="a00286.html">GLM_GTX_random: Random</a></li>
94 <li><a class="el" href="a00287.html">GLM_GTX_raw_data: Raw data</a></li>
95 <li><a class="el" href="a00288.html">GLM_GTX_reciprocal: Reciprocal</a></li>
96 <li><a class="el" href="a00289.html">GLM_GTX_rotate_vector: Rotate vector</a></li>
97 <li><a class="el" href="a00290.html">GLM_GTX_simd_mat4: SIMD mat4 type and functions</a></li>
98 <li><a class="el" href="a00291.html">GLM_GTX_simd_vec4: SIMD vec4 type and functions</a></li>
99 <li><a class="el" href="a00292.html">GLM_GTX_spline: Spline</a></li>
100 <li><a class="el" href="a00293.html">GLM_GTX_string_cast: String cast</a></li>
101 <li><a class="el" href="a00294.html">GLM_GTX_transform: Extented transformation matrices</a></li>
102 <li><a class="el" href="a00295.html">GLM_GTX_transform2: Extra transformation matrices</a></li>
103 <li><a class="el" href="a00296.html">GLM_GTX_unsigned_int: Unsigned int</a></li>
104 <li><a class="el" href="a00297.html">GLM_GTX_vector_access: Vector access</a></li>
105 <li><a class="el" href="a00298.html">GLM_GTX_vector_angle: Vector angle</a></li>
106 <li><a class="el" href="a00299.html">GLM_GTX_vector_query: Vector query</a></li>
107 <li><a class="el" href="a00300.html">GLM_GTX_verbose_operator: Verbose operator</a></li>
108 <li><a class="el" href="a00301.html">GLM_GTX_wrap: Texture coordinate wrap modes</a></li>
109109 </ul>
110110 </li>
111 <li><a class="el" href="a00303.html">VIRTREV Extensions</a><ul>
112 <li><a class="el" href="a00304.html">GLM_VIRTREV_xstream: xml like output</a></li>
111 <li><a class="el" href="a00302.html">VIRTREV Extensions</a><ul>
112 <li><a class="el" href="a00303.html">GLM_VIRTREV_xstream: xml like output</a></li>
113113 </ul>
114114 </li>
115 <li><a class="el" href="a00304.html">Gtx_gradient_paint</a></li>
115116 <li><a class="el" href="a00305.html">Gtx_matrix_interpolation</a></li>
116117 <li><a class="el" href="a00306.html">Gtx_noise</a></li>
117118 <li><a class="el" href="a00307.html">Gtx_ulp</a></li>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
7375 <li>abs()
74 : <a class="el" href="a00238.html#ga5206aa60ce61ad1d7d1b53d5028c7a2a">glm::core::function::common</a>
75 , <a class="el" href="a00292.html#ga427e341830f94e41ece21ea4ebc854c3">glm::gtx::simd_vec4</a>
76 : <a class="el" href="a00291.html#ga427e341830f94e41ece21ea4ebc854c3">glm::gtx::simd_vec4</a>
7677 </li>
7778 <li>acos()
78 : <a class="el" href="a00238.html#ga52a4b4cbe6d47f94d06ee1efd95786e6">glm::core::function::trigonometric</a>
79 : <a class="el" href="a00237.html#ga52a4b4cbe6d47f94d06ee1efd95786e6">glm::core::function::trigonometric</a>
7980 </li>
8081 <li>acosh()
81 : <a class="el" href="a00238.html#ga7c8d8ac539a43da0d41e656a38262ff0">glm::core::function::trigonometric</a>
82 : <a class="el" href="a00237.html#ga7c8d8ac539a43da0d41e656a38262ff0">glm::core::function::trigonometric</a>
8283 </li>
8384 <li>acot()
84 : <a class="el" href="a00289.html#gad8b3e1d0a99ffb209157baa47370e684">glm::gtx::reciprocal</a>
85 : <a class="el" href="a00288.html#gad8b3e1d0a99ffb209157baa47370e684">glm::gtx::reciprocal</a>
8586 </li>
8687 <li>acoth()
87 : <a class="el" href="a00289.html#gabef15ad1a12c56d39cee1afb251d9086">glm::gtx::reciprocal</a>
88 : <a class="el" href="a00288.html#gabef15ad1a12c56d39cee1afb251d9086">glm::gtx::reciprocal</a>
8889 </li>
8990 <li>acsc()
90 : <a class="el" href="a00289.html#gacc31bf591741480d2cde587b598badf7">glm::gtx::reciprocal</a>
91 : <a class="el" href="a00288.html#gacc31bf591741480d2cde587b598badf7">glm::gtx::reciprocal</a>
9192 </li>
9293 <li>acsch()
93 : <a class="el" href="a00289.html#ga33970e21bf86b28fcb1079a656a6aa97">glm::gtx::reciprocal</a>
94 : <a class="el" href="a00288.html#ga33970e21bf86b28fcb1079a656a6aa97">glm::gtx::reciprocal</a>
9495 </li>
9596 <li>add()
96 : <a class="el" href="a00301.html#ga43dc29338ef121abd4a47c93dcd822f7">glm::gtx::verbose_operator</a>
97 : <a class="el" href="a00300.html#ga43dc29338ef121abd4a47c93dcd822f7">glm::gtx::verbose_operator</a>
9798 </li>
9899 <li>affineInverse()
99 : <a class="el" href="a00243.html#gade90330b2e6ef1b27371498cab1c38da">glm::gtc::matrix_inverse</a>
100 : <a class="el" href="a00242.html#gade90330b2e6ef1b27371498cab1c38da">glm::gtc::matrix_inverse</a>
100101 </li>
101102 <li>all()
102 : <a class="el" href="a00238.html#ga07b92e9e7077f06fe26e417f320b0f0c">glm::core::function::vector_relational</a>
103 : <a class="el" href="a00145.html#aa83bb5852e369786314325d5a72dfe68">glm</a>
103104 </li>
104105 <li>angle()
105 : <a class="el" href="a00286.html#ga6a3387a7d60728f60d86546b2f4d4d30">glm::gtx::quaternion</a>
106 , <a class="el" href="a00299.html#ga279a2aed9a8061eb517a59fecdb6196a">glm::gtx::vector_angle</a>
106 : <a class="el" href="a00285.html#ga6a3387a7d60728f60d86546b2f4d4d30">glm::gtx::quaternion</a>
107 , <a class="el" href="a00298.html#ga772681c48065b380295f25ded4c9a70e">glm::gtx::vector_angle</a>
107108 </li>
108109 <li>angleAxis()
109 : <a class="el" href="a00286.html#ga4412b01c376d9cfc9cc06b2d511d0f16">glm::gtx::quaternion</a>
110 : <a class="el" href="a00285.html#ga4412b01c376d9cfc9cc06b2d511d0f16">glm::gtx::quaternion</a>
110111 </li>
111112 <li>any()
112 : <a class="el" href="a00238.html#gaa478a7966a4e6550bf0ee58ea8271074">glm::core::function::vector_relational</a>
113 : <a class="el" href="a00145.html#ad41f4d0d62de8c9a484dfc5dcd1531f0">glm</a>
113114 </li>
114115 <li>areCollinear()
115 : <a class="el" href="a00300.html#gadf4603b05ea58193d1f63f128160757e">glm::gtx::vector_query</a>
116 : <a class="el" href="a00299.html#gadf4603b05ea58193d1f63f128160757e">glm::gtx::vector_query</a>
116117 </li>
117118 <li>areOpposite()
118 : <a class="el" href="a00300.html#gacac4975ef9ab28dafe0b07f543fd1d35">glm::gtx::vector_query</a>
119 : <a class="el" href="a00299.html#gacac4975ef9ab28dafe0b07f543fd1d35">glm::gtx::vector_query</a>
119120 </li>
120121 <li>areOrthogonal()
121 : <a class="el" href="a00300.html#ga6d56f0cfc253d49844bac10cefb1ec92">glm::gtx::vector_query</a>
122 : <a class="el" href="a00299.html#ga6d56f0cfc253d49844bac10cefb1ec92">glm::gtx::vector_query</a>
122123 </li>
123124 <li>areOrthonormal()
124 : <a class="el" href="a00300.html#ga300e715a70b718689fd405e65b09f26a">glm::gtx::vector_query</a>
125 : <a class="el" href="a00299.html#ga300e715a70b718689fd405e65b09f26a">glm::gtx::vector_query</a>
125126 </li>
126127 <li>areSimilar()
127 : <a class="el" href="a00300.html#gac91707dd854ae62484e9670311105545">glm::gtx::vector_query</a>
128 : <a class="el" href="a00299.html#gac91707dd854ae62484e9670311105545">glm::gtx::vector_query</a>
128129 </li>
129130 <li>asec()
130 : <a class="el" href="a00289.html#gadf3d5c2b777dd7f9ccb284919daeb15b">glm::gtx::reciprocal</a>
131 : <a class="el" href="a00288.html#gadf3d5c2b777dd7f9ccb284919daeb15b">glm::gtx::reciprocal</a>
131132 </li>
132133 <li>asech()
133 : <a class="el" href="a00289.html#ga43313adedfb151b9d019fbda2388fa4b">glm::gtx::reciprocal</a>
134 : <a class="el" href="a00288.html#ga43313adedfb151b9d019fbda2388fa4b">glm::gtx::reciprocal</a>
134135 </li>
135136 <li>asin()
136 : <a class="el" href="a00238.html#ga3c625e34fc99b33829c28c6d580df7e2">glm::core::function::trigonometric</a>
137 : <a class="el" href="a00237.html#ga3c625e34fc99b33829c28c6d580df7e2">glm::core::function::trigonometric</a>
137138 </li>
138139 <li>asinh()
139 : <a class="el" href="a00238.html#ga7ba20fc7c7b3eeef601e73b130e63db5">glm::core::function::trigonometric</a>
140 : <a class="el" href="a00237.html#ga7ba20fc7c7b3eeef601e73b130e63db5">glm::core::function::trigonometric</a>
140141 </li>
141142 <li>associatedMax()
142 : <a class="el" href="a00249.html#gaf677e31296d27c540b8873b0da989780">glm::gtx::associated_min_max</a>
143 : <a class="el" href="a00248.html#ga356657481029e90e6f079ec4ccd6407b">glm::gtx::associated_min_max</a>
143144 </li>
144145 <li>associatedMin()
145 : <a class="el" href="a00249.html#ga35cccfe67d0f20c897b3bb7d53ceee92">glm::gtx::associated_min_max</a>
146 : <a class="el" href="a00248.html#ga8ee45a8117b0ce3827d6a57625cafac0">glm::gtx::associated_min_max</a>
146147 </li>
147148 <li>atan()
148 : <a class="el" href="a00238.html#ga32dbceedb2910e519860a225ae7f7450">glm::core::function::trigonometric</a>
149 : <a class="el" href="a00237.html#ga32dbceedb2910e519860a225ae7f7450">glm::core::function::trigonometric</a>
149150 </li>
150151 <li>atan2()
151 : <a class="el" href="a00255.html#ga7aa5d9aae622970abb85b946ded2c64e">glm::gtx::compatibility</a>
152 : <a class="el" href="a00254.html#ga83dab39f1f74ed90e9511a5f88805a08">glm::gtx::compatibility</a>
152153 </li>
153154 <li>atanh()
154 : <a class="el" href="a00238.html#ga4d896caf7b1a8e5b5e3b29394e8c0ecd">glm::core::function::trigonometric</a>
155 : <a class="el" href="a00237.html#ga4d896caf7b1a8e5b5e3b29394e8c0ecd">glm::core::function::trigonometric</a>
155156 </li>
156157 <li>axis()
157 : <a class="el" href="a00286.html#ga6dd1904e2a6cc8e54bd324994094a6f9">glm::gtx::quaternion</a>
158 : <a class="el" href="a00285.html#ga6dd1904e2a6cc8e54bd324994094a6f9">glm::gtx::quaternion</a>
158159 </li>
159160 <li>axisAngle()
160161 : <a class="el" href="a00305.html#ga92bfeca9adbb485dc0228138d3fd614e">glm::gtx::matrix_interpolation</a>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
7375 <li>ballInertia3()
74 : <a class="el" href="a00265.html#gac855b3f388128290af0b3016f5e644e4">glm::gtx::inertia</a>
76 : <a class="el" href="a00264.html#gac855b3f388128290af0b3016f5e644e4">glm::gtx::inertia</a>
7577 </li>
7678 <li>ballInertia4()
77 : <a class="el" href="a00265.html#ga33e5d8cfae7d8d2ee4369bbc68b20304">glm::gtx::inertia</a>
79 : <a class="el" href="a00264.html#ga33e5d8cfae7d8d2ee4369bbc68b20304">glm::gtx::inertia</a>
7880 </li>
7981 <li>bitCount()
80 : <a class="el" href="a00238.html#ga29cfb04fafbaa1939955f11fef28ff38">glm::core::function::integer</a>
82 : <a class="el" href="a00237.html#ga29cfb04fafbaa1939955f11fef28ff38">glm::core::function::integer</a>
8183 </li>
8284 <li>bitfieldExtract()
83 : <a class="el" href="a00238.html#ga3b4804e700ade895189ea8bde142c822">glm::core::function::integer</a>
85 : <a class="el" href="a00237.html#ga3b4804e700ade895189ea8bde142c822">glm::core::function::integer</a>
8486 </li>
8587 <li>bitfieldInsert()
86 : <a class="el" href="a00238.html#ga90d0bc8e79f637da58b8fad2fc8f3275">glm::core::function::integer</a>
88 : <a class="el" href="a00237.html#ga90d0bc8e79f637da58b8fad2fc8f3275">glm::core::function::integer</a>
8789 </li>
8890 <li>bitfieldReverse()
89 : <a class="el" href="a00238.html#ga68bdb2c3debc414d5567935b4cbca62f">glm::core::function::integer</a>
91 : <a class="el" href="a00237.html#ga68bdb2c3debc414d5567935b4cbca62f">glm::core::function::integer</a>
9092 </li>
9193 <li>bitRevert()
92 : <a class="el" href="a00250.html#ga2f145f264c334caba22e6949e015d208">glm::gtx::bit</a>
94 : <a class="el" href="a00249.html#ga2f145f264c334caba22e6949e015d208">glm::gtx::bit</a>
9395 </li>
9496 <li>bitRotateLeft()
95 : <a class="el" href="a00250.html#gaa8de15434b73178fd1d2ea7ee16b59bd">glm::gtx::bit</a>
97 : <a class="el" href="a00249.html#gaa8de15434b73178fd1d2ea7ee16b59bd">glm::gtx::bit</a>
9698 </li>
9799 <li>bitRotateRight()
98 : <a class="el" href="a00250.html#gaeec0d4179d7a092056e2201fff385ef6">glm::gtx::bit</a>
100 : <a class="el" href="a00249.html#gaeec0d4179d7a092056e2201fff385ef6">glm::gtx::bit</a>
99101 </li>
100102 <li>bool1
101 : <a class="el" href="a00255.html#gaddcd7aa2e30e61af5b38660613d3979e">glm::gtx::compatibility</a>
103 : <a class="el" href="a00254.html#gaddcd7aa2e30e61af5b38660613d3979e">glm::gtx::compatibility</a>
102104 </li>
103105 <li>bool1x1
104 : <a class="el" href="a00255.html#ga7f895c936f0c29c8729afbbf22806090">glm::gtx::compatibility</a>
106 : <a class="el" href="a00254.html#ga7f895c936f0c29c8729afbbf22806090">glm::gtx::compatibility</a>
105107 </li>
106108 <li>bool2
107 : <a class="el" href="a00255.html#ga88cfb6bf63a7fd1f03fe5abeae2aec1d">glm::gtx::compatibility</a>
109 : <a class="el" href="a00254.html#ga88cfb6bf63a7fd1f03fe5abeae2aec1d">glm::gtx::compatibility</a>
108110 </li>
109111 <li>bool2x2
110 : <a class="el" href="a00255.html#ga51dfdd84c191d9433ebf5e626af2c1f9">glm::gtx::compatibility</a>
112 : <a class="el" href="a00254.html#ga51dfdd84c191d9433ebf5e626af2c1f9">glm::gtx::compatibility</a>
111113 </li>
112114 <li>bool2x3
113 : <a class="el" href="a00255.html#ga3982a05435c6c2d492b747f8adf6b9e0">glm::gtx::compatibility</a>
115 : <a class="el" href="a00254.html#ga3982a05435c6c2d492b747f8adf6b9e0">glm::gtx::compatibility</a>
114116 </li>
115117 <li>bool2x4
116 : <a class="el" href="a00255.html#ga78a505943e47244f4495d07e4884c318">glm::gtx::compatibility</a>
118 : <a class="el" href="a00254.html#ga78a505943e47244f4495d07e4884c318">glm::gtx::compatibility</a>
117119 </li>
118120 <li>bool3
119 : <a class="el" href="a00255.html#gade36f151806e985eec29fdf96ae6a2bb">glm::gtx::compatibility</a>
121 : <a class="el" href="a00254.html#gade36f151806e985eec29fdf96ae6a2bb">glm::gtx::compatibility</a>
120122 </li>
121123 <li>bool3x2
122 : <a class="el" href="a00255.html#gaf4e8c9209cfd75ac029f8d95e9520e2d">glm::gtx::compatibility</a>
124 : <a class="el" href="a00254.html#gaf4e8c9209cfd75ac029f8d95e9520e2d">glm::gtx::compatibility</a>
123125 </li>
124126 <li>bool3x3
125 : <a class="el" href="a00255.html#ga977c0274e9364b129774aedb65b3dcbd">glm::gtx::compatibility</a>
127 : <a class="el" href="a00254.html#ga977c0274e9364b129774aedb65b3dcbd">glm::gtx::compatibility</a>
126128 </li>
127129 <li>bool3x4
128 : <a class="el" href="a00255.html#ga5174a0758ee4bc91a51b1eb7b100a416">glm::gtx::compatibility</a>
130 : <a class="el" href="a00254.html#ga5174a0758ee4bc91a51b1eb7b100a416">glm::gtx::compatibility</a>
129131 </li>
130132 <li>bool4
131 : <a class="el" href="a00255.html#ga1ee8c362caed549a5a83fdd9db6ec6c2">glm::gtx::compatibility</a>
133 : <a class="el" href="a00254.html#ga1ee8c362caed549a5a83fdd9db6ec6c2">glm::gtx::compatibility</a>
132134 </li>
133135 <li>bool4x2
134 : <a class="el" href="a00255.html#ga590198580792550bff2a6bd7f811c8d9">glm::gtx::compatibility</a>
136 : <a class="el" href="a00254.html#ga590198580792550bff2a6bd7f811c8d9">glm::gtx::compatibility</a>
135137 </li>
136138 <li>bool4x3
137 : <a class="el" href="a00255.html#gac8ac5c2c5db2f164ae2e25d1b9898a6b">glm::gtx::compatibility</a>
139 : <a class="el" href="a00254.html#gac8ac5c2c5db2f164ae2e25d1b9898a6b">glm::gtx::compatibility</a>
138140 </li>
139141 <li>bool4x4
140 : <a class="el" href="a00255.html#gac437f71eba4fabf6d7551f1889af2ea5">glm::gtx::compatibility</a>
142 : <a class="el" href="a00254.html#gac437f71eba4fabf6d7551f1889af2ea5">glm::gtx::compatibility</a>
141143 </li>
142144 <li>boxInertia3()
143 : <a class="el" href="a00265.html#ga2bc514c4c44559a1f76776ad723833b8">glm::gtx::inertia</a>
145 : <a class="el" href="a00264.html#ga2bc514c4c44559a1f76776ad723833b8">glm::gtx::inertia</a>
144146 </li>
145147 <li>boxInertia4()
146 : <a class="el" href="a00265.html#ga02d62ab1fe6c9eaaac001f0c73c787f2">glm::gtx::inertia</a>
147 </li>
148 <li>bvec1
149 : <a class="el" href="a00223.html#a4cb77cff76a0649661d8909ac19bdec8">glm::gtx::vector1</a>
148 : <a class="el" href="a00264.html#ga02d62ab1fe6c9eaaac001f0c73c787f2">glm::gtx::inertia</a>
150149 </li>
151150 <li>bvec2
152 : <a class="el" href="a00235.html#ga3bdc45d8289530ec60f8b0afd86dec9d">glm</a>
151 : <a class="el" href="a00234.html#ga3bdc45d8289530ec60f8b0afd86dec9d">glm</a>
153152 </li>
154153 <li>bvec3
155 : <a class="el" href="a00235.html#gaa6930ec345061c66a5fcb4839bbc23b2">glm</a>
154 : <a class="el" href="a00234.html#gaa6930ec345061c66a5fcb4839bbc23b2">glm</a>
156155 </li>
157156 <li>bvec4
158 : <a class="el" href="a00235.html#ga3b7e171999130bbe808335a4e41356a0">glm</a>
157 : <a class="el" href="a00234.html#ga3b7e171999130bbe808335a4e41356a0">glm</a>
159158 </li>
160159 <li>byte
161 : <a class="el" href="a00288.html#ga4a5def5e5e8468de8e97132ddf5c72c5">glm::gtx::raw_data</a>
160 : <a class="el" href="a00287.html#ga4a5def5e5e8468de8e97132ddf5c72c5">glm::gtx::raw_data</a>
162161 </li>
163162 </ul>
164163 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
7375 <li>catmullRom()
74 : <a class="el" href="a00293.html#gaecb37259be4b2370eab845c6d531f55b">glm::gtx::spline</a>
76 : <a class="el" href="a00292.html#gaecb37259be4b2370eab845c6d531f55b">glm::gtx::spline</a>
7577 </li>
7678 <li>ceil()
77 : <a class="el" href="a00238.html#ga828376ee58b02d80d91eee97c50323f8">glm::core::function::common</a>
78 , <a class="el" href="a00292.html#ga3ce76f0bb739c0d5f04e7bfa4251993d">glm::gtx::simd_vec4</a>
79 : <a class="el" href="a00145.html#a396a09decf9e7856783a9376604cc1d7">glm</a>
80 , <a class="el" href="a00291.html#ga3ce76f0bb739c0d5f04e7bfa4251993d">glm::gtx::simd_vec4</a>
7981 </li>
8082 <li>cl_char
81 : <a class="el" href="a00280.html#ga595300752d3c11b13411074df8fcadc7">glm::gtx::ocl_type</a>
83 : <a class="el" href="a00279.html#ga595300752d3c11b13411074df8fcadc7">glm::gtx::ocl_type</a>
8284 </li>
8385 <li>cl_char1
84 : <a class="el" href="a00280.html#gafe341e63c543ce750d41ed776ca0f8cc">glm::gtx::ocl_type</a>
86 : <a class="el" href="a00279.html#gafe341e63c543ce750d41ed776ca0f8cc">glm::gtx::ocl_type</a>
8587 </li>
8688 <li>cl_char2
87 : <a class="el" href="a00280.html#ga5eaab898e9289ffad98798d96a8ff22e">glm::gtx::ocl_type</a>
89 : <a class="el" href="a00279.html#ga5eaab898e9289ffad98798d96a8ff22e">glm::gtx::ocl_type</a>
8890 </li>
8991 <li>cl_char3
90 : <a class="el" href="a00280.html#ga3f60c528dc517a88386358e525238198">glm::gtx::ocl_type</a>
92 : <a class="el" href="a00279.html#ga3f60c528dc517a88386358e525238198">glm::gtx::ocl_type</a>
9193 </li>
9294 <li>cl_char4
93 : <a class="el" href="a00280.html#ga7235804672db90b3b2e8bba142ff4977">glm::gtx::ocl_type</a>
95 : <a class="el" href="a00279.html#ga7235804672db90b3b2e8bba142ff4977">glm::gtx::ocl_type</a>
9496 </li>
9597 <li>cl_float
96 : <a class="el" href="a00280.html#ga6a505bfaeb7d16f0aee456c238d31f06">glm::gtx::ocl_type</a>
98 : <a class="el" href="a00279.html#ga6a505bfaeb7d16f0aee456c238d31f06">glm::gtx::ocl_type</a>
9799 </li>
98100 <li>cl_float1
99 : <a class="el" href="a00280.html#gabd9de5d6f4075dcf643bcb3c74b4d169">glm::gtx::ocl_type</a>
101 : <a class="el" href="a00279.html#gabd9de5d6f4075dcf643bcb3c74b4d169">glm::gtx::ocl_type</a>
100102 </li>
101103 <li>cl_float2
102 : <a class="el" href="a00280.html#ga1d631e031b44406b9ecf4c9390ff4aaf">glm::gtx::ocl_type</a>
104 : <a class="el" href="a00279.html#ga1d631e031b44406b9ecf4c9390ff4aaf">glm::gtx::ocl_type</a>
103105 </li>
104106 <li>cl_float3
105 : <a class="el" href="a00280.html#gaad4526a10e23f201f55649f264856683">glm::gtx::ocl_type</a>
107 : <a class="el" href="a00279.html#gaad4526a10e23f201f55649f264856683">glm::gtx::ocl_type</a>
106108 </li>
107109 <li>cl_float4
108 : <a class="el" href="a00280.html#ga6a4d1b4f7bfdb1721f1554b30096b325">glm::gtx::ocl_type</a>
110 : <a class="el" href="a00279.html#ga6a4d1b4f7bfdb1721f1554b30096b325">glm::gtx::ocl_type</a>
109111 </li>
110112 <li>cl_half
111 : <a class="el" href="a00280.html#ga8bb152355ac899354df1742c673faad0">glm::gtx::ocl_type</a>
113 : <a class="el" href="a00279.html#ga8bb152355ac899354df1742c673faad0">glm::gtx::ocl_type</a>
112114 </li>
113115 <li>cl_int
114 : <a class="el" href="a00280.html#ga15daeef78674bfa6218f1fc8050e0967">glm::gtx::ocl_type</a>
116 : <a class="el" href="a00279.html#ga15daeef78674bfa6218f1fc8050e0967">glm::gtx::ocl_type</a>
115117 </li>
116118 <li>cl_int1
117 : <a class="el" href="a00280.html#ga929eeb0ebaa707edf32fe6381eac38a2">glm::gtx::ocl_type</a>
119 : <a class="el" href="a00279.html#ga929eeb0ebaa707edf32fe6381eac38a2">glm::gtx::ocl_type</a>
118120 </li>
119121 <li>cl_int2
120 : <a class="el" href="a00280.html#ga75d44bea03be3491e5636dea711b70eb">glm::gtx::ocl_type</a>
122 : <a class="el" href="a00279.html#ga75d44bea03be3491e5636dea711b70eb">glm::gtx::ocl_type</a>
121123 </li>
122124 <li>cl_int3
123 : <a class="el" href="a00280.html#ga685501809b08b64d48ede7cd04818675">glm::gtx::ocl_type</a>
125 : <a class="el" href="a00279.html#ga685501809b08b64d48ede7cd04818675">glm::gtx::ocl_type</a>
124126 </li>
125127 <li>cl_int4
126 : <a class="el" href="a00280.html#ga7cf765cb37a5717826260a44e7c37d03">glm::gtx::ocl_type</a>
128 : <a class="el" href="a00279.html#ga7cf765cb37a5717826260a44e7c37d03">glm::gtx::ocl_type</a>
127129 </li>
128130 <li>cl_long
129 : <a class="el" href="a00280.html#ga58de53886632d819d967a2972a977c37">glm::gtx::ocl_type</a>
131 : <a class="el" href="a00279.html#ga58de53886632d819d967a2972a977c37">glm::gtx::ocl_type</a>
130132 </li>
131133 <li>cl_long1
132 : <a class="el" href="a00280.html#ga23c699d4f4ccf698822b67da14b87481">glm::gtx::ocl_type</a>
134 : <a class="el" href="a00279.html#ga23c699d4f4ccf698822b67da14b87481">glm::gtx::ocl_type</a>
133135 </li>
134136 <li>cl_long2
135 : <a class="el" href="a00280.html#ga64aa9b2dc534ebd9cb26010e2eabd987">glm::gtx::ocl_type</a>
137 : <a class="el" href="a00279.html#ga64aa9b2dc534ebd9cb26010e2eabd987">glm::gtx::ocl_type</a>
136138 </li>
137139 <li>cl_long3
138 : <a class="el" href="a00280.html#ga6deed316e020729bc448758fc2e72388">glm::gtx::ocl_type</a>
140 : <a class="el" href="a00279.html#ga6deed316e020729bc448758fc2e72388">glm::gtx::ocl_type</a>
139141 </li>
140142 <li>cl_long4
141 : <a class="el" href="a00280.html#ga4f38be1bb22d86fa7617da6f6907b74c">glm::gtx::ocl_type</a>
143 : <a class="el" href="a00279.html#ga4f38be1bb22d86fa7617da6f6907b74c">glm::gtx::ocl_type</a>
142144 </li>
143145 <li>cl_short
144 : <a class="el" href="a00280.html#ga30b0387f3031a789362d91fc2dd2dc3f">glm::gtx::ocl_type</a>
146 : <a class="el" href="a00279.html#ga30b0387f3031a789362d91fc2dd2dc3f">glm::gtx::ocl_type</a>
145147 </li>
146148 <li>cl_short1
147 : <a class="el" href="a00280.html#gacedae42c667e97db08055a962e4ac73f">glm::gtx::ocl_type</a>
149 : <a class="el" href="a00279.html#gacedae42c667e97db08055a962e4ac73f">glm::gtx::ocl_type</a>
148150 </li>
149151 <li>cl_short2
150 : <a class="el" href="a00280.html#ga035b54a5fd591587d9fa6131e8a0c73c">glm::gtx::ocl_type</a>
152 : <a class="el" href="a00279.html#ga035b54a5fd591587d9fa6131e8a0c73c">glm::gtx::ocl_type</a>
151153 </li>
152154 <li>cl_short3
153 : <a class="el" href="a00280.html#gaacc919abeb1dac5c46b35cba6f2ff1f6">glm::gtx::ocl_type</a>
155 : <a class="el" href="a00279.html#gaacc919abeb1dac5c46b35cba6f2ff1f6">glm::gtx::ocl_type</a>
154156 </li>
155157 <li>cl_short4
156 : <a class="el" href="a00280.html#ga4682ecd16257fe283e891b3979e3037c">glm::gtx::ocl_type</a>
158 : <a class="el" href="a00279.html#ga4682ecd16257fe283e891b3979e3037c">glm::gtx::ocl_type</a>
157159 </li>
158160 <li>cl_uchar
159 : <a class="el" href="a00280.html#ga791bdd6f40533322f03efcc031dc43e7">glm::gtx::ocl_type</a>
161 : <a class="el" href="a00279.html#ga791bdd6f40533322f03efcc031dc43e7">glm::gtx::ocl_type</a>
160162 </li>
161163 <li>cl_uchar1
162 : <a class="el" href="a00280.html#ga458a3244086d84cb4a02356e17e10e41">glm::gtx::ocl_type</a>
164 : <a class="el" href="a00279.html#ga458a3244086d84cb4a02356e17e10e41">glm::gtx::ocl_type</a>
163165 </li>
164166 <li>cl_uchar2
165 : <a class="el" href="a00280.html#gafee78def47febbb4ff7789df67f80e67">glm::gtx::ocl_type</a>
167 : <a class="el" href="a00279.html#gafee78def47febbb4ff7789df67f80e67">glm::gtx::ocl_type</a>
166168 </li>
167169 <li>cl_uchar3
168 : <a class="el" href="a00280.html#ga03f1fdd60172bf92db40de83e13ab2f8">glm::gtx::ocl_type</a>
170 : <a class="el" href="a00279.html#ga03f1fdd60172bf92db40de83e13ab2f8">glm::gtx::ocl_type</a>
169171 </li>
170172 <li>cl_uchar4
171 : <a class="el" href="a00280.html#ga1ba627aa90581618f0aff17a4f52ebc6">glm::gtx::ocl_type</a>
173 : <a class="el" href="a00279.html#ga1ba627aa90581618f0aff17a4f52ebc6">glm::gtx::ocl_type</a>
172174 </li>
173175 <li>cl_uint
174 : <a class="el" href="a00280.html#gafab0cba90c3db2c143bb3e1bc38ac41f">glm::gtx::ocl_type</a>
176 : <a class="el" href="a00279.html#gafab0cba90c3db2c143bb3e1bc38ac41f">glm::gtx::ocl_type</a>
175177 </li>
176178 <li>cl_uint1
177 : <a class="el" href="a00280.html#ga463351df94e9f31c91787e9ead1d0f5e">glm::gtx::ocl_type</a>
179 : <a class="el" href="a00279.html#ga463351df94e9f31c91787e9ead1d0f5e">glm::gtx::ocl_type</a>
178180 </li>
179181 <li>cl_uint2
180 : <a class="el" href="a00280.html#gaf64dcd996174ae3271a9590c232d680f">glm::gtx::ocl_type</a>
182 : <a class="el" href="a00279.html#gaf64dcd996174ae3271a9590c232d680f">glm::gtx::ocl_type</a>
181183 </li>
182184 <li>cl_uint3
183 : <a class="el" href="a00280.html#ga423c13d5b93ab6f5fcdf248e0c89fb8d">glm::gtx::ocl_type</a>
185 : <a class="el" href="a00279.html#ga423c13d5b93ab6f5fcdf248e0c89fb8d">glm::gtx::ocl_type</a>
184186 </li>
185187 <li>cl_uint4
186 : <a class="el" href="a00280.html#gae75d9f1c7e3cebf862623eb3073870b0">glm::gtx::ocl_type</a>
188 : <a class="el" href="a00279.html#gae75d9f1c7e3cebf862623eb3073870b0">glm::gtx::ocl_type</a>
187189 </li>
188190 <li>cl_ulong
189 : <a class="el" href="a00280.html#gaf00884c494b2bd9d47c739847c5e8eaf">glm::gtx::ocl_type</a>
191 : <a class="el" href="a00279.html#gaf00884c494b2bd9d47c739847c5e8eaf">glm::gtx::ocl_type</a>
190192 </li>
191193 <li>cl_ulong1
192 : <a class="el" href="a00280.html#ga38c51ec5073e63c422c741cf7e40a6a8">glm::gtx::ocl_type</a>
194 : <a class="el" href="a00279.html#ga38c51ec5073e63c422c741cf7e40a6a8">glm::gtx::ocl_type</a>
193195 </li>
194196 <li>cl_ulong2
195 : <a class="el" href="a00280.html#ga983b584fd1a89ba357c4d161f57a97a5">glm::gtx::ocl_type</a>
197 : <a class="el" href="a00279.html#ga983b584fd1a89ba357c4d161f57a97a5">glm::gtx::ocl_type</a>
196198 </li>
197199 <li>cl_ulong3
198 : <a class="el" href="a00280.html#gaad8f2d09028d9522ff6b792ceaeeebbc">glm::gtx::ocl_type</a>
200 : <a class="el" href="a00279.html#gaad8f2d09028d9522ff6b792ceaeeebbc">glm::gtx::ocl_type</a>
199201 </li>
200202 <li>cl_ulong4
201 : <a class="el" href="a00280.html#ga5724575e5574de465785f06eeefd8789">glm::gtx::ocl_type</a>
203 : <a class="el" href="a00279.html#ga5724575e5574de465785f06eeefd8789">glm::gtx::ocl_type</a>
202204 </li>
203205 <li>cl_ushort
204 : <a class="el" href="a00280.html#ga17431e27a8e8d20ec69a3ba3f6557a2d">glm::gtx::ocl_type</a>
206 : <a class="el" href="a00279.html#ga17431e27a8e8d20ec69a3ba3f6557a2d">glm::gtx::ocl_type</a>
205207 </li>
206208 <li>cl_ushort1
207 : <a class="el" href="a00280.html#ga2765c8e248830f14881cafc7ff08ce48">glm::gtx::ocl_type</a>
209 : <a class="el" href="a00279.html#ga2765c8e248830f14881cafc7ff08ce48">glm::gtx::ocl_type</a>
208210 </li>
209211 <li>cl_ushort2
210 : <a class="el" href="a00280.html#ga83879286ad8a304211a9bd1dec8a81b9">glm::gtx::ocl_type</a>
212 : <a class="el" href="a00279.html#ga83879286ad8a304211a9bd1dec8a81b9">glm::gtx::ocl_type</a>
211213 </li>
212214 <li>cl_ushort3
213 : <a class="el" href="a00280.html#ga8ffa538b79f80a173f52a83c3bcc0587">glm::gtx::ocl_type</a>
215 : <a class="el" href="a00279.html#ga8ffa538b79f80a173f52a83c3bcc0587">glm::gtx::ocl_type</a>
214216 </li>
215217 <li>cl_ushort4
216 : <a class="el" href="a00280.html#gaef286e330c9eaa72e71c5081a85592b3">glm::gtx::ocl_type</a>
218 : <a class="el" href="a00279.html#gaef286e330c9eaa72e71c5081a85592b3">glm::gtx::ocl_type</a>
217219 </li>
218220 <li>clamp()
219 : <a class="el" href="a00238.html#ga8d9331a9bd3aa06e1d10eb7fa0dbb9e5">glm::core::function::common</a>
220 , <a class="el" href="a00292.html#ga73e895d1fdba2b620e84383517c552b0">glm::gtx::simd_vec4</a>
221 , <a class="el" href="a00302.html#ga4cadbe69771221fe96b15a747b89948e">glm::gtx::wrap</a>
221 : <a class="el" href="a00145.html#a3f3febbf65f3a1f5695aae62f0e89694">glm</a>
222 , <a class="el" href="a00291.html#ga73e895d1fdba2b620e84383517c552b0">glm::gtx::simd_vec4</a>
223 , <a class="el" href="a00301.html#ga4cadbe69771221fe96b15a747b89948e">glm::gtx::wrap</a>
222224 </li>
223225 <li>closestPointOnLine()
224 : <a class="el" href="a00251.html#ga14a814a7834db281ef0167947c8f9516">glm::gtx::closest_point</a>
226 : <a class="el" href="a00250.html#ga14a814a7834db281ef0167947c8f9516">glm::gtx::closest_point</a>
225227 </li>
226228 <li>colMajor2()
227 : <a class="el" href="a00271.html#ga790e5da0b14c7e16485316a744053f1a">glm::gtx::matrix_major_storage</a>
229 : <a class="el" href="a00270.html#ga790e5da0b14c7e16485316a744053f1a">glm::gtx::matrix_major_storage</a>
228230 </li>
229231 <li>colMajor3()
230 : <a class="el" href="a00271.html#ga2951b0d82dcc941092fcca1035d789e1">glm::gtx::matrix_major_storage</a>
232 : <a class="el" href="a00270.html#ga2951b0d82dcc941092fcca1035d789e1">glm::gtx::matrix_major_storage</a>
231233 </li>
232234 <li>colMajor4()
233 : <a class="el" href="a00271.html#ga5eb07557f70bf4c8de34260bfd7290e7">glm::gtx::matrix_major_storage</a>
235 : <a class="el" href="a00270.html#ga5eb07557f70bf4c8de34260bfd7290e7">glm::gtx::matrix_major_storage</a>
234236 </li>
235237 <li>column()
236 : <a class="el" href="a00241.html#ga30e1966ba22897cd09f156690c8f94a1">glm::gtc::matrix_access</a>
238 : <a class="el" href="a00240.html#ga30e1966ba22897cd09f156690c8f94a1">glm::gtc::matrix_access</a>
239 </li>
240 <li>comp
241 : <a class="el" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">glm</a>
237242 </li>
238243 <li>compAdd()
239 : <a class="el" href="a00256.html#ga67c4614f0fc500f0d0f9db9b2d7f8c00">glm::gtx::component_wise</a>
244 : <a class="el" href="a00255.html#ga67c4614f0fc500f0d0f9db9b2d7f8c00">glm::gtx::component_wise</a>
240245 </li>
241246 <li>compMax()
242 : <a class="el" href="a00256.html#gaf5600944ec0e04504a9577a483f05a50">glm::gtx::component_wise</a>
247 : <a class="el" href="a00255.html#gaf5600944ec0e04504a9577a483f05a50">glm::gtx::component_wise</a>
243248 </li>
244249 <li>compMin()
245 : <a class="el" href="a00256.html#ga62000aa6f70f216f84b771caeb64ea1d">glm::gtx::component_wise</a>
250 : <a class="el" href="a00255.html#ga62000aa6f70f216f84b771caeb64ea1d">glm::gtx::component_wise</a>
246251 </li>
247252 <li>compMul()
248 : <a class="el" href="a00256.html#ga5a504b61c83eb400b0b253b9984af52f">glm::gtx::component_wise</a>
253 : <a class="el" href="a00255.html#ga5a504b61c83eb400b0b253b9984af52f">glm::gtx::component_wise</a>
249254 </li>
250255 <li>compRand1()
251 : <a class="el" href="a00287.html#gaf7f3b54ec804a8eb627ec78f6d7eab2e">glm::gtx::random</a>
256 : <a class="el" href="a00210.html#gaf7f3b54ec804a8eb627ec78f6d7eab2e">glm::gtx::random</a>
252257 </li>
253258 <li>compRand2()
254 : <a class="el" href="a00287.html#gac524ec6ee7f45774dc9cbfcb38491d8a">glm::gtx::random</a>
259 : <a class="el" href="a00286.html#gac524ec6ee7f45774dc9cbfcb38491d8a">glm::gtx::random</a>
255260 </li>
256261 <li>compRand3()
257 : <a class="el" href="a00287.html#ga21c92bd54518b8de81c7888ab376e79c">glm::gtx::random</a>
262 : <a class="el" href="a00286.html#ga25d17c98a74d5252c0d1f4070e0dce75">glm::gtx::random</a>
258263 </li>
259264 <li>compRand4()
260 : <a class="el" href="a00287.html#ga1fcc4fc54d083529501f4fd73858cacf">glm::gtx::random</a>
265 : <a class="el" href="a00286.html#ga58863d5503a6c1aefaa5d01775a83267">glm::gtx::random</a>
261266 </li>
262267 <li>conjugate()
263 : <a class="el" href="a00245.html#gac66280c86e8efa619ad7dddb2d475aa7">glm::gtc::quaternion</a>
268 : <a class="el" href="a00244.html#gac66280c86e8efa619ad7dddb2d475aa7">glm::gtc::quaternion</a>
264269 </li>
265270 <li>cos()
266 : <a class="el" href="a00238.html#ga4fbc8481a95bcc1c0c6931a34449b9a8">glm::core::function::trigonometric</a>
271 : <a class="el" href="a00237.html#ga4fbc8481a95bcc1c0c6931a34449b9a8">glm::core::function::trigonometric</a>
267272 </li>
268273 <li>cosh()
269 : <a class="el" href="a00238.html#ga2cfdbcd7a269a114cbb4f19dcf1e3f8b">glm::core::function::trigonometric</a>
274 : <a class="el" href="a00237.html#ga2cfdbcd7a269a114cbb4f19dcf1e3f8b">glm::core::function::trigonometric</a>
270275 </li>
271276 <li>cot()
272 : <a class="el" href="a00289.html#ga6c2f14ab2a9148b461392b320259ac62">glm::gtx::reciprocal</a>
277 : <a class="el" href="a00288.html#ga6c2f14ab2a9148b461392b320259ac62">glm::gtx::reciprocal</a>
273278 </li>
274279 <li>coth()
275 : <a class="el" href="a00289.html#gaf3c2cc20b634fcd623840ecc99a038ad">glm::gtx::reciprocal</a>
280 : <a class="el" href="a00288.html#gaf3c2cc20b634fcd623840ecc99a038ad">glm::gtx::reciprocal</a>
276281 </li>
277282 <li>cross()
278 : <a class="el" href="a00292.html#gabe4bd036ccfd0e1d53ea828d478cdd2c">glm::gtx::simd_vec4</a>
279 , <a class="el" href="a00238.html#ga63272179a066d755953bcfbe38666257">glm::core::function::geometric</a>
280 , <a class="el" href="a00286.html#ga07cefaf434b895aa6a1841837f0c106d">glm::gtx::quaternion</a>
281 , <a class="el" href="a00245.html#ga6fe2d33aa0cdf188ab362355ad4108c4">glm::gtc::quaternion</a>
283 : <a class="el" href="a00291.html#gabe4bd036ccfd0e1d53ea828d478cdd2c">glm::gtx::simd_vec4</a>
284 , <a class="el" href="a00285.html#ga07cefaf434b895aa6a1841837f0c106d">glm::gtx::quaternion</a>
285 , <a class="el" href="a00244.html#ga6fe2d33aa0cdf188ab362355ad4108c4">glm::gtc::quaternion</a>
282286 </li>
283287 <li>csc()
284 : <a class="el" href="a00289.html#ga1f21e65ffedffde468d93a790f875637">glm::gtx::reciprocal</a>
288 : <a class="el" href="a00288.html#ga1f21e65ffedffde468d93a790f875637">glm::gtx::reciprocal</a>
285289 </li>
286290 <li>csch()
287 : <a class="el" href="a00289.html#gad690383d8014e5c46a2d35a6a59ff053">glm::gtx::reciprocal</a>
291 : <a class="el" href="a00288.html#gad690383d8014e5c46a2d35a6a59ff053">glm::gtx::reciprocal</a>
288292 </li>
289293 <li>cubic()
290 : <a class="el" href="a00293.html#gaae38edb178e0256e966955b19b61f617">glm::gtx::spline</a>
294 : <a class="el" href="a00292.html#gaae38edb178e0256e966955b19b61f617">glm::gtx::spline</a>
291295 </li>
292296 </ul>
293297 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
7375 <li>degrees()
74 : <a class="el" href="a00238.html#ga2dc092f93e998e01c1cfdaef817ca926">glm::core::function::trigonometric</a>
76 : <a class="el" href="a00237.html#ga2dc092f93e998e01c1cfdaef817ca926">glm::core::function::trigonometric</a>
7577 </li>
7678 <li>determinant()
77 : <a class="el" href="a00238.html#ga0159ae2542b5bba80743694122247c15">glm::core::function::matrix</a>
78 , <a class="el" href="a00291.html#ga9be926c258e64bf2413671d104b393e8">glm::gtx::simd_mat4</a>
79 , <a class="el" href="a00238.html#gaadf033715cbf1171a599aa7ac7f633be">glm::core::function::matrix</a>
79 : <a class="el" href="a00237.html#ga0159ae2542b5bba80743694122247c15">glm::core::function::matrix</a>
80 , <a class="el" href="a00290.html#ga9be926c258e64bf2413671d104b393e8">glm::gtx::simd_mat4</a>
81 , <a class="el" href="a00237.html#gaadf033715cbf1171a599aa7ac7f633be">glm::core::function::matrix</a>
8082 </li>
8183 <li>diagonal2x2()
82 : <a class="el" href="a00272.html#gae2848e38a4533d20f5e7af384440d4d6">glm::gtx::matrix_operation</a>
84 : <a class="el" href="a00271.html#gae2848e38a4533d20f5e7af384440d4d6">glm::gtx::matrix_operation</a>
8385 </li>
8486 <li>diagonal2x3()
85 : <a class="el" href="a00272.html#ga61c9061e742d63c52cde17c0bc47a9f3">glm::gtx::matrix_operation</a>
87 : <a class="el" href="a00271.html#ga61c9061e742d63c52cde17c0bc47a9f3">glm::gtx::matrix_operation</a>
8688 </li>
8789 <li>diagonal2x4()
88 : <a class="el" href="a00272.html#ga1a2d2575b5a228370228d0ab34e704aa">glm::gtx::matrix_operation</a>
90 : <a class="el" href="a00271.html#ga1a2d2575b5a228370228d0ab34e704aa">glm::gtx::matrix_operation</a>
8991 </li>
9092 <li>diagonal3x2()
91 : <a class="el" href="a00272.html#ga5e0245ab431bc049e69abeaaaaf2f455">glm::gtx::matrix_operation</a>
93 : <a class="el" href="a00271.html#ga5e0245ab431bc049e69abeaaaaf2f455">glm::gtx::matrix_operation</a>
9294 </li>
9395 <li>diagonal3x3()
94 : <a class="el" href="a00272.html#gacdd60defc29a8d1aa6be63387d3da76a">glm::gtx::matrix_operation</a>
96 : <a class="el" href="a00271.html#gacdd60defc29a8d1aa6be63387d3da76a">glm::gtx::matrix_operation</a>
9597 </li>
9698 <li>diagonal3x4()
97 : <a class="el" href="a00272.html#ga3fb59fa3dd6a1db3a8712bcc0c92c926">glm::gtx::matrix_operation</a>
99 : <a class="el" href="a00271.html#ga3fb59fa3dd6a1db3a8712bcc0c92c926">glm::gtx::matrix_operation</a>
98100 </li>
99101 <li>diagonal4x2()
100 : <a class="el" href="a00272.html#ga25edcc4359dc5a420df609bec1a83289">glm::gtx::matrix_operation</a>
102 : <a class="el" href="a00271.html#ga25edcc4359dc5a420df609bec1a83289">glm::gtx::matrix_operation</a>
101103 </li>
102104 <li>diagonal4x3()
103 : <a class="el" href="a00272.html#ga7b855b1e9e014561a5edcd8cfd928fcc">glm::gtx::matrix_operation</a>
105 : <a class="el" href="a00271.html#ga7b855b1e9e014561a5edcd8cfd928fcc">glm::gtx::matrix_operation</a>
104106 </li>
105107 <li>diagonal4x4()
106 : <a class="el" href="a00272.html#ga2b8a31afd6c7a64309810db58a35a6e8">glm::gtx::matrix_operation</a>
108 : <a class="el" href="a00271.html#ga2b8a31afd6c7a64309810db58a35a6e8">glm::gtx::matrix_operation</a>
107109 </li>
108110 <li>diskInertia3()
109 : <a class="el" href="a00265.html#gaceea61bf41a4cc6f934543bb42c30ab2">glm::gtx::inertia</a>
111 : <a class="el" href="a00264.html#gaceea61bf41a4cc6f934543bb42c30ab2">glm::gtx::inertia</a>
110112 </li>
111113 <li>diskInertia4()
112 : <a class="el" href="a00265.html#ga0f6f854161239bed615b5cba1cd85d8a">glm::gtx::inertia</a>
114 : <a class="el" href="a00264.html#ga0f6f854161239bed615b5cba1cd85d8a">glm::gtx::inertia</a>
113115 </li>
114116 <li>distance()
115 : <a class="el" href="a00238.html#gaa7cb6dbe9b8224c25345f1fd6fc09e77">glm::core::function::geometric</a>
116 , <a class="el" href="a00292.html#gac514ca90bcc5a17bd7162ea32a220580">glm::gtx::simd_vec4</a>
117 : <a class="el" href="a00291.html#gac514ca90bcc5a17bd7162ea32a220580">glm::gtx::simd_vec4</a>
117118 </li>
118119 <li>distance2()
119 : <a class="el" href="a00276.html#ga8ced68108693319d844c896d3e8a2887">glm::gtx::norm</a>
120 : <a class="el" href="a00275.html#ga8ced68108693319d844c896d3e8a2887">glm::gtx::norm</a>
120121 </li>
121122 <li>distance4()
122 : <a class="el" href="a00292.html#gae9238f5011fd124d44dad7b39f0d5a0f">glm::gtx::simd_vec4</a>
123 : <a class="el" href="a00291.html#gae9238f5011fd124d44dad7b39f0d5a0f">glm::gtx::simd_vec4</a>
123124 </li>
124125 <li>div()
125 : <a class="el" href="a00301.html#gac3fc94c8ffc6cdbfd36cffc6d06c8072">glm::gtx::verbose_operator</a>
126 : <a class="el" href="a00300.html#gac3fc94c8ffc6cdbfd36cffc6d06c8072">glm::gtx::verbose_operator</a>
126127 </li>
127128 <li>dmat2
128 : <a class="el" href="a00235.html#gac47a6148fdae0fe40858fb357aa9e9c5">glm</a>
129 : <a class="el" href="a00234.html#gac47a6148fdae0fe40858fb357aa9e9c5">glm</a>
129130 </li>
130131 <li>dmat2x2
131 : <a class="el" href="a00235.html#ga154eeba579bb2792509d4f68d7269116">glm</a>
132 : <a class="el" href="a00234.html#ga154eeba579bb2792509d4f68d7269116">glm</a>
132133 </li>
133134 <li>dmat2x3
134 : <a class="el" href="a00235.html#ga6722002d2b3591b9617696009cb92d7d">glm</a>
135 : <a class="el" href="a00234.html#ga6722002d2b3591b9617696009cb92d7d">glm</a>
135136 </li>
136137 <li>dmat2x4
137 : <a class="el" href="a00235.html#ga839ae2cf7dd0064e97529dfe10017ad2">glm</a>
138 : <a class="el" href="a00234.html#ga839ae2cf7dd0064e97529dfe10017ad2">glm</a>
138139 </li>
139140 <li>dmat3
140 : <a class="el" href="a00235.html#ga92c12ba0463edf4aa5d6d0e506591cf0">glm</a>
141 : <a class="el" href="a00234.html#ga92c12ba0463edf4aa5d6d0e506591cf0">glm</a>
141142 </li>
142143 <li>dmat3x2
143 : <a class="el" href="a00235.html#ga94c2f5b05e0be254d81b53fdea6602d7">glm</a>
144 : <a class="el" href="a00234.html#ga94c2f5b05e0be254d81b53fdea6602d7">glm</a>
144145 </li>
145146 <li>dmat3x3
146 : <a class="el" href="a00235.html#gaf72ab1d43dc5d437d2c9ea53ea038e3b">glm</a>
147 : <a class="el" href="a00234.html#gaf72ab1d43dc5d437d2c9ea53ea038e3b">glm</a>
147148 </li>
148149 <li>dmat3x4
149 : <a class="el" href="a00235.html#ga04f2a951763897578c4c08e61989f1d1">glm</a>
150 : <a class="el" href="a00234.html#ga04f2a951763897578c4c08e61989f1d1">glm</a>
150151 </li>
151152 <li>dmat4
152 : <a class="el" href="a00235.html#ga5db20fe7521b2e5bfa67a3131bdd0623">glm</a>
153 : <a class="el" href="a00234.html#ga5db20fe7521b2e5bfa67a3131bdd0623">glm</a>
153154 </li>
154155 <li>dmat4x2
155 : <a class="el" href="a00235.html#ga1c381a2410bbabe8464254b1ff76173c">glm</a>
156 : <a class="el" href="a00234.html#ga1c381a2410bbabe8464254b1ff76173c">glm</a>
156157 </li>
157158 <li>dmat4x3
158 : <a class="el" href="a00235.html#ga250ca1110cb3df02e122705e0df801f3">glm</a>
159 : <a class="el" href="a00234.html#ga250ca1110cb3df02e122705e0df801f3">glm</a>
159160 </li>
160161 <li>dmat4x4
161 : <a class="el" href="a00235.html#gae2cf7fdac82b788e8f4d4145f6c963f1">glm</a>
162 : <a class="el" href="a00234.html#gae2cf7fdac82b788e8f4d4145f6c963f1">glm</a>
162163 </li>
163164 <li>dot()
164 : <a class="el" href="a00238.html#ga38e1f1538ac0fedc9d6ac14910105421">glm::core::function::geometric</a>
165 , <a class="el" href="a00245.html#gaae0285ab092999b98c4f4c8455eeee9f">glm::gtc::quaternion</a>
165 : <a class="el" href="a00244.html#gaae0285ab092999b98c4f4c8455eeee9f">glm::gtc::quaternion</a>
166166 </li>
167167 <li>dot4()
168 : <a class="el" href="a00292.html#gaa50f94e3de246ea1a1914266aef2f74b">glm::gtx::simd_vec4</a>
168 : <a class="el" href="a00291.html#gaa50f94e3de246ea1a1914266aef2f74b">glm::gtx::simd_vec4</a>
169169 </li>
170170 <li>double1
171 : <a class="el" href="a00255.html#ga20b861a9b6e2a300323671c57a02525b">glm::gtx::compatibility</a>
171 : <a class="el" href="a00254.html#ga20b861a9b6e2a300323671c57a02525b">glm::gtx::compatibility</a>
172172 </li>
173173 <li>double1x1
174 : <a class="el" href="a00255.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">glm::gtx::compatibility</a>
174 : <a class="el" href="a00254.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">glm::gtx::compatibility</a>
175175 </li>
176176 <li>double2
177 : <a class="el" href="a00255.html#ga7a2bed57d1cc7209ee6d027010bc96b6">glm::gtx::compatibility</a>
177 : <a class="el" href="a00254.html#ga7a2bed57d1cc7209ee6d027010bc96b6">glm::gtx::compatibility</a>
178178 </li>
179179 <li>double2x2
180 : <a class="el" href="a00255.html#ga96772f5981821b9e80c572481e37f220">glm::gtx::compatibility</a>
180 : <a class="el" href="a00254.html#ga96772f5981821b9e80c572481e37f220">glm::gtx::compatibility</a>
181181 </li>
182182 <li>double2x3
183 : <a class="el" href="a00255.html#ga07bbc143dfea7838be68d63c114317f4">glm::gtx::compatibility</a>
183 : <a class="el" href="a00254.html#ga07bbc143dfea7838be68d63c114317f4">glm::gtx::compatibility</a>
184184 </li>
185185 <li>double2x4
186 : <a class="el" href="a00255.html#ga1e68c0a16e5684f44d86faac2a7d6810">glm::gtx::compatibility</a>
186 : <a class="el" href="a00254.html#ga1e68c0a16e5684f44d86faac2a7d6810">glm::gtx::compatibility</a>
187187 </li>
188188 <li>double3
189 : <a class="el" href="a00255.html#gaed0358fe1eb696b655a13eac4ececb2a">glm::gtx::compatibility</a>
189 : <a class="el" href="a00254.html#gaed0358fe1eb696b655a13eac4ececb2a">glm::gtx::compatibility</a>
190190 </li>
191191 <li>double3x2
192 : <a class="el" href="a00255.html#ga6e8dd2531703ce00b253ddd3c0c6eaca">glm::gtx::compatibility</a>
192 : <a class="el" href="a00254.html#ga6e8dd2531703ce00b253ddd3c0c6eaca">glm::gtx::compatibility</a>
193193 </li>
194194 <li>double3x3
195 : <a class="el" href="a00255.html#ga5dfb1357edcef48fcfdf9908906ae086">glm::gtx::compatibility</a>
195 : <a class="el" href="a00254.html#ga5dfb1357edcef48fcfdf9908906ae086">glm::gtx::compatibility</a>
196196 </li>
197197 <li>double3x4
198 : <a class="el" href="a00255.html#ga3b83eafbc284acce070855469c39b991">glm::gtx::compatibility</a>
198 : <a class="el" href="a00254.html#ga3b83eafbc284acce070855469c39b991">glm::gtx::compatibility</a>
199199 </li>
200200 <li>double4
201 : <a class="el" href="a00255.html#gace0ba846c7443d0d56abb0ca3e61469d">glm::gtx::compatibility</a>
201 : <a class="el" href="a00254.html#gace0ba846c7443d0d56abb0ca3e61469d">glm::gtx::compatibility</a>
202202 </li>
203203 <li>double4x2
204 : <a class="el" href="a00255.html#ga19c9ec02aa62b78e9709c4b2e2ae6f35">glm::gtx::compatibility</a>
204 : <a class="el" href="a00254.html#ga19c9ec02aa62b78e9709c4b2e2ae6f35">glm::gtx::compatibility</a>
205205 </li>
206206 <li>double4x3
207 : <a class="el" href="a00255.html#ga53c7dc9532c324aefb75a5f08033cd12">glm::gtx::compatibility</a>
207 : <a class="el" href="a00254.html#ga53c7dc9532c324aefb75a5f08033cd12">glm::gtx::compatibility</a>
208208 </li>
209209 <li>double4x4
210 : <a class="el" href="a00255.html#ga2cc8e4fa772bfc5c1cada72ee5cadaf8">glm::gtx::compatibility</a>
210 : <a class="el" href="a00254.html#ga2cc8e4fa772bfc5c1cada72ee5cadaf8">glm::gtx::compatibility</a>
211211 </li>
212212 <li>dquat
213 : <a class="el" href="a00245.html#ga5428321324094c7170d6133c8139d255">glm::gtc::quaternion</a>
213 : <a class="el" href="a00244.html#ga5428321324094c7170d6133c8139d255">glm::gtc::quaternion</a>
214214 </li>
215215 <li>dvec2
216 : <a class="el" href="a00235.html#ga88bf1a60f35314a6b3f2c5adc97004cf">glm</a>
216 : <a class="el" href="a00234.html#ga88bf1a60f35314a6b3f2c5adc97004cf">glm</a>
217217 </li>
218218 <li>dvec3
219 : <a class="el" href="a00235.html#ga0f0fcb7b631cbbac4341badb01d84218">glm</a>
219 : <a class="el" href="a00234.html#ga0f0fcb7b631cbbac4341badb01d84218">glm</a>
220220 </li>
221221 <li>dvec4
222 : <a class="el" href="a00235.html#ga6f62aca8ddbdb3badf9d52885e7dcfb6">glm</a>
222 : <a class="el" href="a00234.html#ga6f62aca8ddbdb3badf9d52885e7dcfb6">glm</a>
223223 </li>
224224 <li>dword
225 : <a class="el" href="a00288.html#ga162201f4386c2973e6ebd76ac0941de0">glm::gtx::raw_data</a>
225 : <a class="el" href="a00287.html#ga162201f4386c2973e6ebd76ac0941de0">glm::gtx::raw_data</a>
226226 </li>
227227 </ul>
228228 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
7375 <li>equal()
74 : <a class="el" href="a00238.html#ga811015178de53f628610f2036946fbb9">glm::core::function::vector_relational</a>
76 : <a class="el" href="a00145.html#ac07ee1974405deae4b81d16064748768">glm</a>
7577 </li>
7678 <li>equalEpsilon()
77 : <a class="el" href="a00257.html#gae56f18f757e2d08bae0d5ce0d8e59980">glm::gtx::epsilon</a>
79 : <a class="el" href="a00256.html#gae56f18f757e2d08bae0d5ce0d8e59980">glm::gtx::epsilon</a>
7880 </li>
7981 <li>euclidean()
80 : <a class="el" href="a00284.html#ga7c4788941d42c56c6ee2fd235765127e">glm::gtx::polar_coordinates</a>
82 : <a class="el" href="a00283.html#ga7c4788941d42c56c6ee2fd235765127e">glm::gtx::polar_coordinates</a>
8183 </li>
82 <li>eularAngles()
83 : <a class="el" href="a00286.html#ga49d24e9d018f400ee11176b7e9433384">glm::gtx::quaternion</a>
84 <li>eulerAngles()
85 : <a class="el" href="a00285.html#ga39be27be43d9f80ce5bfc5e1adf21412">glm::gtx::quaternion</a>
8486 </li>
8587 <li>eulerAngleX()
86 : <a class="el" href="a00258.html#ga383b615b7c516d129d8a569caeb02e60">glm::gtx::euler_angles</a>
88 : <a class="el" href="a00257.html#ga383b615b7c516d129d8a569caeb02e60">glm::gtx::euler_angles</a>
8789 </li>
8890 <li>eulerAngleXY()
89 : <a class="el" href="a00258.html#gab31953fcb1febf66c095f80928c11880">glm::gtx::euler_angles</a>
91 : <a class="el" href="a00257.html#gab31953fcb1febf66c095f80928c11880">glm::gtx::euler_angles</a>
9092 </li>
9193 <li>eulerAngleXZ()
92 : <a class="el" href="a00258.html#gaacdf1305fa3190de23ebff5f717d5b1a">glm::gtx::euler_angles</a>
94 : <a class="el" href="a00257.html#gaacdf1305fa3190de23ebff5f717d5b1a">glm::gtx::euler_angles</a>
9395 </li>
9496 <li>eulerAngleY()
95 : <a class="el" href="a00258.html#ga19efbeee8e1e51be3424fad187aada03">glm::gtx::euler_angles</a>
97 : <a class="el" href="a00257.html#ga19efbeee8e1e51be3424fad187aada03">glm::gtx::euler_angles</a>
9698 </li>
9799 <li>eulerAngleYX()
98 : <a class="el" href="a00258.html#gac7eb231dc5b6519dcd1e28f8662d0db6">glm::gtx::euler_angles</a>
100 : <a class="el" href="a00257.html#gac7eb231dc5b6519dcd1e28f8662d0db6">glm::gtx::euler_angles</a>
99101 </li>
100102 <li>eulerAngleYXZ()
101 : <a class="el" href="a00258.html#ga9a1c23259481176631e5910b8a294c0c">glm::gtx::euler_angles</a>
103 : <a class="el" href="a00257.html#ga9a1c23259481176631e5910b8a294c0c">glm::gtx::euler_angles</a>
102104 </li>
103105 <li>eulerAngleYZ()
104 : <a class="el" href="a00258.html#gac528b349b40a8c1d1b34c4a17221bb48">glm::gtx::euler_angles</a>
106 : <a class="el" href="a00257.html#gac528b349b40a8c1d1b34c4a17221bb48">glm::gtx::euler_angles</a>
105107 </li>
106108 <li>eulerAngleZ()
107 : <a class="el" href="a00258.html#ga950aebf621ca275949b90845a1e76d79">glm::gtx::euler_angles</a>
109 : <a class="el" href="a00257.html#ga950aebf621ca275949b90845a1e76d79">glm::gtx::euler_angles</a>
108110 </li>
109111 <li>eulerAngleZX()
110 : <a class="el" href="a00258.html#ga5afd9174575eab4105c9e3c07a9f68f7">glm::gtx::euler_angles</a>
112 : <a class="el" href="a00257.html#ga5afd9174575eab4105c9e3c07a9f68f7">glm::gtx::euler_angles</a>
111113 </li>
112114 <li>eulerAngleZY()
113 : <a class="el" href="a00258.html#gade7193b3d889285671cdfafd62339a87">glm::gtx::euler_angles</a>
115 : <a class="el" href="a00257.html#gade7193b3d889285671cdfafd62339a87">glm::gtx::euler_angles</a>
114116 </li>
115117 <li>exp()
116 : <a class="el" href="a00286.html#gaed2302270ec468d26de745516ccb5d4b">glm::gtx::quaternion</a>
117 , <a class="el" href="a00238.html#gac96b81360552e233031fd06390576ebf">glm::core::function::exponential</a>
118 : <a class="el" href="a00285.html#gaed2302270ec468d26de745516ccb5d4b">glm::gtx::quaternion</a>
119 , <a class="el" href="a00237.html#gac96b81360552e233031fd06390576ebf">glm::core::function::exponential</a>
118120 </li>
119121 <li>exp2()
120 : <a class="el" href="a00238.html#ga79adbdfa6f2e6ce59816c9b0bd1aebe3">glm::core::function::exponential</a>
122 : <a class="el" href="a00237.html#ga79adbdfa6f2e6ce59816c9b0bd1aebe3">glm::core::function::exponential</a>
121123 </li>
122124 <li>extend()
123 : <a class="el" href="a00259.html#ga9fe82185d36e8136fb2656bacf3d4a86">glm::gtx::extend</a>
125 : <a class="el" href="a00258.html#ga9fe82185d36e8136fb2656bacf3d4a86">glm::gtx::extend</a>
124126 </li>
125127 <li>extractField()
126 : <a class="el" href="a00250.html#ga244734bb54e4648970c38b032258035a">glm::gtx::bit</a>
128 : <a class="el" href="a00249.html#ga244734bb54e4648970c38b032258035a">glm::gtx::bit</a>
127129 </li>
128130 <li>extractRealComponent()
129 : <a class="el" href="a00286.html#ga23eb8e1aeaf751f7cc46fbaa291e223d">glm::gtx::quaternion</a>
131 : <a class="el" href="a00285.html#ga23eb8e1aeaf751f7cc46fbaa291e223d">glm::gtx::quaternion</a>
130132 </li>
131133 </ul>
132134 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
7375 <li>f16
74 : <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">glm::gtc::type_precision</a>
76 : <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">glm::gtc::type_precision</a>
7577 </li>
7678 <li>f16_abgr_cast()
77 : <a class="el" href="a00252.html#ga3cd01da9b10cf61cf556fc8e7992f2ea">glm::gtx::color_cast</a>
79 : <a class="el" href="a00251.html#ga3cd01da9b10cf61cf556fc8e7992f2ea">glm::gtx::color_cast</a>
7880 </li>
7981 <li>f16_argb_cast()
80 : <a class="el" href="a00252.html#gaf58e7f656ffad74fe4ed093250c444c8">glm::gtx::color_cast</a>
82 : <a class="el" href="a00251.html#gaf58e7f656ffad74fe4ed093250c444c8">glm::gtx::color_cast</a>
8183 </li>
8284 <li>f16_bgra_cast()
83 : <a class="el" href="a00252.html#gadbd908bc29dd87b7222dad33a6b0a6ad">glm::gtx::color_cast</a>
85 : <a class="el" href="a00251.html#gadbd908bc29dd87b7222dad33a6b0a6ad">glm::gtx::color_cast</a>
8486 </li>
8587 <li>f16_bgrx_cast()
86 : <a class="el" href="a00252.html#gaed8b82a32ac9f6e8024a6880461496ba">glm::gtx::color_cast</a>
88 : <a class="el" href="a00251.html#gaed8b82a32ac9f6e8024a6880461496ba">glm::gtx::color_cast</a>
8789 </li>
8890 <li>f16_channel_cast()
89 : <a class="el" href="a00252.html#gae735900f14bcc64ebaf42bb812500964">glm::gtx::color_cast</a>
91 : <a class="el" href="a00251.html#gae735900f14bcc64ebaf42bb812500964">glm::gtx::color_cast</a>
9092 </li>
9193 <li>f16_rgba_cast()
92 : <a class="el" href="a00252.html#ga417f7a9c2bc66229dbeb714308ff45ba">glm::gtx::color_cast</a>
94 : <a class="el" href="a00251.html#ga417f7a9c2bc66229dbeb714308ff45ba">glm::gtx::color_cast</a>
9395 </li>
9496 <li>f16_rgbx_cast()
95 : <a class="el" href="a00252.html#ga82f8510eb3275299aee11f7a6a0761c0">glm::gtx::color_cast</a>
97 : <a class="el" href="a00251.html#ga82f8510eb3275299aee11f7a6a0761c0">glm::gtx::color_cast</a>
9698 </li>
9799 <li>f16_xbgr_cast()
98 : <a class="el" href="a00252.html#ga6a18355f6ce1b531a8d879774ba43179">glm::gtx::color_cast</a>
100 : <a class="el" href="a00251.html#ga6a18355f6ce1b531a8d879774ba43179">glm::gtx::color_cast</a>
99101 </li>
100102 <li>f16_xrgb_cast()
101 : <a class="el" href="a00252.html#ga54f72266de72a0834da07337b2512c78">glm::gtx::color_cast</a>
103 : <a class="el" href="a00251.html#ga54f72266de72a0834da07337b2512c78">glm::gtx::color_cast</a>
102104 </li>
103105 <li>f16mat1
104 : <a class="el" href="a00279.html#gafb6d00d30a02bc379153fbf0859c55fe">glm::gtx::number_precision</a>
106 : <a class="el" href="a00278.html#gafb6d00d30a02bc379153fbf0859c55fe">glm::gtx::number_precision</a>
105107 </li>
106108 <li>f16mat1x1
107 : <a class="el" href="a00279.html#ga228eca02d3e3f24c2eec052ee7f719fa">glm::gtx::number_precision</a>
109 : <a class="el" href="a00278.html#ga228eca02d3e3f24c2eec052ee7f719fa">glm::gtx::number_precision</a>
108110 </li>
109111 <li>f16mat2
110 : <a class="el" href="a00246.html#gae16f41dbae14d92fb946080a0a868de9">glm::gtc::type_precision</a>
112 : <a class="el" href="a00245.html#gae16f41dbae14d92fb946080a0a868de9">glm::gtc::type_precision</a>
111113 </li>
112114 <li>f16mat2x2
113 : <a class="el" href="a00246.html#ga0251c24813cf14f31851e506ccaca8e3">glm::gtc::type_precision</a>
115 : <a class="el" href="a00245.html#ga0251c24813cf14f31851e506ccaca8e3">glm::gtc::type_precision</a>
114116 </li>
115117 <li>f16mat2x3
116 : <a class="el" href="a00246.html#ga75b44fd9278b87d63926bf6cb83a90ce">glm::gtc::type_precision</a>
118 : <a class="el" href="a00245.html#ga75b44fd9278b87d63926bf6cb83a90ce">glm::gtc::type_precision</a>
117119 </li>
118120 <li>f16mat2x4
119 : <a class="el" href="a00246.html#ga5f7b279e5d36687a69f75cf2f95b64c5">glm::gtc::type_precision</a>
121 : <a class="el" href="a00245.html#ga5f7b279e5d36687a69f75cf2f95b64c5">glm::gtc::type_precision</a>
120122 </li>
121123 <li>f16mat3
122 : <a class="el" href="a00246.html#ga3ada76173b353ee8615dcd70dbf7fe7f">glm::gtc::type_precision</a>
124 : <a class="el" href="a00245.html#ga3ada76173b353ee8615dcd70dbf7fe7f">glm::gtc::type_precision</a>
123125 </li>
124126 <li>f16mat3x2
125 : <a class="el" href="a00246.html#gacc55b3fc1bd509b96f5f291b019b0c3a">glm::gtc::type_precision</a>
127 : <a class="el" href="a00245.html#gacc55b3fc1bd509b96f5f291b019b0c3a">glm::gtc::type_precision</a>
126128 </li>
127129 <li>f16mat3x3
128 : <a class="el" href="a00246.html#ga4fe684c085caee45c79f6b8e2a8a498e">glm::gtc::type_precision</a>
130 : <a class="el" href="a00245.html#ga4fe684c085caee45c79f6b8e2a8a498e">glm::gtc::type_precision</a>
129131 </li>
130132 <li>f16mat3x4
131 : <a class="el" href="a00246.html#gaeefd948e1360ef7fe65201482f07e379">glm::gtc::type_precision</a>
133 : <a class="el" href="a00245.html#gaeefd948e1360ef7fe65201482f07e379">glm::gtc::type_precision</a>
132134 </li>
133135 <li>f16mat4
134 : <a class="el" href="a00246.html#gac12c1d9b5e7ef301c81b23cd555c5be9">glm::gtc::type_precision</a>
136 : <a class="el" href="a00245.html#gac12c1d9b5e7ef301c81b23cd555c5be9">glm::gtc::type_precision</a>
135137 </li>
136138 <li>f16mat4x2
137 : <a class="el" href="a00246.html#gad18e575d7bc47e6d696366712724c31a">glm::gtc::type_precision</a>
139 : <a class="el" href="a00245.html#gad18e575d7bc47e6d696366712724c31a">glm::gtc::type_precision</a>
138140 </li>
139141 <li>f16mat4x3
140 : <a class="el" href="a00246.html#ga38e54b583ed34891b3dc3fcd8f194a44">glm::gtc::type_precision</a>
142 : <a class="el" href="a00245.html#ga38e54b583ed34891b3dc3fcd8f194a44">glm::gtc::type_precision</a>
141143 </li>
142144 <li>f16mat4x4
143 : <a class="el" href="a00246.html#ga996f1e97233164dd076fad915b1f4b2a">glm::gtc::type_precision</a>
145 : <a class="el" href="a00245.html#ga996f1e97233164dd076fad915b1f4b2a">glm::gtc::type_precision</a>
144146 </li>
145147 <li>f16quat
146 : <a class="el" href="a00246.html#ga38cc7dfd875fb2a5d07101972bf96bfb">glm::gtc::type_precision</a>
148 : <a class="el" href="a00245.html#ga38cc7dfd875fb2a5d07101972bf96bfb">glm::gtc::type_precision</a>
147149 </li>
148150 <li>f16vec1
149 : <a class="el" href="a00279.html#ga116e2376ef94e8c60bc5c2b66fc5a6db">glm::gtx::number_precision</a>
151 : <a class="el" href="a00278.html#ga116e2376ef94e8c60bc5c2b66fc5a6db">glm::gtx::number_precision</a>
150152 </li>
151153 <li>f16vec2
152 : <a class="el" href="a00246.html#gac29c0992aa0fe2df8f9b6b9edc220822">glm::gtc::type_precision</a>
154 : <a class="el" href="a00245.html#gac29c0992aa0fe2df8f9b6b9edc220822">glm::gtc::type_precision</a>
153155 </li>
154156 <li>f16vec3
155 : <a class="el" href="a00246.html#gaa68a583d3e3b202e1b48c7bc94964c78">glm::gtc::type_precision</a>
157 : <a class="el" href="a00245.html#gaa68a583d3e3b202e1b48c7bc94964c78">glm::gtc::type_precision</a>
156158 </li>
157159 <li>f16vec4
158 : <a class="el" href="a00246.html#gae77767db0311f307255a057fd7358704">glm::gtc::type_precision</a>
160 : <a class="el" href="a00245.html#gae77767db0311f307255a057fd7358704">glm::gtc::type_precision</a>
159161 </li>
160162 <li>f32
161 : <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">glm::gtc::type_precision</a>
163 : <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">glm::gtc::type_precision</a>
162164 </li>
163165 <li>f32_abgr_cast()
164 : <a class="el" href="a00252.html#ga95a33ffb1476bf675e9629301ec180b1">glm::gtx::color_cast</a>
166 : <a class="el" href="a00251.html#ga95a33ffb1476bf675e9629301ec180b1">glm::gtx::color_cast</a>
165167 </li>
166168 <li>f32_argb_cast()
167 : <a class="el" href="a00252.html#gaee24a081d5b7c84ffffdd66d12963c4c">glm::gtx::color_cast</a>
169 : <a class="el" href="a00251.html#gaee24a081d5b7c84ffffdd66d12963c4c">glm::gtx::color_cast</a>
168170 </li>
169171 <li>f32_bgra_cast()
170 : <a class="el" href="a00252.html#gadb328d5e9fff54f6b23dc29e1ce8591e">glm::gtx::color_cast</a>
172 : <a class="el" href="a00251.html#gadb328d5e9fff54f6b23dc29e1ce8591e">glm::gtx::color_cast</a>
171173 </li>
172174 <li>f32_bgrx_cast()
173 : <a class="el" href="a00252.html#ga78abdd7116c8c25e29219b32c4bb937e">glm::gtx::color_cast</a>
175 : <a class="el" href="a00251.html#ga78abdd7116c8c25e29219b32c4bb937e">glm::gtx::color_cast</a>
174176 </li>
175177 <li>f32_channel_cast()
176 : <a class="el" href="a00252.html#ga44006c7374476ad1ee285f28e9c416bb">glm::gtx::color_cast</a>
178 : <a class="el" href="a00251.html#ga44006c7374476ad1ee285f28e9c416bb">glm::gtx::color_cast</a>
177179 </li>
178180 <li>f32_rgba_cast()
179 : <a class="el" href="a00252.html#ga84d5bcccb37c9788bfb0fa00bea4b0fe">glm::gtx::color_cast</a>
181 : <a class="el" href="a00251.html#ga84d5bcccb37c9788bfb0fa00bea4b0fe">glm::gtx::color_cast</a>
180182 </li>
181183 <li>f32_rgbx_cast()
182 : <a class="el" href="a00252.html#ga4ef58cdad0a076db6b9f6f67d918087b">glm::gtx::color_cast</a>
184 : <a class="el" href="a00251.html#ga4ef58cdad0a076db6b9f6f67d918087b">glm::gtx::color_cast</a>
183185 </li>
184186 <li>f32_xbgr_cast()
185 : <a class="el" href="a00252.html#ga46e9df97410a559a816737a331db62dd">glm::gtx::color_cast</a>
187 : <a class="el" href="a00251.html#ga46e9df97410a559a816737a331db62dd">glm::gtx::color_cast</a>
186188 </li>
187189 <li>f32_xrgb_cast()
188 : <a class="el" href="a00252.html#gaf4c3d60e3f865187ab8dc7e1e53b061b">glm::gtx::color_cast</a>
190 : <a class="el" href="a00251.html#gaf4c3d60e3f865187ab8dc7e1e53b061b">glm::gtx::color_cast</a>
189191 </li>
190192 <li>f32mat1
191 : <a class="el" href="a00279.html#ga145ad477a2a3e152855511c3b52469a6">glm::gtx::number_precision</a>
193 : <a class="el" href="a00278.html#ga145ad477a2a3e152855511c3b52469a6">glm::gtx::number_precision</a>
192194 </li>
193195 <li>f32mat1x1
194 : <a class="el" href="a00279.html#gac88c6a4dbfc380aa26e3adbbade36348">glm::gtx::number_precision</a>
196 : <a class="el" href="a00278.html#gac88c6a4dbfc380aa26e3adbbade36348">glm::gtx::number_precision</a>
195197 </li>
196198 <li>f32mat2
197 : <a class="el" href="a00246.html#gaaffc1dddbdfee9006f65dec7490cef35">glm::gtc::type_precision</a>
199 : <a class="el" href="a00245.html#gaaffc1dddbdfee9006f65dec7490cef35">glm::gtc::type_precision</a>
198200 </li>
199201 <li>f32mat2x2
200 : <a class="el" href="a00246.html#ga9b851abbec4f37c06604e5b612b764a3">glm::gtc::type_precision</a>
202 : <a class="el" href="a00245.html#ga9b851abbec4f37c06604e5b612b764a3">glm::gtc::type_precision</a>
201203 </li>
202204 <li>f32mat2x3
203 : <a class="el" href="a00246.html#gabc06add14a487def0be0a88cb7191310">glm::gtc::type_precision</a>
205 : <a class="el" href="a00245.html#gabc06add14a487def0be0a88cb7191310">glm::gtc::type_precision</a>
204206 </li>
205207 <li>f32mat2x4
206 : <a class="el" href="a00246.html#gae7d246881a2b9bbf2933e9aa32c873f9">glm::gtc::type_precision</a>
208 : <a class="el" href="a00245.html#gae7d246881a2b9bbf2933e9aa32c873f9">glm::gtc::type_precision</a>
207209 </li>
208210 <li>f32mat3
209 : <a class="el" href="a00246.html#ga2da36e87f1f319cd99d2870ab3be4799">glm::gtc::type_precision</a>
211 : <a class="el" href="a00245.html#ga2da36e87f1f319cd99d2870ab3be4799">glm::gtc::type_precision</a>
210212 </li>
211213 <li>f32mat3x2
212 : <a class="el" href="a00246.html#ga3c2727aca36e2f45f4eaabc06fe859e5">glm::gtc::type_precision</a>
214 : <a class="el" href="a00245.html#ga3c2727aca36e2f45f4eaabc06fe859e5">glm::gtc::type_precision</a>
213215 </li>
214216 <li>f32mat3x3
215 : <a class="el" href="a00246.html#gad60954ab0fcc5d2fdf2573be7d359920">glm::gtc::type_precision</a>
217 : <a class="el" href="a00245.html#gad60954ab0fcc5d2fdf2573be7d359920">glm::gtc::type_precision</a>
216218 </li>
217219 <li>f32mat3x4
218 : <a class="el" href="a00246.html#ga76466bef28f20c754b6f25da8138033b">glm::gtc::type_precision</a>
220 : <a class="el" href="a00245.html#ga76466bef28f20c754b6f25da8138033b">glm::gtc::type_precision</a>
219221 </li>
220222 <li>f32mat4
221 : <a class="el" href="a00246.html#gae84e6d0a740dbbefeb29c72ca93b9202">glm::gtc::type_precision</a>
223 : <a class="el" href="a00245.html#gae84e6d0a740dbbefeb29c72ca93b9202">glm::gtc::type_precision</a>
222224 </li>
223225 <li>f32mat4x2
224 : <a class="el" href="a00246.html#gaf81550e292ce3d4dd2c22960713188f3">glm::gtc::type_precision</a>
226 : <a class="el" href="a00245.html#gaf81550e292ce3d4dd2c22960713188f3">glm::gtc::type_precision</a>
225227 </li>
226228 <li>f32mat4x3
227 : <a class="el" href="a00246.html#ga0a78d326a35e18803e7ae7a49d2c738c">glm::gtc::type_precision</a>
229 : <a class="el" href="a00245.html#ga0a78d326a35e18803e7ae7a49d2c738c">glm::gtc::type_precision</a>
228230 </li>
229231 <li>f32mat4x4
230 : <a class="el" href="a00246.html#ga390ae17a61ddb8a7702cd92065754633">glm::gtc::type_precision</a>
232 : <a class="el" href="a00245.html#ga390ae17a61ddb8a7702cd92065754633">glm::gtc::type_precision</a>
231233 </li>
232234 <li>f32quat
233 : <a class="el" href="a00246.html#gad073de7365e4b6771de824b18b0ea7a9">glm::gtc::type_precision</a>
235 : <a class="el" href="a00245.html#gad073de7365e4b6771de824b18b0ea7a9">glm::gtc::type_precision</a>
234236 </li>
235237 <li>f32vec1
236 : <a class="el" href="a00279.html#ga07f8d7348eb7ae059a84c118fdfeb943">glm::gtx::number_precision</a>
238 : <a class="el" href="a00278.html#ga07f8d7348eb7ae059a84c118fdfeb943">glm::gtx::number_precision</a>
237239 </li>
238240 <li>f32vec2
239 : <a class="el" href="a00246.html#ga6a1674122ce80c7f3b77ddbc85b4d9f1">glm::gtc::type_precision</a>
241 : <a class="el" href="a00245.html#ga6a1674122ce80c7f3b77ddbc85b4d9f1">glm::gtc::type_precision</a>
240242 </li>
241243 <li>f32vec3
242 : <a class="el" href="a00246.html#ga81353c6a9b282b2b34185306a40040ad">glm::gtc::type_precision</a>
244 : <a class="el" href="a00245.html#ga81353c6a9b282b2b34185306a40040ad">glm::gtc::type_precision</a>
243245 </li>
244246 <li>f32vec4
245 : <a class="el" href="a00246.html#ga58dbce28a4d4b0d72c239cf3069bd28b">glm::gtc::type_precision</a>
247 : <a class="el" href="a00245.html#ga58dbce28a4d4b0d72c239cf3069bd28b">glm::gtc::type_precision</a>
246248 </li>
247249 <li>f64
248 : <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">glm::gtc::type_precision</a>
250 : <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">glm::gtc::type_precision</a>
249251 </li>
250252 <li>f64_abgr_cast()
251 : <a class="el" href="a00252.html#ga42c1cf7dedeaa76629046e8abea5d698">glm::gtx::color_cast</a>
253 : <a class="el" href="a00251.html#ga42c1cf7dedeaa76629046e8abea5d698">glm::gtx::color_cast</a>
252254 </li>
253255 <li>f64_argb_cast()
254 : <a class="el" href="a00252.html#gab917debabb647fd4144b2d4cf3359737">glm::gtx::color_cast</a>
256 : <a class="el" href="a00251.html#gab917debabb647fd4144b2d4cf3359737">glm::gtx::color_cast</a>
255257 </li>
256258 <li>f64_bgra_cast()
257 : <a class="el" href="a00252.html#gac954d9636b86e6a10e19ede77d4f387e">glm::gtx::color_cast</a>
259 : <a class="el" href="a00251.html#gac954d9636b86e6a10e19ede77d4f387e">glm::gtx::color_cast</a>
258260 </li>
259261 <li>f64_bgrx_cast()
260 : <a class="el" href="a00252.html#gabb6a7bcbd66735a86da1dedf7ea3d530">glm::gtx::color_cast</a>
262 : <a class="el" href="a00251.html#gabb6a7bcbd66735a86da1dedf7ea3d530">glm::gtx::color_cast</a>
261263 </li>
262264 <li>f64_channel_cast()
263 : <a class="el" href="a00252.html#gad2b4dbd955443cb15c731e4564f575e0">glm::gtx::color_cast</a>
265 : <a class="el" href="a00251.html#gad2b4dbd955443cb15c731e4564f575e0">glm::gtx::color_cast</a>
264266 </li>
265267 <li>f64_rgba_cast()
266 : <a class="el" href="a00252.html#gae915ae64c81df6ceacb793f9cd6eac40">glm::gtx::color_cast</a>
268 : <a class="el" href="a00251.html#gae915ae64c81df6ceacb793f9cd6eac40">glm::gtx::color_cast</a>
267269 </li>
268270 <li>f64_rgbx_cast()
269 : <a class="el" href="a00252.html#ga16520961abfe743f698b2e80cc0dc33a">glm::gtx::color_cast</a>
271 : <a class="el" href="a00251.html#ga16520961abfe743f698b2e80cc0dc33a">glm::gtx::color_cast</a>
270272 </li>
271273 <li>f64_xbgr_cast()
272 : <a class="el" href="a00252.html#gaa2c0dd06608625935b2d940a8155a6ff">glm::gtx::color_cast</a>
274 : <a class="el" href="a00251.html#gaa2c0dd06608625935b2d940a8155a6ff">glm::gtx::color_cast</a>
273275 </li>
274276 <li>f64_xrgb_cast()
275 : <a class="el" href="a00252.html#ga35d1e8fedde05c4b0bd6b26312fe3677">glm::gtx::color_cast</a>
277 : <a class="el" href="a00251.html#ga35d1e8fedde05c4b0bd6b26312fe3677">glm::gtx::color_cast</a>
276278 </li>
277279 <li>f64mat1
278 : <a class="el" href="a00279.html#ga59bfa589419b5265d01314fcecd33435">glm::gtx::number_precision</a>
280 : <a class="el" href="a00278.html#ga59bfa589419b5265d01314fcecd33435">glm::gtx::number_precision</a>
279281 </li>
280282 <li>f64mat1x1
281 : <a class="el" href="a00279.html#ga448eeb08d0b7d8c43a8b292c981955fd">glm::gtx::number_precision</a>
283 : <a class="el" href="a00278.html#ga448eeb08d0b7d8c43a8b292c981955fd">glm::gtx::number_precision</a>
282284 </li>
283285 <li>f64mat2
284 : <a class="el" href="a00246.html#ga8e6af45d08751da72ddb3c8380028d0b">glm::gtc::type_precision</a>
286 : <a class="el" href="a00245.html#ga8e6af45d08751da72ddb3c8380028d0b">glm::gtc::type_precision</a>
285287 </li>
286288 <li>f64mat2x2
287 : <a class="el" href="a00246.html#ga48dfaa0c23e89839f9fd43ae1d03f5de">glm::gtc::type_precision</a>
289 : <a class="el" href="a00245.html#ga48dfaa0c23e89839f9fd43ae1d03f5de">glm::gtc::type_precision</a>
288290 </li>
289291 <li>f64mat2x3
290 : <a class="el" href="a00246.html#ga0ee61da67c73edc53648db680e0a6d59">glm::gtc::type_precision</a>
292 : <a class="el" href="a00245.html#ga0ee61da67c73edc53648db680e0a6d59">glm::gtc::type_precision</a>
291293 </li>
292294 <li>f64mat2x4
293 : <a class="el" href="a00246.html#ga95a3099cce2b620027a9164324787a14">glm::gtc::type_precision</a>
295 : <a class="el" href="a00245.html#ga95a3099cce2b620027a9164324787a14">glm::gtc::type_precision</a>
294296 </li>
295297 <li>f64mat3
296 : <a class="el" href="a00246.html#gae394301075475e6759f0835a251d497e">glm::gtc::type_precision</a>
298 : <a class="el" href="a00245.html#gae394301075475e6759f0835a251d497e">glm::gtc::type_precision</a>
297299 </li>
298300 <li>f64mat3x2
299 : <a class="el" href="a00246.html#ga24ab90298c753e8da92ba333ef2f7f71">glm::gtc::type_precision</a>
301 : <a class="el" href="a00245.html#ga24ab90298c753e8da92ba333ef2f7f71">glm::gtc::type_precision</a>
300302 </li>
301303 <li>f64mat3x3
302 : <a class="el" href="a00246.html#ga5dfbb37bd5e0a221b1627172e052a168">glm::gtc::type_precision</a>
304 : <a class="el" href="a00245.html#ga5dfbb37bd5e0a221b1627172e052a168">glm::gtc::type_precision</a>
303305 </li>
304306 <li>f64mat3x4
305 : <a class="el" href="a00246.html#gaecc98ee8c67aaca82e817d2cf4028cd7">glm::gtc::type_precision</a>
307 : <a class="el" href="a00245.html#gaecc98ee8c67aaca82e817d2cf4028cd7">glm::gtc::type_precision</a>
306308 </li>
307309 <li>f64mat4
308 : <a class="el" href="a00246.html#ga4c6042a4ef0df9c92b94dd8a30df3f82">glm::gtc::type_precision</a>
310 : <a class="el" href="a00245.html#ga4c6042a4ef0df9c92b94dd8a30df3f82">glm::gtc::type_precision</a>
309311 </li>
310312 <li>f64mat4x2
311 : <a class="el" href="a00246.html#gac99d22a5ada54ab33aad0cd208d20e48">glm::gtc::type_precision</a>
313 : <a class="el" href="a00245.html#gac99d22a5ada54ab33aad0cd208d20e48">glm::gtc::type_precision</a>
312314 </li>
313315 <li>f64mat4x3
314 : <a class="el" href="a00246.html#ga1e10cbf50386189533011ef827204920">glm::gtc::type_precision</a>
316 : <a class="el" href="a00245.html#ga1e10cbf50386189533011ef827204920">glm::gtc::type_precision</a>
315317 </li>
316318 <li>f64mat4x4
317 : <a class="el" href="a00246.html#ga5efb4fb73bf79baf00cda64d318bfdb5">glm::gtc::type_precision</a>
319 : <a class="el" href="a00245.html#ga5efb4fb73bf79baf00cda64d318bfdb5">glm::gtc::type_precision</a>
318320 </li>
319321 <li>f64quat
320 : <a class="el" href="a00246.html#ga38a458ff317f21cf58ceed99dde5daaa">glm::gtc::type_precision</a>
322 : <a class="el" href="a00245.html#ga38a458ff317f21cf58ceed99dde5daaa">glm::gtc::type_precision</a>
321323 </li>
322324 <li>f64vec1
323 : <a class="el" href="a00279.html#gae5987a61b8c03d5c432a9e62f0b3efe1">glm::gtx::number_precision</a>
325 : <a class="el" href="a00278.html#gae5987a61b8c03d5c432a9e62f0b3efe1">glm::gtx::number_precision</a>
324326 </li>
325327 <li>f64vec2
326 : <a class="el" href="a00246.html#ga1de31e7b24d714613b83fb704b8b1fd1">glm::gtc::type_precision</a>
328 : <a class="el" href="a00245.html#ga1de31e7b24d714613b83fb704b8b1fd1">glm::gtc::type_precision</a>
327329 </li>
328330 <li>f64vec3
329 : <a class="el" href="a00246.html#ga2a4b3d9e62dc8c9b970e91c38bb56997">glm::gtc::type_precision</a>
331 : <a class="el" href="a00245.html#ga2a4b3d9e62dc8c9b970e91c38bb56997">glm::gtc::type_precision</a>
330332 </li>
331333 <li>f64vec4
332 : <a class="el" href="a00246.html#ga66999872051fdf1934199af093eedece">glm::gtc::type_precision</a>
333 </li>
334 <li>faceforward()
335 : <a class="el" href="a00238.html#gad591e8f7b1a5e311d3439dda2bb82aea">glm::core::function::geometric</a>
334 : <a class="el" href="a00245.html#ga66999872051fdf1934199af093eedece">glm::gtc::type_precision</a>
336335 </li>
337336 <li>factorial()
338 : <a class="el" href="a00267.html#gab45d1385cbb477a5684f80b0e24807e4">glm::gtx::integer</a>
337 : <a class="el" href="a00266.html#gab45d1385cbb477a5684f80b0e24807e4">glm::gtx::integer</a>
339338 </li>
340339 <li>fastAcos()
341 : <a class="el" href="a00263.html#ga4a704d388edfa3912257b69184d730ba">glm::gtx::fast_trigonometry</a>
340 : <a class="el" href="a00262.html#ga4a704d388edfa3912257b69184d730ba">glm::gtx::fast_trigonometry</a>
342341 </li>
343342 <li>fastAsin()
344 : <a class="el" href="a00263.html#ga73073afdd18dce08727f232c892c5dcd">glm::gtx::fast_trigonometry</a>
343 : <a class="el" href="a00262.html#ga73073afdd18dce08727f232c892c5dcd">glm::gtx::fast_trigonometry</a>
345344 </li>
346345 <li>fastAtan()
347 : <a class="el" href="a00263.html#gafae71c7958e50cf435f9e73ee4e579f7">glm::gtx::fast_trigonometry</a>
346 : <a class="el" href="a00262.html#gafae71c7958e50cf435f9e73ee4e579f7">glm::gtx::fast_trigonometry</a>
348347 </li>
349348 <li>fastCos()
350 : <a class="el" href="a00263.html#ga53a9033f33561a2b7133326d721a05cc">glm::gtx::fast_trigonometry</a>
349 : <a class="el" href="a00262.html#ga53a9033f33561a2b7133326d721a05cc">glm::gtx::fast_trigonometry</a>
351350 </li>
352351 <li>fastDistance()
353 : <a class="el" href="a00262.html#ga68162c92de0e592216be943345169da7">glm::gtx::fast_square_root</a>
352 : <a class="el" href="a00261.html#ga68162c92de0e592216be943345169da7">glm::gtx::fast_square_root</a>
354353 </li>
355354 <li>fastExp()
356 : <a class="el" href="a00261.html#ga10df16993c31fda159ebe8fc0d95167f">glm::gtx::fast_exponential</a>
355 : <a class="el" href="a00260.html#ga10df16993c31fda159ebe8fc0d95167f">glm::gtx::fast_exponential</a>
357356 </li>
358357 <li>fastExp2()
359 : <a class="el" href="a00261.html#ga12669721e13e183233ed5c6025dce5e4">glm::gtx::fast_exponential</a>
358 : <a class="el" href="a00260.html#ga12669721e13e183233ed5c6025dce5e4">glm::gtx::fast_exponential</a>
360359 </li>
361360 <li>fastInversesqrt()
362 : <a class="el" href="a00292.html#gab299477526abc9646263950bfbe32b3f">glm::gtx::simd_vec4</a>
361 : <a class="el" href="a00291.html#gab299477526abc9646263950bfbe32b3f">glm::gtx::simd_vec4</a>
363362 </li>
364363 <li>fastInverseSqrt()
365 : <a class="el" href="a00262.html#ga1858a37f06c79e17f287bbaa8f75b08e">glm::gtx::fast_square_root</a>
364 : <a class="el" href="a00261.html#ga1858a37f06c79e17f287bbaa8f75b08e">glm::gtx::fast_square_root</a>
366365 </li>
367366 <li>fastLength()
368 : <a class="el" href="a00262.html#gada4490e940c0c4e08beab6db793f8934">glm::gtx::fast_square_root</a>
369 , <a class="el" href="a00292.html#ga0d4469acfe98c8b2eab8696bf25a3dde">glm::gtx::simd_vec4</a>
367 : <a class="el" href="a00261.html#gada4490e940c0c4e08beab6db793f8934">glm::gtx::fast_square_root</a>
368 , <a class="el" href="a00291.html#ga0d4469acfe98c8b2eab8696bf25a3dde">glm::gtx::simd_vec4</a>
370369 </li>
371370 <li>fastLength4()
372 : <a class="el" href="a00292.html#ga1c85830900d5d3f29902b12d46c60dd3">glm::gtx::simd_vec4</a>
371 : <a class="el" href="a00291.html#ga1c85830900d5d3f29902b12d46c60dd3">glm::gtx::simd_vec4</a>
373372 </li>
374373 <li>fastLn()
375 : <a class="el" href="a00261.html#ga23893e648b441fb48f8c0ab504cf8aeb">glm::gtx::fast_exponential</a>
374 : <a class="el" href="a00260.html#ga23893e648b441fb48f8c0ab504cf8aeb">glm::gtx::fast_exponential</a>
376375 </li>
377376 <li>fastLog()
378 : <a class="el" href="a00261.html#gaf0c2539c6843c1e0e514445bd4c4a72b">glm::gtx::fast_exponential</a>
377 : <a class="el" href="a00260.html#gaf0c2539c6843c1e0e514445bd4c4a72b">glm::gtx::fast_exponential</a>
379378 </li>
380379 <li>fastLog2()
381 : <a class="el" href="a00261.html#gaef27f6ec081ab71024019faa178d4506">glm::gtx::fast_exponential</a>
380 : <a class="el" href="a00260.html#gaef27f6ec081ab71024019faa178d4506">glm::gtx::fast_exponential</a>
382381 </li>
383382 <li>fastMix()
384 : <a class="el" href="a00286.html#ga65d5734ce29049d334992f6a59e27e58">glm::gtx::quaternion</a>
383 : <a class="el" href="a00285.html#ga65d5734ce29049d334992f6a59e27e58">glm::gtx::quaternion</a>
385384 </li>
386385 <li>fastNormalize()
387 : <a class="el" href="a00292.html#ga58eeeead0d2b381f7d461dac26381125">glm::gtx::simd_vec4</a>
388 , <a class="el" href="a00262.html#ga7e785d24d7bbac63f273baf9af1160da">glm::gtx::fast_square_root</a>
386 : <a class="el" href="a00261.html#ga7e785d24d7bbac63f273baf9af1160da">glm::gtx::fast_square_root</a>
387 , <a class="el" href="a00291.html#ga58eeeead0d2b381f7d461dac26381125">glm::gtx::simd_vec4</a>
389388 </li>
390389 <li>fastNormalizeDot()
391 : <a class="el" href="a00278.html#ga4828b79df21f008a71824a0eecf6e4d7">glm::gtx::normalize_dot</a>
390 : <a class="el" href="a00277.html#ga4828b79df21f008a71824a0eecf6e4d7">glm::gtx::normalize_dot</a>
392391 </li>
393392 <li>fastPow()
394 : <a class="el" href="a00261.html#gaf19f293cf66712dc015880ef7645ec1e">glm::gtx::fast_exponential</a>
393 : <a class="el" href="a00260.html#gaaf77117ea021fa1ece715d0b94dd8a2b">glm::gtx::fast_exponential</a>
395394 </li>
396395 <li>fastSin()
397 : <a class="el" href="a00263.html#ga0844ea62ea81d215b56449f1b3b4968a">glm::gtx::fast_trigonometry</a>
396 : <a class="el" href="a00262.html#ga0844ea62ea81d215b56449f1b3b4968a">glm::gtx::fast_trigonometry</a>
398397 </li>
399398 <li>fastSqrt()
400 : <a class="el" href="a00292.html#ga56465ed17cafbff1e225f82eeb7184e5">glm::gtx::simd_vec4</a>
401 , <a class="el" href="a00262.html#gaced2a1b7a161290e4d401967607d56db">glm::gtx::fast_square_root</a>
399 : <a class="el" href="a00261.html#gaced2a1b7a161290e4d401967607d56db">glm::gtx::fast_square_root</a>
400 , <a class="el" href="a00291.html#ga56465ed17cafbff1e225f82eeb7184e5">glm::gtx::simd_vec4</a>
402401 </li>
403402 <li>fastTan()
404 : <a class="el" href="a00263.html#ga311fc8d0d067bf3d229566aae8f81a1a">glm::gtx::fast_trigonometry</a>
403 : <a class="el" href="a00262.html#ga311fc8d0d067bf3d229566aae8f81a1a">glm::gtx::fast_trigonometry</a>
405404 </li>
406405 <li>findLSB()
407 : <a class="el" href="a00238.html#ga9890456d065156a3c3c9786b14638486">glm::core::function::integer</a>
406 : <a class="el" href="a00237.html#ga9890456d065156a3c3c9786b14638486">glm::core::function::integer</a>
408407 </li>
409408 <li>findMSB()
410 : <a class="el" href="a00238.html#ga0f50b6fe121f170c3725a8abb53ff077">glm::core::function::integer</a>
409 : <a class="el" href="a00237.html#ga0f50b6fe121f170c3725a8abb53ff077">glm::core::function::integer</a>
411410 </li>
412411 <li>float1
413 : <a class="el" href="a00255.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">glm::gtx::compatibility</a>
412 : <a class="el" href="a00254.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">glm::gtx::compatibility</a>
414413 </li>
415414 <li>float16
416 : <a class="el" href="a00246.html#ga19287ee46bd37d1459731d7191bc2f66">glm::gtc::type_precision</a>
415 : <a class="el" href="a00245.html#ga19287ee46bd37d1459731d7191bc2f66">glm::gtc::type_precision</a>
417416 </li>
418417 <li>float1x1
419 : <a class="el" href="a00255.html#ga73720b8dc4620835b17f74d428f98c0c">glm::gtx::compatibility</a>
418 : <a class="el" href="a00254.html#ga73720b8dc4620835b17f74d428f98c0c">glm::gtx::compatibility</a>
420419 </li>
421420 <li>float2
422 : <a class="el" href="a00255.html#ga36aed7f41ff3a1be99f215754f43376f">glm::gtx::compatibility</a>
421 : <a class="el" href="a00254.html#ga36aed7f41ff3a1be99f215754f43376f">glm::gtx::compatibility</a>
423422 </li>
424423 <li>float2x2
425 : <a class="el" href="a00255.html#gaf8d19b6f81f5cb8151f37c66c15691fa">glm::gtx::compatibility</a>
424 : <a class="el" href="a00254.html#gaf8d19b6f81f5cb8151f37c66c15691fa">glm::gtx::compatibility</a>
426425 </li>
427426 <li>float2x3
428 : <a class="el" href="a00255.html#gaafc2b478b36de8b9da6fe1e0f88f68d4">glm::gtx::compatibility</a>
427 : <a class="el" href="a00254.html#gaafc2b478b36de8b9da6fe1e0f88f68d4">glm::gtx::compatibility</a>
429428 </li>
430429 <li>float2x4
431 : <a class="el" href="a00255.html#ga77d14ba22d90b0af72a1572ee1bd9458">glm::gtx::compatibility</a>
430 : <a class="el" href="a00254.html#ga77d14ba22d90b0af72a1572ee1bd9458">glm::gtx::compatibility</a>
432431 </li>
433432 <li>float3
434 : <a class="el" href="a00255.html#ga1fe9cc8caced9aa000c36ca3c0a046ab">glm::gtx::compatibility</a>
433 : <a class="el" href="a00254.html#ga1fe9cc8caced9aa000c36ca3c0a046ab">glm::gtx::compatibility</a>
435434 </li>
436435 <li>float32
437 : <a class="el" href="a00246.html#gad3c127f8bf8d7d4e738037c257abb5b1">glm::gtc::type_precision</a>
436 : <a class="el" href="a00245.html#gad3c127f8bf8d7d4e738037c257abb5b1">glm::gtc::type_precision</a>
438437 </li>
439438 <li>float3x2
440 : <a class="el" href="a00255.html#ga46c62307ff5e8418d27be225c1187e25">glm::gtx::compatibility</a>
439 : <a class="el" href="a00254.html#ga46c62307ff5e8418d27be225c1187e25">glm::gtx::compatibility</a>
441440 </li>
442441 <li>float3x3
443 : <a class="el" href="a00255.html#ga5e6e08a42341c82268a4a94a02f7b016">glm::gtx::compatibility</a>
442 : <a class="el" href="a00254.html#ga5e6e08a42341c82268a4a94a02f7b016">glm::gtx::compatibility</a>
444443 </li>
445444 <li>float3x4
446 : <a class="el" href="a00255.html#ga14a4142cbea2f8ade68c6c4ca0bca2e6">glm::gtx::compatibility</a>
445 : <a class="el" href="a00254.html#ga14a4142cbea2f8ade68c6c4ca0bca2e6">glm::gtx::compatibility</a>
447446 </li>
448447 <li>float4
449 : <a class="el" href="a00255.html#ga1b1ca9850faf4c3ffddf95093a17b49c">glm::gtx::compatibility</a>
448 : <a class="el" href="a00254.html#ga1b1ca9850faf4c3ffddf95093a17b49c">glm::gtx::compatibility</a>
450449 </li>
451450 <li>float4x2
452 : <a class="el" href="a00255.html#ga7d53a0bdb8ce3ea6f26483d03a93309c">glm::gtx::compatibility</a>
451 : <a class="el" href="a00254.html#ga7d53a0bdb8ce3ea6f26483d03a93309c">glm::gtx::compatibility</a>
453452 </li>
454453 <li>float4x3
455 : <a class="el" href="a00255.html#ga90ec9566c9961638c70e2ba2e3fd94fc">glm::gtx::compatibility</a>
454 : <a class="el" href="a00254.html#ga90ec9566c9961638c70e2ba2e3fd94fc">glm::gtx::compatibility</a>
456455 </li>
457456 <li>float4x4
458 : <a class="el" href="a00255.html#ga1ab661a1b315e963ce81a7ebfb110aa7">glm::gtx::compatibility</a>
457 : <a class="el" href="a00254.html#ga1ab661a1b315e963ce81a7ebfb110aa7">glm::gtx::compatibility</a>
459458 </li>
460459 <li>float64
461 : <a class="el" href="a00246.html#gab5596d48586414c91ccb270962dc14d3">glm::gtc::type_precision</a>
460 : <a class="el" href="a00245.html#gab5596d48586414c91ccb270962dc14d3">glm::gtc::type_precision</a>
462461 </li>
463462 <li>float_distance()
464463 : <a class="el" href="a00307.html#gaf5f70f67212c2ceca27d5ac965605808">glm::gtx::ulp</a>
465464 </li>
466465 <li>floatBitsToInt()
467 : <a class="el" href="a00238.html#ga2508259e7d3093603f4c6d3c132a704c">glm::core::function::common</a>
466 : <a class="el" href="a00145.html#ac0c97c144df6712b064c7a1b9c68ff49">glm</a>
468467 </li>
469468 <li>floatBitsToUint()
470 : <a class="el" href="a00238.html#ga17f59f3a2dd5b93e32ff1057be188681">glm::core::function::common</a>
469 : <a class="el" href="a00145.html#afdf3bec43bb2852e27175ee61a1df7c0">glm</a>
471470 </li>
472471 <li>floor()
473 : <a class="el" href="a00292.html#gab7b1e6c9349aec87e1d3346e867588d6">glm::gtx::simd_vec4</a>
474 , <a class="el" href="a00238.html#ga4206a98e812c2bd4801e4d299c83f6c7">glm::core::function::common</a>
472 : <a class="el" href="a00291.html#gab7b1e6c9349aec87e1d3346e867588d6">glm::gtx::simd_vec4</a>
473 , <a class="el" href="a00145.html#aa59c036229bc74f96c5c014a179eac7c">glm</a>
475474 </li>
476475 <li>fma()
477 : <a class="el" href="a00292.html#ga4b9f36f4524482b43324f4631944569d">glm::gtx::simd_vec4</a>
478 , <a class="el" href="a00238.html#gad0278428ad872e7be378c3b2ad66b0ba">glm::core::function::common</a>
476 : <a class="el" href="a00145.html#abfe96f2b10113d099cc3758b604fa339">glm</a>
477 , <a class="el" href="a00291.html#ga4b9f36f4524482b43324f4631944569d">glm::gtx::simd_vec4</a>
479478 </li>
480479 <li>fmat2
481 : <a class="el" href="a00246.html#gaee87d6e282960e7c75bfb1371def1fc6">glm::gtc::type_precision</a>
480 : <a class="el" href="a00245.html#gaee87d6e282960e7c75bfb1371def1fc6">glm::gtc::type_precision</a>
482481 </li>
483482 <li>fmat2x2
484 : <a class="el" href="a00246.html#ga1c9d98f605e9194e6febfc8c390f21e2">glm::gtc::type_precision</a>
483 : <a class="el" href="a00245.html#ga1c9d98f605e9194e6febfc8c390f21e2">glm::gtc::type_precision</a>
485484 </li>
486485 <li>fmat2x3
487 : <a class="el" href="a00246.html#ga5a49e7e42cb7826309dfe5914ff7adb2">glm::gtc::type_precision</a>
486 : <a class="el" href="a00245.html#ga5a49e7e42cb7826309dfe5914ff7adb2">glm::gtc::type_precision</a>
488487 </li>
489488 <li>fmat2x4
490 : <a class="el" href="a00246.html#ga17af021ba84b81a88cd8ff5415737082">glm::gtc::type_precision</a>
489 : <a class="el" href="a00245.html#ga17af021ba84b81a88cd8ff5415737082">glm::gtc::type_precision</a>
491490 </li>
492491 <li>fmat3
493 : <a class="el" href="a00246.html#ga885ab2670ad608f174889cc5779e814c">glm::gtc::type_precision</a>
492 : <a class="el" href="a00245.html#ga885ab2670ad608f174889cc5779e814c">glm::gtc::type_precision</a>
494493 </li>
495494 <li>fmat3x2
496 : <a class="el" href="a00246.html#gabb5363b848026b7819e8df12f9eba807">glm::gtc::type_precision</a>
495 : <a class="el" href="a00245.html#gabb5363b848026b7819e8df12f9eba807">glm::gtc::type_precision</a>
497496 </li>
498497 <li>fmat3x3
499 : <a class="el" href="a00246.html#gae3cec4e7ffbfce5fc693f70693b67bdd">glm::gtc::type_precision</a>
498 : <a class="el" href="a00245.html#gae3cec4e7ffbfce5fc693f70693b67bdd">glm::gtc::type_precision</a>
500499 </li>
501500 <li>fmat3x4
502 : <a class="el" href="a00246.html#ga8cc18a8db872ac321446a0ec76d0f4c9">glm::gtc::type_precision</a>
501 : <a class="el" href="a00245.html#ga8cc18a8db872ac321446a0ec76d0f4c9">glm::gtc::type_precision</a>
503502 </li>
504503 <li>fmat4
505 : <a class="el" href="a00246.html#ga17a80f33494617743e6156e125c2333d">glm::gtc::type_precision</a>
504 : <a class="el" href="a00245.html#ga17a80f33494617743e6156e125c2333d">glm::gtc::type_precision</a>
506505 </li>
507506 <li>fmat4x2
508 : <a class="el" href="a00246.html#ga730c05a1fd676cedcecd74595866bb35">glm::gtc::type_precision</a>
507 : <a class="el" href="a00245.html#ga730c05a1fd676cedcecd74595866bb35">glm::gtc::type_precision</a>
509508 </li>
510509 <li>fmat4x3
511 : <a class="el" href="a00246.html#gac9d68d8ad27aceea1814b96b1e8fc92e">glm::gtc::type_precision</a>
510 : <a class="el" href="a00245.html#gac9d68d8ad27aceea1814b96b1e8fc92e">glm::gtc::type_precision</a>
512511 </li>
513512 <li>fmat4x4
514 : <a class="el" href="a00246.html#ga5a1741d5e03b4a99ad1728a8e8c65a38">glm::gtc::type_precision</a>
513 : <a class="el" href="a00245.html#ga5a1741d5e03b4a99ad1728a8e8c65a38">glm::gtc::type_precision</a>
515514 </li>
516515 <li>fquat
517 : <a class="el" href="a00245.html#gaae07c293efbe1c530ff18044a15fe662">glm::gtc::quaternion</a>
516 : <a class="el" href="a00244.html#gaae07c293efbe1c530ff18044a15fe662">glm::gtc::quaternion</a>
518517 </li>
519518 <li>fract()
520 : <a class="el" href="a00292.html#ga0a98f9d76fee0ca46c1f97861e3e366c">glm::gtx::simd_vec4</a>
521 , <a class="el" href="a00238.html#ga67dda5fd839bc489827be9e225847a45">glm::core::function::common</a>
519 : <a class="el" href="a00291.html#ga0a98f9d76fee0ca46c1f97861e3e366c">glm::gtx::simd_vec4</a>
520 , <a class="el" href="a00145.html#a2ed2478da306c5ccc99ddae4f47e5d70">glm</a>
522521 </li>
523522 <li>frexp()
524 : <a class="el" href="a00238.html#ga51135c18fa3b70b67478e546258caa64">glm::core::function::common</a>
523 : <a class="el" href="a00145.html#ae38cef3c84f2cd4cac8e19ffe4be9981">glm</a>
525524 </li>
526525 <li>frustum()
527 : <a class="el" href="a00244.html#ga517623bf6344a9e276b877366143116a">glm::gtc::matrix_transform</a>
526 : <a class="el" href="a00243.html#ga517623bf6344a9e276b877366143116a">glm::gtc::matrix_transform</a>
528527 </li>
529528 <li>fvec2
530 : <a class="el" href="a00246.html#gaeb3201411f8933fae30fe36b3fb1db90">glm::gtc::type_precision</a>
529 : <a class="el" href="a00245.html#gaeb3201411f8933fae30fe36b3fb1db90">glm::gtc::type_precision</a>
531530 </li>
532531 <li>fvec3
533 : <a class="el" href="a00246.html#ga36d8bc27da6e04285ab3b11d0af061b0">glm::gtc::type_precision</a>
532 : <a class="el" href="a00245.html#ga36d8bc27da6e04285ab3b11d0af061b0">glm::gtc::type_precision</a>
534533 </li>
535534 <li>fvec4
536 : <a class="el" href="a00246.html#gac8e4776e86d01ed43b2dce32db2c72ba">glm::gtc::type_precision</a>
535 : <a class="el" href="a00245.html#gac8e4776e86d01ed43b2dce32db2c72ba">glm::gtc::type_precision</a>
537536 </li>
538537 </ul>
539538 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
7375 <li>gaussRand1()
74 : <a class="el" href="a00287.html#gaea7fcb106b788c816db85cd1e3be6188">glm::gtx::random</a>
76 : <a class="el" href="a00286.html#gaea7fcb106b788c816db85cd1e3be6188">glm::gtx::random</a>
7577 </li>
7678 <li>gaussRand2()
77 : <a class="el" href="a00287.html#gabe761c9b9cc6999fc91acf79a7007ddb">glm::gtx::random</a>
79 : <a class="el" href="a00286.html#gabe761c9b9cc6999fc91acf79a7007ddb">glm::gtx::random</a>
7880 </li>
7981 <li>gaussRand3()
80 : <a class="el" href="a00287.html#gadb3cbe26ec31e593af84c46b1a63a073">glm::gtx::random</a>
82 : <a class="el" href="a00286.html#gadb3cbe26ec31e593af84c46b1a63a073">glm::gtx::random</a>
8183 </li>
8284 <li>gaussRand4()
83 : <a class="el" href="a00287.html#ga8daff7d57575e5ab4a44a46f52ed72fe">glm::gtx::random</a>
85 : <a class="el" href="a00286.html#ga8daff7d57575e5ab4a44a46f52ed72fe">glm::gtx::random</a>
8486 </li>
8587 <li>greaterThan()
86 : <a class="el" href="a00238.html#gaef35061292f337c0d788f43a3b1a26c0">glm::core::function::vector_relational</a>
88 : <a class="el" href="a00145.html#acb6f64ca9f1649d4bc4dfa301f59020d">glm</a>
8789 </li>
8890 <li>greaterThanEqual()
89 : <a class="el" href="a00238.html#ga39aa8024d619850c81a685a4905177df">glm::core::function::vector_relational</a>
91 : <a class="el" href="a00145.html#a5075e99290081e0bb74ff6c18035735f">glm</a>
9092 </li>
9193 </ul>
9294 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
7375 <li>half
74 : <a class="el" href="a00240.html#ga256188598ace9135605a8ac8fc158654">glm::gtc::half_float</a>
76 : <a class="el" href="a00239.html#ga256188598ace9135605a8ac8fc158654">glm::gtc::half_float</a>
7577 </li>
7678 <li>half1
77 : <a class="el" href="a00255.html#gac92f2c2693fb34285be07e772fcf0a53">glm::gtx::compatibility</a>
79 : <a class="el" href="a00254.html#gac92f2c2693fb34285be07e772fcf0a53">glm::gtx::compatibility</a>
7880 </li>
7981 <li>half1x1
80 : <a class="el" href="a00255.html#ga9117ea66da761db845b445c4e7e1c745">glm::gtx::compatibility</a>
82 : <a class="el" href="a00254.html#ga9117ea66da761db845b445c4e7e1c745">glm::gtx::compatibility</a>
8183 </li>
8284 <li>half2
83 : <a class="el" href="a00255.html#gaf768e8598259bc50119150ebea01fdbb">glm::gtx::compatibility</a>
85 : <a class="el" href="a00254.html#gaf768e8598259bc50119150ebea01fdbb">glm::gtx::compatibility</a>
8486 </li>
8587 <li>half2x2
86 : <a class="el" href="a00255.html#gae04667191899a90d334e7585f341c523">glm::gtx::compatibility</a>
88 : <a class="el" href="a00254.html#gae04667191899a90d334e7585f341c523">glm::gtx::compatibility</a>
8789 </li>
8890 <li>half2x3
89 : <a class="el" href="a00255.html#ga44334615025353ffd16946ee83c96ebe">glm::gtx::compatibility</a>
91 : <a class="el" href="a00254.html#ga44334615025353ffd16946ee83c96ebe">glm::gtx::compatibility</a>
9092 </li>
9193 <li>half2x4
92 : <a class="el" href="a00255.html#gae0b63041228648f9223a421429c5a243">glm::gtx::compatibility</a>
94 : <a class="el" href="a00254.html#gae0b63041228648f9223a421429c5a243">glm::gtx::compatibility</a>
9395 </li>
9496 <li>half3
95 : <a class="el" href="a00255.html#gadb391aad07ab3f0a00d53a0a322fe52e">glm::gtx::compatibility</a>
97 : <a class="el" href="a00254.html#gadb391aad07ab3f0a00d53a0a322fe52e">glm::gtx::compatibility</a>
9698 </li>
9799 <li>half3x2
98 : <a class="el" href="a00255.html#gabb94c5e2a5c5091b7c65e132a02b2e55">glm::gtx::compatibility</a>
100 : <a class="el" href="a00254.html#gabb94c5e2a5c5091b7c65e132a02b2e55">glm::gtx::compatibility</a>
99101 </li>
100102 <li>half3x3
101 : <a class="el" href="a00255.html#ga2a4cf36c30efcd3358d617840ed8a3f2">glm::gtx::compatibility</a>
103 : <a class="el" href="a00254.html#ga2a4cf36c30efcd3358d617840ed8a3f2">glm::gtx::compatibility</a>
102104 </li>
103105 <li>half3x4
104 : <a class="el" href="a00255.html#gadecf6b2be379805949e6e74a24e2bdbd">glm::gtx::compatibility</a>
106 : <a class="el" href="a00254.html#gadecf6b2be379805949e6e74a24e2bdbd">glm::gtx::compatibility</a>
105107 </li>
106108 <li>half4
107 : <a class="el" href="a00255.html#gaa4906c782e978976545039046ed3d629">glm::gtx::compatibility</a>
109 : <a class="el" href="a00254.html#gaa4906c782e978976545039046ed3d629">glm::gtx::compatibility</a>
108110 </li>
109111 <li>half4x2
110 : <a class="el" href="a00255.html#ga34877ae24fd35deb8001cc358366e47f">glm::gtx::compatibility</a>
112 : <a class="el" href="a00254.html#ga34877ae24fd35deb8001cc358366e47f">glm::gtx::compatibility</a>
111113 </li>
112114 <li>half4x3
113 : <a class="el" href="a00255.html#gaae1ce7ae382a802a08180c21bfb2d863">glm::gtx::compatibility</a>
115 : <a class="el" href="a00254.html#gaae1ce7ae382a802a08180c21bfb2d863">glm::gtx::compatibility</a>
114116 </li>
115117 <li>half4x4
116 : <a class="el" href="a00255.html#gad5c6e0603afbcd8ccf217fe2dca50cc1">glm::gtx::compatibility</a>
118 : <a class="el" href="a00254.html#gad5c6e0603afbcd8ccf217fe2dca50cc1">glm::gtx::compatibility</a>
117119 </li>
118120 <li>hermite()
119 : <a class="el" href="a00293.html#ga3ea772a4bdf8b3514ef12b47944c844c">glm::gtx::spline</a>
121 : <a class="el" href="a00292.html#ga3ea772a4bdf8b3514ef12b47944c844c">glm::gtx::spline</a>
120122 </li>
121123 <li>higherMultiple()
122 : <a class="el" href="a00275.html#ga417f3ba2d04c2fa9ffdeca47b0ad0443">glm::gtx::multiple</a>
124 : <a class="el" href="a00274.html#ga417f3ba2d04c2fa9ffdeca47b0ad0443">glm::gtx::multiple</a>
123125 </li>
124126 <li>highestBit()
125 : <a class="el" href="a00250.html#ga55e17a1e9347ca10d206f62ffe294608">glm::gtx::bit</a>
127 : <a class="el" href="a00249.html#ga55e17a1e9347ca10d206f62ffe294608">glm::gtx::bit</a>
126128 </li>
127129 <li>highestBitValue()
128 : <a class="el" href="a00250.html#ga2e2ba1398ef471e40e6a07cbab9a75fe">glm::gtx::bit</a>
130 : <a class="el" href="a00249.html#ga2e2ba1398ef471e40e6a07cbab9a75fe">glm::gtx::bit</a>
129131 </li>
130132 <li>highp_float
131 : <a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">glm::core::type::precision</a>
133 : <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">glm::core::type::precision</a>
132134 </li>
133135 <li>highp_imat2
134 : <a class="el" href="a00242.html#ga16e9ac01daa94cd41baca57b1720c4d2">glm::gtc::matrix_integer</a>
136 : <a class="el" href="a00241.html#ga16e9ac01daa94cd41baca57b1720c4d2">glm::gtc::matrix_integer</a>
135137 </li>
136138 <li>highp_imat2x2
137 : <a class="el" href="a00242.html#ga503734c9f848968b3ede74017d3927e0">glm::gtc::matrix_integer</a>
139 : <a class="el" href="a00241.html#ga503734c9f848968b3ede74017d3927e0">glm::gtc::matrix_integer</a>
138140 </li>
139141 <li>highp_imat2x3
140 : <a class="el" href="a00242.html#gae4ac618eb06b7288e4a14633971320ed">glm::gtc::matrix_integer</a>
142 : <a class="el" href="a00241.html#gae4ac618eb06b7288e4a14633971320ed">glm::gtc::matrix_integer</a>
141143 </li>
142144 <li>highp_imat2x4
143 : <a class="el" href="a00242.html#ga73ca75871a9a43972be9bb4b295b1e3f">glm::gtc::matrix_integer</a>
145 : <a class="el" href="a00241.html#ga73ca75871a9a43972be9bb4b295b1e3f">glm::gtc::matrix_integer</a>
144146 </li>
145147 <li>highp_imat3
146 : <a class="el" href="a00242.html#ga1aab5488573c134db709107b0aa45060">glm::gtc::matrix_integer</a>
148 : <a class="el" href="a00241.html#ga1aab5488573c134db709107b0aa45060">glm::gtc::matrix_integer</a>
147149 </li>
148150 <li>highp_imat3x2
149 : <a class="el" href="a00242.html#ga8e2e34fc5f030a888cff9b9fdf169c01">glm::gtc::matrix_integer</a>
151 : <a class="el" href="a00241.html#ga8e2e34fc5f030a888cff9b9fdf169c01">glm::gtc::matrix_integer</a>
150152 </li>
151153 <li>highp_imat3x3
152 : <a class="el" href="a00242.html#ga20a5eb2dc99580c5eee0d1287a81dc71">glm::gtc::matrix_integer</a>
154 : <a class="el" href="a00241.html#ga20a5eb2dc99580c5eee0d1287a81dc71">glm::gtc::matrix_integer</a>
153155 </li>
154156 <li>highp_imat3x4
155 : <a class="el" href="a00242.html#ga52c1fd71b37cd7534b3ba05cfddf5641">glm::gtc::matrix_integer</a>
157 : <a class="el" href="a00241.html#ga52c1fd71b37cd7534b3ba05cfddf5641">glm::gtc::matrix_integer</a>
156158 </li>
157159 <li>highp_imat4
158 : <a class="el" href="a00242.html#ga001cb3722aece6e478d1c013cd561248">glm::gtc::matrix_integer</a>
160 : <a class="el" href="a00241.html#ga001cb3722aece6e478d1c013cd561248">glm::gtc::matrix_integer</a>
159161 </li>
160162 <li>highp_imat4x2
161 : <a class="el" href="a00242.html#ga8d5483e43eaf948445dad0316adfd065">glm::gtc::matrix_integer</a>
163 : <a class="el" href="a00241.html#ga8d5483e43eaf948445dad0316adfd065">glm::gtc::matrix_integer</a>
162164 </li>
163165 <li>highp_imat4x3
164 : <a class="el" href="a00242.html#ga39096445d642ca381cec94a9dcefa49e">glm::gtc::matrix_integer</a>
166 : <a class="el" href="a00241.html#ga39096445d642ca381cec94a9dcefa49e">glm::gtc::matrix_integer</a>
165167 </li>
166168 <li>highp_imat4x4
167 : <a class="el" href="a00242.html#ga1956c46bca65b5b00c01250e0d5f1de6">glm::gtc::matrix_integer</a>
169 : <a class="el" href="a00241.html#ga1956c46bca65b5b00c01250e0d5f1de6">glm::gtc::matrix_integer</a>
168170 </li>
169171 <li>highp_int
170 : <a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">glm::core::type::precision</a>
172 : <a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">glm::core::type::precision</a>
173 </li>
174 <li>highp_ivec1
175 : <a class="el" href="a00224.html#a7b3964cbe14cee973bc856b81708fb36">glm::gtx::vector1::precision</a>
171176 </li>
172177 <li>highp_ivec2
173 : <a class="el" href="a00236.html#ga306173e656477f59bf0164a623780236">glm::core::type::precision</a>
178 : <a class="el" href="a00235.html#ga306173e656477f59bf0164a623780236">glm::core::type::precision</a>
174179 </li>
175180 <li>highp_ivec3
176 : <a class="el" href="a00236.html#gaccca78e0907313665d47af163c17c5bb">glm::core::type::precision</a>
181 : <a class="el" href="a00235.html#gaccca78e0907313665d47af163c17c5bb">glm::core::type::precision</a>
177182 </li>
178183 <li>highp_ivec4
179 : <a class="el" href="a00236.html#ga320e40ad19a7be26cff134cce4f15a51">glm::core::type::precision</a>
184 : <a class="el" href="a00235.html#ga320e40ad19a7be26cff134cce4f15a51">glm::core::type::precision</a>
185 </li>
186 <li>highp_mat2
187 : <a class="el" href="a00235.html#gaeedb9e4f01fefcd5a47356b476b6890c">glm::core::type::precision</a>
180188 </li>
181189 <li>highp_mat2x2
182 : <a class="el" href="a00236.html#ga9aa0c5dce81439aa15a0d5b5e5006d81">glm::core::type::precision</a>
190 : <a class="el" href="a00235.html#ga9aa0c5dce81439aa15a0d5b5e5006d81">glm::core::type::precision</a>
183191 </li>
184192 <li>highp_mat2x3
185 : <a class="el" href="a00236.html#ga895ba4ec32bd7cfb0d07572556572069">glm::core::type::precision</a>
193 : <a class="el" href="a00235.html#ga895ba4ec32bd7cfb0d07572556572069">glm::core::type::precision</a>
186194 </li>
187195 <li>highp_mat2x4
188196 : <a class="el" href="a00156.html#af8816ff880fbae96a59c543904333109">glm::core::type::precision</a>
189197 </li>
198 <li>highp_mat3
199 : <a class="el" href="a00235.html#ga95c93f032b4713aff2886a39f96822e1">glm::core::type::precision</a>
200 </li>
190201 <li>highp_mat3x2
191202 : <a class="el" href="a00156.html#ae5e017b25e88ff5c61f4538a2dd5647a">glm::core::type::precision</a>
192203 </li>
193204 <li>highp_mat3x3
194 : <a class="el" href="a00236.html#ga20aa8e5c6061576079c10e86cd743c8d">glm::core::type::precision</a>
205 : <a class="el" href="a00235.html#ga20aa8e5c6061576079c10e86cd743c8d">glm::core::type::precision</a>
195206 </li>
196207 <li>highp_mat3x4
197208 : <a class="el" href="a00156.html#a8efc769b3edb7a3f420d6344e2308c72">glm::core::type::precision</a>
198209 </li>
210 <li>highp_mat4
211 : <a class="el" href="a00235.html#ga6e0882bb7c778ee27596e1cbe70cad1a">glm::core::type::precision</a>
212 </li>
199213 <li>highp_mat4x2
200 : <a class="el" href="a00236.html#ga3178de2c189bfdda4c73d6af8017f5d3">glm::core::type::precision</a>
214 : <a class="el" href="a00235.html#ga3178de2c189bfdda4c73d6af8017f5d3">glm::core::type::precision</a>
201215 </li>
202216 <li>highp_mat4x3
203 : <a class="el" href="a00236.html#ga00d8bf8ebaab7d6647a3b7f73ae324af">glm::core::type::precision</a>
217 : <a class="el" href="a00235.html#ga00d8bf8ebaab7d6647a3b7f73ae324af">glm::core::type::precision</a>
204218 </li>
205219 <li>highp_mat4x4
206 : <a class="el" href="a00236.html#gadd2ef277f86f6fa29804a22d1eb7d662">glm::core::type::precision</a>
220 : <a class="el" href="a00235.html#gadd2ef277f86f6fa29804a22d1eb7d662">glm::core::type::precision</a>
221 </li>
222 <li>highp_quat
223 : <a class="el" href="a00244.html#ga8a7c2c751ad30db9ec4268a6b7d99f6c">glm::gtc::quaternion</a>
207224 </li>
208225 <li>highp_uint
209 : <a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">glm::core::type::precision</a>
226 : <a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">glm::core::type::precision</a>
210227 </li>
211228 <li>highp_umat2
212 : <a class="el" href="a00242.html#ga9917f09e4bbb414e5b10f5e00c7de70d">glm::gtc::matrix_integer</a>
229 : <a class="el" href="a00241.html#ga9917f09e4bbb414e5b10f5e00c7de70d">glm::gtc::matrix_integer</a>
213230 </li>
214231 <li>highp_umat2x2
215 : <a class="el" href="a00242.html#gac46ccd4fa290488681c4574e5e562d55">glm::gtc::matrix_integer</a>
232 : <a class="el" href="a00241.html#gac46ccd4fa290488681c4574e5e562d55">glm::gtc::matrix_integer</a>
216233 </li>
217234 <li>highp_umat2x3
218 : <a class="el" href="a00242.html#ga81a27f521f29ff4ace4d1e4cde1de2a5">glm::gtc::matrix_integer</a>
235 : <a class="el" href="a00241.html#ga81a27f521f29ff4ace4d1e4cde1de2a5">glm::gtc::matrix_integer</a>
219236 </li>
220237 <li>highp_umat2x4
221 : <a class="el" href="a00242.html#gab6c2023040df42564c16a2b464adba9b">glm::gtc::matrix_integer</a>
238 : <a class="el" href="a00241.html#gab6c2023040df42564c16a2b464adba9b">glm::gtc::matrix_integer</a>
222239 </li>
223240 <li>highp_umat3
224 : <a class="el" href="a00242.html#gac7928fd1dbf3decc2463e0044d10ba14">glm::gtc::matrix_integer</a>
241 : <a class="el" href="a00241.html#gac7928fd1dbf3decc2463e0044d10ba14">glm::gtc::matrix_integer</a>
225242 </li>
226243 <li>highp_umat3x2
227 : <a class="el" href="a00242.html#gab9cdf3c2c04d7346cc45b212a904f02d">glm::gtc::matrix_integer</a>
244 : <a class="el" href="a00241.html#gab9cdf3c2c04d7346cc45b212a904f02d">glm::gtc::matrix_integer</a>
228245 </li>
229246 <li>highp_umat3x3
230 : <a class="el" href="a00242.html#gabb4b97694034f2d650dca359db023eaa">glm::gtc::matrix_integer</a>
247 : <a class="el" href="a00241.html#gabb4b97694034f2d650dca359db023eaa">glm::gtc::matrix_integer</a>
231248 </li>
232249 <li>highp_umat3x4
233 : <a class="el" href="a00242.html#ga8c7be88fb8d49dd55eb6892da1bf1966">glm::gtc::matrix_integer</a>
250 : <a class="el" href="a00241.html#ga8c7be88fb8d49dd55eb6892da1bf1966">glm::gtc::matrix_integer</a>
234251 </li>
235252 <li>highp_umat4
236 : <a class="el" href="a00242.html#ga2f29d9ef4636752de31b92a56b44bd8a">glm::gtc::matrix_integer</a>
253 : <a class="el" href="a00241.html#ga2f29d9ef4636752de31b92a56b44bd8a">glm::gtc::matrix_integer</a>
237254 </li>
238255 <li>highp_umat4x2
239 : <a class="el" href="a00242.html#ga84ddf69a6f1912a196c505c4a8fe817b">glm::gtc::matrix_integer</a>
256 : <a class="el" href="a00241.html#ga84ddf69a6f1912a196c505c4a8fe817b">glm::gtc::matrix_integer</a>
240257 </li>
241258 <li>highp_umat4x3
242 : <a class="el" href="a00242.html#gaba6def08906f182866bd945babf9a5f7">glm::gtc::matrix_integer</a>
259 : <a class="el" href="a00241.html#gaba6def08906f182866bd945babf9a5f7">glm::gtc::matrix_integer</a>
243260 </li>
244261 <li>highp_umat4x4
245 : <a class="el" href="a00242.html#gaff8f7574251ea10466c0f31ca1e83f6d">glm::gtc::matrix_integer</a>
262 : <a class="el" href="a00241.html#gaff8f7574251ea10466c0f31ca1e83f6d">glm::gtc::matrix_integer</a>
263 </li>
264 <li>highp_uvec1
265 : <a class="el" href="a00224.html#a9ada3d09911046c294f83bdaebd7ce8e">glm::gtx::vector1::precision</a>
246266 </li>
247267 <li>highp_uvec2
248 : <a class="el" href="a00236.html#gad4a5243fc438d0f2efbc22d075b4e399">glm::core::type::precision</a>
268 : <a class="el" href="a00235.html#gad4a5243fc438d0f2efbc22d075b4e399">glm::core::type::precision</a>
249269 </li>
250270 <li>highp_uvec3
251 : <a class="el" href="a00236.html#gaf4b32075ad193e4f47c8bfc367593d8c">glm::core::type::precision</a>
271 : <a class="el" href="a00235.html#gaf4b32075ad193e4f47c8bfc367593d8c">glm::core::type::precision</a>
252272 </li>
253273 <li>highp_uvec4
254 : <a class="el" href="a00236.html#ga5ad6375e810e3050a6c845b600422b70">glm::core::type::precision</a>
274 : <a class="el" href="a00235.html#ga5ad6375e810e3050a6c845b600422b70">glm::core::type::precision</a>
275 </li>
276 <li>highp_vec1
277 : <a class="el" href="a00224.html#a26cc70c8e50dcdbd7fba41515d3f3f4e">glm::gtx::vector1::precision</a>
255278 </li>
256279 <li>highp_vec2
257 : <a class="el" href="a00236.html#ga9b65d7afd0783a02f5b3d1b75d1d872e">glm::core::type::precision</a>
280 : <a class="el" href="a00235.html#ga9b65d7afd0783a02f5b3d1b75d1d872e">glm::core::type::precision</a>
258281 </li>
259282 <li>highp_vec3
260 : <a class="el" href="a00236.html#ga0d3129f5f6644cb7552f520ff0dfa789">glm::core::type::precision</a>
283 : <a class="el" href="a00235.html#ga0d3129f5f6644cb7552f520ff0dfa789">glm::core::type::precision</a>
261284 </li>
262285 <li>highp_vec4
263 : <a class="el" href="a00236.html#gaaef692a5e2eae7dad32ca2f8ed0d16d8">glm::core::type::precision</a>
286 : <a class="el" href="a00235.html#gaaef692a5e2eae7dad32ca2f8ed0d16d8">glm::core::type::precision</a>
264287 </li>
265288 <li>hmat2
266 : <a class="el" href="a00240.html#ga784f92f5a36fd8e23a69119eb6a80eb8">glm::gtc::half_float</a>
289 : <a class="el" href="a00239.html#ga784f92f5a36fd8e23a69119eb6a80eb8">glm::gtc::half_float</a>
290 </li>
291 <li>hmat2x2
292 : <a class="el" href="a00239.html#gaef5a99a975d1df44e43f3662d84d24e2">glm::gtc::half_float</a>
293 </li>
294 <li>hmat2x3
295 : <a class="el" href="a00239.html#ga55c96491b1d2508504b7fad8f31fdd47">glm::gtc::half_float</a>
296 </li>
297 <li>hmat2x4
298 : <a class="el" href="a00239.html#ga43a7d1bfd8945398effa19eb66ce304a">glm::gtc::half_float</a>
267299 </li>
268300 <li>hmat3
269 : <a class="el" href="a00240.html#ga97a57670730ece7f6b904d6dcce5bd7a">glm::gtc::half_float</a>
301 : <a class="el" href="a00239.html#ga97a57670730ece7f6b904d6dcce5bd7a">glm::gtc::half_float</a>
302 </li>
303 <li>hmat3x2
304 : <a class="el" href="a00239.html#gaf89371358a1d90a224c72795d25a4f3e">glm::gtc::half_float</a>
305 </li>
306 <li>hmat3x3
307 : <a class="el" href="a00239.html#ga3b23962a795f1f157242859c1a35dec0">glm::gtc::half_float</a>
308 </li>
309 <li>hmat3x4
310 : <a class="el" href="a00239.html#ga8eeb3d8c00910f5497117d1749b6550f">glm::gtc::half_float</a>
270311 </li>
271312 <li>hmat4
272 : <a class="el" href="a00240.html#gaffa8b541819e978ede6129703be94285">glm::gtc::half_float</a>
313 : <a class="el" href="a00239.html#gaffa8b541819e978ede6129703be94285">glm::gtc::half_float</a>
314 </li>
315 <li>hmat4x2
316 : <a class="el" href="a00239.html#ga370098417bb96d7796b11a4611bf67ac">glm::gtc::half_float</a>
317 </li>
318 <li>hmat4x3
319 : <a class="el" href="a00239.html#ga8248b190b2f9a4ff3f2aadf865f72b84">glm::gtc::half_float</a>
320 </li>
321 <li>hmat4x4
322 : <a class="el" href="a00239.html#ga66a4356be6f3c7a1e5cb944657917002">glm::gtc::half_float</a>
273323 </li>
274324 <li>hquat
275 : <a class="el" href="a00245.html#ga552e75db1669a7a86b59070d4efd6941">glm::gtc::quaternion</a>
325 : <a class="el" href="a00244.html#ga552e75db1669a7a86b59070d4efd6941">glm::gtc::quaternion</a>
276326 </li>
277327 <li>hsvColor()
278 : <a class="el" href="a00253.html#ga20b1d59474b6588da10e72764711cf71">glm::gtx::color_space</a>
328 : <a class="el" href="a00252.html#ga20b1d59474b6588da10e72764711cf71">glm::gtx::color_space</a>
279329 </li>
280330 <li>hvec2
281 : <a class="el" href="a00240.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a">glm::gtc::half_float</a>
331 : <a class="el" href="a00239.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a">glm::gtc::half_float</a>
282332 </li>
283333 <li>hvec3
284 : <a class="el" href="a00240.html#gab708ed615526a03ec26e3b614bea2b7b">glm::gtc::half_float</a>
334 : <a class="el" href="a00239.html#gab708ed615526a03ec26e3b614bea2b7b">glm::gtc::half_float</a>
285335 </li>
286336 <li>hvec4
287 : <a class="el" href="a00240.html#ga912913b034fea8952fcfc129a633c667">glm::gtc::half_float</a>
337 : <a class="el" href="a00239.html#ga912913b034fea8952fcfc129a633c667">glm::gtc::half_float</a>
288338 </li>
289339 </ul>
290340 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
7375 <li>i16
74 : <a class="el" href="a00246.html#ga47ad84e86d8eef23a5ebab2815242a0d">glm::gtc::type_precision</a>
76 : <a class="el" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d">glm::gtc::type_precision</a>
7577 </li>
7678 <li>i16vec2
77 : <a class="el" href="a00246.html#ga6a9c8e79629016f081cd3274eeafe429">glm::gtc::type_precision</a>
79 : <a class="el" href="a00245.html#ga6a9c8e79629016f081cd3274eeafe429">glm::gtc::type_precision</a>
7880 </li>
7981 <li>i16vec3
80 : <a class="el" href="a00246.html#ga539ac09149e338c783bc492fd25d504c">glm::gtc::type_precision</a>
82 : <a class="el" href="a00245.html#ga539ac09149e338c783bc492fd25d504c">glm::gtc::type_precision</a>
8183 </li>
8284 <li>i16vec4
83 : <a class="el" href="a00246.html#ga09c99e80eb63c8df7a9cc4021c8a2811">glm::gtc::type_precision</a>
85 : <a class="el" href="a00245.html#ga09c99e80eb63c8df7a9cc4021c8a2811">glm::gtc::type_precision</a>
8486 </li>
8587 <li>i32
86 : <a class="el" href="a00246.html#ga324db08ffb2a193f9a10864288b94523">glm::gtc::type_precision</a>
88 : <a class="el" href="a00245.html#ga324db08ffb2a193f9a10864288b94523">glm::gtc::type_precision</a>
8789 </li>
8890 <li>i32vec2
89 : <a class="el" href="a00246.html#ga587a33330386e50f7ff9a870f1b62ab1">glm::gtc::type_precision</a>
91 : <a class="el" href="a00245.html#ga587a33330386e50f7ff9a870f1b62ab1">glm::gtc::type_precision</a>
9092 </li>
9193 <li>i32vec3
92 : <a class="el" href="a00246.html#gae8b7bb7698c98fb69f2a4aff8a757416">glm::gtc::type_precision</a>
94 : <a class="el" href="a00245.html#gae8b7bb7698c98fb69f2a4aff8a757416">glm::gtc::type_precision</a>
9395 </li>
9496 <li>i32vec4
95 : <a class="el" href="a00246.html#gaa82f1d2958dfcc463a2498d52ee80a0a">glm::gtc::type_precision</a>
97 : <a class="el" href="a00245.html#gaa82f1d2958dfcc463a2498d52ee80a0a">glm::gtc::type_precision</a>
9698 </li>
9799 <li>i64
98 : <a class="el" href="a00246.html#ga60abe2e6e0bacb893a2d6d17cc50f753">glm::gtc::type_precision</a>
100 : <a class="el" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753">glm::gtc::type_precision</a>
99101 </li>
100102 <li>i64vec2
101 : <a class="el" href="a00246.html#ga7a6245c652f68ba306c05bb0d4ca1361">glm::gtc::type_precision</a>
103 : <a class="el" href="a00245.html#ga7a6245c652f68ba306c05bb0d4ca1361">glm::gtc::type_precision</a>
102104 </li>
103105 <li>i64vec3
104 : <a class="el" href="a00246.html#ga78ad50b24382913ef6068ded644c9f3f">glm::gtc::type_precision</a>
106 : <a class="el" href="a00245.html#ga78ad50b24382913ef6068ded644c9f3f">glm::gtc::type_precision</a>
105107 </li>
106108 <li>i64vec4
107 : <a class="el" href="a00246.html#ga8392ac39a51731ab9a5b3f23a5eaf1d7">glm::gtc::type_precision</a>
109 : <a class="el" href="a00245.html#ga8392ac39a51731ab9a5b3f23a5eaf1d7">glm::gtc::type_precision</a>
108110 </li>
109111 <li>i8
110 : <a class="el" href="a00246.html#ga112f99168645b5338136b72eddd12895">glm::gtc::type_precision</a>
112 : <a class="el" href="a00245.html#ga112f99168645b5338136b72eddd12895">glm::gtc::type_precision</a>
111113 </li>
112114 <li>i8vec2
113 : <a class="el" href="a00246.html#ga9ab3f26fa232d5a4d2397d7904eb9069">glm::gtc::type_precision</a>
115 : <a class="el" href="a00245.html#ga9ab3f26fa232d5a4d2397d7904eb9069">glm::gtc::type_precision</a>
114116 </li>
115117 <li>i8vec3
116 : <a class="el" href="a00246.html#gaa8c91ad088bbbd51f2ef3b7701f00ed9">glm::gtc::type_precision</a>
118 : <a class="el" href="a00245.html#gaa8c91ad088bbbd51f2ef3b7701f00ed9">glm::gtc::type_precision</a>
117119 </li>
118120 <li>i8vec4
119 : <a class="el" href="a00246.html#ga792e1b3e596a020df28a8eb4ec3c0708">glm::gtc::type_precision</a>
121 : <a class="el" href="a00245.html#ga792e1b3e596a020df28a8eb4ec3c0708">glm::gtc::type_precision</a>
120122 </li>
121123 <li>imat2
122 : <a class="el" href="a00242.html#gaabe04f9948d4a213bb1c20137de03e01">glm::gtc::matrix_integer</a>
124 : <a class="el" href="a00241.html#gaabe04f9948d4a213bb1c20137de03e01">glm::gtc::matrix_integer</a>
123125 </li>
124126 <li>imat2x2
125 : <a class="el" href="a00242.html#gaa4732a240522ad9bc28144fda2fc14ec">glm::gtc::matrix_integer</a>
127 : <a class="el" href="a00241.html#gaa4732a240522ad9bc28144fda2fc14ec">glm::gtc::matrix_integer</a>
126128 </li>
127129 <li>imat2x3
128 : <a class="el" href="a00242.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">glm::gtc::matrix_integer</a>
130 : <a class="el" href="a00241.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">glm::gtc::matrix_integer</a>
129131 </li>
130132 <li>imat2x4
131 : <a class="el" href="a00242.html#ga9d8faafdca42583d67e792dd038fc668">glm::gtc::matrix_integer</a>
133 : <a class="el" href="a00241.html#ga9d8faafdca42583d67e792dd038fc668">glm::gtc::matrix_integer</a>
132134 </li>
133135 <li>imat3
134 : <a class="el" href="a00242.html#ga038f68437155ffa3c2583a15264a8195">glm::gtc::matrix_integer</a>
136 : <a class="el" href="a00241.html#ga038f68437155ffa3c2583a15264a8195">glm::gtc::matrix_integer</a>
135137 </li>
136138 <li>imat3x2
137 : <a class="el" href="a00242.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">glm::gtc::matrix_integer</a>
139 : <a class="el" href="a00241.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">glm::gtc::matrix_integer</a>
138140 </li>
139141 <li>imat3x3
140 : <a class="el" href="a00242.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">glm::gtc::matrix_integer</a>
142 : <a class="el" href="a00241.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">glm::gtc::matrix_integer</a>
141143 </li>
142144 <li>imat3x4
143 : <a class="el" href="a00242.html#ga6e9ce23496d8b08dfc302d4039694b58">glm::gtc::matrix_integer</a>
145 : <a class="el" href="a00241.html#ga6e9ce23496d8b08dfc302d4039694b58">glm::gtc::matrix_integer</a>
144146 </li>
145147 <li>imat4
146 : <a class="el" href="a00242.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">glm::gtc::matrix_integer</a>
148 : <a class="el" href="a00241.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">glm::gtc::matrix_integer</a>
147149 </li>
148150 <li>imat4x2
149 : <a class="el" href="a00242.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">glm::gtc::matrix_integer</a>
151 : <a class="el" href="a00241.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">glm::gtc::matrix_integer</a>
150152 </li>
151153 <li>imat4x3
152 : <a class="el" href="a00242.html#ga705ee0bf49d6c3de4404ce2481bf0df5">glm::gtc::matrix_integer</a>
154 : <a class="el" href="a00241.html#ga705ee0bf49d6c3de4404ce2481bf0df5">glm::gtc::matrix_integer</a>
153155 </li>
154156 <li>imat4x4
155 : <a class="el" href="a00242.html#ga43ed5e4f475b6f4cad7cba78f29c405b">glm::gtc::matrix_integer</a>
157 : <a class="el" href="a00241.html#ga43ed5e4f475b6f4cad7cba78f29c405b">glm::gtc::matrix_integer</a>
156158 </li>
157159 <li>imulExtended()
158 : <a class="el" href="a00238.html#gac01a66145ce9472afb6a3bee837c0bd6">glm::core::function::integer</a>
160 : <a class="el" href="a00237.html#gac01a66145ce9472afb6a3bee837c0bd6">glm::core::function::integer</a>
159161 </li>
160162 <li>infinitePerspective()
161 : <a class="el" href="a00244.html#gab8bb0d61dfe8a35df79ee3ccc6dd9afe">glm::gtc::matrix_transform</a>
163 : <a class="el" href="a00243.html#gab8bb0d61dfe8a35df79ee3ccc6dd9afe">glm::gtc::matrix_transform</a>
162164 </li>
163165 <li>int1
164 : <a class="el" href="a00255.html#ga0670a2111b5e4a6410bd027fa0232fc3">glm::gtx::compatibility</a>
166 : <a class="el" href="a00254.html#ga0670a2111b5e4a6410bd027fa0232fc3">glm::gtx::compatibility</a>
165167 </li>
166168 <li>int16
167 : <a class="el" href="a00246.html#ga302041c186d0d028bea31b711fe16759">glm::gtc::type_precision</a>
169 : <a class="el" href="a00245.html#ga302041c186d0d028bea31b711fe16759">glm::gtc::type_precision</a>
168170 </li>
169171 <li>int1x1
170 : <a class="el" href="a00255.html#ga056ffe02d3a45af626f8e62221881c7a">glm::gtx::compatibility</a>
172 : <a class="el" href="a00254.html#ga056ffe02d3a45af626f8e62221881c7a">glm::gtx::compatibility</a>
171173 </li>
172174 <li>int2
173 : <a class="el" href="a00255.html#ga96b72b048dd3d9eb7caa93f9589b46a0">glm::gtx::compatibility</a>
175 : <a class="el" href="a00254.html#ga96b72b048dd3d9eb7caa93f9589b46a0">glm::gtx::compatibility</a>
174176 </li>
175177 <li>int2x2
176 : <a class="el" href="a00255.html#gab7644293a70c1e329624f556b779edde">glm::gtx::compatibility</a>
178 : <a class="el" href="a00254.html#gab7644293a70c1e329624f556b779edde">glm::gtx::compatibility</a>
177179 </li>
178180 <li>int2x3
179 : <a class="el" href="a00255.html#gaf2c5ace70f19d3916b43f25ab7ffbc95">glm::gtx::compatibility</a>
181 : <a class="el" href="a00254.html#gaf2c5ace70f19d3916b43f25ab7ffbc95">glm::gtx::compatibility</a>
180182 </li>
181183 <li>int2x4
182 : <a class="el" href="a00255.html#ga20ba14d42f3856221a0eb5194184bcf9">glm::gtx::compatibility</a>
184 : <a class="el" href="a00254.html#ga20ba14d42f3856221a0eb5194184bcf9">glm::gtx::compatibility</a>
183185 </li>
184186 <li>int3
185 : <a class="el" href="a00255.html#ga0e57fa71b1be1f6501d3985b7b7d4dac">glm::gtx::compatibility</a>
187 : <a class="el" href="a00254.html#ga0e57fa71b1be1f6501d3985b7b7d4dac">glm::gtx::compatibility</a>
186188 </li>
187189 <li>int32
188 : <a class="el" href="a00246.html#ga8df669f4e7698dfe0c0354d92578d74f">glm::gtc::type_precision</a>
190 : <a class="el" href="a00245.html#ga8df669f4e7698dfe0c0354d92578d74f">glm::gtc::type_precision</a>
189191 </li>
190192 <li>int3x2
191 : <a class="el" href="a00255.html#ga75bc457489f7d23f5ea56445c0b3fa3f">glm::gtx::compatibility</a>
193 : <a class="el" href="a00254.html#ga75bc457489f7d23f5ea56445c0b3fa3f">glm::gtx::compatibility</a>
192194 </li>
193195 <li>int3x3
194 : <a class="el" href="a00255.html#ga90d6b84bdde0d8247774aac30909ed03">glm::gtx::compatibility</a>
196 : <a class="el" href="a00254.html#ga90d6b84bdde0d8247774aac30909ed03">glm::gtx::compatibility</a>
195197 </li>
196198 <li>int3x4
197 : <a class="el" href="a00255.html#ga91da3b288518f40c78ee1d0e1fb1cdb3">glm::gtx::compatibility</a>
199 : <a class="el" href="a00254.html#ga91da3b288518f40c78ee1d0e1fb1cdb3">glm::gtx::compatibility</a>
198200 </li>
199201 <li>int4
200 : <a class="el" href="a00255.html#ga827bb0abe63248b0ae292a83ff55097a">glm::gtx::compatibility</a>
202 : <a class="el" href="a00254.html#ga827bb0abe63248b0ae292a83ff55097a">glm::gtx::compatibility</a>
201203 </li>
202204 <li>int4x2
203 : <a class="el" href="a00255.html#ga9101cda6ad27c3d5aa596ef9baeca75d">glm::gtx::compatibility</a>
205 : <a class="el" href="a00254.html#ga9101cda6ad27c3d5aa596ef9baeca75d">glm::gtx::compatibility</a>
204206 </li>
205207 <li>int4x3
206 : <a class="el" href="a00255.html#ga5f93d57c0c99fd11c353e952b107b036">glm::gtx::compatibility</a>
208 : <a class="el" href="a00254.html#ga5f93d57c0c99fd11c353e952b107b036">glm::gtx::compatibility</a>
207209 </li>
208210 <li>int4x4
209 : <a class="el" href="a00255.html#gacd4827b69f52f6486625bf65d23fe53f">glm::gtx::compatibility</a>
211 : <a class="el" href="a00254.html#gacd4827b69f52f6486625bf65d23fe53f">glm::gtx::compatibility</a>
210212 </li>
211213 <li>int64
212 : <a class="el" href="a00246.html#gaff5189f97f9e842d9636a0f240001b2e">glm::gtc::type_precision</a>
214 : <a class="el" href="a00245.html#gaff5189f97f9e842d9636a0f240001b2e">glm::gtc::type_precision</a>
213215 </li>
214216 <li>int8
215 : <a class="el" href="a00246.html#ga41c6189f6485c2825d60fdc835b3a2b0">glm::gtc::type_precision</a>
217 : <a class="el" href="a00245.html#ga41c6189f6485c2825d60fdc835b3a2b0">glm::gtc::type_precision</a>
216218 </li>
217219 <li>intBitsToFloat()
218 : <a class="el" href="a00238.html#ga3b76eab7091983e936c894b1976e90be">glm::core::function::common</a>
220 : <a class="el" href="a00145.html#a3d2881860ac44f93763bc31582e3818c">glm</a>
219221 </li>
220222 <li>intermediate()
221 : <a class="el" href="a00286.html#gaa15c443e97ac7476d04627d868995891">glm::gtx::quaternion</a>
223 : <a class="el" href="a00285.html#gaa15c443e97ac7476d04627d868995891">glm::gtx::quaternion</a>
222224 </li>
223225 <li>interpolate()
224226 : <a class="el" href="a00305.html#ga3a26ef5b04c25263a647ee828faa3bb4">glm::gtx::matrix_interpolation</a>
225227 </li>
226228 <li>intersectLineSphere()
227 : <a class="el" href="a00268.html#ga33f0584acca58d7446daf594c3b8295f">glm::gtx::intersect</a>
229 : <a class="el" href="a00267.html#ga33f0584acca58d7446daf594c3b8295f">glm::gtx::intersect</a>
228230 </li>
229231 <li>intersectLineTriangle()
230 : <a class="el" href="a00268.html#ga0922c431baec628c6955011c79d39cd9">glm::gtx::intersect</a>
232 : <a class="el" href="a00267.html#ga0922c431baec628c6955011c79d39cd9">glm::gtx::intersect</a>
231233 </li>
232234 <li>intersectRaySphere()
233 : <a class="el" href="a00268.html#gaa03b236dbd4df6b0519b1f2ceea7ef8c">glm::gtx::intersect</a>
235 : <a class="el" href="a00267.html#gaa03b236dbd4df6b0519b1f2ceea7ef8c">glm::gtx::intersect</a>
234236 </li>
235237 <li>intersectRayTriangle()
236 : <a class="el" href="a00268.html#ga6ce58ac1371605381abb3e00cfe36d78">glm::gtx::intersect</a>
238 : <a class="el" href="a00267.html#ga6ce58ac1371605381abb3e00cfe36d78">glm::gtx::intersect</a>
237239 </li>
238240 <li>inverse()
239 : <a class="el" href="a00245.html#ga12e7d58d287f181ec2ebf47bc6af6c5c">glm::gtc::quaternion</a>
240 , <a class="el" href="a00238.html#ga21de0684ba52d03625b43eac0c2b866a">glm::core::function::matrix</a>
241 , <a class="el" href="a00291.html#gace9ca056446fc614a846bac6a3ee1a1e">glm::gtx::simd_mat4</a>
241 : <a class="el" href="a00244.html#ga12e7d58d287f181ec2ebf47bc6af6c5c">glm::gtc::quaternion</a>
242 , <a class="el" href="a00237.html#ga21de0684ba52d03625b43eac0c2b866a">glm::core::function::matrix</a>
243 , <a class="el" href="a00290.html#gace9ca056446fc614a846bac6a3ee1a1e">glm::gtx::simd_mat4</a>
242244 </li>
243245 <li>inversesqrt()
244 : <a class="el" href="a00238.html#gadce520af7df2c97aea9f689ad620fabe">glm::core::function::exponential</a>
245 , <a class="el" href="a00292.html#gaa4e215b72e48012a6388a1477c84e2ad">glm::gtx::simd_vec4</a>
246 : <a class="el" href="a00237.html#gadce520af7df2c97aea9f689ad620fabe">glm::core::function::exponential</a>
247 , <a class="el" href="a00291.html#gaa4e215b72e48012a6388a1477c84e2ad">glm::gtx::simd_vec4</a>
246248 </li>
247249 <li>inverseTranspose()
248 : <a class="el" href="a00243.html#ga1df67bb7d1c4c89484ac57c5cc09c7a3">glm::gtc::matrix_inverse</a>
250 : <a class="el" href="a00242.html#ga1df67bb7d1c4c89484ac57c5cc09c7a3">glm::gtc::matrix_inverse</a>
249251 </li>
250252 <li>isfinite()
251 : <a class="el" href="a00255.html#ga048f613527d6146d30bd45cfb9593ba4">glm::gtx::compatibility</a>
253 : <a class="el" href="a00254.html#ga048f613527d6146d30bd45cfb9593ba4">glm::gtx::compatibility</a>
252254 </li>
253255 <li>isIdentity()
254 : <a class="el" href="a00273.html#ga131e3e65bd8a1ac035f849483631f122">glm::gtx::matrix_query</a>
256 : <a class="el" href="a00272.html#ga131e3e65bd8a1ac035f849483631f122">glm::gtx::matrix_query</a>
255257 </li>
256258 <li>isinf()
257 : <a class="el" href="a00255.html#gac819e4811ec43828734e60e828b303eb">glm::gtx::compatibility</a>
258 , <a class="el" href="a00238.html#ga7194c89cf656614f231e11c46d906465">glm::core::function::common</a>
259 , <a class="el" href="a00255.html#gab262f10a801ed389ab19f064f7dee84d">glm::gtx::compatibility</a>
259 : <a class="el" href="a00254.html#gac819e4811ec43828734e60e828b303eb">glm::gtx::compatibility</a>
260 , <a class="el" href="a00145.html#ad5d3227e612c93a7d98e2dc4d72a4efc">glm</a>
261 , <a class="el" href="a00254.html#ga80ff18eeb665e1ae21650040192cb723">glm::gtx::compatibility</a>
260262 </li>
261263 <li>isnan()
262 : <a class="el" href="a00255.html#ga75b72c912102e33256b2d0100edd23dc">glm::gtx::compatibility</a>
263 , <a class="el" href="a00238.html#ga873db92807cc955cf98030c94a342d5a">glm::core::function::common</a>
264 , <a class="el" href="a00255.html#gaa2f960030123937941320d6e570c9ed3">glm::gtx::compatibility</a>
264 : <a class="el" href="a00254.html#gaa2f960030123937941320d6e570c9ed3">glm::gtx::compatibility</a>
265 , <a class="el" href="a00145.html#aa8f4b13390decbfaaa0ca1c521d50c3d">glm</a>
266 , <a class="el" href="a00254.html#ga17ed6a80235a6906e902ce6350740a32">glm::gtx::compatibility</a>
265267 </li>
266268 <li>isNormalized()
267 : <a class="el" href="a00273.html#ga249b7a2cc71db930e512f2a3ad9c9cc8">glm::gtx::matrix_query</a>
268 , <a class="el" href="a00300.html#ga727dbe962529a68632f779ccc79e2cef">glm::gtx::vector_query</a>
269 , <a class="el" href="a00273.html#ga4c3e999f20d9b74852a61ef5772f3f02">glm::gtx::matrix_query</a>
269 : <a class="el" href="a00299.html#ga727dbe962529a68632f779ccc79e2cef">glm::gtx::vector_query</a>
270 , <a class="el" href="a00272.html#ga249b7a2cc71db930e512f2a3ad9c9cc8">glm::gtx::matrix_query</a>
270271 </li>
271272 <li>isNull()
272 : <a class="el" href="a00273.html#ga3ea08cf50837874a590ef71c78500b5e">glm::gtx::matrix_query</a>
273 , <a class="el" href="a00300.html#gab8f7a48850ba11f19dbbfcc0429b116c">glm::gtx::vector_query</a>
274 , <a class="el" href="a00273.html#ga87d08d0f7cef6d818414b7c69ce8e0fc">glm::gtx::matrix_query</a>
273 : <a class="el" href="a00299.html#gab8f7a48850ba11f19dbbfcc0429b116c">glm::gtx::vector_query</a>
274 , <a class="el" href="a00272.html#gaaecd78d1c5c5f361a763979311e3d115">glm::gtx::matrix_query</a>
275275 </li>
276276 <li>isOrthogonal()
277 : <a class="el" href="a00273.html#ga87823a9c3fb605773789866fc31f60e8">glm::gtx::matrix_query</a>
277 : <a class="el" href="a00272.html#ga87823a9c3fb605773789866fc31f60e8">glm::gtx::matrix_query</a>
278278 </li>
279279 <li>isPowerOfTwo()
280 : <a class="el" href="a00250.html#gadddfcaa01efe60218e52323707331415">glm::gtx::bit</a>
281 </li>
282 <li>ivec1
283 : <a class="el" href="a00223.html#acad21ad05f36e9ca36c040086837987e">glm::gtx::vector1</a>
280 : <a class="el" href="a00249.html#gadddfcaa01efe60218e52323707331415">glm::gtx::bit</a>
284281 </li>
285282 <li>ivec2
286 : <a class="el" href="a00235.html#gae34ec1dcb70458421c150176537dca90">glm</a>
283 : <a class="el" href="a00234.html#gae34ec1dcb70458421c150176537dca90">glm</a>
287284 </li>
288285 <li>ivec3
289 : <a class="el" href="a00235.html#ga8772f4d0808ec3571b0b21c7514ae626">glm</a>
286 : <a class="el" href="a00234.html#ga8772f4d0808ec3571b0b21c7514ae626">glm</a>
290287 </li>
291288 <li>ivec4
292 : <a class="el" href="a00235.html#ga4ca78493e6bc3274eb996a783f6336ec">glm</a>
289 : <a class="el" href="a00234.html#ga4ca78493e6bc3274eb996a783f6336ec">glm</a>
293290 </li>
294291 </ul>
295292 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
7375 <li>l1Norm()
74 : <a class="el" href="a00276.html#gab9942ce9c9a3de0fcb2b2d1a7eea5d1b">glm::gtx::norm</a>
76 : <a class="el" href="a00275.html#gab9942ce9c9a3de0fcb2b2d1a7eea5d1b">glm::gtx::norm</a>
7577 </li>
7678 <li>l2Norm()
77 : <a class="el" href="a00276.html#ga281fb89a1b196753973cb6932ed43042">glm::gtx::norm</a>
79 : <a class="el" href="a00275.html#ga281fb89a1b196753973cb6932ed43042">glm::gtx::norm</a>
7880 </li>
7981 <li>ldexp()
80 : <a class="el" href="a00238.html#gaa99c16ada9e61cca03a8a00938a3c330">glm::core::function::common</a>
82 : <a class="el" href="a00145.html#a6c90cad9fe6a58162ac474a4df261d06">glm</a>
8183 </li>
8284 <li>leftHanded()
83 : <a class="el" href="a00264.html#gac222c8dd989fe9fb2142f18320bd683c">glm::gtx::handed_coordinate_space</a>
85 : <a class="el" href="a00263.html#gac222c8dd989fe9fb2142f18320bd683c">glm::gtx::handed_coordinate_space</a>
8486 </li>
8587 <li>length()
86 : <a class="el" href="a00245.html#gabb546279ee6acebe3fe64dce79e7e9f0">glm::gtc::quaternion</a>
87 , <a class="el" href="a00292.html#gaf76a38ce8c466c9b0bc4c1b5db1a6faa">glm::gtx::simd_vec4</a>
88 , <a class="el" href="a00238.html#ga10ee9a1d18c6da61cab61d8637d23847">glm::core::function::geometric</a>
88 : <a class="el" href="a00291.html#gaf76a38ce8c466c9b0bc4c1b5db1a6faa">glm::gtx::simd_vec4</a>
89 , <a class="el" href="a00244.html#gabb546279ee6acebe3fe64dce79e7e9f0">glm::gtc::quaternion</a>
8990 </li>
9091 <li>length2()
91 : <a class="el" href="a00276.html#ga461cea3ee3b98f8fcfea856def1f0ede">glm::gtx::norm</a>
92 : <a class="el" href="a00275.html#ga461cea3ee3b98f8fcfea856def1f0ede">glm::gtx::norm</a>
9293 </li>
9394 <li>length4()
94 : <a class="el" href="a00292.html#ga6c7fffeb58db66f602585b24a8e4f2db">glm::gtx::simd_vec4</a>
95 : <a class="el" href="a00291.html#ga6c7fffeb58db66f602585b24a8e4f2db">glm::gtx::simd_vec4</a>
9596 </li>
9697 <li>lerp()
97 : <a class="el" href="a00255.html#ga56463ea9166068ab33107e1cea942023">glm::gtx::compatibility</a>
98 </li>
99 <li>lessThan()
100 : <a class="el" href="a00238.html#ga54e5b894f79b9c1b8f6d28fe6f986e80">glm::core::function::vector_relational</a>
101 </li>
102 <li>lessThanEqual()
103 : <a class="el" href="a00238.html#ga190db45f1b40202ee0716751448b119d">glm::core::function::vector_relational</a>
98 : <a class="el" href="a00254.html#ga5f7bfd8f1e917fd897a738177492c59a">glm::gtx::compatibility</a>
10499 </li>
105100 <li>log()
106 : <a class="el" href="a00238.html#ga50b7859bfe87c2f075fe7a04e4c68cc3">glm::core::function::exponential</a>
107 , <a class="el" href="a00269.html#ga78c6b55186a549948b9783bdee1dd5e0">glm::gtx::log_base</a>
108 , <a class="el" href="a00286.html#ga11af1897310ec8a09210fb7b4deb0027">glm::gtx::quaternion</a>
101 : <a class="el" href="a00237.html#ga50b7859bfe87c2f075fe7a04e4c68cc3">glm::core::function::exponential</a>
102 , <a class="el" href="a00268.html#ga78c6b55186a549948b9783bdee1dd5e0">glm::gtx::log_base</a>
103 , <a class="el" href="a00285.html#ga11af1897310ec8a09210fb7b4deb0027">glm::gtx::quaternion</a>
109104 </li>
110105 <li>log2()
111 : <a class="el" href="a00238.html#ga956c24e59912196d4b3714789e57c077">glm::core::function::exponential</a>
106 : <a class="el" href="a00237.html#ga956c24e59912196d4b3714789e57c077">glm::core::function::exponential</a>
112107 </li>
113108 <li>lookAt()
114 : <a class="el" href="a00244.html#ga2d6b6c381f047ea4d9ca4145fed9edd5">glm::gtc::matrix_transform</a>
109 : <a class="el" href="a00243.html#ga2d6b6c381f047ea4d9ca4145fed9edd5">glm::gtc::matrix_transform</a>
115110 </li>
116111 <li>lowerMultiple()
117 : <a class="el" href="a00275.html#ga28760c297ccc5f54111d4469dc1bd1f6">glm::gtx::multiple</a>
112 : <a class="el" href="a00274.html#ga28760c297ccc5f54111d4469dc1bd1f6">glm::gtx::multiple</a>
118113 </li>
119114 <li>lowestBit()
120 : <a class="el" href="a00250.html#gace8029d9e9090f2aaa0248e320b3f24c">glm::gtx::bit</a>
115 : <a class="el" href="a00249.html#gace8029d9e9090f2aaa0248e320b3f24c">glm::gtx::bit</a>
121116 </li>
122117 <li>lowp_float
123 : <a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">glm::core::type::precision</a>
118 : <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">glm::core::type::precision</a>
124119 </li>
125120 <li>lowp_imat2
126 : <a class="el" href="a00242.html#ga53ba084d560fbe0a32409b7ad29a405f">glm::gtc::matrix_integer</a>
121 : <a class="el" href="a00241.html#ga53ba084d560fbe0a32409b7ad29a405f">glm::gtc::matrix_integer</a>
127122 </li>
128123 <li>lowp_imat2x2
129 : <a class="el" href="a00242.html#ga4cb2449be4c36270d0f6c2849f72037c">glm::gtc::matrix_integer</a>
124 : <a class="el" href="a00241.html#ga4cb2449be4c36270d0f6c2849f72037c">glm::gtc::matrix_integer</a>
130125 </li>
131126 <li>lowp_imat2x3
132 : <a class="el" href="a00242.html#gad9cf0368a1cd253d87307c9784ea4c56">glm::gtc::matrix_integer</a>
127 : <a class="el" href="a00241.html#gad9cf0368a1cd253d87307c9784ea4c56">glm::gtc::matrix_integer</a>
133128 </li>
134129 <li>lowp_imat2x4
135 : <a class="el" href="a00242.html#gab065fa79d6c42b6df2e261c76b359524">glm::gtc::matrix_integer</a>
130 : <a class="el" href="a00241.html#gab065fa79d6c42b6df2e261c76b359524">glm::gtc::matrix_integer</a>
136131 </li>
137132 <li>lowp_imat3
138 : <a class="el" href="a00242.html#ga602bbe8185b35c8e02038924c95c526c">glm::gtc::matrix_integer</a>
133 : <a class="el" href="a00241.html#ga602bbe8185b35c8e02038924c95c526c">glm::gtc::matrix_integer</a>
139134 </li>
140135 <li>lowp_imat3x2
141 : <a class="el" href="a00242.html#gaf96385c22d0e6876b8b5c3dcc2e1d91a">glm::gtc::matrix_integer</a>
136 : <a class="el" href="a00241.html#gaf96385c22d0e6876b8b5c3dcc2e1d91a">glm::gtc::matrix_integer</a>
142137 </li>
143138 <li>lowp_imat3x3
144 : <a class="el" href="a00242.html#ga4da80362c97eb9abb48cedc5a444daf6">glm::gtc::matrix_integer</a>
139 : <a class="el" href="a00241.html#ga4da80362c97eb9abb48cedc5a444daf6">glm::gtc::matrix_integer</a>
145140 </li>
146141 <li>lowp_imat3x4
147 : <a class="el" href="a00242.html#ga7114fd267da92d44c98a440704e0be79">glm::gtc::matrix_integer</a>
142 : <a class="el" href="a00241.html#ga7114fd267da92d44c98a440704e0be79">glm::gtc::matrix_integer</a>
148143 </li>
149144 <li>lowp_imat4
150 : <a class="el" href="a00242.html#ga6e0f075c487aee31df91d9dbd71db88d">glm::gtc::matrix_integer</a>
145 : <a class="el" href="a00241.html#ga6e0f075c487aee31df91d9dbd71db88d">glm::gtc::matrix_integer</a>
151146 </li>
152147 <li>lowp_imat4x2
153 : <a class="el" href="a00242.html#gab9357fc7eb98b919fba7f1656fd548a8">glm::gtc::matrix_integer</a>
148 : <a class="el" href="a00241.html#gab9357fc7eb98b919fba7f1656fd548a8">glm::gtc::matrix_integer</a>
154149 </li>
155150 <li>lowp_imat4x3
156 : <a class="el" href="a00242.html#gac21d66a9936eb54d12b8e57b08e589bc">glm::gtc::matrix_integer</a>
151 : <a class="el" href="a00241.html#gac21d66a9936eb54d12b8e57b08e589bc">glm::gtc::matrix_integer</a>
157152 </li>
158153 <li>lowp_imat4x4
159 : <a class="el" href="a00242.html#gad30fba4d4c94eda205b3f768274f0893">glm::gtc::matrix_integer</a>
154 : <a class="el" href="a00241.html#gad30fba4d4c94eda205b3f768274f0893">glm::gtc::matrix_integer</a>
160155 </li>
161156 <li>lowp_int
162 : <a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">glm::core::type::precision</a>
157 : <a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">glm::core::type::precision</a>
158 </li>
159 <li>lowp_ivec1
160 : <a class="el" href="a00224.html#a12a4c27c1cc45db7cd062d3e1e7ad443">glm::gtx::vector1::precision</a>
163161 </li>
164162 <li>lowp_ivec2
165 : <a class="el" href="a00236.html#ga26364654fd75ba6c7f11a65967a7fbee">glm::core::type::precision</a>
163 : <a class="el" href="a00235.html#ga26364654fd75ba6c7f11a65967a7fbee">glm::core::type::precision</a>
166164 </li>
167165 <li>lowp_ivec3
168 : <a class="el" href="a00236.html#gac246e3a1a470974283d6618ad77fd477">glm::core::type::precision</a>
166 : <a class="el" href="a00235.html#gac246e3a1a470974283d6618ad77fd477">glm::core::type::precision</a>
169167 </li>
170168 <li>lowp_ivec4
171 : <a class="el" href="a00236.html#gafc7521507e40fbc269149475a725dbbe">glm::core::type::precision</a>
169 : <a class="el" href="a00235.html#gafc7521507e40fbc269149475a725dbbe">glm::core::type::precision</a>
170 </li>
171 <li>lowp_mat2
172 : <a class="el" href="a00235.html#gaee10b4a3cac178528f8e56c90313094a">glm::core::type::precision</a>
172173 </li>
173174 <li>lowp_mat2x2
174 : <a class="el" href="a00236.html#ga8b49c3aa6665011440c32c281b2032c0">glm::core::type::precision</a>
175 : <a class="el" href="a00235.html#ga8b49c3aa6665011440c32c281b2032c0">glm::core::type::precision</a>
175176 </li>
176177 <li>lowp_mat2x3
177 : <a class="el" href="a00236.html#ga0b32355a31b4c14e98f69b43a9077456">glm::core::type::precision</a>
178 : <a class="el" href="a00235.html#ga0b32355a31b4c14e98f69b43a9077456">glm::core::type::precision</a>
178179 </li>
179180 <li>lowp_mat2x4
180181 : <a class="el" href="a00156.html#af95b55f8954834b05b5463bc153deae5">glm::core::type::precision</a>
181182 </li>
183 <li>lowp_mat3
184 : <a class="el" href="a00235.html#ga5bbef8a57946dd7a91c9e0260d9edfbf">glm::core::type::precision</a>
185 </li>
182186 <li>lowp_mat3x2
183187 : <a class="el" href="a00156.html#a745259412efbd5e07b1a4062190e3135">glm::core::type::precision</a>
184188 </li>
185189 <li>lowp_mat3x3
186 : <a class="el" href="a00236.html#ga0bb652c1f4401b9b3359ae6b2bf13678">glm::core::type::precision</a>
190 : <a class="el" href="a00235.html#ga0bb652c1f4401b9b3359ae6b2bf13678">glm::core::type::precision</a>
187191 </li>
188192 <li>lowp_mat3x4
189193 : <a class="el" href="a00156.html#a2e7a430ab7df03b63b5c7b776f7675a1">glm::core::type::precision</a>
190194 </li>
195 <li>lowp_mat4
196 : <a class="el" href="a00235.html#ga4954a51c5507e62185d6d82dc39016a5">glm::core::type::precision</a>
197 </li>
191198 <li>lowp_mat4x2
192 : <a class="el" href="a00236.html#gac88de3260a910584e02b98f087a34502">glm::core::type::precision</a>
199 : <a class="el" href="a00235.html#gac88de3260a910584e02b98f087a34502">glm::core::type::precision</a>
193200 </li>
194201 <li>lowp_mat4x3
195 : <a class="el" href="a00236.html#ga0072cb659f9360a7bb2c3e6646609ad7">glm::core::type::precision</a>
202 : <a class="el" href="a00235.html#ga0072cb659f9360a7bb2c3e6646609ad7">glm::core::type::precision</a>
196203 </li>
197204 <li>lowp_mat4x4
198 : <a class="el" href="a00236.html#gaae14374ee642a8d553ce64f17a4597b1">glm::core::type::precision</a>
205 : <a class="el" href="a00235.html#gaae14374ee642a8d553ce64f17a4597b1">glm::core::type::precision</a>
206 </li>
207 <li>lowp_quat
208 : <a class="el" href="a00244.html#ga5acd0f3e9f9e3c0e6577440443ec4594">glm::gtc::quaternion</a>
199209 </li>
200210 <li>lowp_uint
201 : <a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">glm::core::type::precision</a>
211 : <a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">glm::core::type::precision</a>
202212 </li>
203213 <li>lowp_umat2
204 : <a class="el" href="a00242.html#gaf5fd055eb478c690723f3db742fed7ee">glm::gtc::matrix_integer</a>
214 : <a class="el" href="a00241.html#gaf5fd055eb478c690723f3db742fed7ee">glm::gtc::matrix_integer</a>
205215 </li>
206216 <li>lowp_umat2x2
207 : <a class="el" href="a00242.html#ga2041f6554b1e8ed2a6b74cffa2b8d917">glm::gtc::matrix_integer</a>
217 : <a class="el" href="a00241.html#ga2041f6554b1e8ed2a6b74cffa2b8d917">glm::gtc::matrix_integer</a>
208218 </li>
209219 <li>lowp_umat2x3
210 : <a class="el" href="a00242.html#ga2831bb6c3ed95cfefc2fffd315d31904">glm::gtc::matrix_integer</a>
220 : <a class="el" href="a00241.html#ga2831bb6c3ed95cfefc2fffd315d31904">glm::gtc::matrix_integer</a>
211221 </li>
212222 <li>lowp_umat2x4
213 : <a class="el" href="a00242.html#ga7e15349e63fbb93ce8ab047a02f0fe73">glm::gtc::matrix_integer</a>
223 : <a class="el" href="a00241.html#ga7e15349e63fbb93ce8ab047a02f0fe73">glm::gtc::matrix_integer</a>
214224 </li>
215225 <li>lowp_umat3
216 : <a class="el" href="a00242.html#ga9b9e4dbbb43103f29e432c611ba2a8e9">glm::gtc::matrix_integer</a>
226 : <a class="el" href="a00241.html#ga9b9e4dbbb43103f29e432c611ba2a8e9">glm::gtc::matrix_integer</a>
217227 </li>
218228 <li>lowp_umat3x2
219 : <a class="el" href="a00242.html#ga9bb2ec92ae5a588cc2f2487a2b39091a">glm::gtc::matrix_integer</a>
229 : <a class="el" href="a00241.html#ga9bb2ec92ae5a588cc2f2487a2b39091a">glm::gtc::matrix_integer</a>
220230 </li>
221231 <li>lowp_umat3x3
222 : <a class="el" href="a00242.html#ga0cd96f6db0335fec76d521c04e55aa72">glm::gtc::matrix_integer</a>
232 : <a class="el" href="a00241.html#ga0cd96f6db0335fec76d521c04e55aa72">glm::gtc::matrix_integer</a>
223233 </li>
224234 <li>lowp_umat3x4
225 : <a class="el" href="a00242.html#ga74afefa6d98ed4013b0b8973aedaa3c3">glm::gtc::matrix_integer</a>
235 : <a class="el" href="a00241.html#ga74afefa6d98ed4013b0b8973aedaa3c3">glm::gtc::matrix_integer</a>
226236 </li>
227237 <li>lowp_umat4
228 : <a class="el" href="a00242.html#gabe8174acf8b97bba515e77b050dee149">glm::gtc::matrix_integer</a>
238 : <a class="el" href="a00241.html#gabe8174acf8b97bba515e77b050dee149">glm::gtc::matrix_integer</a>
229239 </li>
230240 <li>lowp_umat4x2
231 : <a class="el" href="a00242.html#ga6c87f764b7e37b732701d12a5dd99b60">glm::gtc::matrix_integer</a>
241 : <a class="el" href="a00241.html#ga6c87f764b7e37b732701d12a5dd99b60">glm::gtc::matrix_integer</a>
232242 </li>
233243 <li>lowp_umat4x3
234 : <a class="el" href="a00242.html#gaf0ec78e818b558be26ab100630bb1a2f">glm::gtc::matrix_integer</a>
244 : <a class="el" href="a00241.html#gaf0ec78e818b558be26ab100630bb1a2f">glm::gtc::matrix_integer</a>
235245 </li>
236246 <li>lowp_umat4x4
237 : <a class="el" href="a00242.html#ga8afd2898b4e81ddfcf4826a1f09261df">glm::gtc::matrix_integer</a>
247 : <a class="el" href="a00241.html#ga8afd2898b4e81ddfcf4826a1f09261df">glm::gtc::matrix_integer</a>
248 </li>
249 <li>lowp_uvec1
250 : <a class="el" href="a00224.html#acc4c5715d5f36547163197c72ebc7b89">glm::gtx::vector1::precision</a>
238251 </li>
239252 <li>lowp_uvec2
240 : <a class="el" href="a00236.html#ga9cb9b78162fca09f7ce9d08758f8b3c1">glm::core::type::precision</a>
253 : <a class="el" href="a00235.html#ga9cb9b78162fca09f7ce9d08758f8b3c1">glm::core::type::precision</a>
241254 </li>
242255 <li>lowp_uvec3
243 : <a class="el" href="a00236.html#gaefdce0fe4ed79b26ed2b5f00bbf39075">glm::core::type::precision</a>
256 : <a class="el" href="a00235.html#gaefdce0fe4ed79b26ed2b5f00bbf39075">glm::core::type::precision</a>
244257 </li>
245258 <li>lowp_uvec4
246 : <a class="el" href="a00236.html#ga3ebda7e36e3948ceea0cbc90061c643d">glm::core::type::precision</a>
259 : <a class="el" href="a00235.html#ga3ebda7e36e3948ceea0cbc90061c643d">glm::core::type::precision</a>
260 </li>
261 <li>lowp_vec1
262 : <a class="el" href="a00224.html#a0b7ff5513e300963adbdda29f20a71d5">glm::gtx::vector1::precision</a>
247263 </li>
248264 <li>lowp_vec2
249 : <a class="el" href="a00236.html#ga4df6c67742cd65d6d0a885b3a539d9ff">glm::core::type::precision</a>
265 : <a class="el" href="a00235.html#ga4df6c67742cd65d6d0a885b3a539d9ff">glm::core::type::precision</a>
250266 </li>
251267 <li>lowp_vec3
252 : <a class="el" href="a00236.html#gab9e39d9db144322c1ad30ab3141084ad">glm::core::type::precision</a>
268 : <a class="el" href="a00235.html#gab9e39d9db144322c1ad30ab3141084ad">glm::core::type::precision</a>
253269 </li>
254270 <li>lowp_vec4
255 : <a class="el" href="a00236.html#ga653b0bf7ff2cb590f6e1338682fd0327">glm::core::type::precision</a>
271 : <a class="el" href="a00235.html#ga653b0bf7ff2cb590f6e1338682fd0327">glm::core::type::precision</a>
256272 </li>
257273 <li>luminosity()
258 : <a class="el" href="a00253.html#ga205ff9aab7e86a3e434f1c49f0a2b234">glm::gtx::color_space</a>
274 : <a class="el" href="a00252.html#ga205ff9aab7e86a3e434f1c49f0a2b234">glm::gtx::color_space</a>
259275 </li>
260276 <li>lxNorm()
261 : <a class="el" href="a00276.html#gacfed1ae105bff09745f86d8789503776">glm::gtx::norm</a>
277 : <a class="el" href="a00275.html#gab6b384000fdc1a560fd927684f4f3a2a">glm::gtx::norm</a>
262278 </li>
263279 </ul>
264280 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
7375 <li>mad()
74 : <a class="el" href="a00301.html#ga4997f51a19fbe8f947fd5589af27619f">glm::gtx::verbose_operator</a>
76 : <a class="el" href="a00300.html#ga4997f51a19fbe8f947fd5589af27619f">glm::gtx::verbose_operator</a>
7577 </li>
7678 <li>make_mat2()
77 : <a class="el" href="a00247.html#ga28e2cb93a1d741f43d116ae597ffcc91">glm::gtc::type_ptr</a>
79 : <a class="el" href="a00246.html#ga28e2cb93a1d741f43d116ae597ffcc91">glm::gtc::type_ptr</a>
7880 </li>
7981 <li>make_mat2x2()
80 : <a class="el" href="a00247.html#ga8ad46b9608226fd1c7eec27890281a72">glm::gtc::type_ptr</a>
82 : <a class="el" href="a00246.html#ga8ad46b9608226fd1c7eec27890281a72">glm::gtc::type_ptr</a>
8183 </li>
8284 <li>make_mat2x3()
83 : <a class="el" href="a00247.html#ga44094e20569c4f5099c099906278ea3d">glm::gtc::type_ptr</a>
85 : <a class="el" href="a00246.html#ga44094e20569c4f5099c099906278ea3d">glm::gtc::type_ptr</a>
8486 </li>
8587 <li>make_mat2x4()
86 : <a class="el" href="a00247.html#ga26642a9d5c0f0a1eaacc8b432516aa99">glm::gtc::type_ptr</a>
88 : <a class="el" href="a00246.html#ga26642a9d5c0f0a1eaacc8b432516aa99">glm::gtc::type_ptr</a>
8789 </li>
8890 <li>make_mat3()
89 : <a class="el" href="a00247.html#ga3012728a59d487ef0e19e0f0fff79b64">glm::gtc::type_ptr</a>
91 : <a class="el" href="a00246.html#ga3012728a59d487ef0e19e0f0fff79b64">glm::gtc::type_ptr</a>
9092 </li>
9193 <li>make_mat3x2()
92 : <a class="el" href="a00247.html#ga9e82111c23b88953fe05ee8c27c2b1bc">glm::gtc::type_ptr</a>
94 : <a class="el" href="a00246.html#ga9e82111c23b88953fe05ee8c27c2b1bc">glm::gtc::type_ptr</a>
9395 </li>
9496 <li>make_mat3x3()
95 : <a class="el" href="a00247.html#ga225aa7d04b65101d744ef77d95e1a23b">glm::gtc::type_ptr</a>
97 : <a class="el" href="a00246.html#ga225aa7d04b65101d744ef77d95e1a23b">glm::gtc::type_ptr</a>
9698 </li>
9799 <li>make_mat3x4()
98 : <a class="el" href="a00247.html#gaa4708891294a5aee07256ba6441b4889">glm::gtc::type_ptr</a>
100 : <a class="el" href="a00246.html#gaa4708891294a5aee07256ba6441b4889">glm::gtc::type_ptr</a>
99101 </li>
100102 <li>make_mat4()
101 : <a class="el" href="a00247.html#ga208ed9a335cf79366b278deedd83f32b">glm::gtc::type_ptr</a>
103 : <a class="el" href="a00246.html#ga208ed9a335cf79366b278deedd83f32b">glm::gtc::type_ptr</a>
102104 </li>
103105 <li>make_mat4x2()
104 : <a class="el" href="a00247.html#ga2092b5a4cd05f2e39dc1b8e5ee22589c">glm::gtc::type_ptr</a>
106 : <a class="el" href="a00246.html#ga2092b5a4cd05f2e39dc1b8e5ee22589c">glm::gtc::type_ptr</a>
105107 </li>
106108 <li>make_mat4x3()
107 : <a class="el" href="a00247.html#ga0bc483c7f197b07a816682dd0b3981d9">glm::gtc::type_ptr</a>
109 : <a class="el" href="a00246.html#ga0bc483c7f197b07a816682dd0b3981d9">glm::gtc::type_ptr</a>
108110 </li>
109111 <li>make_mat4x4()
110 : <a class="el" href="a00247.html#gac9e742ff5cc9308caabd8236fc11a687">glm::gtc::type_ptr</a>
112 : <a class="el" href="a00246.html#gac9e742ff5cc9308caabd8236fc11a687">glm::gtc::type_ptr</a>
111113 </li>
112114 <li>make_vec2()
113 : <a class="el" href="a00247.html#ga78da3ea7db8bca3e13559653ce55093b">glm::gtc::type_ptr</a>
115 : <a class="el" href="a00246.html#ga78da3ea7db8bca3e13559653ce55093b">glm::gtc::type_ptr</a>
114116 </li>
115117 <li>make_vec3()
116 : <a class="el" href="a00247.html#ga2a4f1959e1070f904687739954c4f7ee">glm::gtc::type_ptr</a>
118 : <a class="el" href="a00246.html#ga2a4f1959e1070f904687739954c4f7ee">glm::gtc::type_ptr</a>
117119 </li>
118120 <li>make_vec4()
119 : <a class="el" href="a00247.html#ga76c09e1e25b8dbb947d10b76f5c4beac">glm::gtc::type_ptr</a>
121 : <a class="el" href="a00246.html#ga76c09e1e25b8dbb947d10b76f5c4beac">glm::gtc::type_ptr</a>
120122 </li>
121123 <li>mask()
122 : <a class="el" href="a00250.html#ga31dbf05c851060984e107afb39dde5fe">glm::gtx::bit</a>
124 : <a class="el" href="a00249.html#ga31dbf05c851060984e107afb39dde5fe">glm::gtx::bit</a>
123125 </li>
124126 <li>mat2
125 : <a class="el" href="a00235.html#ga6e30cfba068ebc3c71fe1f8b3110e450">glm</a>
127 : <a class="el" href="a00234.html#ga6e30cfba068ebc3c71fe1f8b3110e450">glm</a>
126128 </li>
127129 <li>mat2x2
128 : <a class="el" href="a00235.html#gac0430f4e1a8747774bcfbd0ea7c7df7b">glm</a>
130 : <a class="el" href="a00234.html#gac0430f4e1a8747774bcfbd0ea7c7df7b">glm</a>
129131 </li>
130132 <li>mat2x3
131 : <a class="el" href="a00235.html#ga166bc1c922bedbb7f655bd348ff2f97b">glm</a>
133 : <a class="el" href="a00234.html#ga166bc1c922bedbb7f655bd348ff2f97b">glm</a>
132134 </li>
133135 <li>mat2x4
134 : <a class="el" href="a00235.html#ga0c9a783f321486534bd3a2fd3701a374">glm</a>
136 : <a class="el" href="a00234.html#ga0c9a783f321486534bd3a2fd3701a374">glm</a>
135137 </li>
136138 <li>mat3
137 : <a class="el" href="a00235.html#ga6dd3ec98a548755676267e59142911f8">glm</a>
139 : <a class="el" href="a00234.html#ga6dd3ec98a548755676267e59142911f8">glm</a>
138140 </li>
139141 <li>mat3_cast()
140 : <a class="el" href="a00245.html#ga38702707009c743e9f304aadc25aeeeb">glm::gtc::quaternion</a>
142 : <a class="el" href="a00244.html#ga38702707009c743e9f304aadc25aeeeb">glm::gtc::quaternion</a>
141143 </li>
142144 <li>mat3x2
143 : <a class="el" href="a00235.html#ga839dac056fcbc087c6c161eb0d7fbe1b">glm</a>
145 : <a class="el" href="a00234.html#ga839dac056fcbc087c6c161eb0d7fbe1b">glm</a>
144146 </li>
145147 <li>mat3x3
146 : <a class="el" href="a00235.html#gaf188822f2db83067facc9fa922416ad9">glm</a>
148 : <a class="el" href="a00234.html#gaf188822f2db83067facc9fa922416ad9">glm</a>
147149 </li>
148150 <li>mat3x4
149 : <a class="el" href="a00235.html#ga70f8918f1c21ead733c8f089c09d353a">glm</a>
151 : <a class="el" href="a00234.html#ga70f8918f1c21ead733c8f089c09d353a">glm</a>
150152 </li>
151153 <li>mat4
152 : <a class="el" href="a00235.html#gade0eb47c01f79384a6f38017ede17446">glm</a>
154 : <a class="el" href="a00234.html#gade0eb47c01f79384a6f38017ede17446">glm</a>
153155 </li>
154156 <li>mat4_cast()
155 : <a class="el" href="a00245.html#gae2d14d52f9fef3da00cf867f9e2e3dfa">glm::gtc::quaternion</a>
156 , <a class="el" href="a00291.html#ga8759e2cf163948c9c7ff138c1f56d501">glm::gtx::simd_mat4</a>
157 : <a class="el" href="a00244.html#gae2d14d52f9fef3da00cf867f9e2e3dfa">glm::gtc::quaternion</a>
158 , <a class="el" href="a00290.html#ga8759e2cf163948c9c7ff138c1f56d501">glm::gtx::simd_mat4</a>
157159 </li>
158160 <li>mat4x2
159 : <a class="el" href="a00235.html#ga2c797007acc18027b65dad6e1f2d7b77">glm</a>
161 : <a class="el" href="a00234.html#ga2c797007acc18027b65dad6e1f2d7b77">glm</a>
160162 </li>
161163 <li>mat4x3
162 : <a class="el" href="a00235.html#ga73f97cdfb274c84ac7115b8e03c6b54a">glm</a>
164 : <a class="el" href="a00234.html#ga73f97cdfb274c84ac7115b8e03c6b54a">glm</a>
163165 </li>
164166 <li>mat4x4
165 : <a class="el" href="a00235.html#ga214f3d771188cb5b9ec6b5485ac082dc">glm</a>
167 : <a class="el" href="a00234.html#ga214f3d771188cb5b9ec6b5485ac082dc">glm</a>
166168 </li>
167169 <li>matrixCompMult()
168 : <a class="el" href="a00238.html#gad27896f9d5be202b8d39552eeb352c87">glm::core::function::matrix</a>
169 , <a class="el" href="a00291.html#ga5ae5a4950d3e354236390edfaa25301a">glm::gtx::simd_mat4</a>
170 : <a class="el" href="a00237.html#gad27896f9d5be202b8d39552eeb352c87">glm::core::function::matrix</a>
171 , <a class="el" href="a00290.html#ga5ae5a4950d3e354236390edfaa25301a">glm::gtx::simd_mat4</a>
170172 </li>
171173 <li>matrixCross3()
172 : <a class="el" href="a00270.html#gaa153d0f2600403c659a81a39b59b0f2c">glm::gtx::matrix_cross_product</a>
174 : <a class="el" href="a00269.html#gaa153d0f2600403c659a81a39b59b0f2c">glm::gtx::matrix_cross_product</a>
173175 </li>
174176 <li>matrixCross4()
175 : <a class="el" href="a00270.html#ga8cb94c98874b9b3deff5ad590e0cac23">glm::gtx::matrix_cross_product</a>
177 : <a class="el" href="a00269.html#ga8cb94c98874b9b3deff5ad590e0cac23">glm::gtx::matrix_cross_product</a>
176178 </li>
177179 <li>max()
178 : <a class="el" href="a00238.html#ga33a594380eeb7ac803c747298563d084">glm::core::function::common</a>
179 , <a class="el" href="a00292.html#ga10dbe289232abf23c8d668c646ff05d6">glm::gtx::simd_vec4</a>
180 : <a class="el" href="a00145.html#a60f960e757f8e07b105696ba1b43a3ba">glm</a>
181 , <a class="el" href="a00291.html#ga10dbe289232abf23c8d668c646ff05d6">glm::gtx::simd_vec4</a>
180182 </li>
181183 <li>mediump_float
182 : <a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">glm::core::type::precision</a>
184 : <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">glm::core::type::precision</a>
183185 </li>
184186 <li>mediump_imat2
185 : <a class="el" href="a00242.html#ga143ecf702b39ac7730009796b5d61b48">glm::gtc::matrix_integer</a>
187 : <a class="el" href="a00241.html#ga143ecf702b39ac7730009796b5d61b48">glm::gtc::matrix_integer</a>
186188 </li>
187189 <li>mediump_imat2x2
188 : <a class="el" href="a00242.html#ga14f7ebf70ea05156698a0cb403dff827">glm::gtc::matrix_integer</a>
190 : <a class="el" href="a00241.html#ga14f7ebf70ea05156698a0cb403dff827">glm::gtc::matrix_integer</a>
189191 </li>
190192 <li>mediump_imat2x3
191 : <a class="el" href="a00242.html#ga971f0d97d5aa82d96885b23132260bc5">glm::gtc::matrix_integer</a>
193 : <a class="el" href="a00241.html#ga971f0d97d5aa82d96885b23132260bc5">glm::gtc::matrix_integer</a>
192194 </li>
193195 <li>mediump_imat2x4
194 : <a class="el" href="a00242.html#gaa912743dd1649cdc2231ad08c7b3ad83">glm::gtc::matrix_integer</a>
196 : <a class="el" href="a00241.html#gaa912743dd1649cdc2231ad08c7b3ad83">glm::gtc::matrix_integer</a>
195197 </li>
196198 <li>mediump_imat3
197 : <a class="el" href="a00242.html#ga88879288540afc046b8dcf9574f39599">glm::gtc::matrix_integer</a>
199 : <a class="el" href="a00241.html#ga88879288540afc046b8dcf9574f39599">glm::gtc::matrix_integer</a>
198200 </li>
199201 <li>mediump_imat3x2
200 : <a class="el" href="a00242.html#ga846e335231d6d156ce1dff7ee8d247c0">glm::gtc::matrix_integer</a>
202 : <a class="el" href="a00241.html#ga846e335231d6d156ce1dff7ee8d247c0">glm::gtc::matrix_integer</a>
201203 </li>
202204 <li>mediump_imat3x3
203 : <a class="el" href="a00242.html#gae49f27a71c9643dc6e852d29de1a7337">glm::gtc::matrix_integer</a>
205 : <a class="el" href="a00241.html#gae49f27a71c9643dc6e852d29de1a7337">glm::gtc::matrix_integer</a>
204206 </li>
205207 <li>mediump_imat3x4
206 : <a class="el" href="a00242.html#ga5c32e78899b8ddc6d38a46a059dea62b">glm::gtc::matrix_integer</a>
208 : <a class="el" href="a00241.html#ga5c32e78899b8ddc6d38a46a059dea62b">glm::gtc::matrix_integer</a>
207209 </li>
208210 <li>mediump_imat4
209 : <a class="el" href="a00242.html#ga8f1cc05b68f13365c227d40cb52e6a6d">glm::gtc::matrix_integer</a>
211 : <a class="el" href="a00241.html#ga8f1cc05b68f13365c227d40cb52e6a6d">glm::gtc::matrix_integer</a>
210212 </li>
211213 <li>mediump_imat4x2
212 : <a class="el" href="a00242.html#gafa1f18250380f03bcdba92af051cf436">glm::gtc::matrix_integer</a>
214 : <a class="el" href="a00241.html#gafa1f18250380f03bcdba92af051cf436">glm::gtc::matrix_integer</a>
213215 </li>
214216 <li>mediump_imat4x3
215 : <a class="el" href="a00242.html#ga6ce6435a08574b6d53933bce0fb99aa9">glm::gtc::matrix_integer</a>
217 : <a class="el" href="a00241.html#ga6ce6435a08574b6d53933bce0fb99aa9">glm::gtc::matrix_integer</a>
216218 </li>
217219 <li>mediump_imat4x4
218 : <a class="el" href="a00242.html#gad548e325172bf111285d710e0aedada6">glm::gtc::matrix_integer</a>
220 : <a class="el" href="a00241.html#gad548e325172bf111285d710e0aedada6">glm::gtc::matrix_integer</a>
219221 </li>
220222 <li>mediump_int
221 : <a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">glm::core::type::precision</a>
223 : <a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">glm::core::type::precision</a>
224 </li>
225 <li>mediump_ivec1
226 : <a class="el" href="a00224.html#a9ee2fea9ceb3f51ca2ec46047bbd0203">glm::gtx::vector1::precision</a>
222227 </li>
223228 <li>mediump_ivec2
224 : <a class="el" href="a00236.html#ga269315792504783f450b829161f2bccf">glm::core::type::precision</a>
229 : <a class="el" href="a00235.html#ga269315792504783f450b829161f2bccf">glm::core::type::precision</a>
225230 </li>
226231 <li>mediump_ivec3
227 : <a class="el" href="a00236.html#ga1d8ae738ed79d71f8d381f472d366913">glm::core::type::precision</a>
232 : <a class="el" href="a00235.html#ga1d8ae738ed79d71f8d381f472d366913">glm::core::type::precision</a>
228233 </li>
229234 <li>mediump_ivec4
230 : <a class="el" href="a00236.html#ga5f624d3f93fa1a197ba767f9b1d6d7aa">glm::core::type::precision</a>
235 : <a class="el" href="a00235.html#ga5f624d3f93fa1a197ba767f9b1d6d7aa">glm::core::type::precision</a>
236 </li>
237 <li>mediump_mat2
238 : <a class="el" href="a00235.html#ga42f1426987103b15613671b323e90e5c">glm::core::type::precision</a>
231239 </li>
232240 <li>mediump_mat2x2
233 : <a class="el" href="a00236.html#gaa5970a6f98990c15b7a3be7cc7b79f4f">glm::core::type::precision</a>
241 : <a class="el" href="a00235.html#gaa5970a6f98990c15b7a3be7cc7b79f4f">glm::core::type::precision</a>
234242 </li>
235243 <li>mediump_mat2x3
236 : <a class="el" href="a00236.html#gacceeb5355767eb306c12ea961b31e808">glm::core::type::precision</a>
244 : <a class="el" href="a00235.html#gacceeb5355767eb306c12ea961b31e808">glm::core::type::precision</a>
237245 </li>
238246 <li>mediump_mat2x4
239247 : <a class="el" href="a00156.html#abbec32a495b527df1796bb46f8cce516">glm::core::type::precision</a>
240248 </li>
249 <li>mediump_mat3
250 : <a class="el" href="a00235.html#ga0957c911430959270e296b6abf1463c3">glm::core::type::precision</a>
251 </li>
241252 <li>mediump_mat3x2
242253 : <a class="el" href="a00156.html#a08c1cebbdb2cdfa0a62b23981db1c059">glm::core::type::precision</a>
243254 </li>
244255 <li>mediump_mat3x3
245 : <a class="el" href="a00236.html#ga76c68d8cad333d1f5ba1b20a40415cda">glm::core::type::precision</a>
256 : <a class="el" href="a00235.html#ga76c68d8cad333d1f5ba1b20a40415cda">glm::core::type::precision</a>
246257 </li>
247258 <li>mediump_mat3x4
248259 : <a class="el" href="a00156.html#a167125bb484e539a3c56f7b7aa0409f8">glm::core::type::precision</a>
249260 </li>
261 <li>mediump_mat4
262 : <a class="el" href="a00235.html#gabb71589a7fc80f6ca0c134efb878338d">glm::core::type::precision</a>
263 </li>
250264 <li>mediump_mat4x2
251 : <a class="el" href="a00236.html#ga31b1d523c1dc83c0ef9cded942950666">glm::core::type::precision</a>
265 : <a class="el" href="a00235.html#ga31b1d523c1dc83c0ef9cded942950666">glm::core::type::precision</a>
252266 </li>
253267 <li>mediump_mat4x3
254 : <a class="el" href="a00236.html#ga236d4c1060c1ce9908d3de61b3d9334e">glm::core::type::precision</a>
268 : <a class="el" href="a00235.html#ga236d4c1060c1ce9908d3de61b3d9334e">glm::core::type::precision</a>
255269 </li>
256270 <li>mediump_mat4x4
257 : <a class="el" href="a00236.html#gad0e848d34a6838e413a41018228ded41">glm::core::type::precision</a>
271 : <a class="el" href="a00235.html#gad0e848d34a6838e413a41018228ded41">glm::core::type::precision</a>
272 </li>
273 <li>mediump_quat
274 : <a class="el" href="a00244.html#gae93fe73ea5fe5e2150c2eb0641394dc8">glm::gtc::quaternion</a>
258275 </li>
259276 <li>mediump_uint
260 : <a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">glm::core::type::precision</a>
277 : <a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">glm::core::type::precision</a>
261278 </li>
262279 <li>mediump_umat2
263 : <a class="el" href="a00242.html#ga248ef3b18ce8e7974a1b04b9e10b0d70">glm::gtc::matrix_integer</a>
280 : <a class="el" href="a00241.html#ga248ef3b18ce8e7974a1b04b9e10b0d70">glm::gtc::matrix_integer</a>
264281 </li>
265282 <li>mediump_umat2x2
266 : <a class="el" href="a00242.html#ga4deef9aaf20528b594af15e0d8a8394a">glm::gtc::matrix_integer</a>
283 : <a class="el" href="a00241.html#ga4deef9aaf20528b594af15e0d8a8394a">glm::gtc::matrix_integer</a>
267284 </li>
268285 <li>mediump_umat2x3
269 : <a class="el" href="a00242.html#ga57dcd02ce5c008214d1ac033d62237f4">glm::gtc::matrix_integer</a>
286 : <a class="el" href="a00241.html#ga57dcd02ce5c008214d1ac033d62237f4">glm::gtc::matrix_integer</a>
270287 </li>
271288 <li>mediump_umat2x4
272 : <a class="el" href="a00242.html#gaa0005c075583fa42425573df59ae47b7">glm::gtc::matrix_integer</a>
289 : <a class="el" href="a00241.html#gaa0005c075583fa42425573df59ae47b7">glm::gtc::matrix_integer</a>
273290 </li>
274291 <li>mediump_umat3
275 : <a class="el" href="a00242.html#gaa802202181dac79e9dcd7848af5b57df">glm::gtc::matrix_integer</a>
292 : <a class="el" href="a00241.html#gaa802202181dac79e9dcd7848af5b57df">glm::gtc::matrix_integer</a>
276293 </li>
277294 <li>mediump_umat3x2
278 : <a class="el" href="a00242.html#gac65dc743ab57f960c9f77eb817a2b375">glm::gtc::matrix_integer</a>
295 : <a class="el" href="a00241.html#gac65dc743ab57f960c9f77eb817a2b375">glm::gtc::matrix_integer</a>
279296 </li>
280297 <li>mediump_umat3x3
281 : <a class="el" href="a00242.html#ga69d2278480a495af358ba198cdd708d1">glm::gtc::matrix_integer</a>
298 : <a class="el" href="a00241.html#ga69d2278480a495af358ba198cdd708d1">glm::gtc::matrix_integer</a>
282299 </li>
283300 <li>mediump_umat3x4
284 : <a class="el" href="a00242.html#ga65ed7a18729feae1ca61a8ab573fe5db">glm::gtc::matrix_integer</a>
301 : <a class="el" href="a00241.html#ga65ed7a18729feae1ca61a8ab573fe5db">glm::gtc::matrix_integer</a>
285302 </li>
286303 <li>mediump_umat4
287 : <a class="el" href="a00242.html#ga3981b8297512d35fe39413149e3f57ad">glm::gtc::matrix_integer</a>
304 : <a class="el" href="a00241.html#ga3981b8297512d35fe39413149e3f57ad">glm::gtc::matrix_integer</a>
288305 </li>
289306 <li>mediump_umat4x2
290 : <a class="el" href="a00242.html#gabab2363c9e7691ba23319174dd3b211e">glm::gtc::matrix_integer</a>
307 : <a class="el" href="a00241.html#gabab2363c9e7691ba23319174dd3b211e">glm::gtc::matrix_integer</a>
291308 </li>
292309 <li>mediump_umat4x3
293 : <a class="el" href="a00242.html#gaeb0dd2f67c17909a8747089bee0cf301">glm::gtc::matrix_integer</a>
310 : <a class="el" href="a00241.html#gaeb0dd2f67c17909a8747089bee0cf301">glm::gtc::matrix_integer</a>
294311 </li>
295312 <li>mediump_umat4x4
296 : <a class="el" href="a00242.html#gad8086f60b4190c4b567bded1d0fb4edb">glm::gtc::matrix_integer</a>
313 : <a class="el" href="a00241.html#gad8086f60b4190c4b567bded1d0fb4edb">glm::gtc::matrix_integer</a>
314 </li>
315 <li>mediump_uvec1
316 : <a class="el" href="a00224.html#a17b8da90f5d16810910a9c8429987cbc">glm::gtx::vector1::precision</a>
297317 </li>
298318 <li>mediump_uvec2
299 : <a class="el" href="a00236.html#ga5cd4f5f5667de09c7c12df85d138f599">glm::core::type::precision</a>
319 : <a class="el" href="a00235.html#ga5cd4f5f5667de09c7c12df85d138f599">glm::core::type::precision</a>
300320 </li>
301321 <li>mediump_uvec3
302 : <a class="el" href="a00236.html#ga70d49eff07e7988447c93a83f9f311b6">glm::core::type::precision</a>
322 : <a class="el" href="a00235.html#ga70d49eff07e7988447c93a83f9f311b6">glm::core::type::precision</a>
303323 </li>
304324 <li>mediump_uvec4
305 : <a class="el" href="a00236.html#ga4b2bc896ec01198bdc4f9dc896e5f06d">glm::core::type::precision</a>
325 : <a class="el" href="a00235.html#ga4b2bc896ec01198bdc4f9dc896e5f06d">glm::core::type::precision</a>
326 </li>
327 <li>mediump_vec1
328 : <a class="el" href="a00224.html#ada105899989019a13f333e271677ab52">glm::gtx::vector1::precision</a>
306329 </li>
307330 <li>mediump_vec2
308 : <a class="el" href="a00236.html#ga9a8a10fce5852b088dd631b34e942b7d">glm::core::type::precision</a>
331 : <a class="el" href="a00235.html#ga9a8a10fce5852b088dd631b34e942b7d">glm::core::type::precision</a>
309332 </li>
310333 <li>mediump_vec3
311 : <a class="el" href="a00236.html#gaf6aa71f085a150f42929a4b77458143e">glm::core::type::precision</a>
334 : <a class="el" href="a00235.html#gaf6aa71f085a150f42929a4b77458143e">glm::core::type::precision</a>
312335 </li>
313336 <li>mediump_vec4
314 : <a class="el" href="a00236.html#gafddaa69a1d46a27e2767b780e0e6b4b0">glm::core::type::precision</a>
337 : <a class="el" href="a00235.html#gafddaa69a1d46a27e2767b780e0e6b4b0">glm::core::type::precision</a>
315338 </li>
316339 <li>min()
317 : <a class="el" href="a00238.html#gacbc721d96bff24d97ed7989d35f27067">glm::core::function::common</a>
318 , <a class="el" href="a00292.html#gac8850ebd4ae655de76f375105cf7b3d8">glm::gtx::simd_vec4</a>
340 : <a class="el" href="a00145.html#a0fcafc1c8cd3961014e3f00d6a8a649e">glm</a>
341 , <a class="el" href="a00291.html#gac8850ebd4ae655de76f375105cf7b3d8">glm::gtx::simd_vec4</a>
319342 </li>
320343 <li>mirrorRepeat()
321 : <a class="el" href="a00302.html#gae158e6e90ba29f07f3fe590b3e9a077e">glm::gtx::wrap</a>
344 : <a class="el" href="a00301.html#gae158e6e90ba29f07f3fe590b3e9a077e">glm::gtx::wrap</a>
322345 </li>
323346 <li>mix()
324 : <a class="el" href="a00292.html#gafb120dd721c6b87f5f23c3edd159cfaa">glm::gtx::simd_vec4</a>
325 , <a class="el" href="a00245.html#ga99e0097254662e3d4d5859fa329762ca">glm::gtc::quaternion</a>
326 , <a class="el" href="a00238.html#ga11288dc43a2a1833766728a3eb81ac63">glm::core::function::common</a>
347 : <a class="el" href="a00145.html#aa0e50f7c66dbac1eb55e8ff6635f8cf1">glm</a>
348 , <a class="el" href="a00291.html#gafb120dd721c6b87f5f23c3edd159cfaa">glm::gtx::simd_vec4</a>
349 , <a class="el" href="a00244.html#ga7cacada583bca8e51e9c67f9cd7e69cb">glm::gtc::quaternion</a>
327350 </li>
328351 <li>mixedProduct()
329 : <a class="el" href="a00274.html#gacd91c1d0c25c158ab83965b98553970d">glm::gtx::mixed_product</a>
352 : <a class="el" href="a00273.html#gacd91c1d0c25c158ab83965b98553970d">glm::gtx::mixed_product</a>
330353 </li>
331354 <li>mod()
332 : <a class="el" href="a00292.html#gaba1f7a090566667c615a4a53c2f4a0c6">glm::gtx::simd_vec4</a>
333 , <a class="el" href="a00267.html#gaf48bc86895ab82c0e1f6f282d5cb6861">glm::gtx::integer</a>
334 , <a class="el" href="a00238.html#ga73fa91f6041b135083b0dea6e88c7aba">glm::core::function::common</a>
335 , <a class="el" href="a00292.html#gaf95a2c5c60a6f2a36911d32901e44aba">glm::gtx::simd_vec4</a>
336 , <a class="el" href="a00297.html#ga61b96cbe026915bfa3f471d7d1e8d0e7">glm::gtx::unsigned_int</a>
355 : <a class="el" href="a00291.html#gaba1f7a090566667c615a4a53c2f4a0c6">glm::gtx::simd_vec4</a>
356 , <a class="el" href="a00145.html#a37a51d5fed454a8e32168cab48510086">glm</a>
357 , <a class="el" href="a00266.html#gaf48bc86895ab82c0e1f6f282d5cb6861">glm::gtx::integer</a>
358 , <a class="el" href="a00291.html#gaf95a2c5c60a6f2a36911d32901e44aba">glm::gtx::simd_vec4</a>
359 , <a class="el" href="a00145.html#a43f85499b31f6bd4cfa7fca5f0762d53">glm</a>
360 , <a class="el" href="a00296.html#ga61b96cbe026915bfa3f471d7d1e8d0e7">glm::gtx::unsigned_int</a>
337361 </li>
338362 <li>modf()
339 : <a class="el" href="a00238.html#ga3f3cec79cc1542950cd4cddb7ab67584">glm::core::function::common</a>
363 : <a class="el" href="a00145.html#ae64aea185c3a5209716fb33bac274fe3">glm</a>
340364 </li>
341365 <li>mul()
342 : <a class="el" href="a00301.html#gac87bf44315f4f2b57ace7dc9eb2cf851">glm::gtx::verbose_operator</a>
366 : <a class="el" href="a00300.html#gac87bf44315f4f2b57ace7dc9eb2cf851">glm::gtx::verbose_operator</a>
343367 </li>
344368 </ul>
345369 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7476 : <a class="el" href="a00307.html#gafbc30acc96f02e05cdbce1c035304e89">glm::gtx::ulp</a>
7577 </li>
7678 <li>niceLength()
77 : <a class="el" href="a00292.html#ga97a71f5eed0feb541ea1131a46e4422e">glm::gtx::simd_vec4</a>
79 : <a class="el" href="a00291.html#ga97a71f5eed0feb541ea1131a46e4422e">glm::gtx::simd_vec4</a>
7880 </li>
7981 <li>niceLength4()
80 : <a class="el" href="a00292.html#ga159f5857abf0df4250bae94f95b9d015">glm::gtx::simd_vec4</a>
82 : <a class="el" href="a00291.html#ga159f5857abf0df4250bae94f95b9d015">glm::gtx::simd_vec4</a>
8183 </li>
8284 <li>niceSqrt()
83 : <a class="el" href="a00292.html#ga163877845325804cda05e8b5142822d5">glm::gtx::simd_vec4</a>
85 : <a class="el" href="a00291.html#ga163877845325804cda05e8b5142822d5">glm::gtx::simd_vec4</a>
8486 </li>
8587 <li>normalize()
86 : <a class="el" href="a00292.html#ga4e5cbc78bdd522b61ecd2154b50251af">glm::gtx::simd_vec4</a>
87 , <a class="el" href="a00238.html#ga07ff16965f11fa17122ac874ed492276">glm::core::function::geometric</a>
88 , <a class="el" href="a00245.html#gacca9518d4cb79922ccbcd2d01e886421">glm::gtc::quaternion</a>
88 : <a class="el" href="a00244.html#gacca9518d4cb79922ccbcd2d01e886421">glm::gtc::quaternion</a>
89 , <a class="el" href="a00291.html#ga4e5cbc78bdd522b61ecd2154b50251af">glm::gtx::simd_vec4</a>
8990 </li>
9091 <li>normalizeDot()
91 : <a class="el" href="a00278.html#ga71e52e38395048672c908861a3758b76">glm::gtx::normalize_dot</a>
92 : <a class="el" href="a00277.html#ga71e52e38395048672c908861a3758b76">glm::gtx::normalize_dot</a>
9293 </li>
9394 <li>normalizedRand2()
94 : <a class="el" href="a00287.html#ga5d05c63350546c1e7aa058bbf1b7f547">glm::gtx::random</a>
95 : <a class="el" href="a00286.html#ga5d05c63350546c1e7aa058bbf1b7f547">glm::gtx::random</a>
9596 </li>
9697 <li>normalizedRand3()
97 : <a class="el" href="a00287.html#ga4c732e0408a54bbd709e0c5906e3ecde">glm::gtx::random</a>
98 : <a class="el" href="a00286.html#ga4d7a132cc05433f7c4c8263797f9d5b4">glm::gtx::random</a>
9899 </li>
99100 <li>not_()
100 : <a class="el" href="a00238.html#gadb3248006580ee79ebb1d358bce25ca0">glm::core::function::vector_relational</a>
101 : <a class="el" href="a00145.html#ad6e2c2cb8a811dfcf0c29d515d463a66">glm</a>
101102 </li>
102103 <li>notEqual()
103 : <a class="el" href="a00238.html#ga62979ef5be1ad914f866074b900abdcd">glm::core::function::vector_relational</a>
104 : <a class="el" href="a00145.html#afa73db4ea5a8e4548eb7984a7dd6b690">glm</a>
104105 </li>
105106 <li>notEqualEpsilon()
106 : <a class="el" href="a00257.html#ga2f60f387fd69452ec68d5b38682d87b8">glm::gtx::epsilon</a>
107 : <a class="el" href="a00256.html#ga2f60f387fd69452ec68d5b38682d87b8">glm::gtx::epsilon</a>
107108 </li>
108109 </ul>
109110 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
7375 <li>orientate2()
74 : <a class="el" href="a00258.html#ga6b666a8d6dede8301520d023d0e96470">glm::gtx::euler_angles</a>
76 : <a class="el" href="a00257.html#ga6b666a8d6dede8301520d023d0e96470">glm::gtx::euler_angles</a>
7577 </li>
7678 <li>orientate3()
77 : <a class="el" href="a00258.html#gaabc9340ff9d773e8117f2bed0b1bcacd">glm::gtx::euler_angles</a>
79 : <a class="el" href="a00257.html#gaabc9340ff9d773e8117f2bed0b1bcacd">glm::gtx::euler_angles</a>
7880 </li>
7981 <li>orientate4()
80 : <a class="el" href="a00258.html#gac9b9ee10382d273e6f2497f0c34ba125">glm::gtx::euler_angles</a>
82 : <a class="el" href="a00257.html#gac9b9ee10382d273e6f2497f0c34ba125">glm::gtx::euler_angles</a>
8183 </li>
8284 <li>orientation()
83 : <a class="el" href="a00290.html#ga98e847d33908bb6e38273214671dbc25">glm::gtx::rotate_vector</a>
85 : <a class="el" href="a00289.html#gae3a2b116deb10aa573c9931c9ea3c258">glm::gtx::rotate_vector</a>
8486 </li>
8587 <li>orientedAngle()
86 : <a class="el" href="a00299.html#gae5ca5e80b176900509b0f12a6ca8b164">glm::gtx::vector_angle</a>
87 </li>
88 <li>orientedAngleFromRef()
89 : <a class="el" href="a00299.html#gad9f384cfa3b7879dc5926fad0023cce9">glm::gtx::vector_angle</a>
88 : <a class="el" href="a00298.html#ga4ac0ffd1ca09ae58ff79486240296663">glm::gtx::vector_angle</a>
9089 </li>
9190 <li>ortho()
92 : <a class="el" href="a00244.html#gad25e5b029ebefac5b657861378c17aa8">glm::gtc::matrix_transform</a>
91 : <a class="el" href="a00243.html#gad25e5b029ebefac5b657861378c17aa8">glm::gtc::matrix_transform</a>
9392 </li>
9493 <li>orthonormalize()
95 : <a class="el" href="a00282.html#ga6a15dbab7c2ac16b0a836cc267b2e3a3">glm::gtx::orthonormalize</a>
94 : <a class="el" href="a00281.html#ga6a15dbab7c2ac16b0a836cc267b2e3a3">glm::gtx::orthonormalize</a>
9695 </li>
9796 <li>outerProduct()
98 : <a class="el" href="a00291.html#gafed2233ac30495621c2bdd4d121f9ced">glm::gtx::simd_mat4</a>
99 , <a class="el" href="a00238.html#ga04b83f76e97124e8e91d923dd7ba326c">glm::core::function::matrix</a>
97 : <a class="el" href="a00290.html#gafed2233ac30495621c2bdd4d121f9ced">glm::gtx::simd_mat4</a>
98 , <a class="el" href="a00237.html#ga04b83f76e97124e8e91d923dd7ba326c">glm::core::function::matrix</a>
10099 </li>
101100 </ul>
102101 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
7375 <li>packDouble2x32()
74 : <a class="el" href="a00238.html#ga816867ca2fdb1bfb5d80d7a4f18a9e97">glm::core::function::packing</a>
76 : <a class="el" href="a00237.html#ga816867ca2fdb1bfb5d80d7a4f18a9e97">glm::core::function::packing</a>
7577 </li>
7678 <li>packSnorm4x8()
77 : <a class="el" href="a00238.html#ga3f82e6b12495d9751eee53facba475da">glm::core::function::packing</a>
79 : <a class="el" href="a00237.html#ga3f82e6b12495d9751eee53facba475da">glm::core::function::packing</a>
7880 </li>
7981 <li>packUnorm2x16()
80 : <a class="el" href="a00238.html#ga7fc17302ae69881bb792842d472e7a30">glm::core::function::packing</a>
82 : <a class="el" href="a00237.html#ga7fc17302ae69881bb792842d472e7a30">glm::core::function::packing</a>
8183 </li>
8284 <li>packUnorm4x8()
83 : <a class="el" href="a00238.html#gaf440e4e6c6be271327c5e2538e9c8b5f">glm::core::function::packing</a>
85 : <a class="el" href="a00237.html#gaf440e4e6c6be271327c5e2538e9c8b5f">glm::core::function::packing</a>
8486 </li>
8587 <li>perlin()
8688 : <a class="el" href="a00306.html#ga9de9e66368f398a09105fedeafbebb3e">glm::gtx::noise</a>
8789 </li>
8890 <li>perp()
89 : <a class="el" href="a00283.html#ga798c55f9dabedd2f7b9c691cb9751dab">glm::gtx::perpendicular</a>
91 : <a class="el" href="a00282.html#ga798c55f9dabedd2f7b9c691cb9751dab">glm::gtx::perpendicular</a>
9092 </li>
9193 <li>perspective()
92 : <a class="el" href="a00244.html#ga1bb3652e43f824d8c1dd5b9e60c80437">glm::gtc::matrix_transform</a>
94 : <a class="el" href="a00243.html#ga1bb3652e43f824d8c1dd5b9e60c80437">glm::gtc::matrix_transform</a>
9395 </li>
9496 <li>perspectiveFov()
95 : <a class="el" href="a00244.html#ga2d4fab691ace1abbffb3cdd4cc2316e9">glm::gtc::matrix_transform</a>
97 : <a class="el" href="a00243.html#ga2d4fab691ace1abbffb3cdd4cc2316e9">glm::gtc::matrix_transform</a>
9698 </li>
9799 <li>pickMatrix()
98 : <a class="el" href="a00244.html#ga9ebc45c333c8ec63c5047d6c1fcb9415">glm::gtc::matrix_transform</a>
100 : <a class="el" href="a00243.html#ga9ebc45c333c8ec63c5047d6c1fcb9415">glm::gtc::matrix_transform</a>
99101 </li>
100102 <li>pitch()
101 : <a class="el" href="a00286.html#gafad23e37f1723bbbbd7f9498cd729126">glm::gtx::quaternion</a>
103 : <a class="el" href="a00285.html#gafad23e37f1723bbbbd7f9498cd729126">glm::gtx::quaternion</a>
102104 </li>
103105 <li>polar()
104 : <a class="el" href="a00284.html#gab4f7bb55a54520917a592699bdb0b2f5">glm::gtx::polar_coordinates</a>
106 : <a class="el" href="a00283.html#gab4f7bb55a54520917a592699bdb0b2f5">glm::gtx::polar_coordinates</a>
105107 </li>
106108 <li>pow()
107 : <a class="el" href="a00267.html#gaf34adb6543aab76a364f40bb77dbaeb8">glm::gtx::integer</a>
108 , <a class="el" href="a00286.html#ga42873121534327c9e5238f3ca3d6cd03">glm::gtx::quaternion</a>
109 , <a class="el" href="a00297.html#ga9f8b197b576d9b2f0b5bfe63dc1f638f">glm::gtx::unsigned_int</a>
110 , <a class="el" href="a00238.html#ga8eb76dfbf0fed3397c0327915279f06f">glm::core::function::exponential</a>
109 : <a class="el" href="a00266.html#gaf34adb6543aab76a364f40bb77dbaeb8">glm::gtx::integer</a>
110 , <a class="el" href="a00285.html#ga42873121534327c9e5238f3ca3d6cd03">glm::gtx::quaternion</a>
111 , <a class="el" href="a00296.html#ga9f8b197b576d9b2f0b5bfe63dc1f638f">glm::gtx::unsigned_int</a>
112 , <a class="el" href="a00237.html#ga8eb76dfbf0fed3397c0327915279f06f">glm::core::function::exponential</a>
111113 </li>
112114 <li>pow2()
113 : <a class="el" href="a00281.html#gaed0305d69d3e3ba925d2c6e138b4f4bf">glm::gtx::optimum_pow</a>
115 : <a class="el" href="a00280.html#gaed0305d69d3e3ba925d2c6e138b4f4bf">glm::gtx::optimum_pow</a>
114116 </li>
115117 <li>pow3()
116 : <a class="el" href="a00281.html#ga8b7ca4439147682892326d3d61294f46">glm::gtx::optimum_pow</a>
118 : <a class="el" href="a00280.html#ga8b7ca4439147682892326d3d61294f46">glm::gtx::optimum_pow</a>
117119 </li>
118120 <li>pow4()
119 : <a class="el" href="a00281.html#gafe1d0d8f5f0501c4940ebb8ae76a1ebf">glm::gtx::optimum_pow</a>
121 : <a class="el" href="a00280.html#gafe1d0d8f5f0501c4940ebb8ae76a1ebf">glm::gtx::optimum_pow</a>
120122 </li>
121123 <li>powerOfTwoAbove()
122 : <a class="el" href="a00250.html#ga0a1683dffc58011a161c0b3cb867c93c">glm::gtx::bit</a>
124 : <a class="el" href="a00249.html#ga0a1683dffc58011a161c0b3cb867c93c">glm::gtx::bit</a>
123125 </li>
124126 <li>powerOfTwoBelow()
125 : <a class="el" href="a00250.html#ga9adeb3bc22e67933665600e0dc2e1f8d">glm::gtx::bit</a>
127 : <a class="el" href="a00249.html#ga9adeb3bc22e67933665600e0dc2e1f8d">glm::gtx::bit</a>
126128 </li>
127129 <li>powerOfTwoNearest()
128 : <a class="el" href="a00250.html#ga12d57451c94950bafe2e1fb57346f082">glm::gtx::bit</a>
130 : <a class="el" href="a00249.html#ga12d57451c94950bafe2e1fb57346f082">glm::gtx::bit</a>
129131 </li>
130132 <li>powOfTwo()
131 : <a class="el" href="a00281.html#gade3950ec7aa0f42e30ee40f8d7e451ae">glm::gtx::optimum_pow</a>
133 : <a class="el" href="a00280.html#gade3950ec7aa0f42e30ee40f8d7e451ae">glm::gtx::optimum_pow</a>
132134 </li>
133135 <li>prev_float()
134136 : <a class="el" href="a00307.html#ga5684a773c89402ea0c9fc71d17d2d54e">glm::gtx::ulp</a>
135137 </li>
136138 <li>proj()
137 : <a class="el" href="a00285.html#ga314c3fadce5d1a063c38da013ed20cde">glm::gtx::projection</a>
139 : <a class="el" href="a00284.html#ga314c3fadce5d1a063c38da013ed20cde">glm::gtx::projection</a>
138140 </li>
139141 <li>proj2D()
140 : <a class="el" href="a00296.html#gad67f97fe49fb1709d6d8b6810c7c52fb">glm::gtx::transform2</a>
142 : <a class="el" href="a00295.html#gad67f97fe49fb1709d6d8b6810c7c52fb">glm::gtx::transform2</a>
141143 </li>
142144 <li>proj3D()
143 : <a class="el" href="a00296.html#gabc160967cd323027f973976457590482">glm::gtx::transform2</a>
145 : <a class="el" href="a00295.html#gabc160967cd323027f973976457590482">glm::gtx::transform2</a>
144146 </li>
145147 <li>project()
146 : <a class="el" href="a00244.html#ga30e98d64189bae49582de8373de9f09f">glm::gtc::matrix_transform</a>
148 : <a class="el" href="a00243.html#ga30e98d64189bae49582de8373de9f09f">glm::gtc::matrix_transform</a>
147149 </li>
148150 </ul>
149151 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
7375 <li>quat
74 : <a class="el" href="a00245.html#ga60408579db470456070a3336295625a7">glm::gtc::quaternion</a>
76 : <a class="el" href="a00244.html#ga60408579db470456070a3336295625a7">glm::gtc::quaternion</a>
7577 </li>
7678 <li>quat_cast()
77 : <a class="el" href="a00245.html#ga9a8fa3c0a776ce21fde307d94f5a5a52">glm::gtc::quaternion</a>
79 : <a class="el" href="a00244.html#ga9a8fa3c0a776ce21fde307d94f5a5a52">glm::gtc::quaternion</a>
7880 </li>
7981 <li>qword
80 : <a class="el" href="a00288.html#gab7872fb6c3bcddc8658fe3209f04d275">glm::gtx::raw_data</a>
82 : <a class="el" href="a00287.html#gab7872fb6c3bcddc8658fe3209f04d275">glm::gtx::raw_data</a>
8183 </li>
8284 </ul>
8385 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
7375 <li>radians()
74 : <a class="el" href="a00238.html#ga40251a4a07049e7fdcbf155c3cc6d32a">glm::core::function::trigonometric</a>
76 : <a class="el" href="a00237.html#ga40251a4a07049e7fdcbf155c3cc6d32a">glm::core::function::trigonometric</a>
7577 </li>
7678 <li>reflect()
77 : <a class="el" href="a00238.html#ga2863d2331eb3752a5a17244c604c1d07">glm::core::function::geometric</a>
78 , <a class="el" href="a00292.html#ga42f1073cf493e7c299c72ae95180265d">glm::gtx::simd_vec4</a>
79 : <a class="el" href="a00291.html#ga42f1073cf493e7c299c72ae95180265d">glm::gtx::simd_vec4</a>
7980 </li>
8081 <li>refract()
81 : <a class="el" href="a00238.html#ga895392ad98499a450e2cc8579d76a84d">glm::core::function::geometric</a>
82 , <a class="el" href="a00292.html#ga894c3ec0524d03313dc9c72d36290c00">glm::gtx::simd_vec4</a>
82 : <a class="el" href="a00291.html#ga894c3ec0524d03313dc9c72d36290c00">glm::gtx::simd_vec4</a>
8383 </li>
8484 <li>repeat()
85 : <a class="el" href="a00302.html#ga3a80250939448f34862edddfb763e2ce">glm::gtx::wrap</a>
85 : <a class="el" href="a00301.html#ga3a80250939448f34862edddfb763e2ce">glm::gtx::wrap</a>
8686 </li>
8787 <li>rgb2YCoCg()
88 : <a class="el" href="a00254.html#ga41820be771f6edb66eec3d3376bae693">glm::gtx::color_space_YCoCg</a>
88 : <a class="el" href="a00253.html#ga41820be771f6edb66eec3d3376bae693">glm::gtx::color_space_YCoCg</a>
8989 </li>
9090 <li>rgb2YCoCgR()
91 : <a class="el" href="a00254.html#ga3c8d61f4ce259ce76b44fe70f472c766">glm::gtx::color_space_YCoCg</a>
91 : <a class="el" href="a00253.html#ga3c8d61f4ce259ce76b44fe70f472c766">glm::gtx::color_space_YCoCg</a>
9292 </li>
9393 <li>rgbColor()
94 : <a class="el" href="a00253.html#gaa84fde704746ed36b80df7bf521510c5">glm::gtx::color_space</a>
94 : <a class="el" href="a00252.html#gaa84fde704746ed36b80df7bf521510c5">glm::gtx::color_space</a>
9595 </li>
9696 <li>rightHanded()
97 : <a class="el" href="a00264.html#ga472eb0d6e9fcf9b503d3c1a74fdee645">glm::gtx::handed_coordinate_space</a>
97 : <a class="el" href="a00263.html#ga472eb0d6e9fcf9b503d3c1a74fdee645">glm::gtx::handed_coordinate_space</a>
9898 </li>
9999 <li>roll()
100 : <a class="el" href="a00286.html#ga60a4f955b2836d85f3d21ded84879926">glm::gtx::quaternion</a>
100 : <a class="el" href="a00285.html#ga60a4f955b2836d85f3d21ded84879926">glm::gtx::quaternion</a>
101101 </li>
102102 <li>rotate()
103 : <a class="el" href="a00290.html#ga916271935bb670e1a75797860af56ae0">glm::gtx::rotate_vector</a>
104 , <a class="el" href="a00295.html#ga6051e4c2205da027f721331b22f70d9d">glm::gtx::transform</a>
105 , <a class="el" href="a00244.html#ga48168ff70412019857ceb28b3b2b1f5e">glm::gtc::matrix_transform</a>
106 , <a class="el" href="a00245.html#ga98c5928aefea9c200a285a5f1c3a0da5">glm::gtc::quaternion</a>
107 , <a class="el" href="a00286.html#ga7f163c787898b76dc1d91eb48523ce87">glm::gtx::quaternion</a>
103 : <a class="el" href="a00289.html#gacbdc12006e75f857cf9ad07377499d6a">glm::gtx::rotate_vector</a>
104 , <a class="el" href="a00294.html#ga6051e4c2205da027f721331b22f70d9d">glm::gtx::transform</a>
105 , <a class="el" href="a00243.html#ga48168ff70412019857ceb28b3b2b1f5e">glm::gtc::matrix_transform</a>
106 , <a class="el" href="a00244.html#ga98c5928aefea9c200a285a5f1c3a0da5">glm::gtc::quaternion</a>
107 , <a class="el" href="a00285.html#ga7f163c787898b76dc1d91eb48523ce87">glm::gtx::quaternion</a>
108 , <a class="el" href="a00289.html#ga74ee9d3b702b3ddfc07478b86c89ce18">glm::gtx::rotate_vector</a>
108109 </li>
109110 <li>rotateX()
110 : <a class="el" href="a00290.html#ga1c732f02c6ac2ae68614baa28635be83">glm::gtx::rotate_vector</a>
111 : <a class="el" href="a00289.html#gabb24431b78204cb7852f0597f4514e6a">glm::gtx::rotate_vector</a>
111112 </li>
112113 <li>rotateY()
113 : <a class="el" href="a00290.html#gae2831fcaafe493b83b75f775cb9fe39e">glm::gtx::rotate_vector</a>
114 : <a class="el" href="a00289.html#ga6d4d0d7e78fc92f77e3e5474d46e703f">glm::gtx::rotate_vector</a>
114115 </li>
115116 <li>rotateZ()
116 : <a class="el" href="a00290.html#gafd0e0ce6a665978a3c72d31f0028d77d">glm::gtx::rotate_vector</a>
117 : <a class="el" href="a00289.html#ga3137076b99675a999459d52475a926e6">glm::gtx::rotate_vector</a>
117118 </li>
118119 <li>round()
119 : <a class="el" href="a00292.html#gad17e750a691edfe51fd1f60d8cac2329">glm::gtx::simd_vec4</a>
120 , <a class="el" href="a00238.html#gaa4cb0836cd9457ac6cedd3366333b16f">glm::core::function::common</a>
120 : <a class="el" href="a00291.html#gad17e750a691edfe51fd1f60d8cac2329">glm::gtx::simd_vec4</a>
121 , <a class="el" href="a00145.html#a76670d4897bcb1cf29956d48a5eb1841">glm</a>
121122 </li>
122123 <li>roundEven()
123 : <a class="el" href="a00238.html#ga656ce625ba1dc1d137bfc7cc7b2ab50b">glm::core::function::common</a>
124 : <a class="el" href="a00145.html#ab36c846a2b5c10ad70c45101c70893b7">glm</a>
124125 </li>
125126 <li>row()
126 : <a class="el" href="a00241.html#gab6684183e0e91181c960ce21efe1ce67">glm::gtc::matrix_access</a>
127 : <a class="el" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe">glm::gtc::matrix_access</a>
127128 </li>
128129 <li>rowMajor2()
129 : <a class="el" href="a00271.html#ga136490f7562fa59d7733e2664f8c9fbb">glm::gtx::matrix_major_storage</a>
130 : <a class="el" href="a00270.html#ga136490f7562fa59d7733e2664f8c9fbb">glm::gtx::matrix_major_storage</a>
130131 </li>
131132 <li>rowMajor3()
132 : <a class="el" href="a00271.html#ga276a9398b180d8028b4a73fb9e675a23">glm::gtx::matrix_major_storage</a>
133 : <a class="el" href="a00270.html#ga276a9398b180d8028b4a73fb9e675a23">glm::gtx::matrix_major_storage</a>
133134 </li>
134135 <li>rowMajor4()
135 : <a class="el" href="a00271.html#gab834e851140a115bad912ebac8335bc6">glm::gtx::matrix_major_storage</a>
136 : <a class="el" href="a00270.html#gae1d60e551ab2912d6bb32a999c65b932">glm::gtx::matrix_major_storage</a>
136137 </li>
137138 </ul>
138139 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
7375 <li>saturate()
74 : <a class="el" href="a00255.html#gaa2afedf17ac7da10d95f383ea6be3124">glm::gtx::compatibility</a>
76 : <a class="el" href="a00254.html#gaa2afedf17ac7da10d95f383ea6be3124">glm::gtx::compatibility</a>
7577 </li>
7678 <li>saturation()
77 : <a class="el" href="a00253.html#gade937a20e420b352d33cce2e92c6fe10">glm::gtx::color_space</a>
79 : <a class="el" href="a00252.html#gade937a20e420b352d33cce2e92c6fe10">glm::gtx::color_space</a>
7880 </li>
7981 <li>scale()
80 : <a class="el" href="a00244.html#ga6da77ee2c33d0d33de557a37ff35b197">glm::gtc::matrix_transform</a>
81 , <a class="el" href="a00295.html#ga491ec926cfd56184de78ce4594e004a0">glm::gtx::transform</a>
82 : <a class="el" href="a00243.html#ga6da77ee2c33d0d33de557a37ff35b197">glm::gtc::matrix_transform</a>
83 , <a class="el" href="a00294.html#ga491ec926cfd56184de78ce4594e004a0">glm::gtx::transform</a>
8284 </li>
8385 <li>scaleBias()
84 : <a class="el" href="a00296.html#gae193c4807264f8454b1786ceeac02455">glm::gtx::transform2</a>
86 : <a class="el" href="a00295.html#gae193c4807264f8454b1786ceeac02455">glm::gtx::transform2</a>
8587 </li>
8688 <li>sec()
87 : <a class="el" href="a00289.html#gace10a38c1888d5fe0f77c08ba1775b41">glm::gtx::reciprocal</a>
89 : <a class="el" href="a00288.html#gace10a38c1888d5fe0f77c08ba1775b41">glm::gtx::reciprocal</a>
8890 </li>
8991 <li>sech()
90 : <a class="el" href="a00289.html#ga3d6f2c8efdefcf326be500a565d48a29">glm::gtx::reciprocal</a>
92 : <a class="el" href="a00288.html#ga3d6f2c8efdefcf326be500a565d48a29">glm::gtx::reciprocal</a>
9193 </li>
9294 <li>set()
93 : <a class="el" href="a00298.html#ga97b820e01a1b136b670aaa01d0a634bf">glm::gtx::vector_access</a>
95 : <a class="el" href="a00297.html#ga97b820e01a1b136b670aaa01d0a634bf">glm::gtx::vector_access</a>
9496 </li>
9597 <li>shearX2D()
96 : <a class="el" href="a00296.html#gaf9900000ffffcb4e50f0f97101a35a27">glm::gtx::transform2</a>
98 : <a class="el" href="a00295.html#gaf9900000ffffcb4e50f0f97101a35a27">glm::gtx::transform2</a>
9799 </li>
98100 <li>shearX3D()
99 : <a class="el" href="a00296.html#ga8b165c7be525526861e19675cca6e192">glm::gtx::transform2</a>
101 : <a class="el" href="a00295.html#ga8b165c7be525526861e19675cca6e192">glm::gtx::transform2</a>
100102 </li>
101103 <li>shearY2D()
102 : <a class="el" href="a00296.html#ga73d1c5572f57bc69cd8296fa6411370a">glm::gtx::transform2</a>
104 : <a class="el" href="a00295.html#ga73d1c5572f57bc69cd8296fa6411370a">glm::gtx::transform2</a>
103105 </li>
104106 <li>shearY3D()
105 : <a class="el" href="a00296.html#gab059e40261cbfe782efb81aa866f1399">glm::gtx::transform2</a>
107 : <a class="el" href="a00295.html#gab059e40261cbfe782efb81aa866f1399">glm::gtx::transform2</a>
106108 </li>
107109 <li>shearZ3D()
108 : <a class="el" href="a00296.html#ga3fbd91d387fea4c3f2d74e0ef2250996">glm::gtx::transform2</a>
110 : <a class="el" href="a00295.html#ga3fbd91d387fea4c3f2d74e0ef2250996">glm::gtx::transform2</a>
109111 </li>
110112 <li>shortMix()
111 : <a class="el" href="a00286.html#ga22566896a998311431a0612e1c222002">glm::gtx::quaternion</a>
113 : <a class="el" href="a00285.html#ga22566896a998311431a0612e1c222002">glm::gtx::quaternion</a>
112114 </li>
113115 <li>sign()
114 : <a class="el" href="a00238.html#ga992a45e46af5dc123e688808d1bae48f">glm::core::function::common</a>
115 , <a class="el" href="a00292.html#ga5a32ecd67af075293c5c8278f2938d4d">glm::gtx::simd_vec4</a>
116 : <a class="el" href="a00145.html#a0b7728fc27b611270eada9f278051cb6">glm</a>
117 , <a class="el" href="a00291.html#ga5a32ecd67af075293c5c8278f2938d4d">glm::gtx::simd_vec4</a>
116118 </li>
117119 <li>signedRand1()
118 : <a class="el" href="a00287.html#ga8b6a21d90d07f7a655264009590ddcce">glm::gtx::random</a>
120 : <a class="el" href="a00286.html#ga8b6a21d90d07f7a655264009590ddcce">glm::gtx::random</a>
119121 </li>
120122 <li>signedRand2()
121 : <a class="el" href="a00287.html#ga65f615e428d1e4009cdf872d434d5267">glm::gtx::random</a>
123 : <a class="el" href="a00286.html#ga65f615e428d1e4009cdf872d434d5267">glm::gtx::random</a>
122124 </li>
123125 <li>signedRand3()
124 : <a class="el" href="a00287.html#gab3a7fc45bf10792e96e5bbc6aa3ff30b">glm::gtx::random</a>
126 : <a class="el" href="a00286.html#gab3a7fc45bf10792e96e5bbc6aa3ff30b">glm::gtx::random</a>
125127 </li>
126128 <li>signedRand4()
127 : <a class="el" href="a00287.html#ga917ac879bf910263d7af720d03342e8a">glm::gtx::random</a>
129 : <a class="el" href="a00286.html#ga917ac879bf910263d7af720d03342e8a">glm::gtx::random</a>
128130 </li>
129131 <li>simdDot()
130 : <a class="el" href="a00292.html#ga44faf22be31f5809ed97bf611a56f3e9">glm::gtx::simd_vec4</a>
132 : <a class="el" href="a00291.html#ga44faf22be31f5809ed97bf611a56f3e9">glm::gtx::simd_vec4</a>
131133 </li>
132134 <li>simdFaceforward()
133 : <a class="el" href="a00292.html#gac11cb08f6ba68f761b7146a60e72da55">glm::gtx::simd_vec4</a>
135 : <a class="el" href="a00291.html#gac11cb08f6ba68f761b7146a60e72da55">glm::gtx::simd_vec4</a>
134136 </li>
135137 <li>simplex()
136138 : <a class="el" href="a00306.html#gaab96cbe99e3757bb55c7d830462fab94">glm::gtx::noise</a>
137139 </li>
138140 <li>sin()
139 : <a class="el" href="a00238.html#gad246389321f46f7cb1cc422f9fd64cf4">glm::core::function::trigonometric</a>
141 : <a class="el" href="a00237.html#gad246389321f46f7cb1cc422f9fd64cf4">glm::core::function::trigonometric</a>
140142 </li>
141143 <li>sinh()
142 : <a class="el" href="a00238.html#ga13a63bc67a160b1614ba3681f57fe480">glm::core::function::trigonometric</a>
144 : <a class="el" href="a00237.html#ga13a63bc67a160b1614ba3681f57fe480">glm::core::function::trigonometric</a>
143145 </li>
144146 <li>sint
145 : <a class="el" href="a00297.html#gada7e83fdfe943aba4f1d5bf80cb66f40">glm::gtx::unsigned_int</a>
147 : <a class="el" href="a00296.html#gada7e83fdfe943aba4f1d5bf80cb66f40">glm::gtx::unsigned_int</a>
146148 </li>
147149 <li>smoothstep()
148 : <a class="el" href="a00238.html#gaec459c912160fa6d9c18acd52976bb4d">glm::core::function::common</a>
149 , <a class="el" href="a00292.html#gaeadaacf6c87b0699292de98b7140a278">glm::gtx::simd_vec4</a>
150 : <a class="el" href="a00145.html#a15314aa4f9d5db43a35367fb7c0ae50a">glm</a>
151 , <a class="el" href="a00291.html#gaeadaacf6c87b0699292de98b7140a278">glm::gtx::simd_vec4</a>
150152 </li>
151153 <li>sphereInertia3()
152 : <a class="el" href="a00265.html#gad3bcd1a2ac02d030f6b774f5692aee01">glm::gtx::inertia</a>
154 : <a class="el" href="a00264.html#gad3bcd1a2ac02d030f6b774f5692aee01">glm::gtx::inertia</a>
153155 </li>
154156 <li>sphereInertia4()
155 : <a class="el" href="a00265.html#ga3d50f9cd04751451b22d712f1ce26351">glm::gtx::inertia</a>
157 : <a class="el" href="a00264.html#ga3d50f9cd04751451b22d712f1ce26351">glm::gtx::inertia</a>
156158 </li>
157159 <li>sqrt()
158 : <a class="el" href="a00297.html#ga0fe1b8123e6661dda5969ee76a2b23df">glm::gtx::unsigned_int</a>
159 , <a class="el" href="a00267.html#gac6ee2be886e1f3be68adc5ee0552bad7">glm::gtx::integer</a>
160 , <a class="el" href="a00292.html#ga28dbd1d165fc4301de4fb16a049fcfb2">glm::gtx::simd_vec4</a>
161 , <a class="el" href="a00238.html#ga29d9d4ccbca8f2168ac6534fbb65cbad">glm::core::function::exponential</a>
160 : <a class="el" href="a00296.html#ga0fe1b8123e6661dda5969ee76a2b23df">glm::gtx::unsigned_int</a>
161 , <a class="el" href="a00266.html#gac6ee2be886e1f3be68adc5ee0552bad7">glm::gtx::integer</a>
162 , <a class="el" href="a00291.html#ga28dbd1d165fc4301de4fb16a049fcfb2">glm::gtx::simd_vec4</a>
163 , <a class="el" href="a00237.html#ga29d9d4ccbca8f2168ac6534fbb65cbad">glm::core::function::exponential</a>
162164 </li>
163165 <li>squad()
164 : <a class="el" href="a00286.html#ga203b736245b7519eb151ac46e0bf7f21">glm::gtx::quaternion</a>
166 : <a class="el" href="a00285.html#ga203b736245b7519eb151ac46e0bf7f21">glm::gtx::quaternion</a>
165167 </li>
166168 <li>step()
167 : <a class="el" href="a00292.html#ga459647604ac2aa0a97c4eb739a7302cb">glm::gtx::simd_vec4</a>
168 , <a class="el" href="a00238.html#gaf1c0aac0585f62db8db44e407478c434">glm::core::function::common</a>
169 : <a class="el" href="a00291.html#ga459647604ac2aa0a97c4eb739a7302cb">glm::gtx::simd_vec4</a>
170 , <a class="el" href="a00145.html#af2b4a76ca689c24fe70b2f9b97816502">glm</a>
169171 </li>
170172 <li>sub()
171 : <a class="el" href="a00301.html#gae0f130b059368ee8ef65522b0d434e7e">glm::gtx::verbose_operator</a>
173 : <a class="el" href="a00300.html#gae0f130b059368ee8ef65522b0d434e7e">glm::gtx::verbose_operator</a>
172174 </li>
173175 </ul>
174176 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072 <div class="textblock">Here is a list of all documented namespace members with links to the namespaces they belong to:</div>
7173
7274 <h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
75 <li>T
76 : <a class="el" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c">glm</a>
77 </li>
7378 <li>tan()
74 : <a class="el" href="a00238.html#ga1a556079a4fee8b5e12fcfe7551f6931">glm::core::function::trigonometric</a>
79 : <a class="el" href="a00237.html#ga1a556079a4fee8b5e12fcfe7551f6931">glm::core::function::trigonometric</a>
7580 </li>
7681 <li>tanh()
77 : <a class="el" href="a00238.html#gad93de1d635832bf722eb78a088bfbaa6">glm::core::function::trigonometric</a>
82 : <a class="el" href="a00237.html#gad93de1d635832bf722eb78a088bfbaa6">glm::core::function::trigonometric</a>
7883 </li>
7984 <li>to_string()
80 : <a class="el" href="a00294.html#ga9ab4dfc4ab5f29591638fb56d7752fff">glm::gtx::string_cast</a>
85 : <a class="el" href="a00293.html#ga9ab4dfc4ab5f29591638fb56d7752fff">glm::gtx::string_cast</a>
8186 </li>
8287 <li>toMat3()
83 : <a class="el" href="a00286.html#ga61ec971322157330116a3aefe5bae609">glm::gtx::quaternion</a>
88 : <a class="el" href="a00285.html#ga61ec971322157330116a3aefe5bae609">glm::gtx::quaternion</a>
8489 </li>
8590 <li>toMat4()
86 : <a class="el" href="a00286.html#ga80622343bd7ccf43c9b4cb677ba3ce38">glm::gtx::quaternion</a>
91 : <a class="el" href="a00285.html#ga80622343bd7ccf43c9b4cb677ba3ce38">glm::gtx::quaternion</a>
8792 </li>
8893 <li>toQuat()
89 : <a class="el" href="a00286.html#ga991e534718ab690ff21e201f27bfd43b">glm::gtx::quaternion</a>
94 : <a class="el" href="a00285.html#ga2d9d1916258d13bd5f0373341400f18c">glm::gtx::quaternion</a>
9095 </li>
9196 <li>translate()
92 : <a class="el" href="a00295.html#gac0a389d3a4a74010983db8bccab78d7f">glm::gtx::transform</a>
93 , <a class="el" href="a00244.html#ga4683c446c8432476750ade56f2537397">glm::gtc::matrix_transform</a>
94 , <a class="el" href="a00295.html#ga982331dbdf3a14d1ed6601e67178cff3">glm::gtx::transform</a>
97 : <a class="el" href="a00294.html#ga21cd332c98fa99eeeff42dc518a081d5">glm::gtx::transform</a>
98 , <a class="el" href="a00243.html#ga4683c446c8432476750ade56f2537397">glm::gtc::matrix_transform</a>
99 , <a class="el" href="a00294.html#ga982331dbdf3a14d1ed6601e67178cff3">glm::gtx::transform</a>
95100 </li>
96101 <li>transpose()
97 : <a class="el" href="a00291.html#ga5da402c7d42808dfc8c8d51e0ac9c868">glm::gtx::simd_mat4</a>
98 , <a class="el" href="a00238.html#ga8b1a22512f73b0176ad062d3d480e906">glm::core::function::matrix</a>
102 : <a class="el" href="a00237.html#ga8b1a22512f73b0176ad062d3d480e906">glm::core::function::matrix</a>
103 , <a class="el" href="a00290.html#ga5da402c7d42808dfc8c8d51e0ac9c868">glm::gtx::simd_mat4</a>
99104 </li>
100105 <li>triangleNormal()
101 : <a class="el" href="a00277.html#ga465b51d9e302c22572a656e657631310">glm::gtx::normal</a>
106 : <a class="el" href="a00276.html#ga465b51d9e302c22572a656e657631310">glm::gtx::normal</a>
102107 </li>
103108 <li>trunc()
104 : <a class="el" href="a00292.html#ga4733720fa96ed2125f15e4b96578f486">glm::gtx::simd_vec4</a>
105 , <a class="el" href="a00238.html#ga2303d814e83b34ee2d5f34fcff7fa275">glm::core::function::common</a>
109 : <a class="el" href="a00145.html#a658fa96882dd07b523c48c88bf73d59c">glm</a>
110 , <a class="el" href="a00291.html#ga4733720fa96ed2125f15e4b96578f486">glm::gtx::simd_vec4</a>
106111 </li>
107112 <li>tweakedInfinitePerspective()
108 : <a class="el" href="a00244.html#gac257959595078f003d6a0e4be6f9a2eb">glm::gtc::matrix_transform</a>
113 : <a class="el" href="a00243.html#gac257959595078f003d6a0e4be6f9a2eb">glm::gtc::matrix_transform</a>
109114 </li>
110115 </ul>
111116 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
7375 <li>u16
74 : <a class="el" href="a00246.html#ga91ec65f57d610f6902fd081f1d1e265a">glm::gtc::type_precision</a>
76 : <a class="el" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a">glm::gtc::type_precision</a>
7577 </li>
7678 <li>u16channel_cast()
77 : <a class="el" href="a00252.html#gab1c15b0a63939cf8b73704b3ee0531bf">glm::gtx::color_cast</a>
79 : <a class="el" href="a00251.html#gab1c15b0a63939cf8b73704b3ee0531bf">glm::gtx::color_cast</a>
7880 </li>
7981 <li>u16vec1
80 : <a class="el" href="a00279.html#ga52cc069a92e126c3a8dcde93424d2ef0">glm::gtx::number_precision</a>
82 : <a class="el" href="a00278.html#ga52cc069a92e126c3a8dcde93424d2ef0">glm::gtx::number_precision</a>
8183 </li>
8284 <li>u16vec2
83 : <a class="el" href="a00246.html#ga63f78111033fd19335588c549fcc0512">glm::gtc::type_precision</a>
85 : <a class="el" href="a00245.html#ga63f78111033fd19335588c549fcc0512">glm::gtc::type_precision</a>
8486 </li>
8587 <li>u16vec3
86 : <a class="el" href="a00246.html#ga53d4785d0f40c66bf58b315dd1122fe4">glm::gtc::type_precision</a>
88 : <a class="el" href="a00245.html#ga53d4785d0f40c66bf58b315dd1122fe4">glm::gtc::type_precision</a>
8789 </li>
8890 <li>u16vec4
89 : <a class="el" href="a00246.html#ga0331a2b68ce5f72a450f6d45c90f7709">glm::gtc::type_precision</a>
91 : <a class="el" href="a00245.html#ga0331a2b68ce5f72a450f6d45c90f7709">glm::gtc::type_precision</a>
9092 </li>
9193 <li>u32
92 : <a class="el" href="a00246.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">glm::gtc::type_precision</a>
94 : <a class="el" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">glm::gtc::type_precision</a>
9395 </li>
9496 <li>u32_abgr_cast()
95 : <a class="el" href="a00252.html#ga7419ad7d2b6280021d2e6fe61f959593">glm::gtx::color_cast</a>
97 : <a class="el" href="a00251.html#ga7419ad7d2b6280021d2e6fe61f959593">glm::gtx::color_cast</a>
9698 </li>
9799 <li>u32_argb_cast()
98 : <a class="el" href="a00252.html#ga54d650e121ffa7dd5df995f45eacbe7c">glm::gtx::color_cast</a>
100 : <a class="el" href="a00251.html#ga54d650e121ffa7dd5df995f45eacbe7c">glm::gtx::color_cast</a>
99101 </li>
100102 <li>u32_bgra_cast()
101 : <a class="el" href="a00252.html#ga994311f638751fbd6c18cbc6e7cc40a2">glm::gtx::color_cast</a>
103 : <a class="el" href="a00251.html#ga994311f638751fbd6c18cbc6e7cc40a2">glm::gtx::color_cast</a>
102104 </li>
103105 <li>u32_bgrx_cast()
104 : <a class="el" href="a00252.html#ga4343a2cc949e6a62e3195a50e03b328a">glm::gtx::color_cast</a>
106 : <a class="el" href="a00251.html#ga4343a2cc949e6a62e3195a50e03b328a">glm::gtx::color_cast</a>
105107 </li>
106108 <li>u32_rgba_cast()
107 : <a class="el" href="a00252.html#ga3251915cd4e12f9c74f80949dda11751">glm::gtx::color_cast</a>
109 : <a class="el" href="a00251.html#ga3251915cd4e12f9c74f80949dda11751">glm::gtx::color_cast</a>
108110 </li>
109111 <li>u32_rgbx_cast()
110 : <a class="el" href="a00252.html#ga76304a49860f623238edd96c9a181963">glm::gtx::color_cast</a>
112 : <a class="el" href="a00251.html#ga76304a49860f623238edd96c9a181963">glm::gtx::color_cast</a>
111113 </li>
112114 <li>u32_xbgr_cast()
113 : <a class="el" href="a00252.html#gae24be431c89259065ba614b12e130740">glm::gtx::color_cast</a>
115 : <a class="el" href="a00251.html#gae24be431c89259065ba614b12e130740">glm::gtx::color_cast</a>
114116 </li>
115117 <li>u32_xrgb_cast()
116 : <a class="el" href="a00252.html#gaeeb39141498fdaceb0eb7badd03b3111">glm::gtx::color_cast</a>
118 : <a class="el" href="a00251.html#gaeeb39141498fdaceb0eb7badd03b3111">glm::gtx::color_cast</a>
117119 </li>
118120 <li>u32vec1
119 : <a class="el" href="a00279.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">glm::gtx::number_precision</a>
121 : <a class="el" href="a00278.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">glm::gtx::number_precision</a>
120122 </li>
121123 <li>u32vec2
122 : <a class="el" href="a00246.html#gaae1d6aa5d86a2744294b97e05b623e29">glm::gtc::type_precision</a>
124 : <a class="el" href="a00245.html#gaae1d6aa5d86a2744294b97e05b623e29">glm::gtc::type_precision</a>
123125 </li>
124126 <li>u32vec3
125 : <a class="el" href="a00246.html#gae013bd205f900d8ac3d783e62c9fa294">glm::gtc::type_precision</a>
127 : <a class="el" href="a00245.html#gae013bd205f900d8ac3d783e62c9fa294">glm::gtc::type_precision</a>
126128 </li>
127129 <li>u32vec4
128 : <a class="el" href="a00246.html#gac61f03e72cbcace4582b0c11859f54c7">glm::gtc::type_precision</a>
130 : <a class="el" href="a00245.html#gac61f03e72cbcace4582b0c11859f54c7">glm::gtc::type_precision</a>
129131 </li>
130132 <li>u64
131 : <a class="el" href="a00246.html#ga02ecb7390e4c4515df2268d18f99abc0">glm::gtc::type_precision</a>
133 : <a class="el" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0">glm::gtc::type_precision</a>
132134 </li>
133135 <li>u64_abgr_cast()
134 : <a class="el" href="a00252.html#ga4f050b0db28ca10c503188070330a8c5">glm::gtx::color_cast</a>
136 : <a class="el" href="a00251.html#ga4f050b0db28ca10c503188070330a8c5">glm::gtx::color_cast</a>
135137 </li>
136138 <li>u64_argb_cast()
137 : <a class="el" href="a00252.html#gadbf0e161e934b6dc7fda389481764f4e">glm::gtx::color_cast</a>
139 : <a class="el" href="a00251.html#gadbf0e161e934b6dc7fda389481764f4e">glm::gtx::color_cast</a>
138140 </li>
139141 <li>u64_bgra_cast()
140 : <a class="el" href="a00252.html#ga36cc78b5052b31b83c2f9562088dc66f">glm::gtx::color_cast</a>
142 : <a class="el" href="a00251.html#ga36cc78b5052b31b83c2f9562088dc66f">glm::gtx::color_cast</a>
141143 </li>
142144 <li>u64_bgrx_cast()
143 : <a class="el" href="a00252.html#gae19e40c22424904d922e22525a0bb455">glm::gtx::color_cast</a>
145 : <a class="el" href="a00251.html#gae19e40c22424904d922e22525a0bb455">glm::gtx::color_cast</a>
144146 </li>
145147 <li>u64_rgba_cast()
146 : <a class="el" href="a00252.html#gafd8e66f86f3c42fe17637ca0db751d40">glm::gtx::color_cast</a>
148 : <a class="el" href="a00251.html#gafd8e66f86f3c42fe17637ca0db751d40">glm::gtx::color_cast</a>
147149 </li>
148150 <li>u64_rgbx_cast()
149 : <a class="el" href="a00252.html#gac6f16d71adbccd604cffae1c83961bba">glm::gtx::color_cast</a>
151 : <a class="el" href="a00251.html#gac6f16d71adbccd604cffae1c83961bba">glm::gtx::color_cast</a>
150152 </li>
151153 <li>u64_xbgr_cast()
152 : <a class="el" href="a00252.html#gac3327797af9858e7716cb02b9f8452bc">glm::gtx::color_cast</a>
154 : <a class="el" href="a00251.html#gac3327797af9858e7716cb02b9f8452bc">glm::gtx::color_cast</a>
153155 </li>
154156 <li>u64_xrgb_cast()
155 : <a class="el" href="a00252.html#ga4b860d9689ce434bef7ecdbb8cdbc4b4">glm::gtx::color_cast</a>
157 : <a class="el" href="a00251.html#ga4b860d9689ce434bef7ecdbb8cdbc4b4">glm::gtx::color_cast</a>
156158 </li>
157159 <li>u64vec1
158 : <a class="el" href="a00279.html#ga818de170e2584ab037130f2881925974">glm::gtx::number_precision</a>
160 : <a class="el" href="a00278.html#ga818de170e2584ab037130f2881925974">glm::gtx::number_precision</a>
159161 </li>
160162 <li>u64vec2
161 : <a class="el" href="a00246.html#ga98265c5d66ab4bf19f4242746233526c">glm::gtc::type_precision</a>
163 : <a class="el" href="a00245.html#ga98265c5d66ab4bf19f4242746233526c">glm::gtc::type_precision</a>
162164 </li>
163165 <li>u64vec3
164 : <a class="el" href="a00246.html#ga470cfa496aae49e63c5becee347651a1">glm::gtc::type_precision</a>
166 : <a class="el" href="a00245.html#ga470cfa496aae49e63c5becee347651a1">glm::gtc::type_precision</a>
165167 </li>
166168 <li>u64vec4
167 : <a class="el" href="a00246.html#ga34a421d3df867266c9437dc00897edeb">glm::gtc::type_precision</a>
169 : <a class="el" href="a00245.html#ga34a421d3df867266c9437dc00897edeb">glm::gtc::type_precision</a>
168170 </li>
169171 <li>u8
170 : <a class="el" href="a00246.html#gad8d9dbef83392da434801486bf814fe4">glm::gtc::type_precision</a>
172 : <a class="el" href="a00245.html#gad8d9dbef83392da434801486bf814fe4">glm::gtc::type_precision</a>
171173 </li>
172174 <li>u8channel_cast()
173 : <a class="el" href="a00252.html#gab11ba0a450ba9a2b3885fa6a631df6f5">glm::gtx::color_cast</a>
175 : <a class="el" href="a00251.html#gab11ba0a450ba9a2b3885fa6a631df6f5">glm::gtx::color_cast</a>
174176 </li>
175177 <li>u8vec1
176 : <a class="el" href="a00279.html#ga5853fe457f4c8a6bc09343d0e9833980">glm::gtx::number_precision</a>
178 : <a class="el" href="a00278.html#ga5853fe457f4c8a6bc09343d0e9833980">glm::gtx::number_precision</a>
177179 </li>
178180 <li>u8vec2
179 : <a class="el" href="a00246.html#ga8f78a1ea21be24a89da31928fc037bfd">glm::gtc::type_precision</a>
181 : <a class="el" href="a00245.html#ga8f78a1ea21be24a89da31928fc037bfd">glm::gtc::type_precision</a>
180182 </li>
181183 <li>u8vec3
182 : <a class="el" href="a00246.html#ga7a4cb62a556ad09c7e0721aecac64dbd">glm::gtc::type_precision</a>
184 : <a class="el" href="a00245.html#ga7a4cb62a556ad09c7e0721aecac64dbd">glm::gtc::type_precision</a>
183185 </li>
184186 <li>u8vec4
185 : <a class="el" href="a00246.html#ga83091381b9b909057004c4de7896d072">glm::gtc::type_precision</a>
187 : <a class="el" href="a00245.html#ga83091381b9b909057004c4de7896d072">glm::gtc::type_precision</a>
186188 </li>
187189 <li>uaddCarry()
188 : <a class="el" href="a00238.html#ga8d63fd56743cc93286f09742baed4002">glm::core::function::integer</a>
190 : <a class="el" href="a00237.html#ga8d63fd56743cc93286f09742baed4002">glm::core::function::integer</a>
189191 </li>
190192 <li>uint
191193 : <a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">glm::core::type</a>
192194 </li>
193195 <li>uint10_10_10_2_cast()
194 : <a class="el" href="a00266.html#ga01b292ff461ea3d8e90a916c5b374fb1">glm::gtx::int_10_10_10_2</a>
196 : <a class="el" href="a00265.html#ga01b292ff461ea3d8e90a916c5b374fb1">glm::gtx::int_10_10_10_2</a>
195197 </li>
196198 <li>uint16
197 : <a class="el" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d">glm::gtc::type_precision</a>
199 : <a class="el" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d">glm::gtc::type_precision</a>
198200 </li>
199201 <li>uint32
200 : <a class="el" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d">glm::gtc::type_precision</a>
202 : <a class="el" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d">glm::gtc::type_precision</a>
201203 </li>
202204 <li>uint64
203 : <a class="el" href="a00246.html#gab630f76c26b50298187f7889104d4b9c">glm::gtc::type_precision</a>
205 : <a class="el" href="a00245.html#gab630f76c26b50298187f7889104d4b9c">glm::gtc::type_precision</a>
204206 </li>
205207 <li>uint8
206 : <a class="el" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865">glm::gtc::type_precision</a>
208 : <a class="el" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865">glm::gtc::type_precision</a>
207209 </li>
208210 <li>uintBitsToFloat()
209 : <a class="el" href="a00238.html#ga1a38039b00f182b6b22e909ea5a87bab">glm::core::function::common</a>
211 : <a class="el" href="a00145.html#a74b00f232062a3de845fdf3e24312196">glm</a>
210212 </li>
211213 <li>umat2
212 : <a class="el" href="a00242.html#ga4cae85566f900debf930c41944b64691">glm::gtc::matrix_integer</a>
214 : <a class="el" href="a00241.html#ga4cae85566f900debf930c41944b64691">glm::gtc::matrix_integer</a>
213215 </li>
214216 <li>umat2x2
215 : <a class="el" href="a00242.html#gabf8acdd33ce8951051edbca5200898aa">glm::gtc::matrix_integer</a>
217 : <a class="el" href="a00241.html#gabf8acdd33ce8951051edbca5200898aa">glm::gtc::matrix_integer</a>
216218 </li>
217219 <li>umat2x3
218 : <a class="el" href="a00242.html#ga1870da7578d5022b973a83155d386ab3">glm::gtc::matrix_integer</a>
220 : <a class="el" href="a00241.html#ga1870da7578d5022b973a83155d386ab3">glm::gtc::matrix_integer</a>
219221 </li>
220222 <li>umat2x4
221 : <a class="el" href="a00242.html#ga57936a3998e992370e59a223e0ee4fd4">glm::gtc::matrix_integer</a>
223 : <a class="el" href="a00241.html#ga57936a3998e992370e59a223e0ee4fd4">glm::gtc::matrix_integer</a>
222224 </li>
223225 <li>umat3
224 : <a class="el" href="a00242.html#ga5085e3ff02abbac5e537eb7b89ab63b6">glm::gtc::matrix_integer</a>
226 : <a class="el" href="a00241.html#ga5085e3ff02abbac5e537eb7b89ab63b6">glm::gtc::matrix_integer</a>
225227 </li>
226228 <li>umat3x2
227 : <a class="el" href="a00242.html#ga9cd7fa637a4a6788337f45231fad9e1a">glm::gtc::matrix_integer</a>
229 : <a class="el" href="a00241.html#ga9cd7fa637a4a6788337f45231fad9e1a">glm::gtc::matrix_integer</a>
228230 </li>
229231 <li>umat3x3
230 : <a class="el" href="a00242.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">glm::gtc::matrix_integer</a>
232 : <a class="el" href="a00241.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">glm::gtc::matrix_integer</a>
231233 </li>
232234 <li>umat3x4
233 : <a class="el" href="a00242.html#gae7c78ff3fc4309605ab0fa186c8d48ba">glm::gtc::matrix_integer</a>
235 : <a class="el" href="a00241.html#gae7c78ff3fc4309605ab0fa186c8d48ba">glm::gtc::matrix_integer</a>
234236 </li>
235237 <li>umat4
236 : <a class="el" href="a00242.html#ga38bc7bb6494e344185df596deeb4544c">glm::gtc::matrix_integer</a>
238 : <a class="el" href="a00241.html#ga38bc7bb6494e344185df596deeb4544c">glm::gtc::matrix_integer</a>
237239 </li>
238240 <li>umat4x2
239 : <a class="el" href="a00242.html#ga70fa2d05896aa83cbc8c07672a429b53">glm::gtc::matrix_integer</a>
241 : <a class="el" href="a00241.html#ga70fa2d05896aa83cbc8c07672a429b53">glm::gtc::matrix_integer</a>
240242 </li>
241243 <li>umat4x3
242 : <a class="el" href="a00242.html#ga87581417945411f75cb31dd6ca1dba98">glm::gtc::matrix_integer</a>
244 : <a class="el" href="a00241.html#ga87581417945411f75cb31dd6ca1dba98">glm::gtc::matrix_integer</a>
243245 </li>
244246 <li>umat4x4
245 : <a class="el" href="a00242.html#gaf72e6d399c42985db6872c50f53d7eb8">glm::gtc::matrix_integer</a>
247 : <a class="el" href="a00241.html#gaf72e6d399c42985db6872c50f53d7eb8">glm::gtc::matrix_integer</a>
246248 </li>
247249 <li>umulExtended()
248 : <a class="el" href="a00238.html#gad9b60d1c7e161b78682b7f8b071e213e">glm::core::function::integer</a>
250 : <a class="el" href="a00237.html#gad9b60d1c7e161b78682b7f8b071e213e">glm::core::function::integer</a>
249251 </li>
250252 <li>unpackDouble2x32()
251 : <a class="el" href="a00238.html#ga4e80ba8eaef0b878ecb43053a4df9ff7">glm::core::function::packing</a>
253 : <a class="el" href="a00237.html#ga4e80ba8eaef0b878ecb43053a4df9ff7">glm::core::function::packing</a>
252254 </li>
253255 <li>unpackSnorm4x8()
254 : <a class="el" href="a00238.html#ga03dafa00be8359e3a028aed81ae6007e">glm::core::function::packing</a>
256 : <a class="el" href="a00237.html#ga03dafa00be8359e3a028aed81ae6007e">glm::core::function::packing</a>
255257 </li>
256258 <li>unpackUnorm2x16()
257 : <a class="el" href="a00238.html#gab3745178db4024212c4d7cb3df9a6f39">glm::core::function::packing</a>
259 : <a class="el" href="a00237.html#gab3745178db4024212c4d7cb3df9a6f39">glm::core::function::packing</a>
258260 </li>
259261 <li>unpackUnorm4x8()
260 : <a class="el" href="a00238.html#ga11630d2b293d96452c412639ec3c942e">glm::core::function::packing</a>
262 : <a class="el" href="a00237.html#ga11630d2b293d96452c412639ec3c942e">glm::core::function::packing</a>
261263 </li>
262264 <li>unProject()
263 : <a class="el" href="a00244.html#gac38d611231b15799a0c06c54ff1ede43">glm::gtc::matrix_transform</a>
265 : <a class="el" href="a00243.html#gac38d611231b15799a0c06c54ff1ede43">glm::gtc::matrix_transform</a>
264266 </li>
265267 <li>usubBorrow()
266 : <a class="el" href="a00238.html#ga5ea2ea51e7cf73056069ce7583d61560">glm::core::function::integer</a>
267 </li>
268 <li>uvec1
269 : <a class="el" href="a00223.html#a3e65e37bdbada1e13e0c66883bb449eb">glm::gtx::vector1</a>
268 : <a class="el" href="a00237.html#ga5ea2ea51e7cf73056069ce7583d61560">glm::core::function::integer</a>
270269 </li>
271270 <li>uvec2
272 : <a class="el" href="a00235.html#ga3fae7e520beaa9bca6625b98d782f47e">glm</a>
271 : <a class="el" href="a00234.html#ga3fae7e520beaa9bca6625b98d782f47e">glm</a>
273272 </li>
274273 <li>uvec3
275 : <a class="el" href="a00235.html#ga48a100077cb128b9c790c71ac1d1d7d2">glm</a>
274 : <a class="el" href="a00234.html#ga48a100077cb128b9c790c71ac1d1d7d2">glm</a>
276275 </li>
277276 <li>uvec4
278 : <a class="el" href="a00235.html#gafbb266d616ea71ad5099994980f8651d">glm</a>
277 : <a class="el" href="a00234.html#gafbb266d616ea71ad5099994980f8651d">glm</a>
279278 </li>
280279 </ul>
281280 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
7375 <li>value_ptr()
74 : <a class="el" href="a00247.html#gac21518f95a134dbe3c61460c89264b08">glm::gtc::type_ptr</a>
75 </li>
76 <li>vec1
77 : <a class="el" href="a00223.html#ac60e77a28be159c8f883242b991dd5fb">glm::gtx::vector1</a>
76 : <a class="el" href="a00246.html#gac21518f95a134dbe3c61460c89264b08">glm::gtc::type_ptr</a>
7877 </li>
7978 <li>vec3
80 : <a class="el" href="a00235.html#gac422c7058a7c9963b55ad70764c62752">glm</a>
79 : <a class="el" href="a00234.html#gac422c7058a7c9963b55ad70764c62752">glm</a>
8180 </li>
8281 <li>vec4
83 : <a class="el" href="a00235.html#ga8fad5ffc01ba6dea689f2a38bf30bda4">glm</a>
82 : <a class="el" href="a00234.html#ga8fad5ffc01ba6dea689f2a38bf30bda4">glm</a>
8483 </li>
8584 <li>vec4_cast()
86 : <a class="el" href="a00292.html#gaf44c64b2f9e70746b8a83571812670fc">glm::gtx::simd_vec4</a>
85 : <a class="el" href="a00291.html#gaf44c64b2f9e70746b8a83571812670fc">glm::gtx::simd_vec4</a>
8786 </li>
8887 <li>vecRand2()
89 : <a class="el" href="a00287.html#ga12d03cc32f213b4173e58f05d74232b3">glm::gtx::random</a>
88 : <a class="el" href="a00286.html#ga12d03cc32f213b4173e58f05d74232b3">glm::gtx::random</a>
9089 </li>
9190 <li>vecRand3()
92 : <a class="el" href="a00287.html#ga4e2bc1fdcc9bbb6292b858d50d467393">glm::gtx::random</a>
91 : <a class="el" href="a00286.html#ga4e2bc1fdcc9bbb6292b858d50d467393">glm::gtx::random</a>
9392 </li>
9493 <li>vecRand4()
95 : <a class="el" href="a00287.html#gafa1635f3e6a4db81474e4002f9f3e64b">glm::gtx::random</a>
94 : <a class="el" href="a00286.html#gafa1635f3e6a4db81474e4002f9f3e64b">glm::gtx::random</a>
9695 </li>
9796 </ul>
9897 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
7375 <li>word
74 : <a class="el" href="a00288.html#ga9599d4794d33c5d5d07675b5250b74bd">glm::gtx::raw_data</a>
76 : <a class="el" href="a00287.html#ga9599d4794d33c5d5d07675b5250b74bd">glm::gtx::raw_data</a>
7577 </li>
7678 </ul>
7779 </div>
3737 <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7173
7274 <h3><a class="anchor" id="index_y"></a>- y -</h3><ul>
7375 <li>yaw()
74 : <a class="el" href="a00286.html#ga4795f1cc522d82d672f7be9a405583c4">glm::gtx::quaternion</a>
76 : <a class="el" href="a00285.html#ga4795f1cc522d82d672f7be9a405583c4">glm::gtx::quaternion</a>
7577 </li>
7678 <li>yawPitchRoll()
77 : <a class="el" href="a00258.html#gab21847188e03d21037f895642252dcc7">glm::gtx::euler_angles</a>
79 : <a class="el" href="a00257.html#gab21847188e03d21037f895642252dcc7">glm::gtx::euler_angles</a>
7880 </li>
7981 <li>YCoCg2rgb()
80 : <a class="el" href="a00254.html#ga638451b1492ea464bcda5d1abb0db614">glm::gtx::color_space_YCoCg</a>
82 : <a class="el" href="a00253.html#ga638451b1492ea464bcda5d1abb0db614">glm::gtx::color_space_YCoCg</a>
8183 </li>
8284 <li>YCoCgR2rgb()
83 : <a class="el" href="a00254.html#ga75497f0965bd4834d39a88c10dee12c4">glm::gtx::color_space_YCoCg</a>
85 : <a class="el" href="a00253.html#ga75497f0965bd4834d39a88c10dee12c4">glm::gtx::color_space_YCoCg</a>
8486 </li>
8587 </ul>
8688 </div>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>Namespace Members</title>
5 <link href="tabs.css" rel="stylesheet" type="text/css"/>
6 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
7 </head>
8 <body>
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td id="projectlogo"><img alt="Logo" src="logo-mini.png"></td>
16 </tr>
17 </tbody>
18 </table>
19 </div>
20 <div id="navrow1" class="tabs">
21 <ul class="tablist">
22 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
23 <li><a href="modules.html"><span>Modules</span></a></li>
24 <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
25 <li><a href="annotated.html"><span>Classes</span></a></li>
26 <li><a href="files.html"><span>Files</span></a></li>
27 </ul>
28 </div>
29 <div id="navrow2" class="tabs2">
30 <ul class="tablist">
31 <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
32 <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
33 </ul>
34 </div>
35 <div id="navrow3" class="tabs2">
36 <ul class="tablist">
37 <li><a href="namespacemembers.html"><span>All</span></a></li>
38 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
39 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li class="current"><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
42 </ul>
43 </div>
44 </div>
45 <div class="contents">
46 &#160;<ul>
47 <li>comp
48 : <a class="el" href="a00145.html#a50b69e8e55167990c85f65e0a656e294">glm</a>
49 </li>
50 </ul>
51 </div>
52 <hr class="footer"/><address class="footer"><small>Generated by&#160;
53 <a href="http://www.doxygen.org/index.html">
54 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
55 </body>
56 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>Namespace Members</title>
5 <link href="tabs.css" rel="stylesheet" type="text/css"/>
6 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
7 </head>
8 <body>
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td id="projectlogo"><img alt="Logo" src="logo-mini.png"></td>
16 </tr>
17 </tbody>
18 </table>
19 </div>
20 <div id="navrow1" class="tabs">
21 <ul class="tablist">
22 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
23 <li><a href="modules.html"><span>Modules</span></a></li>
24 <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
25 <li><a href="annotated.html"><span>Classes</span></a></li>
26 <li><a href="files.html"><span>Files</span></a></li>
27 </ul>
28 </div>
29 <div id="navrow2" class="tabs2">
30 <ul class="tablist">
31 <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
32 <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
33 </ul>
34 </div>
35 <div id="navrow3" class="tabs2">
36 <ul class="tablist">
37 <li><a href="namespacemembers.html"><span>All</span></a></li>
38 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
39 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li class="current"><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
42 </ul>
43 </div>
44 </div>
45 <div class="contents">
46 &#160;<ul>
47 <li>T
48 : <a class="el" href="a00145.html#a50b69e8e55167990c85f65e0a656e294a29b0a4bf623fe1ef7e2c7acca944640c">glm</a>
49 </li>
50 </ul>
51 </div>
52 <hr class="footer"/><address class="footer"><small>Generated by&#160;
53 <a href="http://www.doxygen.org/index.html">
54 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
55 </body>
56 </html>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
7274 <li>abs()
73 : <a class="el" href="a00238.html#ga5206aa60ce61ad1d7d1b53d5028c7a2a">glm::core::function::common</a>
74 , <a class="el" href="a00292.html#ga427e341830f94e41ece21ea4ebc854c3">glm::gtx::simd_vec4</a>
75 : <a class="el" href="a00291.html#ga427e341830f94e41ece21ea4ebc854c3">glm::gtx::simd_vec4</a>
7576 </li>
7677 <li>acos()
77 : <a class="el" href="a00238.html#ga52a4b4cbe6d47f94d06ee1efd95786e6">glm::core::function::trigonometric</a>
78 : <a class="el" href="a00237.html#ga52a4b4cbe6d47f94d06ee1efd95786e6">glm::core::function::trigonometric</a>
7879 </li>
7980 <li>acosh()
80 : <a class="el" href="a00238.html#ga7c8d8ac539a43da0d41e656a38262ff0">glm::core::function::trigonometric</a>
81 : <a class="el" href="a00237.html#ga7c8d8ac539a43da0d41e656a38262ff0">glm::core::function::trigonometric</a>
8182 </li>
8283 <li>acot()
83 : <a class="el" href="a00289.html#gad8b3e1d0a99ffb209157baa47370e684">glm::gtx::reciprocal</a>
84 : <a class="el" href="a00288.html#gad8b3e1d0a99ffb209157baa47370e684">glm::gtx::reciprocal</a>
8485 </li>
8586 <li>acoth()
86 : <a class="el" href="a00289.html#gabef15ad1a12c56d39cee1afb251d9086">glm::gtx::reciprocal</a>
87 : <a class="el" href="a00288.html#gabef15ad1a12c56d39cee1afb251d9086">glm::gtx::reciprocal</a>
8788 </li>
8889 <li>acsc()
89 : <a class="el" href="a00289.html#gacc31bf591741480d2cde587b598badf7">glm::gtx::reciprocal</a>
90 : <a class="el" href="a00288.html#gacc31bf591741480d2cde587b598badf7">glm::gtx::reciprocal</a>
9091 </li>
9192 <li>acsch()
92 : <a class="el" href="a00289.html#ga33970e21bf86b28fcb1079a656a6aa97">glm::gtx::reciprocal</a>
93 : <a class="el" href="a00288.html#ga33970e21bf86b28fcb1079a656a6aa97">glm::gtx::reciprocal</a>
9394 </li>
9495 <li>add()
95 : <a class="el" href="a00301.html#ga43dc29338ef121abd4a47c93dcd822f7">glm::gtx::verbose_operator</a>
96 : <a class="el" href="a00300.html#ga43dc29338ef121abd4a47c93dcd822f7">glm::gtx::verbose_operator</a>
9697 </li>
9798 <li>affineInverse()
98 : <a class="el" href="a00243.html#gade90330b2e6ef1b27371498cab1c38da">glm::gtc::matrix_inverse</a>
99 : <a class="el" href="a00242.html#gade90330b2e6ef1b27371498cab1c38da">glm::gtc::matrix_inverse</a>
99100 </li>
100101 <li>all()
101 : <a class="el" href="a00238.html#ga07b92e9e7077f06fe26e417f320b0f0c">glm::core::function::vector_relational</a>
102 : <a class="el" href="a00145.html#aa83bb5852e369786314325d5a72dfe68">glm</a>
102103 </li>
103104 <li>angle()
104 : <a class="el" href="a00286.html#ga6a3387a7d60728f60d86546b2f4d4d30">glm::gtx::quaternion</a>
105 , <a class="el" href="a00299.html#ga279a2aed9a8061eb517a59fecdb6196a">glm::gtx::vector_angle</a>
105 : <a class="el" href="a00285.html#ga6a3387a7d60728f60d86546b2f4d4d30">glm::gtx::quaternion</a>
106 , <a class="el" href="a00298.html#ga772681c48065b380295f25ded4c9a70e">glm::gtx::vector_angle</a>
106107 </li>
107108 <li>angleAxis()
108 : <a class="el" href="a00286.html#ga4412b01c376d9cfc9cc06b2d511d0f16">glm::gtx::quaternion</a>
109 : <a class="el" href="a00285.html#ga4412b01c376d9cfc9cc06b2d511d0f16">glm::gtx::quaternion</a>
109110 </li>
110111 <li>any()
111 : <a class="el" href="a00238.html#gaa478a7966a4e6550bf0ee58ea8271074">glm::core::function::vector_relational</a>
112 : <a class="el" href="a00145.html#ad41f4d0d62de8c9a484dfc5dcd1531f0">glm</a>
112113 </li>
113114 <li>areCollinear()
114 : <a class="el" href="a00300.html#gadf4603b05ea58193d1f63f128160757e">glm::gtx::vector_query</a>
115 : <a class="el" href="a00299.html#gadf4603b05ea58193d1f63f128160757e">glm::gtx::vector_query</a>
115116 </li>
116117 <li>areOpposite()
117 : <a class="el" href="a00300.html#gacac4975ef9ab28dafe0b07f543fd1d35">glm::gtx::vector_query</a>
118 : <a class="el" href="a00299.html#gacac4975ef9ab28dafe0b07f543fd1d35">glm::gtx::vector_query</a>
118119 </li>
119120 <li>areOrthogonal()
120 : <a class="el" href="a00300.html#ga6d56f0cfc253d49844bac10cefb1ec92">glm::gtx::vector_query</a>
121 : <a class="el" href="a00299.html#ga6d56f0cfc253d49844bac10cefb1ec92">glm::gtx::vector_query</a>
121122 </li>
122123 <li>areOrthonormal()
123 : <a class="el" href="a00300.html#ga300e715a70b718689fd405e65b09f26a">glm::gtx::vector_query</a>
124 : <a class="el" href="a00299.html#ga300e715a70b718689fd405e65b09f26a">glm::gtx::vector_query</a>
124125 </li>
125126 <li>areSimilar()
126 : <a class="el" href="a00300.html#gac91707dd854ae62484e9670311105545">glm::gtx::vector_query</a>
127 : <a class="el" href="a00299.html#gac91707dd854ae62484e9670311105545">glm::gtx::vector_query</a>
127128 </li>
128129 <li>asec()
129 : <a class="el" href="a00289.html#gadf3d5c2b777dd7f9ccb284919daeb15b">glm::gtx::reciprocal</a>
130 : <a class="el" href="a00288.html#gadf3d5c2b777dd7f9ccb284919daeb15b">glm::gtx::reciprocal</a>
130131 </li>
131132 <li>asech()
132 : <a class="el" href="a00289.html#ga43313adedfb151b9d019fbda2388fa4b">glm::gtx::reciprocal</a>
133 : <a class="el" href="a00288.html#ga43313adedfb151b9d019fbda2388fa4b">glm::gtx::reciprocal</a>
133134 </li>
134135 <li>asin()
135 : <a class="el" href="a00238.html#ga3c625e34fc99b33829c28c6d580df7e2">glm::core::function::trigonometric</a>
136 : <a class="el" href="a00237.html#ga3c625e34fc99b33829c28c6d580df7e2">glm::core::function::trigonometric</a>
136137 </li>
137138 <li>asinh()
138 : <a class="el" href="a00238.html#ga7ba20fc7c7b3eeef601e73b130e63db5">glm::core::function::trigonometric</a>
139 : <a class="el" href="a00237.html#ga7ba20fc7c7b3eeef601e73b130e63db5">glm::core::function::trigonometric</a>
139140 </li>
140141 <li>associatedMax()
141 : <a class="el" href="a00249.html#gaf677e31296d27c540b8873b0da989780">glm::gtx::associated_min_max</a>
142 : <a class="el" href="a00248.html#ga356657481029e90e6f079ec4ccd6407b">glm::gtx::associated_min_max</a>
142143 </li>
143144 <li>associatedMin()
144 : <a class="el" href="a00249.html#ga35cccfe67d0f20c897b3bb7d53ceee92">glm::gtx::associated_min_max</a>
145 : <a class="el" href="a00248.html#ga8ee45a8117b0ce3827d6a57625cafac0">glm::gtx::associated_min_max</a>
145146 </li>
146147 <li>atan()
147 : <a class="el" href="a00238.html#ga32dbceedb2910e519860a225ae7f7450">glm::core::function::trigonometric</a>
148 : <a class="el" href="a00237.html#ga32dbceedb2910e519860a225ae7f7450">glm::core::function::trigonometric</a>
148149 </li>
149150 <li>atan2()
150 : <a class="el" href="a00255.html#ga7aa5d9aae622970abb85b946ded2c64e">glm::gtx::compatibility</a>
151 : <a class="el" href="a00254.html#ga83dab39f1f74ed90e9511a5f88805a08">glm::gtx::compatibility</a>
151152 </li>
152153 <li>atanh()
153 : <a class="el" href="a00238.html#ga4d896caf7b1a8e5b5e3b29394e8c0ecd">glm::core::function::trigonometric</a>
154 : <a class="el" href="a00237.html#ga4d896caf7b1a8e5b5e3b29394e8c0ecd">glm::core::function::trigonometric</a>
154155 </li>
155156 <li>axis()
156 : <a class="el" href="a00286.html#ga6dd1904e2a6cc8e54bd324994094a6f9">glm::gtx::quaternion</a>
157 : <a class="el" href="a00285.html#ga6dd1904e2a6cc8e54bd324994094a6f9">glm::gtx::quaternion</a>
157158 </li>
158159 <li>axisAngle()
159160 : <a class="el" href="a00305.html#ga92bfeca9adbb485dc0228138d3fd614e">glm::gtx::matrix_interpolation</a>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
7274 <li>ballInertia3()
73 : <a class="el" href="a00265.html#gac855b3f388128290af0b3016f5e644e4">glm::gtx::inertia</a>
75 : <a class="el" href="a00264.html#gac855b3f388128290af0b3016f5e644e4">glm::gtx::inertia</a>
7476 </li>
7577 <li>ballInertia4()
76 : <a class="el" href="a00265.html#ga33e5d8cfae7d8d2ee4369bbc68b20304">glm::gtx::inertia</a>
78 : <a class="el" href="a00264.html#ga33e5d8cfae7d8d2ee4369bbc68b20304">glm::gtx::inertia</a>
7779 </li>
7880 <li>bitCount()
79 : <a class="el" href="a00238.html#ga29cfb04fafbaa1939955f11fef28ff38">glm::core::function::integer</a>
81 : <a class="el" href="a00237.html#ga29cfb04fafbaa1939955f11fef28ff38">glm::core::function::integer</a>
8082 </li>
8183 <li>bitfieldExtract()
82 : <a class="el" href="a00238.html#ga3b4804e700ade895189ea8bde142c822">glm::core::function::integer</a>
84 : <a class="el" href="a00237.html#ga3b4804e700ade895189ea8bde142c822">glm::core::function::integer</a>
8385 </li>
8486 <li>bitfieldInsert()
85 : <a class="el" href="a00238.html#ga90d0bc8e79f637da58b8fad2fc8f3275">glm::core::function::integer</a>
87 : <a class="el" href="a00237.html#ga90d0bc8e79f637da58b8fad2fc8f3275">glm::core::function::integer</a>
8688 </li>
8789 <li>bitfieldReverse()
88 : <a class="el" href="a00238.html#ga68bdb2c3debc414d5567935b4cbca62f">glm::core::function::integer</a>
90 : <a class="el" href="a00237.html#ga68bdb2c3debc414d5567935b4cbca62f">glm::core::function::integer</a>
8991 </li>
9092 <li>bitRevert()
91 : <a class="el" href="a00250.html#ga2f145f264c334caba22e6949e015d208">glm::gtx::bit</a>
93 : <a class="el" href="a00249.html#ga2f145f264c334caba22e6949e015d208">glm::gtx::bit</a>
9294 </li>
9395 <li>bitRotateLeft()
94 : <a class="el" href="a00250.html#gaa8de15434b73178fd1d2ea7ee16b59bd">glm::gtx::bit</a>
96 : <a class="el" href="a00249.html#gaa8de15434b73178fd1d2ea7ee16b59bd">glm::gtx::bit</a>
9597 </li>
9698 <li>bitRotateRight()
97 : <a class="el" href="a00250.html#gaeec0d4179d7a092056e2201fff385ef6">glm::gtx::bit</a>
99 : <a class="el" href="a00249.html#gaeec0d4179d7a092056e2201fff385ef6">glm::gtx::bit</a>
98100 </li>
99101 <li>boxInertia3()
100 : <a class="el" href="a00265.html#ga2bc514c4c44559a1f76776ad723833b8">glm::gtx::inertia</a>
102 : <a class="el" href="a00264.html#ga2bc514c4c44559a1f76776ad723833b8">glm::gtx::inertia</a>
101103 </li>
102104 <li>boxInertia4()
103 : <a class="el" href="a00265.html#ga02d62ab1fe6c9eaaac001f0c73c787f2">glm::gtx::inertia</a>
105 : <a class="el" href="a00264.html#ga02d62ab1fe6c9eaaac001f0c73c787f2">glm::gtx::inertia</a>
104106 </li>
105107 </ul>
106108 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
7274 <li>catmullRom()
73 : <a class="el" href="a00293.html#gaecb37259be4b2370eab845c6d531f55b">glm::gtx::spline</a>
75 : <a class="el" href="a00292.html#gaecb37259be4b2370eab845c6d531f55b">glm::gtx::spline</a>
7476 </li>
7577 <li>ceil()
76 : <a class="el" href="a00238.html#ga828376ee58b02d80d91eee97c50323f8">glm::core::function::common</a>
77 , <a class="el" href="a00292.html#ga3ce76f0bb739c0d5f04e7bfa4251993d">glm::gtx::simd_vec4</a>
78 : <a class="el" href="a00145.html#a396a09decf9e7856783a9376604cc1d7">glm</a>
79 , <a class="el" href="a00291.html#ga3ce76f0bb739c0d5f04e7bfa4251993d">glm::gtx::simd_vec4</a>
7880 </li>
7981 <li>clamp()
80 : <a class="el" href="a00238.html#ga8d9331a9bd3aa06e1d10eb7fa0dbb9e5">glm::core::function::common</a>
81 , <a class="el" href="a00292.html#ga73e895d1fdba2b620e84383517c552b0">glm::gtx::simd_vec4</a>
82 , <a class="el" href="a00302.html#ga4cadbe69771221fe96b15a747b89948e">glm::gtx::wrap</a>
82 : <a class="el" href="a00145.html#a3f3febbf65f3a1f5695aae62f0e89694">glm</a>
83 , <a class="el" href="a00291.html#ga73e895d1fdba2b620e84383517c552b0">glm::gtx::simd_vec4</a>
84 , <a class="el" href="a00301.html#ga4cadbe69771221fe96b15a747b89948e">glm::gtx::wrap</a>
8385 </li>
8486 <li>closestPointOnLine()
85 : <a class="el" href="a00251.html#ga14a814a7834db281ef0167947c8f9516">glm::gtx::closest_point</a>
87 : <a class="el" href="a00250.html#ga14a814a7834db281ef0167947c8f9516">glm::gtx::closest_point</a>
8688 </li>
8789 <li>colMajor2()
88 : <a class="el" href="a00271.html#ga340582d0baf34cf642a6f2ffa34d1d12">glm::gtx::matrix_major_storage</a>
90 : <a class="el" href="a00270.html#ga340582d0baf34cf642a6f2ffa34d1d12">glm::gtx::matrix_major_storage</a>
8991 </li>
9092 <li>colMajor3()
91 : <a class="el" href="a00271.html#ga2951b0d82dcc941092fcca1035d789e1">glm::gtx::matrix_major_storage</a>
93 : <a class="el" href="a00270.html#ga2951b0d82dcc941092fcca1035d789e1">glm::gtx::matrix_major_storage</a>
9294 </li>
9395 <li>colMajor4()
94 : <a class="el" href="a00271.html#ga03d1d5a138cc0b75a380376e6c114d6c">glm::gtx::matrix_major_storage</a>
96 : <a class="el" href="a00270.html#ga03d1d5a138cc0b75a380376e6c114d6c">glm::gtx::matrix_major_storage</a>
9597 </li>
9698 <li>column()
97 : <a class="el" href="a00241.html#ga0e92f78abad525682684b0c262bbffe4">glm::gtc::matrix_access</a>
99 : <a class="el" href="a00240.html#ga0e92f78abad525682684b0c262bbffe4">glm::gtc::matrix_access</a>
98100 </li>
99101 <li>compAdd()
100 : <a class="el" href="a00256.html#ga67c4614f0fc500f0d0f9db9b2d7f8c00">glm::gtx::component_wise</a>
102 : <a class="el" href="a00255.html#ga67c4614f0fc500f0d0f9db9b2d7f8c00">glm::gtx::component_wise</a>
101103 </li>
102104 <li>compMax()
103 : <a class="el" href="a00256.html#gaf5600944ec0e04504a9577a483f05a50">glm::gtx::component_wise</a>
105 : <a class="el" href="a00255.html#gaf5600944ec0e04504a9577a483f05a50">glm::gtx::component_wise</a>
104106 </li>
105107 <li>compMin()
106 : <a class="el" href="a00256.html#ga62000aa6f70f216f84b771caeb64ea1d">glm::gtx::component_wise</a>
108 : <a class="el" href="a00255.html#ga62000aa6f70f216f84b771caeb64ea1d">glm::gtx::component_wise</a>
107109 </li>
108110 <li>compMul()
109 : <a class="el" href="a00256.html#ga5a504b61c83eb400b0b253b9984af52f">glm::gtx::component_wise</a>
111 : <a class="el" href="a00255.html#ga5a504b61c83eb400b0b253b9984af52f">glm::gtx::component_wise</a>
110112 </li>
111113 <li>compRand1()
112 : <a class="el" href="a00287.html#gaf7f3b54ec804a8eb627ec78f6d7eab2e">glm::gtx::random</a>
114 : <a class="el" href="a00286.html#gaf7f3b54ec804a8eb627ec78f6d7eab2e">glm::gtx::random</a>
113115 </li>
114116 <li>compRand2()
115 : <a class="el" href="a00287.html#ga5082aae274f3851014a8f1665661fc9a">glm::gtx::random</a>
117 : <a class="el" href="a00286.html#ga5082aae274f3851014a8f1665661fc9a">glm::gtx::random</a>
116118 </li>
117119 <li>compRand3()
118 : <a class="el" href="a00287.html#ga25d17c98a74d5252c0d1f4070e0dce75">glm::gtx::random</a>
120 : <a class="el" href="a00286.html#ga25d17c98a74d5252c0d1f4070e0dce75">glm::gtx::random</a>
119121 </li>
120122 <li>compRand4()
121 : <a class="el" href="a00287.html#ga58863d5503a6c1aefaa5d01775a83267">glm::gtx::random</a>
123 : <a class="el" href="a00286.html#ga58863d5503a6c1aefaa5d01775a83267">glm::gtx::random</a>
122124 </li>
123125 <li>conjugate()
124 : <a class="el" href="a00245.html#gac66280c86e8efa619ad7dddb2d475aa7">glm::gtc::quaternion</a>
126 : <a class="el" href="a00244.html#gac66280c86e8efa619ad7dddb2d475aa7">glm::gtc::quaternion</a>
125127 </li>
126128 <li>cos()
127 : <a class="el" href="a00238.html#ga4fbc8481a95bcc1c0c6931a34449b9a8">glm::core::function::trigonometric</a>
129 : <a class="el" href="a00237.html#ga4fbc8481a95bcc1c0c6931a34449b9a8">glm::core::function::trigonometric</a>
128130 </li>
129131 <li>cosh()
130 : <a class="el" href="a00238.html#ga2cfdbcd7a269a114cbb4f19dcf1e3f8b">glm::core::function::trigonometric</a>
132 : <a class="el" href="a00237.html#ga2cfdbcd7a269a114cbb4f19dcf1e3f8b">glm::core::function::trigonometric</a>
131133 </li>
132134 <li>cot()
133 : <a class="el" href="a00289.html#ga6c2f14ab2a9148b461392b320259ac62">glm::gtx::reciprocal</a>
135 : <a class="el" href="a00288.html#ga6c2f14ab2a9148b461392b320259ac62">glm::gtx::reciprocal</a>
134136 </li>
135137 <li>coth()
136 : <a class="el" href="a00289.html#gaf3c2cc20b634fcd623840ecc99a038ad">glm::gtx::reciprocal</a>
138 : <a class="el" href="a00288.html#gaf3c2cc20b634fcd623840ecc99a038ad">glm::gtx::reciprocal</a>
137139 </li>
138140 <li>cross()
139 : <a class="el" href="a00245.html#ga6fe2d33aa0cdf188ab362355ad4108c4">glm::gtc::quaternion</a>
140 , <a class="el" href="a00286.html#ga07cefaf434b895aa6a1841837f0c106d">glm::gtx::quaternion</a>
141 , <a class="el" href="a00238.html#ga63272179a066d755953bcfbe38666257">glm::core::function::geometric</a>
142 , <a class="el" href="a00286.html#ga2a222a07e879ab25de36d6b5a8f6610d">glm::gtx::quaternion</a>
143 , <a class="el" href="a00292.html#gabe4bd036ccfd0e1d53ea828d478cdd2c">glm::gtx::simd_vec4</a>
141 : <a class="el" href="a00291.html#gabe4bd036ccfd0e1d53ea828d478cdd2c">glm::gtx::simd_vec4</a>
142 , <a class="el" href="a00285.html#ga07cefaf434b895aa6a1841837f0c106d">glm::gtx::quaternion</a>
143 , <a class="el" href="a00244.html#ga6fe2d33aa0cdf188ab362355ad4108c4">glm::gtc::quaternion</a>
144 , <a class="el" href="a00285.html#ga2a222a07e879ab25de36d6b5a8f6610d">glm::gtx::quaternion</a>
144145 </li>
145146 <li>csc()
146 : <a class="el" href="a00289.html#ga1f21e65ffedffde468d93a790f875637">glm::gtx::reciprocal</a>
147 : <a class="el" href="a00288.html#ga1f21e65ffedffde468d93a790f875637">glm::gtx::reciprocal</a>
147148 </li>
148149 <li>csch()
149 : <a class="el" href="a00289.html#gad690383d8014e5c46a2d35a6a59ff053">glm::gtx::reciprocal</a>
150 : <a class="el" href="a00288.html#gad690383d8014e5c46a2d35a6a59ff053">glm::gtx::reciprocal</a>
150151 </li>
151152 <li>cubic()
152 : <a class="el" href="a00293.html#gaae38edb178e0256e966955b19b61f617">glm::gtx::spline</a>
153 : <a class="el" href="a00292.html#gaae38edb178e0256e966955b19b61f617">glm::gtx::spline</a>
153154 </li>
154155 </ul>
155156 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
7274 <li>degrees()
73 : <a class="el" href="a00238.html#ga2dc092f93e998e01c1cfdaef817ca926">glm::core::function::trigonometric</a>
75 : <a class="el" href="a00237.html#ga2dc092f93e998e01c1cfdaef817ca926">glm::core::function::trigonometric</a>
7476 </li>
7577 <li>determinant()
76 : <a class="el" href="a00238.html#ga0159ae2542b5bba80743694122247c15">glm::core::function::matrix</a>
77 , <a class="el" href="a00291.html#ga9be926c258e64bf2413671d104b393e8">glm::gtx::simd_mat4</a>
78 , <a class="el" href="a00238.html#gaadf033715cbf1171a599aa7ac7f633be">glm::core::function::matrix</a>
78 : <a class="el" href="a00237.html#ga0159ae2542b5bba80743694122247c15">glm::core::function::matrix</a>
79 , <a class="el" href="a00290.html#ga9be926c258e64bf2413671d104b393e8">glm::gtx::simd_mat4</a>
80 , <a class="el" href="a00237.html#gaadf033715cbf1171a599aa7ac7f633be">glm::core::function::matrix</a>
7981 </li>
8082 <li>diagonal2x2()
81 : <a class="el" href="a00272.html#gae2848e38a4533d20f5e7af384440d4d6">glm::gtx::matrix_operation</a>
83 : <a class="el" href="a00271.html#gae2848e38a4533d20f5e7af384440d4d6">glm::gtx::matrix_operation</a>
8284 </li>
8385 <li>diagonal2x3()
84 : <a class="el" href="a00272.html#ga61c9061e742d63c52cde17c0bc47a9f3">glm::gtx::matrix_operation</a>
86 : <a class="el" href="a00271.html#ga61c9061e742d63c52cde17c0bc47a9f3">glm::gtx::matrix_operation</a>
8587 </li>
8688 <li>diagonal2x4()
87 : <a class="el" href="a00272.html#ga1a2d2575b5a228370228d0ab34e704aa">glm::gtx::matrix_operation</a>
89 : <a class="el" href="a00271.html#ga1a2d2575b5a228370228d0ab34e704aa">glm::gtx::matrix_operation</a>
8890 </li>
8991 <li>diagonal3x2()
90 : <a class="el" href="a00272.html#ga5e0245ab431bc049e69abeaaaaf2f455">glm::gtx::matrix_operation</a>
92 : <a class="el" href="a00271.html#ga5e0245ab431bc049e69abeaaaaf2f455">glm::gtx::matrix_operation</a>
9193 </li>
9294 <li>diagonal3x3()
93 : <a class="el" href="a00272.html#gacdd60defc29a8d1aa6be63387d3da76a">glm::gtx::matrix_operation</a>
95 : <a class="el" href="a00271.html#gacdd60defc29a8d1aa6be63387d3da76a">glm::gtx::matrix_operation</a>
9496 </li>
9597 <li>diagonal3x4()
96 : <a class="el" href="a00272.html#ga3fb59fa3dd6a1db3a8712bcc0c92c926">glm::gtx::matrix_operation</a>
98 : <a class="el" href="a00271.html#ga3fb59fa3dd6a1db3a8712bcc0c92c926">glm::gtx::matrix_operation</a>
9799 </li>
98100 <li>diagonal4x2()
99 : <a class="el" href="a00272.html#ga25edcc4359dc5a420df609bec1a83289">glm::gtx::matrix_operation</a>
101 : <a class="el" href="a00271.html#ga25edcc4359dc5a420df609bec1a83289">glm::gtx::matrix_operation</a>
100102 </li>
101103 <li>diagonal4x3()
102 : <a class="el" href="a00272.html#ga7b855b1e9e014561a5edcd8cfd928fcc">glm::gtx::matrix_operation</a>
104 : <a class="el" href="a00271.html#ga7b855b1e9e014561a5edcd8cfd928fcc">glm::gtx::matrix_operation</a>
103105 </li>
104106 <li>diagonal4x4()
105 : <a class="el" href="a00272.html#ga2b8a31afd6c7a64309810db58a35a6e8">glm::gtx::matrix_operation</a>
107 : <a class="el" href="a00271.html#ga2b8a31afd6c7a64309810db58a35a6e8">glm::gtx::matrix_operation</a>
106108 </li>
107109 <li>diskInertia3()
108 : <a class="el" href="a00265.html#gaceea61bf41a4cc6f934543bb42c30ab2">glm::gtx::inertia</a>
110 : <a class="el" href="a00264.html#gaceea61bf41a4cc6f934543bb42c30ab2">glm::gtx::inertia</a>
109111 </li>
110112 <li>diskInertia4()
111 : <a class="el" href="a00265.html#ga0f6f854161239bed615b5cba1cd85d8a">glm::gtx::inertia</a>
113 : <a class="el" href="a00264.html#ga0f6f854161239bed615b5cba1cd85d8a">glm::gtx::inertia</a>
112114 </li>
113115 <li>distance()
114 : <a class="el" href="a00238.html#gaa7cb6dbe9b8224c25345f1fd6fc09e77">glm::core::function::geometric</a>
115 , <a class="el" href="a00292.html#gac514ca90bcc5a17bd7162ea32a220580">glm::gtx::simd_vec4</a>
116 : <a class="el" href="a00291.html#gac514ca90bcc5a17bd7162ea32a220580">glm::gtx::simd_vec4</a>
116117 </li>
117118 <li>distance2()
118 : <a class="el" href="a00276.html#ga33760ddfae66d50cc5068e132086aa23">glm::gtx::norm</a>
119 : <a class="el" href="a00275.html#gada108564c8942d3ef4764000dd594a9e">glm::gtx::norm</a>
119120 </li>
120121 <li>distance4()
121 : <a class="el" href="a00292.html#gae9238f5011fd124d44dad7b39f0d5a0f">glm::gtx::simd_vec4</a>
122 : <a class="el" href="a00291.html#gae9238f5011fd124d44dad7b39f0d5a0f">glm::gtx::simd_vec4</a>
122123 </li>
123124 <li>div()
124 : <a class="el" href="a00301.html#gac3fc94c8ffc6cdbfd36cffc6d06c8072">glm::gtx::verbose_operator</a>
125 : <a class="el" href="a00300.html#gac3fc94c8ffc6cdbfd36cffc6d06c8072">glm::gtx::verbose_operator</a>
125126 </li>
126127 <li>dot()
127 : <a class="el" href="a00245.html#gaae0285ab092999b98c4f4c8455eeee9f">glm::gtc::quaternion</a>
128 , <a class="el" href="a00238.html#ga38e1f1538ac0fedc9d6ac14910105421">glm::core::function::geometric</a>
128 : <a class="el" href="a00244.html#gaae0285ab092999b98c4f4c8455eeee9f">glm::gtc::quaternion</a>
129129 </li>
130130 <li>dot4()
131 : <a class="el" href="a00292.html#gaa50f94e3de246ea1a1914266aef2f74b">glm::gtx::simd_vec4</a>
131 : <a class="el" href="a00291.html#gaa50f94e3de246ea1a1914266aef2f74b">glm::gtx::simd_vec4</a>
132132 </li>
133133 </ul>
134134 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
7274 <li>equal()
73 : <a class="el" href="a00238.html#ga811015178de53f628610f2036946fbb9">glm::core::function::vector_relational</a>
75 : <a class="el" href="a00145.html#ac07ee1974405deae4b81d16064748768">glm</a>
7476 </li>
7577 <li>equalEpsilon()
76 : <a class="el" href="a00257.html#gae56f18f757e2d08bae0d5ce0d8e59980">glm::gtx::epsilon</a>
78 : <a class="el" href="a00256.html#gae56f18f757e2d08bae0d5ce0d8e59980">glm::gtx::epsilon</a>
7779 </li>
7880 <li>euclidean()
79 : <a class="el" href="a00284.html#ga7c4788941d42c56c6ee2fd235765127e">glm::gtx::polar_coordinates</a>
81 : <a class="el" href="a00283.html#ga7c4788941d42c56c6ee2fd235765127e">glm::gtx::polar_coordinates</a>
8082 </li>
81 <li>eularAngles()
82 : <a class="el" href="a00286.html#ga49d24e9d018f400ee11176b7e9433384">glm::gtx::quaternion</a>
83 <li>eulerAngles()
84 : <a class="el" href="a00285.html#ga39be27be43d9f80ce5bfc5e1adf21412">glm::gtx::quaternion</a>
8385 </li>
8486 <li>eulerAngleX()
85 : <a class="el" href="a00258.html#ga383b615b7c516d129d8a569caeb02e60">glm::gtx::euler_angles</a>
87 : <a class="el" href="a00257.html#ga383b615b7c516d129d8a569caeb02e60">glm::gtx::euler_angles</a>
8688 </li>
8789 <li>eulerAngleXY()
88 : <a class="el" href="a00258.html#gab31953fcb1febf66c095f80928c11880">glm::gtx::euler_angles</a>
90 : <a class="el" href="a00257.html#gab31953fcb1febf66c095f80928c11880">glm::gtx::euler_angles</a>
8991 </li>
9092 <li>eulerAngleXZ()
91 : <a class="el" href="a00258.html#gaacdf1305fa3190de23ebff5f717d5b1a">glm::gtx::euler_angles</a>
93 : <a class="el" href="a00257.html#gaacdf1305fa3190de23ebff5f717d5b1a">glm::gtx::euler_angles</a>
9294 </li>
9395 <li>eulerAngleY()
94 : <a class="el" href="a00258.html#ga19efbeee8e1e51be3424fad187aada03">glm::gtx::euler_angles</a>
96 : <a class="el" href="a00257.html#ga19efbeee8e1e51be3424fad187aada03">glm::gtx::euler_angles</a>
9597 </li>
9698 <li>eulerAngleYX()
97 : <a class="el" href="a00258.html#gac7eb231dc5b6519dcd1e28f8662d0db6">glm::gtx::euler_angles</a>
99 : <a class="el" href="a00257.html#gac7eb231dc5b6519dcd1e28f8662d0db6">glm::gtx::euler_angles</a>
98100 </li>
99101 <li>eulerAngleYXZ()
100 : <a class="el" href="a00258.html#ga9a1c23259481176631e5910b8a294c0c">glm::gtx::euler_angles</a>
102 : <a class="el" href="a00257.html#ga9a1c23259481176631e5910b8a294c0c">glm::gtx::euler_angles</a>
101103 </li>
102104 <li>eulerAngleYZ()
103 : <a class="el" href="a00258.html#gac528b349b40a8c1d1b34c4a17221bb48">glm::gtx::euler_angles</a>
105 : <a class="el" href="a00257.html#gac528b349b40a8c1d1b34c4a17221bb48">glm::gtx::euler_angles</a>
104106 </li>
105107 <li>eulerAngleZ()
106 : <a class="el" href="a00258.html#ga950aebf621ca275949b90845a1e76d79">glm::gtx::euler_angles</a>
108 : <a class="el" href="a00257.html#ga950aebf621ca275949b90845a1e76d79">glm::gtx::euler_angles</a>
107109 </li>
108110 <li>eulerAngleZX()
109 : <a class="el" href="a00258.html#ga5afd9174575eab4105c9e3c07a9f68f7">glm::gtx::euler_angles</a>
111 : <a class="el" href="a00257.html#ga5afd9174575eab4105c9e3c07a9f68f7">glm::gtx::euler_angles</a>
110112 </li>
111113 <li>eulerAngleZY()
112 : <a class="el" href="a00258.html#gade7193b3d889285671cdfafd62339a87">glm::gtx::euler_angles</a>
114 : <a class="el" href="a00257.html#gade7193b3d889285671cdfafd62339a87">glm::gtx::euler_angles</a>
113115 </li>
114116 <li>exp()
115 : <a class="el" href="a00286.html#gaed2302270ec468d26de745516ccb5d4b">glm::gtx::quaternion</a>
116 , <a class="el" href="a00238.html#gac96b81360552e233031fd06390576ebf">glm::core::function::exponential</a>
117 : <a class="el" href="a00285.html#gaed2302270ec468d26de745516ccb5d4b">glm::gtx::quaternion</a>
118 , <a class="el" href="a00237.html#gac96b81360552e233031fd06390576ebf">glm::core::function::exponential</a>
117119 </li>
118120 <li>exp2()
119 : <a class="el" href="a00238.html#ga79adbdfa6f2e6ce59816c9b0bd1aebe3">glm::core::function::exponential</a>
121 : <a class="el" href="a00237.html#ga79adbdfa6f2e6ce59816c9b0bd1aebe3">glm::core::function::exponential</a>
120122 </li>
121123 <li>extend()
122 : <a class="el" href="a00259.html#ga9fe82185d36e8136fb2656bacf3d4a86">glm::gtx::extend</a>
124 : <a class="el" href="a00258.html#ga9fe82185d36e8136fb2656bacf3d4a86">glm::gtx::extend</a>
123125 </li>
124126 <li>extractField()
125 : <a class="el" href="a00250.html#ga244734bb54e4648970c38b032258035a">glm::gtx::bit</a>
127 : <a class="el" href="a00249.html#ga244734bb54e4648970c38b032258035a">glm::gtx::bit</a>
126128 </li>
127129 <li>extractRealComponent()
128 : <a class="el" href="a00286.html#ga23eb8e1aeaf751f7cc46fbaa291e223d">glm::gtx::quaternion</a>
130 : <a class="el" href="a00285.html#ga23eb8e1aeaf751f7cc46fbaa291e223d">glm::gtx::quaternion</a>
129131 </li>
130132 </ul>
131133 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
7274 <li>f16_abgr_cast()
73 : <a class="el" href="a00252.html#ga3cd01da9b10cf61cf556fc8e7992f2ea">glm::gtx::color_cast</a>
75 : <a class="el" href="a00251.html#ga3cd01da9b10cf61cf556fc8e7992f2ea">glm::gtx::color_cast</a>
7476 </li>
7577 <li>f16_argb_cast()
76 : <a class="el" href="a00252.html#gaf58e7f656ffad74fe4ed093250c444c8">glm::gtx::color_cast</a>
78 : <a class="el" href="a00251.html#gaf58e7f656ffad74fe4ed093250c444c8">glm::gtx::color_cast</a>
7779 </li>
7880 <li>f16_bgra_cast()
79 : <a class="el" href="a00252.html#gadbd908bc29dd87b7222dad33a6b0a6ad">glm::gtx::color_cast</a>
81 : <a class="el" href="a00251.html#gadbd908bc29dd87b7222dad33a6b0a6ad">glm::gtx::color_cast</a>
8082 </li>
8183 <li>f16_bgrx_cast()
82 : <a class="el" href="a00252.html#gaed8b82a32ac9f6e8024a6880461496ba">glm::gtx::color_cast</a>
84 : <a class="el" href="a00251.html#gaed8b82a32ac9f6e8024a6880461496ba">glm::gtx::color_cast</a>
8385 </li>
8486 <li>f16_channel_cast()
85 : <a class="el" href="a00252.html#gae735900f14bcc64ebaf42bb812500964">glm::gtx::color_cast</a>
87 : <a class="el" href="a00251.html#gae735900f14bcc64ebaf42bb812500964">glm::gtx::color_cast</a>
8688 </li>
8789 <li>f16_rgba_cast()
88 : <a class="el" href="a00252.html#ga417f7a9c2bc66229dbeb714308ff45ba">glm::gtx::color_cast</a>
90 : <a class="el" href="a00251.html#ga417f7a9c2bc66229dbeb714308ff45ba">glm::gtx::color_cast</a>
8991 </li>
9092 <li>f16_rgbx_cast()
91 : <a class="el" href="a00252.html#ga82f8510eb3275299aee11f7a6a0761c0">glm::gtx::color_cast</a>
93 : <a class="el" href="a00251.html#ga82f8510eb3275299aee11f7a6a0761c0">glm::gtx::color_cast</a>
9294 </li>
9395 <li>f16_xbgr_cast()
94 : <a class="el" href="a00252.html#ga6a18355f6ce1b531a8d879774ba43179">glm::gtx::color_cast</a>
96 : <a class="el" href="a00251.html#ga6a18355f6ce1b531a8d879774ba43179">glm::gtx::color_cast</a>
9597 </li>
9698 <li>f16_xrgb_cast()
97 : <a class="el" href="a00252.html#ga54f72266de72a0834da07337b2512c78">glm::gtx::color_cast</a>
99 : <a class="el" href="a00251.html#ga54f72266de72a0834da07337b2512c78">glm::gtx::color_cast</a>
98100 </li>
99101 <li>f32_abgr_cast()
100 : <a class="el" href="a00252.html#ga95a33ffb1476bf675e9629301ec180b1">glm::gtx::color_cast</a>
102 : <a class="el" href="a00251.html#ga95a33ffb1476bf675e9629301ec180b1">glm::gtx::color_cast</a>
101103 </li>
102104 <li>f32_argb_cast()
103 : <a class="el" href="a00252.html#gaee24a081d5b7c84ffffdd66d12963c4c">glm::gtx::color_cast</a>
105 : <a class="el" href="a00251.html#gaee24a081d5b7c84ffffdd66d12963c4c">glm::gtx::color_cast</a>
104106 </li>
105107 <li>f32_bgra_cast()
106 : <a class="el" href="a00252.html#gadb328d5e9fff54f6b23dc29e1ce8591e">glm::gtx::color_cast</a>
108 : <a class="el" href="a00251.html#gadb328d5e9fff54f6b23dc29e1ce8591e">glm::gtx::color_cast</a>
107109 </li>
108110 <li>f32_bgrx_cast()
109 : <a class="el" href="a00252.html#ga78abdd7116c8c25e29219b32c4bb937e">glm::gtx::color_cast</a>
111 : <a class="el" href="a00251.html#ga78abdd7116c8c25e29219b32c4bb937e">glm::gtx::color_cast</a>
110112 </li>
111113 <li>f32_channel_cast()
112 : <a class="el" href="a00252.html#ga44006c7374476ad1ee285f28e9c416bb">glm::gtx::color_cast</a>
114 : <a class="el" href="a00251.html#ga44006c7374476ad1ee285f28e9c416bb">glm::gtx::color_cast</a>
113115 </li>
114116 <li>f32_rgba_cast()
115 : <a class="el" href="a00252.html#ga84d5bcccb37c9788bfb0fa00bea4b0fe">glm::gtx::color_cast</a>
117 : <a class="el" href="a00251.html#ga84d5bcccb37c9788bfb0fa00bea4b0fe">glm::gtx::color_cast</a>
116118 </li>
117119 <li>f32_rgbx_cast()
118 : <a class="el" href="a00252.html#ga4ef58cdad0a076db6b9f6f67d918087b">glm::gtx::color_cast</a>
120 : <a class="el" href="a00251.html#ga4ef58cdad0a076db6b9f6f67d918087b">glm::gtx::color_cast</a>
119121 </li>
120122 <li>f32_xbgr_cast()
121 : <a class="el" href="a00252.html#ga46e9df97410a559a816737a331db62dd">glm::gtx::color_cast</a>
123 : <a class="el" href="a00251.html#ga46e9df97410a559a816737a331db62dd">glm::gtx::color_cast</a>
122124 </li>
123125 <li>f32_xrgb_cast()
124 : <a class="el" href="a00252.html#gaf4c3d60e3f865187ab8dc7e1e53b061b">glm::gtx::color_cast</a>
126 : <a class="el" href="a00251.html#gaf4c3d60e3f865187ab8dc7e1e53b061b">glm::gtx::color_cast</a>
125127 </li>
126128 <li>f64_abgr_cast()
127 : <a class="el" href="a00252.html#ga42c1cf7dedeaa76629046e8abea5d698">glm::gtx::color_cast</a>
129 : <a class="el" href="a00251.html#ga42c1cf7dedeaa76629046e8abea5d698">glm::gtx::color_cast</a>
128130 </li>
129131 <li>f64_argb_cast()
130 : <a class="el" href="a00252.html#gab917debabb647fd4144b2d4cf3359737">glm::gtx::color_cast</a>
132 : <a class="el" href="a00251.html#gab917debabb647fd4144b2d4cf3359737">glm::gtx::color_cast</a>
131133 </li>
132134 <li>f64_bgra_cast()
133 : <a class="el" href="a00252.html#gac954d9636b86e6a10e19ede77d4f387e">glm::gtx::color_cast</a>
135 : <a class="el" href="a00251.html#gac954d9636b86e6a10e19ede77d4f387e">glm::gtx::color_cast</a>
134136 </li>
135137 <li>f64_bgrx_cast()
136 : <a class="el" href="a00252.html#gabb6a7bcbd66735a86da1dedf7ea3d530">glm::gtx::color_cast</a>
138 : <a class="el" href="a00251.html#gabb6a7bcbd66735a86da1dedf7ea3d530">glm::gtx::color_cast</a>
137139 </li>
138140 <li>f64_channel_cast()
139 : <a class="el" href="a00252.html#gad2b4dbd955443cb15c731e4564f575e0">glm::gtx::color_cast</a>
141 : <a class="el" href="a00251.html#gad2b4dbd955443cb15c731e4564f575e0">glm::gtx::color_cast</a>
140142 </li>
141143 <li>f64_rgba_cast()
142 : <a class="el" href="a00252.html#gae915ae64c81df6ceacb793f9cd6eac40">glm::gtx::color_cast</a>
144 : <a class="el" href="a00251.html#gae915ae64c81df6ceacb793f9cd6eac40">glm::gtx::color_cast</a>
143145 </li>
144146 <li>f64_rgbx_cast()
145 : <a class="el" href="a00252.html#ga16520961abfe743f698b2e80cc0dc33a">glm::gtx::color_cast</a>
147 : <a class="el" href="a00251.html#ga16520961abfe743f698b2e80cc0dc33a">glm::gtx::color_cast</a>
146148 </li>
147149 <li>f64_xbgr_cast()
148 : <a class="el" href="a00252.html#gaa2c0dd06608625935b2d940a8155a6ff">glm::gtx::color_cast</a>
150 : <a class="el" href="a00251.html#gaa2c0dd06608625935b2d940a8155a6ff">glm::gtx::color_cast</a>
149151 </li>
150152 <li>f64_xrgb_cast()
151 : <a class="el" href="a00252.html#ga35d1e8fedde05c4b0bd6b26312fe3677">glm::gtx::color_cast</a>
152 </li>
153 <li>faceforward()
154 : <a class="el" href="a00238.html#gad591e8f7b1a5e311d3439dda2bb82aea">glm::core::function::geometric</a>
153 : <a class="el" href="a00251.html#ga35d1e8fedde05c4b0bd6b26312fe3677">glm::gtx::color_cast</a>
155154 </li>
156155 <li>factorial()
157 : <a class="el" href="a00267.html#gab45d1385cbb477a5684f80b0e24807e4">glm::gtx::integer</a>
156 : <a class="el" href="a00266.html#gab45d1385cbb477a5684f80b0e24807e4">glm::gtx::integer</a>
158157 </li>
159158 <li>fastAcos()
160 : <a class="el" href="a00263.html#ga4a704d388edfa3912257b69184d730ba">glm::gtx::fast_trigonometry</a>
159 : <a class="el" href="a00262.html#ga4a704d388edfa3912257b69184d730ba">glm::gtx::fast_trigonometry</a>
161160 </li>
162161 <li>fastAsin()
163 : <a class="el" href="a00263.html#ga73073afdd18dce08727f232c892c5dcd">glm::gtx::fast_trigonometry</a>
162 : <a class="el" href="a00262.html#ga73073afdd18dce08727f232c892c5dcd">glm::gtx::fast_trigonometry</a>
164163 </li>
165164 <li>fastAtan()
166 : <a class="el" href="a00263.html#gafae71c7958e50cf435f9e73ee4e579f7">glm::gtx::fast_trigonometry</a>
165 : <a class="el" href="a00262.html#ga0288bb1ab677dec79ad89e9551c168c5">glm::gtx::fast_trigonometry</a>
167166 </li>
168167 <li>fastCos()
169 : <a class="el" href="a00263.html#ga53a9033f33561a2b7133326d721a05cc">glm::gtx::fast_trigonometry</a>
168 : <a class="el" href="a00262.html#ga53a9033f33561a2b7133326d721a05cc">glm::gtx::fast_trigonometry</a>
170169 </li>
171170 <li>fastDistance()
172 : <a class="el" href="a00262.html#ga68162c92de0e592216be943345169da7">glm::gtx::fast_square_root</a>
171 : <a class="el" href="a00261.html#ga68162c92de0e592216be943345169da7">glm::gtx::fast_square_root</a>
173172 </li>
174173 <li>fastExp()
175 : <a class="el" href="a00261.html#ga10df16993c31fda159ebe8fc0d95167f">glm::gtx::fast_exponential</a>
174 : <a class="el" href="a00260.html#ga10df16993c31fda159ebe8fc0d95167f">glm::gtx::fast_exponential</a>
176175 </li>
177176 <li>fastExp2()
178 : <a class="el" href="a00261.html#ga12669721e13e183233ed5c6025dce5e4">glm::gtx::fast_exponential</a>
177 : <a class="el" href="a00260.html#ga12669721e13e183233ed5c6025dce5e4">glm::gtx::fast_exponential</a>
178 </li>
179 <li>fastInversesqrt()
180 : <a class="el" href="a00291.html#gab299477526abc9646263950bfbe32b3f">glm::gtx::simd_vec4</a>
179181 </li>
180182 <li>fastInverseSqrt()
181 : <a class="el" href="a00262.html#ga1858a37f06c79e17f287bbaa8f75b08e">glm::gtx::fast_square_root</a>
182 </li>
183 <li>fastInversesqrt()
184 : <a class="el" href="a00292.html#gab299477526abc9646263950bfbe32b3f">glm::gtx::simd_vec4</a>
183 : <a class="el" href="a00261.html#ga1858a37f06c79e17f287bbaa8f75b08e">glm::gtx::fast_square_root</a>
185184 </li>
186185 <li>fastLength()
187 : <a class="el" href="a00262.html#gada4490e940c0c4e08beab6db793f8934">glm::gtx::fast_square_root</a>
188 , <a class="el" href="a00292.html#ga0d4469acfe98c8b2eab8696bf25a3dde">glm::gtx::simd_vec4</a>
186 : <a class="el" href="a00261.html#gada4490e940c0c4e08beab6db793f8934">glm::gtx::fast_square_root</a>
187 , <a class="el" href="a00291.html#ga0d4469acfe98c8b2eab8696bf25a3dde">glm::gtx::simd_vec4</a>
189188 </li>
190189 <li>fastLength4()
191 : <a class="el" href="a00292.html#ga1c85830900d5d3f29902b12d46c60dd3">glm::gtx::simd_vec4</a>
190 : <a class="el" href="a00291.html#ga1c85830900d5d3f29902b12d46c60dd3">glm::gtx::simd_vec4</a>
192191 </li>
193192 <li>fastLn()
194 : <a class="el" href="a00261.html#ga23893e648b441fb48f8c0ab504cf8aeb">glm::gtx::fast_exponential</a>
193 : <a class="el" href="a00260.html#ga23893e648b441fb48f8c0ab504cf8aeb">glm::gtx::fast_exponential</a>
195194 </li>
196195 <li>fastLog()
197 : <a class="el" href="a00261.html#gaf0c2539c6843c1e0e514445bd4c4a72b">glm::gtx::fast_exponential</a>
196 : <a class="el" href="a00260.html#gaf0c2539c6843c1e0e514445bd4c4a72b">glm::gtx::fast_exponential</a>
198197 </li>
199198 <li>fastLog2()
200 : <a class="el" href="a00261.html#gaef27f6ec081ab71024019faa178d4506">glm::gtx::fast_exponential</a>
199 : <a class="el" href="a00260.html#gaef27f6ec081ab71024019faa178d4506">glm::gtx::fast_exponential</a>
201200 </li>
202201 <li>fastMix()
203 : <a class="el" href="a00286.html#ga65d5734ce29049d334992f6a59e27e58">glm::gtx::quaternion</a>
202 : <a class="el" href="a00285.html#ga65d5734ce29049d334992f6a59e27e58">glm::gtx::quaternion</a>
204203 </li>
205204 <li>fastNormalize()
206 : <a class="el" href="a00292.html#ga58eeeead0d2b381f7d461dac26381125">glm::gtx::simd_vec4</a>
207 , <a class="el" href="a00262.html#ga7e785d24d7bbac63f273baf9af1160da">glm::gtx::fast_square_root</a>
205 : <a class="el" href="a00291.html#ga58eeeead0d2b381f7d461dac26381125">glm::gtx::simd_vec4</a>
206 , <a class="el" href="a00261.html#ga7e785d24d7bbac63f273baf9af1160da">glm::gtx::fast_square_root</a>
208207 </li>
209208 <li>fastNormalizeDot()
210 : <a class="el" href="a00278.html#ga4828b79df21f008a71824a0eecf6e4d7">glm::gtx::normalize_dot</a>
209 : <a class="el" href="a00277.html#ga4828b79df21f008a71824a0eecf6e4d7">glm::gtx::normalize_dot</a>
211210 </li>
212211 <li>fastPow()
213 : <a class="el" href="a00261.html#gaaf77117ea021fa1ece715d0b94dd8a2b">glm::gtx::fast_exponential</a>
212 : <a class="el" href="a00260.html#gaaf77117ea021fa1ece715d0b94dd8a2b">glm::gtx::fast_exponential</a>
214213 </li>
215214 <li>fastSin()
216 : <a class="el" href="a00263.html#ga0844ea62ea81d215b56449f1b3b4968a">glm::gtx::fast_trigonometry</a>
215 : <a class="el" href="a00262.html#ga0844ea62ea81d215b56449f1b3b4968a">glm::gtx::fast_trigonometry</a>
217216 </li>
218217 <li>fastSqrt()
219 : <a class="el" href="a00262.html#gaced2a1b7a161290e4d401967607d56db">glm::gtx::fast_square_root</a>
220 , <a class="el" href="a00292.html#ga56465ed17cafbff1e225f82eeb7184e5">glm::gtx::simd_vec4</a>
218 : <a class="el" href="a00291.html#ga56465ed17cafbff1e225f82eeb7184e5">glm::gtx::simd_vec4</a>
219 , <a class="el" href="a00261.html#gaced2a1b7a161290e4d401967607d56db">glm::gtx::fast_square_root</a>
221220 </li>
222221 <li>fastTan()
223 : <a class="el" href="a00263.html#ga311fc8d0d067bf3d229566aae8f81a1a">glm::gtx::fast_trigonometry</a>
222 : <a class="el" href="a00262.html#ga311fc8d0d067bf3d229566aae8f81a1a">glm::gtx::fast_trigonometry</a>
224223 </li>
225224 <li>findLSB()
226 : <a class="el" href="a00238.html#ga9890456d065156a3c3c9786b14638486">glm::core::function::integer</a>
225 : <a class="el" href="a00237.html#ga9890456d065156a3c3c9786b14638486">glm::core::function::integer</a>
227226 </li>
228227 <li>findMSB()
229 : <a class="el" href="a00238.html#ga0f50b6fe121f170c3725a8abb53ff077">glm::core::function::integer</a>
228 : <a class="el" href="a00237.html#ga0f50b6fe121f170c3725a8abb53ff077">glm::core::function::integer</a>
230229 </li>
231230 <li>float_distance()
232231 : <a class="el" href="a00307.html#gaf5f70f67212c2ceca27d5ac965605808">glm::gtx::ulp</a>
233232 </li>
234233 <li>floatBitsToInt()
235 : <a class="el" href="a00238.html#ga2508259e7d3093603f4c6d3c132a704c">glm::core::function::common</a>
234 : <a class="el" href="a00145.html#ac0c97c144df6712b064c7a1b9c68ff49">glm</a>
236235 </li>
237236 <li>floatBitsToUint()
238 : <a class="el" href="a00238.html#ga17f59f3a2dd5b93e32ff1057be188681">glm::core::function::common</a>
237 : <a class="el" href="a00145.html#afdf3bec43bb2852e27175ee61a1df7c0">glm</a>
239238 </li>
240239 <li>floor()
241 : <a class="el" href="a00292.html#gab7b1e6c9349aec87e1d3346e867588d6">glm::gtx::simd_vec4</a>
242 , <a class="el" href="a00238.html#ga4206a98e812c2bd4801e4d299c83f6c7">glm::core::function::common</a>
240 : <a class="el" href="a00291.html#gab7b1e6c9349aec87e1d3346e867588d6">glm::gtx::simd_vec4</a>
241 , <a class="el" href="a00145.html#aa59c036229bc74f96c5c014a179eac7c">glm</a>
243242 </li>
244243 <li>fma()
245 : <a class="el" href="a00238.html#gad0278428ad872e7be378c3b2ad66b0ba">glm::core::function::common</a>
246 , <a class="el" href="a00292.html#ga4b9f36f4524482b43324f4631944569d">glm::gtx::simd_vec4</a>
244 : <a class="el" href="a00291.html#ga4b9f36f4524482b43324f4631944569d">glm::gtx::simd_vec4</a>
245 , <a class="el" href="a00145.html#abfe96f2b10113d099cc3758b604fa339">glm</a>
247246 </li>
248247 <li>fract()
249 : <a class="el" href="a00292.html#ga0a98f9d76fee0ca46c1f97861e3e366c">glm::gtx::simd_vec4</a>
250 , <a class="el" href="a00238.html#ga67dda5fd839bc489827be9e225847a45">glm::core::function::common</a>
248 : <a class="el" href="a00291.html#ga0a98f9d76fee0ca46c1f97861e3e366c">glm::gtx::simd_vec4</a>
249 , <a class="el" href="a00145.html#a2ed2478da306c5ccc99ddae4f47e5d70">glm</a>
251250 </li>
252251 <li>frexp()
253 : <a class="el" href="a00238.html#ga51135c18fa3b70b67478e546258caa64">glm::core::function::common</a>
252 : <a class="el" href="a00145.html#ae38cef3c84f2cd4cac8e19ffe4be9981">glm</a>
254253 </li>
255254 <li>frustum()
256 : <a class="el" href="a00244.html#ga517623bf6344a9e276b877366143116a">glm::gtc::matrix_transform</a>
255 : <a class="el" href="a00243.html#ga517623bf6344a9e276b877366143116a">glm::gtc::matrix_transform</a>
257256 </li>
258257 </ul>
259258 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
7274 <li>gaussRand1()
73 : <a class="el" href="a00287.html#gaea7fcb106b788c816db85cd1e3be6188">glm::gtx::random</a>
75 : <a class="el" href="a00286.html#gaea7fcb106b788c816db85cd1e3be6188">glm::gtx::random</a>
7476 </li>
7577 <li>gaussRand2()
76 : <a class="el" href="a00287.html#gabe761c9b9cc6999fc91acf79a7007ddb">glm::gtx::random</a>
78 : <a class="el" href="a00286.html#gabe761c9b9cc6999fc91acf79a7007ddb">glm::gtx::random</a>
7779 </li>
7880 <li>gaussRand3()
79 : <a class="el" href="a00287.html#gadb3cbe26ec31e593af84c46b1a63a073">glm::gtx::random</a>
81 : <a class="el" href="a00286.html#gadb3cbe26ec31e593af84c46b1a63a073">glm::gtx::random</a>
8082 </li>
8183 <li>gaussRand4()
82 : <a class="el" href="a00287.html#ga8daff7d57575e5ab4a44a46f52ed72fe">glm::gtx::random</a>
84 : <a class="el" href="a00286.html#ga8daff7d57575e5ab4a44a46f52ed72fe">glm::gtx::random</a>
8385 </li>
8486 <li>greaterThan()
85 : <a class="el" href="a00238.html#gaef35061292f337c0d788f43a3b1a26c0">glm::core::function::vector_relational</a>
87 : <a class="el" href="a00145.html#acb6f64ca9f1649d4bc4dfa301f59020d">glm</a>
8688 </li>
8789 <li>greaterThanEqual()
88 : <a class="el" href="a00238.html#ga39aa8024d619850c81a685a4905177df">glm::core::function::vector_relational</a>
90 : <a class="el" href="a00145.html#a5075e99290081e0bb74ff6c18035735f">glm</a>
8991 </li>
9092 </ul>
9193 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
7274 <li>hermite()
73 : <a class="el" href="a00293.html#ga3ea772a4bdf8b3514ef12b47944c844c">glm::gtx::spline</a>
75 : <a class="el" href="a00292.html#ga3ea772a4bdf8b3514ef12b47944c844c">glm::gtx::spline</a>
7476 </li>
7577 <li>higherMultiple()
76 : <a class="el" href="a00275.html#ga417f3ba2d04c2fa9ffdeca47b0ad0443">glm::gtx::multiple</a>
78 : <a class="el" href="a00274.html#ga417f3ba2d04c2fa9ffdeca47b0ad0443">glm::gtx::multiple</a>
7779 </li>
7880 <li>highestBit()
79 : <a class="el" href="a00250.html#ga55e17a1e9347ca10d206f62ffe294608">glm::gtx::bit</a>
81 : <a class="el" href="a00249.html#ga55e17a1e9347ca10d206f62ffe294608">glm::gtx::bit</a>
8082 </li>
8183 <li>highestBitValue()
82 : <a class="el" href="a00250.html#ga2e2ba1398ef471e40e6a07cbab9a75fe">glm::gtx::bit</a>
84 : <a class="el" href="a00249.html#ga2e2ba1398ef471e40e6a07cbab9a75fe">glm::gtx::bit</a>
8385 </li>
8486 <li>hsvColor()
85 : <a class="el" href="a00253.html#ga20b1d59474b6588da10e72764711cf71">glm::gtx::color_space</a>
87 : <a class="el" href="a00252.html#ga20b1d59474b6588da10e72764711cf71">glm::gtx::color_space</a>
8688 </li>
8789 </ul>
8890 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
7274 <li>imulExtended()
73 : <a class="el" href="a00238.html#gac01a66145ce9472afb6a3bee837c0bd6">glm::core::function::integer</a>
75 : <a class="el" href="a00237.html#gac01a66145ce9472afb6a3bee837c0bd6">glm::core::function::integer</a>
7476 </li>
7577 <li>infinitePerspective()
76 : <a class="el" href="a00244.html#gab8bb0d61dfe8a35df79ee3ccc6dd9afe">glm::gtc::matrix_transform</a>
78 : <a class="el" href="a00243.html#gab8bb0d61dfe8a35df79ee3ccc6dd9afe">glm::gtc::matrix_transform</a>
7779 </li>
7880 <li>intBitsToFloat()
79 : <a class="el" href="a00238.html#ga3b76eab7091983e936c894b1976e90be">glm::core::function::common</a>
81 : <a class="el" href="a00145.html#a3d2881860ac44f93763bc31582e3818c">glm</a>
8082 </li>
8183 <li>intermediate()
82 : <a class="el" href="a00286.html#gaa15c443e97ac7476d04627d868995891">glm::gtx::quaternion</a>
84 : <a class="el" href="a00285.html#gaa15c443e97ac7476d04627d868995891">glm::gtx::quaternion</a>
8385 </li>
8486 <li>interpolate()
8587 : <a class="el" href="a00305.html#ga3a26ef5b04c25263a647ee828faa3bb4">glm::gtx::matrix_interpolation</a>
8688 </li>
8789 <li>intersectLineSphere()
88 : <a class="el" href="a00268.html#ga33f0584acca58d7446daf594c3b8295f">glm::gtx::intersect</a>
90 : <a class="el" href="a00267.html#ga33f0584acca58d7446daf594c3b8295f">glm::gtx::intersect</a>
8991 </li>
9092 <li>intersectLineTriangle()
91 : <a class="el" href="a00268.html#ga0922c431baec628c6955011c79d39cd9">glm::gtx::intersect</a>
93 : <a class="el" href="a00267.html#ga0922c431baec628c6955011c79d39cd9">glm::gtx::intersect</a>
9294 </li>
9395 <li>intersectRaySphere()
94 : <a class="el" href="a00268.html#gaa03b236dbd4df6b0519b1f2ceea7ef8c">glm::gtx::intersect</a>
96 : <a class="el" href="a00267.html#gaa03b236dbd4df6b0519b1f2ceea7ef8c">glm::gtx::intersect</a>
9597 </li>
9698 <li>intersectRayTriangle()
97 : <a class="el" href="a00268.html#ga6ce58ac1371605381abb3e00cfe36d78">glm::gtx::intersect</a>
99 : <a class="el" href="a00267.html#ga6ce58ac1371605381abb3e00cfe36d78">glm::gtx::intersect</a>
98100 </li>
99101 <li>inverse()
100 : <a class="el" href="a00238.html#ga21de0684ba52d03625b43eac0c2b866a">glm::core::function::matrix</a>
101 , <a class="el" href="a00245.html#ga12e7d58d287f181ec2ebf47bc6af6c5c">glm::gtc::quaternion</a>
102 , <a class="el" href="a00291.html#gace9ca056446fc614a846bac6a3ee1a1e">glm::gtx::simd_mat4</a>
102 : <a class="el" href="a00237.html#ga21de0684ba52d03625b43eac0c2b866a">glm::core::function::matrix</a>
103 , <a class="el" href="a00244.html#ga12e7d58d287f181ec2ebf47bc6af6c5c">glm::gtc::quaternion</a>
104 , <a class="el" href="a00290.html#gace9ca056446fc614a846bac6a3ee1a1e">glm::gtx::simd_mat4</a>
103105 </li>
104106 <li>inversesqrt()
105 : <a class="el" href="a00292.html#gaa4e215b72e48012a6388a1477c84e2ad">glm::gtx::simd_vec4</a>
106 , <a class="el" href="a00238.html#gadce520af7df2c97aea9f689ad620fabe">glm::core::function::exponential</a>
107 : <a class="el" href="a00291.html#gaa4e215b72e48012a6388a1477c84e2ad">glm::gtx::simd_vec4</a>
108 , <a class="el" href="a00237.html#gadce520af7df2c97aea9f689ad620fabe">glm::core::function::exponential</a>
107109 </li>
108110 <li>inverseTranspose()
109 : <a class="el" href="a00243.html#ga1df67bb7d1c4c89484ac57c5cc09c7a3">glm::gtc::matrix_inverse</a>
111 : <a class="el" href="a00242.html#ga1df67bb7d1c4c89484ac57c5cc09c7a3">glm::gtc::matrix_inverse</a>
110112 </li>
111113 <li>isfinite()
112 : <a class="el" href="a00255.html#ga048f613527d6146d30bd45cfb9593ba4">glm::gtx::compatibility</a>
114 : <a class="el" href="a00254.html#ga048f613527d6146d30bd45cfb9593ba4">glm::gtx::compatibility</a>
113115 </li>
114116 <li>isIdentity()
115 : <a class="el" href="a00273.html#ga131e3e65bd8a1ac035f849483631f122">glm::gtx::matrix_query</a>
117 : <a class="el" href="a00272.html#ga131e3e65bd8a1ac035f849483631f122">glm::gtx::matrix_query</a>
116118 </li>
117119 <li>isinf()
118 : <a class="el" href="a00255.html#ga80ff18eeb665e1ae21650040192cb723">glm::gtx::compatibility</a>
119 , <a class="el" href="a00238.html#ga7194c89cf656614f231e11c46d906465">glm::core::function::common</a>
120 , <a class="el" href="a00255.html#gab262f10a801ed389ab19f064f7dee84d">glm::gtx::compatibility</a>
120 : <a class="el" href="a00254.html#ga80ff18eeb665e1ae21650040192cb723">glm::gtx::compatibility</a>
121 , <a class="el" href="a00145.html#ad5d3227e612c93a7d98e2dc4d72a4efc">glm</a>
122 , <a class="el" href="a00254.html#gab262f10a801ed389ab19f064f7dee84d">glm::gtx::compatibility</a>
121123 </li>
122124 <li>isnan()
123 : <a class="el" href="a00255.html#ga17ed6a80235a6906e902ce6350740a32">glm::gtx::compatibility</a>
124 , <a class="el" href="a00238.html#ga873db92807cc955cf98030c94a342d5a">glm::core::function::common</a>
125 : <a class="el" href="a00254.html#ga17ed6a80235a6906e902ce6350740a32">glm::gtx::compatibility</a>
126 , <a class="el" href="a00145.html#aa8f4b13390decbfaaa0ca1c521d50c3d">glm</a>
125127 </li>
126128 <li>isNormalized()
127 : <a class="el" href="a00273.html#ga84fd1f76999aa657ca27f44725b8cc79">glm::gtx::matrix_query</a>
128 , <a class="el" href="a00300.html#ga727dbe962529a68632f779ccc79e2cef">glm::gtx::vector_query</a>
129 , <a class="el" href="a00273.html#ga249b7a2cc71db930e512f2a3ad9c9cc8">glm::gtx::matrix_query</a>
129 : <a class="el" href="a00272.html#ga84fd1f76999aa657ca27f44725b8cc79">glm::gtx::matrix_query</a>
130 , <a class="el" href="a00299.html#ga727dbe962529a68632f779ccc79e2cef">glm::gtx::vector_query</a>
131 , <a class="el" href="a00272.html#ga249b7a2cc71db930e512f2a3ad9c9cc8">glm::gtx::matrix_query</a>
130132 </li>
131133 <li>isNull()
132 : <a class="el" href="a00273.html#ga3ea08cf50837874a590ef71c78500b5e">glm::gtx::matrix_query</a>
133 , <a class="el" href="a00300.html#gab8f7a48850ba11f19dbbfcc0429b116c">glm::gtx::vector_query</a>
134 , <a class="el" href="a00273.html#gaaecd78d1c5c5f361a763979311e3d115">glm::gtx::matrix_query</a>
134 : <a class="el" href="a00272.html#ga3ea08cf50837874a590ef71c78500b5e">glm::gtx::matrix_query</a>
135 , <a class="el" href="a00299.html#gab8f7a48850ba11f19dbbfcc0429b116c">glm::gtx::vector_query</a>
136 , <a class="el" href="a00272.html#gaaecd78d1c5c5f361a763979311e3d115">glm::gtx::matrix_query</a>
135137 </li>
136138 <li>isOrthogonal()
137 : <a class="el" href="a00273.html#ga87823a9c3fb605773789866fc31f60e8">glm::gtx::matrix_query</a>
139 : <a class="el" href="a00272.html#ga87823a9c3fb605773789866fc31f60e8">glm::gtx::matrix_query</a>
138140 </li>
139141 <li>isPowerOfTwo()
140 : <a class="el" href="a00250.html#gadddfcaa01efe60218e52323707331415">glm::gtx::bit</a>
142 : <a class="el" href="a00249.html#gadddfcaa01efe60218e52323707331415">glm::gtx::bit</a>
141143 </li>
142144 </ul>
143145 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
7274 <li>l1Norm()
73 : <a class="el" href="a00276.html#gab9942ce9c9a3de0fcb2b2d1a7eea5d1b">glm::gtx::norm</a>
75 : <a class="el" href="a00275.html#gab9942ce9c9a3de0fcb2b2d1a7eea5d1b">glm::gtx::norm</a>
7476 </li>
7577 <li>l2Norm()
76 : <a class="el" href="a00276.html#ga281fb89a1b196753973cb6932ed43042">glm::gtx::norm</a>
78 : <a class="el" href="a00275.html#ga281fb89a1b196753973cb6932ed43042">glm::gtx::norm</a>
7779 </li>
7880 <li>ldexp()
79 : <a class="el" href="a00238.html#gaa99c16ada9e61cca03a8a00938a3c330">glm::core::function::common</a>
81 : <a class="el" href="a00145.html#a6c90cad9fe6a58162ac474a4df261d06">glm</a>
8082 </li>
8183 <li>leftHanded()
82 : <a class="el" href="a00264.html#gac222c8dd989fe9fb2142f18320bd683c">glm::gtx::handed_coordinate_space</a>
84 : <a class="el" href="a00263.html#gac222c8dd989fe9fb2142f18320bd683c">glm::gtx::handed_coordinate_space</a>
8385 </li>
8486 <li>length()
85 : <a class="el" href="a00245.html#gabb546279ee6acebe3fe64dce79e7e9f0">glm::gtc::quaternion</a>
86 , <a class="el" href="a00292.html#gaf76a38ce8c466c9b0bc4c1b5db1a6faa">glm::gtx::simd_vec4</a>
87 , <a class="el" href="a00238.html#ga10ee9a1d18c6da61cab61d8637d23847">glm::core::function::geometric</a>
87 : <a class="el" href="a00291.html#gaf76a38ce8c466c9b0bc4c1b5db1a6faa">glm::gtx::simd_vec4</a>
88 , <a class="el" href="a00244.html#gabb546279ee6acebe3fe64dce79e7e9f0">glm::gtc::quaternion</a>
8889 </li>
8990 <li>length2()
90 : <a class="el" href="a00276.html#ga461cea3ee3b98f8fcfea856def1f0ede">glm::gtx::norm</a>
91 : <a class="el" href="a00275.html#ga461cea3ee3b98f8fcfea856def1f0ede">glm::gtx::norm</a>
9192 </li>
9293 <li>length4()
93 : <a class="el" href="a00292.html#ga6c7fffeb58db66f602585b24a8e4f2db">glm::gtx::simd_vec4</a>
94 : <a class="el" href="a00291.html#ga6c7fffeb58db66f602585b24a8e4f2db">glm::gtx::simd_vec4</a>
9495 </li>
9596 <li>lerp()
96 : <a class="el" href="a00255.html#ga56463ea9166068ab33107e1cea942023">glm::gtx::compatibility</a>
97 </li>
98 <li>lessThan()
99 : <a class="el" href="a00238.html#ga54e5b894f79b9c1b8f6d28fe6f986e80">glm::core::function::vector_relational</a>
100 </li>
101 <li>lessThanEqual()
102 : <a class="el" href="a00238.html#ga190db45f1b40202ee0716751448b119d">glm::core::function::vector_relational</a>
97 : <a class="el" href="a00254.html#ga5f7bfd8f1e917fd897a738177492c59a">glm::gtx::compatibility</a>
10398 </li>
10499 <li>log()
105 : <a class="el" href="a00238.html#ga50b7859bfe87c2f075fe7a04e4c68cc3">glm::core::function::exponential</a>
106 , <a class="el" href="a00286.html#ga11af1897310ec8a09210fb7b4deb0027">glm::gtx::quaternion</a>
107 , <a class="el" href="a00269.html#ga78c6b55186a549948b9783bdee1dd5e0">glm::gtx::log_base</a>
100 : <a class="el" href="a00237.html#ga50b7859bfe87c2f075fe7a04e4c68cc3">glm::core::function::exponential</a>
101 , <a class="el" href="a00285.html#ga11af1897310ec8a09210fb7b4deb0027">glm::gtx::quaternion</a>
102 , <a class="el" href="a00268.html#ga78c6b55186a549948b9783bdee1dd5e0">glm::gtx::log_base</a>
108103 </li>
109104 <li>log2()
110 : <a class="el" href="a00238.html#ga956c24e59912196d4b3714789e57c077">glm::core::function::exponential</a>
105 : <a class="el" href="a00237.html#ga956c24e59912196d4b3714789e57c077">glm::core::function::exponential</a>
111106 </li>
112107 <li>lookAt()
113 : <a class="el" href="a00244.html#ga2d6b6c381f047ea4d9ca4145fed9edd5">glm::gtc::matrix_transform</a>
108 : <a class="el" href="a00243.html#ga2d6b6c381f047ea4d9ca4145fed9edd5">glm::gtc::matrix_transform</a>
114109 </li>
115110 <li>lowerMultiple()
116 : <a class="el" href="a00275.html#ga28760c297ccc5f54111d4469dc1bd1f6">glm::gtx::multiple</a>
111 : <a class="el" href="a00274.html#ga28760c297ccc5f54111d4469dc1bd1f6">glm::gtx::multiple</a>
117112 </li>
118113 <li>lowestBit()
119 : <a class="el" href="a00250.html#gace8029d9e9090f2aaa0248e320b3f24c">glm::gtx::bit</a>
114 : <a class="el" href="a00249.html#gace8029d9e9090f2aaa0248e320b3f24c">glm::gtx::bit</a>
120115 </li>
121116 <li>luminosity()
122 : <a class="el" href="a00253.html#ga205ff9aab7e86a3e434f1c49f0a2b234">glm::gtx::color_space</a>
117 : <a class="el" href="a00252.html#ga205ff9aab7e86a3e434f1c49f0a2b234">glm::gtx::color_space</a>
123118 </li>
124119 <li>lxNorm()
125 : <a class="el" href="a00276.html#gab6b384000fdc1a560fd927684f4f3a2a">glm::gtx::norm</a>
120 : <a class="el" href="a00275.html#gacfed1ae105bff09745f86d8789503776">glm::gtx::norm</a>
126121 </li>
127122 </ul>
128123 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
7274 <li>mad()
73 : <a class="el" href="a00301.html#ga4997f51a19fbe8f947fd5589af27619f">glm::gtx::verbose_operator</a>
75 : <a class="el" href="a00300.html#ga4997f51a19fbe8f947fd5589af27619f">glm::gtx::verbose_operator</a>
7476 </li>
7577 <li>make_mat2()
76 : <a class="el" href="a00247.html#ga28e2cb93a1d741f43d116ae597ffcc91">glm::gtc::type_ptr</a>
78 : <a class="el" href="a00246.html#ga28e2cb93a1d741f43d116ae597ffcc91">glm::gtc::type_ptr</a>
7779 </li>
7880 <li>make_mat2x2()
79 : <a class="el" href="a00247.html#ga8ad46b9608226fd1c7eec27890281a72">glm::gtc::type_ptr</a>
81 : <a class="el" href="a00246.html#ga8ad46b9608226fd1c7eec27890281a72">glm::gtc::type_ptr</a>
8082 </li>
8183 <li>make_mat2x3()
82 : <a class="el" href="a00247.html#ga44094e20569c4f5099c099906278ea3d">glm::gtc::type_ptr</a>
84 : <a class="el" href="a00246.html#ga44094e20569c4f5099c099906278ea3d">glm::gtc::type_ptr</a>
8385 </li>
8486 <li>make_mat2x4()
85 : <a class="el" href="a00247.html#ga26642a9d5c0f0a1eaacc8b432516aa99">glm::gtc::type_ptr</a>
87 : <a class="el" href="a00246.html#ga26642a9d5c0f0a1eaacc8b432516aa99">glm::gtc::type_ptr</a>
8688 </li>
8789 <li>make_mat3()
88 : <a class="el" href="a00247.html#ga3012728a59d487ef0e19e0f0fff79b64">glm::gtc::type_ptr</a>
90 : <a class="el" href="a00246.html#ga3012728a59d487ef0e19e0f0fff79b64">glm::gtc::type_ptr</a>
8991 </li>
9092 <li>make_mat3x2()
91 : <a class="el" href="a00247.html#ga9e82111c23b88953fe05ee8c27c2b1bc">glm::gtc::type_ptr</a>
93 : <a class="el" href="a00246.html#ga9e82111c23b88953fe05ee8c27c2b1bc">glm::gtc::type_ptr</a>
9294 </li>
9395 <li>make_mat3x3()
94 : <a class="el" href="a00247.html#ga225aa7d04b65101d744ef77d95e1a23b">glm::gtc::type_ptr</a>
96 : <a class="el" href="a00246.html#ga225aa7d04b65101d744ef77d95e1a23b">glm::gtc::type_ptr</a>
9597 </li>
9698 <li>make_mat3x4()
97 : <a class="el" href="a00247.html#gaa4708891294a5aee07256ba6441b4889">glm::gtc::type_ptr</a>
99 : <a class="el" href="a00246.html#gaa4708891294a5aee07256ba6441b4889">glm::gtc::type_ptr</a>
98100 </li>
99101 <li>make_mat4()
100 : <a class="el" href="a00247.html#ga208ed9a335cf79366b278deedd83f32b">glm::gtc::type_ptr</a>
102 : <a class="el" href="a00246.html#ga208ed9a335cf79366b278deedd83f32b">glm::gtc::type_ptr</a>
101103 </li>
102104 <li>make_mat4x2()
103 : <a class="el" href="a00247.html#ga2092b5a4cd05f2e39dc1b8e5ee22589c">glm::gtc::type_ptr</a>
105 : <a class="el" href="a00246.html#ga2092b5a4cd05f2e39dc1b8e5ee22589c">glm::gtc::type_ptr</a>
104106 </li>
105107 <li>make_mat4x3()
106 : <a class="el" href="a00247.html#ga0bc483c7f197b07a816682dd0b3981d9">glm::gtc::type_ptr</a>
108 : <a class="el" href="a00246.html#ga0bc483c7f197b07a816682dd0b3981d9">glm::gtc::type_ptr</a>
107109 </li>
108110 <li>make_mat4x4()
109 : <a class="el" href="a00247.html#gac9e742ff5cc9308caabd8236fc11a687">glm::gtc::type_ptr</a>
111 : <a class="el" href="a00246.html#gac9e742ff5cc9308caabd8236fc11a687">glm::gtc::type_ptr</a>
110112 </li>
111113 <li>make_vec2()
112 : <a class="el" href="a00247.html#ga78da3ea7db8bca3e13559653ce55093b">glm::gtc::type_ptr</a>
114 : <a class="el" href="a00246.html#ga78da3ea7db8bca3e13559653ce55093b">glm::gtc::type_ptr</a>
113115 </li>
114116 <li>make_vec3()
115 : <a class="el" href="a00247.html#ga2a4f1959e1070f904687739954c4f7ee">glm::gtc::type_ptr</a>
117 : <a class="el" href="a00246.html#ga2a4f1959e1070f904687739954c4f7ee">glm::gtc::type_ptr</a>
116118 </li>
117119 <li>make_vec4()
118 : <a class="el" href="a00247.html#ga76c09e1e25b8dbb947d10b76f5c4beac">glm::gtc::type_ptr</a>
120 : <a class="el" href="a00246.html#ga76c09e1e25b8dbb947d10b76f5c4beac">glm::gtc::type_ptr</a>
119121 </li>
120122 <li>mask()
121 : <a class="el" href="a00250.html#ga31dbf05c851060984e107afb39dde5fe">glm::gtx::bit</a>
123 : <a class="el" href="a00249.html#ga31dbf05c851060984e107afb39dde5fe">glm::gtx::bit</a>
122124 </li>
123125 <li>mat3_cast()
124 : <a class="el" href="a00245.html#ga38702707009c743e9f304aadc25aeeeb">glm::gtc::quaternion</a>
126 : <a class="el" href="a00244.html#ga38702707009c743e9f304aadc25aeeeb">glm::gtc::quaternion</a>
125127 </li>
126128 <li>mat4_cast()
127 : <a class="el" href="a00245.html#gae2d14d52f9fef3da00cf867f9e2e3dfa">glm::gtc::quaternion</a>
128 , <a class="el" href="a00291.html#ga8759e2cf163948c9c7ff138c1f56d501">glm::gtx::simd_mat4</a>
129 : <a class="el" href="a00244.html#gae2d14d52f9fef3da00cf867f9e2e3dfa">glm::gtc::quaternion</a>
130 , <a class="el" href="a00290.html#ga8759e2cf163948c9c7ff138c1f56d501">glm::gtx::simd_mat4</a>
129131 </li>
130132 <li>matrixCompMult()
131 : <a class="el" href="a00238.html#gad27896f9d5be202b8d39552eeb352c87">glm::core::function::matrix</a>
132 , <a class="el" href="a00291.html#ga5ae5a4950d3e354236390edfaa25301a">glm::gtx::simd_mat4</a>
133 : <a class="el" href="a00237.html#gad27896f9d5be202b8d39552eeb352c87">glm::core::function::matrix</a>
134 , <a class="el" href="a00290.html#ga5ae5a4950d3e354236390edfaa25301a">glm::gtx::simd_mat4</a>
133135 </li>
134136 <li>matrixCross3()
135 : <a class="el" href="a00270.html#gaa153d0f2600403c659a81a39b59b0f2c">glm::gtx::matrix_cross_product</a>
137 : <a class="el" href="a00269.html#gaa153d0f2600403c659a81a39b59b0f2c">glm::gtx::matrix_cross_product</a>
136138 </li>
137139 <li>matrixCross4()
138 : <a class="el" href="a00270.html#ga8cb94c98874b9b3deff5ad590e0cac23">glm::gtx::matrix_cross_product</a>
140 : <a class="el" href="a00269.html#ga8cb94c98874b9b3deff5ad590e0cac23">glm::gtx::matrix_cross_product</a>
139141 </li>
140142 <li>max()
141 : <a class="el" href="a00238.html#ga33a594380eeb7ac803c747298563d084">glm::core::function::common</a>
142 , <a class="el" href="a00292.html#ga10dbe289232abf23c8d668c646ff05d6">glm::gtx::simd_vec4</a>
143 : <a class="el" href="a00145.html#a60f960e757f8e07b105696ba1b43a3ba">glm</a>
144 , <a class="el" href="a00291.html#ga10dbe289232abf23c8d668c646ff05d6">glm::gtx::simd_vec4</a>
143145 </li>
144146 <li>min()
145 : <a class="el" href="a00238.html#gacbc721d96bff24d97ed7989d35f27067">glm::core::function::common</a>
146 , <a class="el" href="a00292.html#gac8850ebd4ae655de76f375105cf7b3d8">glm::gtx::simd_vec4</a>
147 : <a class="el" href="a00145.html#a0fcafc1c8cd3961014e3f00d6a8a649e">glm</a>
148 , <a class="el" href="a00291.html#gac8850ebd4ae655de76f375105cf7b3d8">glm::gtx::simd_vec4</a>
147149 </li>
148150 <li>mirrorRepeat()
149 : <a class="el" href="a00302.html#gae158e6e90ba29f07f3fe590b3e9a077e">glm::gtx::wrap</a>
151 : <a class="el" href="a00301.html#gae158e6e90ba29f07f3fe590b3e9a077e">glm::gtx::wrap</a>
150152 </li>
151153 <li>mix()
152 : <a class="el" href="a00292.html#gafb120dd721c6b87f5f23c3edd159cfaa">glm::gtx::simd_vec4</a>
153 , <a class="el" href="a00245.html#ga99e0097254662e3d4d5859fa329762ca">glm::gtc::quaternion</a>
154 , <a class="el" href="a00238.html#ga11288dc43a2a1833766728a3eb81ac63">glm::core::function::common</a>
154 : <a class="el" href="a00291.html#gafb120dd721c6b87f5f23c3edd159cfaa">glm::gtx::simd_vec4</a>
155 , <a class="el" href="a00244.html#ga7cacada583bca8e51e9c67f9cd7e69cb">glm::gtc::quaternion</a>
156 , <a class="el" href="a00145.html#aa0e50f7c66dbac1eb55e8ff6635f8cf1">glm</a>
155157 </li>
156158 <li>mixedProduct()
157 : <a class="el" href="a00274.html#gacd91c1d0c25c158ab83965b98553970d">glm::gtx::mixed_product</a>
159 : <a class="el" href="a00273.html#gacd91c1d0c25c158ab83965b98553970d">glm::gtx::mixed_product</a>
158160 </li>
159161 <li>mod()
160 : <a class="el" href="a00292.html#gaf95a2c5c60a6f2a36911d32901e44aba">glm::gtx::simd_vec4</a>
161 , <a class="el" href="a00297.html#ga61b96cbe026915bfa3f471d7d1e8d0e7">glm::gtx::unsigned_int</a>
162 , <a class="el" href="a00238.html#gacf6e2a9cb28a36f92338e82f3bf5755e">glm::core::function::common</a>
163 , <a class="el" href="a00292.html#gaba1f7a090566667c615a4a53c2f4a0c6">glm::gtx::simd_vec4</a>
164 , <a class="el" href="a00267.html#gaf48bc86895ab82c0e1f6f282d5cb6861">glm::gtx::integer</a>
165 , <a class="el" href="a00238.html#ga73fa91f6041b135083b0dea6e88c7aba">glm::core::function::common</a>
162 : <a class="el" href="a00291.html#gaf95a2c5c60a6f2a36911d32901e44aba">glm::gtx::simd_vec4</a>
163 , <a class="el" href="a00296.html#ga61b96cbe026915bfa3f471d7d1e8d0e7">glm::gtx::unsigned_int</a>
164 , <a class="el" href="a00145.html#a37a51d5fed454a8e32168cab48510086">glm</a>
165 , <a class="el" href="a00291.html#gaba1f7a090566667c615a4a53c2f4a0c6">glm::gtx::simd_vec4</a>
166 , <a class="el" href="a00266.html#gaf48bc86895ab82c0e1f6f282d5cb6861">glm::gtx::integer</a>
167 , <a class="el" href="a00145.html#a43f85499b31f6bd4cfa7fca5f0762d53">glm</a>
166168 </li>
167169 <li>modf()
168 : <a class="el" href="a00238.html#ga3f3cec79cc1542950cd4cddb7ab67584">glm::core::function::common</a>
170 : <a class="el" href="a00145.html#ae64aea185c3a5209716fb33bac274fe3">glm</a>
169171 </li>
170172 <li>mul()
171 : <a class="el" href="a00301.html#gac87bf44315f4f2b57ace7dc9eb2cf851">glm::gtx::verbose_operator</a>
173 : <a class="el" href="a00300.html#gac87bf44315f4f2b57ace7dc9eb2cf851">glm::gtx::verbose_operator</a>
172174 </li>
173175 </ul>
174176 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7375 : <a class="el" href="a00307.html#gafbc30acc96f02e05cdbce1c035304e89">glm::gtx::ulp</a>
7476 </li>
7577 <li>niceLength()
76 : <a class="el" href="a00292.html#ga97a71f5eed0feb541ea1131a46e4422e">glm::gtx::simd_vec4</a>
78 : <a class="el" href="a00291.html#ga97a71f5eed0feb541ea1131a46e4422e">glm::gtx::simd_vec4</a>
7779 </li>
7880 <li>niceLength4()
79 : <a class="el" href="a00292.html#ga159f5857abf0df4250bae94f95b9d015">glm::gtx::simd_vec4</a>
81 : <a class="el" href="a00291.html#ga159f5857abf0df4250bae94f95b9d015">glm::gtx::simd_vec4</a>
8082 </li>
8183 <li>niceSqrt()
82 : <a class="el" href="a00292.html#ga163877845325804cda05e8b5142822d5">glm::gtx::simd_vec4</a>
84 : <a class="el" href="a00291.html#ga163877845325804cda05e8b5142822d5">glm::gtx::simd_vec4</a>
8385 </li>
8486 <li>normalize()
85 : <a class="el" href="a00292.html#ga4e5cbc78bdd522b61ecd2154b50251af">glm::gtx::simd_vec4</a>
86 , <a class="el" href="a00238.html#ga07ff16965f11fa17122ac874ed492276">glm::core::function::geometric</a>
87 , <a class="el" href="a00245.html#gacca9518d4cb79922ccbcd2d01e886421">glm::gtc::quaternion</a>
87 : <a class="el" href="a00244.html#gacca9518d4cb79922ccbcd2d01e886421">glm::gtc::quaternion</a>
88 , <a class="el" href="a00291.html#ga4e5cbc78bdd522b61ecd2154b50251af">glm::gtx::simd_vec4</a>
8889 </li>
8990 <li>normalizeDot()
90 : <a class="el" href="a00278.html#ga71e52e38395048672c908861a3758b76">glm::gtx::normalize_dot</a>
91 : <a class="el" href="a00277.html#ga71e52e38395048672c908861a3758b76">glm::gtx::normalize_dot</a>
9192 </li>
9293 <li>normalizedRand2()
93 : <a class="el" href="a00287.html#ga5d05c63350546c1e7aa058bbf1b7f547">glm::gtx::random</a>
94 : <a class="el" href="a00286.html#ga5d05c63350546c1e7aa058bbf1b7f547">glm::gtx::random</a>
9495 </li>
9596 <li>normalizedRand3()
96 : <a class="el" href="a00287.html#ga4c732e0408a54bbd709e0c5906e3ecde">glm::gtx::random</a>
97 : <a class="el" href="a00286.html#ga4d7a132cc05433f7c4c8263797f9d5b4">glm::gtx::random</a>
9798 </li>
9899 <li>not_()
99 : <a class="el" href="a00238.html#gadb3248006580ee79ebb1d358bce25ca0">glm::core::function::vector_relational</a>
100 : <a class="el" href="a00145.html#ad6e2c2cb8a811dfcf0c29d515d463a66">glm</a>
100101 </li>
101102 <li>notEqual()
102 : <a class="el" href="a00238.html#ga62979ef5be1ad914f866074b900abdcd">glm::core::function::vector_relational</a>
103 : <a class="el" href="a00145.html#afa73db4ea5a8e4548eb7984a7dd6b690">glm</a>
103104 </li>
104105 <li>notEqualEpsilon()
105 : <a class="el" href="a00257.html#ga2f60f387fd69452ec68d5b38682d87b8">glm::gtx::epsilon</a>
106 : <a class="el" href="a00256.html#ga2f60f387fd69452ec68d5b38682d87b8">glm::gtx::epsilon</a>
106107 </li>
107108 </ul>
108109 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
7274 <li>orientate2()
73 : <a class="el" href="a00258.html#ga6b666a8d6dede8301520d023d0e96470">glm::gtx::euler_angles</a>
75 : <a class="el" href="a00257.html#ga6b666a8d6dede8301520d023d0e96470">glm::gtx::euler_angles</a>
7476 </li>
7577 <li>orientate3()
76 : <a class="el" href="a00258.html#gaabc9340ff9d773e8117f2bed0b1bcacd">glm::gtx::euler_angles</a>
78 : <a class="el" href="a00257.html#gaabc9340ff9d773e8117f2bed0b1bcacd">glm::gtx::euler_angles</a>
7779 </li>
7880 <li>orientate4()
79 : <a class="el" href="a00258.html#gac9b9ee10382d273e6f2497f0c34ba125">glm::gtx::euler_angles</a>
81 : <a class="el" href="a00257.html#gac9b9ee10382d273e6f2497f0c34ba125">glm::gtx::euler_angles</a>
8082 </li>
8183 <li>orientation()
82 : <a class="el" href="a00290.html#ga98e847d33908bb6e38273214671dbc25">glm::gtx::rotate_vector</a>
84 : <a class="el" href="a00289.html#gae3a2b116deb10aa573c9931c9ea3c258">glm::gtx::rotate_vector</a>
8385 </li>
8486 <li>orientedAngle()
85 : <a class="el" href="a00299.html#gae5ca5e80b176900509b0f12a6ca8b164">glm::gtx::vector_angle</a>
86 </li>
87 <li>orientedAngleFromRef()
88 : <a class="el" href="a00299.html#gad9f384cfa3b7879dc5926fad0023cce9">glm::gtx::vector_angle</a>
87 : <a class="el" href="a00298.html#ga4ac0ffd1ca09ae58ff79486240296663">glm::gtx::vector_angle</a>
8988 </li>
9089 <li>ortho()
91 : <a class="el" href="a00244.html#gad25e5b029ebefac5b657861378c17aa8">glm::gtc::matrix_transform</a>
90 : <a class="el" href="a00243.html#gad25e5b029ebefac5b657861378c17aa8">glm::gtc::matrix_transform</a>
9291 </li>
9392 <li>orthonormalize()
94 : <a class="el" href="a00282.html#ga6a15dbab7c2ac16b0a836cc267b2e3a3">glm::gtx::orthonormalize</a>
93 : <a class="el" href="a00281.html#ga6a15dbab7c2ac16b0a836cc267b2e3a3">glm::gtx::orthonormalize</a>
9594 </li>
9695 <li>outerProduct()
97 : <a class="el" href="a00291.html#gafed2233ac30495621c2bdd4d121f9ced">glm::gtx::simd_mat4</a>
98 , <a class="el" href="a00238.html#ga04b83f76e97124e8e91d923dd7ba326c">glm::core::function::matrix</a>
96 : <a class="el" href="a00290.html#gafed2233ac30495621c2bdd4d121f9ced">glm::gtx::simd_mat4</a>
97 , <a class="el" href="a00237.html#ga04b83f76e97124e8e91d923dd7ba326c">glm::core::function::matrix</a>
9998 </li>
10099 </ul>
101100 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
7274 <li>packDouble2x32()
73 : <a class="el" href="a00238.html#ga816867ca2fdb1bfb5d80d7a4f18a9e97">glm::core::function::packing</a>
75 : <a class="el" href="a00237.html#ga816867ca2fdb1bfb5d80d7a4f18a9e97">glm::core::function::packing</a>
7476 </li>
7577 <li>packSnorm4x8()
76 : <a class="el" href="a00238.html#ga3f82e6b12495d9751eee53facba475da">glm::core::function::packing</a>
78 : <a class="el" href="a00237.html#ga3f82e6b12495d9751eee53facba475da">glm::core::function::packing</a>
7779 </li>
7880 <li>packUnorm2x16()
79 : <a class="el" href="a00238.html#ga7fc17302ae69881bb792842d472e7a30">glm::core::function::packing</a>
81 : <a class="el" href="a00237.html#ga7fc17302ae69881bb792842d472e7a30">glm::core::function::packing</a>
8082 </li>
8183 <li>packUnorm4x8()
82 : <a class="el" href="a00238.html#gaf440e4e6c6be271327c5e2538e9c8b5f">glm::core::function::packing</a>
84 : <a class="el" href="a00237.html#gaf440e4e6c6be271327c5e2538e9c8b5f">glm::core::function::packing</a>
8385 </li>
8486 <li>perlin()
8587 : <a class="el" href="a00306.html#ga9de9e66368f398a09105fedeafbebb3e">glm::gtx::noise</a>
8688 </li>
8789 <li>perp()
88 : <a class="el" href="a00283.html#ga798c55f9dabedd2f7b9c691cb9751dab">glm::gtx::perpendicular</a>
90 : <a class="el" href="a00282.html#ga798c55f9dabedd2f7b9c691cb9751dab">glm::gtx::perpendicular</a>
8991 </li>
9092 <li>perspective()
91 : <a class="el" href="a00244.html#ga1bb3652e43f824d8c1dd5b9e60c80437">glm::gtc::matrix_transform</a>
93 : <a class="el" href="a00243.html#ga1bb3652e43f824d8c1dd5b9e60c80437">glm::gtc::matrix_transform</a>
9294 </li>
9395 <li>perspectiveFov()
94 : <a class="el" href="a00244.html#ga2d4fab691ace1abbffb3cdd4cc2316e9">glm::gtc::matrix_transform</a>
96 : <a class="el" href="a00243.html#ga2d4fab691ace1abbffb3cdd4cc2316e9">glm::gtc::matrix_transform</a>
9597 </li>
9698 <li>pickMatrix()
97 : <a class="el" href="a00244.html#ga9ebc45c333c8ec63c5047d6c1fcb9415">glm::gtc::matrix_transform</a>
99 : <a class="el" href="a00243.html#ga9ebc45c333c8ec63c5047d6c1fcb9415">glm::gtc::matrix_transform</a>
98100 </li>
99101 <li>pitch()
100 : <a class="el" href="a00286.html#gafad23e37f1723bbbbd7f9498cd729126">glm::gtx::quaternion</a>
102 : <a class="el" href="a00285.html#gafad23e37f1723bbbbd7f9498cd729126">glm::gtx::quaternion</a>
101103 </li>
102104 <li>polar()
103 : <a class="el" href="a00284.html#gab4f7bb55a54520917a592699bdb0b2f5">glm::gtx::polar_coordinates</a>
105 : <a class="el" href="a00283.html#gab4f7bb55a54520917a592699bdb0b2f5">glm::gtx::polar_coordinates</a>
104106 </li>
105107 <li>pow()
106 : <a class="el" href="a00267.html#gaf34adb6543aab76a364f40bb77dbaeb8">glm::gtx::integer</a>
107 , <a class="el" href="a00286.html#ga42873121534327c9e5238f3ca3d6cd03">glm::gtx::quaternion</a>
108 , <a class="el" href="a00297.html#ga9f8b197b576d9b2f0b5bfe63dc1f638f">glm::gtx::unsigned_int</a>
109 , <a class="el" href="a00238.html#ga8eb76dfbf0fed3397c0327915279f06f">glm::core::function::exponential</a>
108 : <a class="el" href="a00266.html#gaf34adb6543aab76a364f40bb77dbaeb8">glm::gtx::integer</a>
109 , <a class="el" href="a00285.html#ga42873121534327c9e5238f3ca3d6cd03">glm::gtx::quaternion</a>
110 , <a class="el" href="a00296.html#ga9f8b197b576d9b2f0b5bfe63dc1f638f">glm::gtx::unsigned_int</a>
111 , <a class="el" href="a00237.html#ga8eb76dfbf0fed3397c0327915279f06f">glm::core::function::exponential</a>
110112 </li>
111113 <li>pow2()
112 : <a class="el" href="a00281.html#gaed0305d69d3e3ba925d2c6e138b4f4bf">glm::gtx::optimum_pow</a>
114 : <a class="el" href="a00280.html#gaed0305d69d3e3ba925d2c6e138b4f4bf">glm::gtx::optimum_pow</a>
113115 </li>
114116 <li>pow3()
115 : <a class="el" href="a00281.html#ga8b7ca4439147682892326d3d61294f46">glm::gtx::optimum_pow</a>
117 : <a class="el" href="a00280.html#ga8b7ca4439147682892326d3d61294f46">glm::gtx::optimum_pow</a>
116118 </li>
117119 <li>pow4()
118 : <a class="el" href="a00281.html#gafe1d0d8f5f0501c4940ebb8ae76a1ebf">glm::gtx::optimum_pow</a>
120 : <a class="el" href="a00280.html#gafe1d0d8f5f0501c4940ebb8ae76a1ebf">glm::gtx::optimum_pow</a>
119121 </li>
120122 <li>powerOfTwoAbove()
121 : <a class="el" href="a00250.html#ga0a1683dffc58011a161c0b3cb867c93c">glm::gtx::bit</a>
123 : <a class="el" href="a00249.html#ga0a1683dffc58011a161c0b3cb867c93c">glm::gtx::bit</a>
122124 </li>
123125 <li>powerOfTwoBelow()
124 : <a class="el" href="a00250.html#ga9adeb3bc22e67933665600e0dc2e1f8d">glm::gtx::bit</a>
126 : <a class="el" href="a00249.html#ga9adeb3bc22e67933665600e0dc2e1f8d">glm::gtx::bit</a>
125127 </li>
126128 <li>powerOfTwoNearest()
127 : <a class="el" href="a00250.html#ga12d57451c94950bafe2e1fb57346f082">glm::gtx::bit</a>
129 : <a class="el" href="a00249.html#ga12d57451c94950bafe2e1fb57346f082">glm::gtx::bit</a>
128130 </li>
129131 <li>powOfTwo()
130 : <a class="el" href="a00281.html#gade3950ec7aa0f42e30ee40f8d7e451ae">glm::gtx::optimum_pow</a>
132 : <a class="el" href="a00280.html#gade3950ec7aa0f42e30ee40f8d7e451ae">glm::gtx::optimum_pow</a>
131133 </li>
132134 <li>prev_float()
133135 : <a class="el" href="a00307.html#ga5684a773c89402ea0c9fc71d17d2d54e">glm::gtx::ulp</a>
134136 </li>
135137 <li>proj()
136 : <a class="el" href="a00285.html#ga314c3fadce5d1a063c38da013ed20cde">glm::gtx::projection</a>
138 : <a class="el" href="a00284.html#ga314c3fadce5d1a063c38da013ed20cde">glm::gtx::projection</a>
137139 </li>
138140 <li>proj2D()
139 : <a class="el" href="a00296.html#gad67f97fe49fb1709d6d8b6810c7c52fb">glm::gtx::transform2</a>
141 : <a class="el" href="a00295.html#gad67f97fe49fb1709d6d8b6810c7c52fb">glm::gtx::transform2</a>
140142 </li>
141143 <li>proj3D()
142 : <a class="el" href="a00296.html#gabc160967cd323027f973976457590482">glm::gtx::transform2</a>
144 : <a class="el" href="a00295.html#gabc160967cd323027f973976457590482">glm::gtx::transform2</a>
143145 </li>
144146 <li>project()
145 : <a class="el" href="a00244.html#ga30e98d64189bae49582de8373de9f09f">glm::gtc::matrix_transform</a>
147 : <a class="el" href="a00243.html#ga30e98d64189bae49582de8373de9f09f">glm::gtc::matrix_transform</a>
146148 </li>
147149 </ul>
148150 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
7274 <li>quat_cast()
73 : <a class="el" href="a00245.html#ga9a8fa3c0a776ce21fde307d94f5a5a52">glm::gtc::quaternion</a>
75 : <a class="el" href="a00244.html#ga9a8fa3c0a776ce21fde307d94f5a5a52">glm::gtc::quaternion</a>
7476 </li>
7577 </ul>
7678 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
7274 <li>radians()
73 : <a class="el" href="a00238.html#ga40251a4a07049e7fdcbf155c3cc6d32a">glm::core::function::trigonometric</a>
75 : <a class="el" href="a00237.html#ga40251a4a07049e7fdcbf155c3cc6d32a">glm::core::function::trigonometric</a>
7476 </li>
7577 <li>reflect()
76 : <a class="el" href="a00238.html#ga2863d2331eb3752a5a17244c604c1d07">glm::core::function::geometric</a>
77 , <a class="el" href="a00292.html#ga42f1073cf493e7c299c72ae95180265d">glm::gtx::simd_vec4</a>
78 : <a class="el" href="a00291.html#ga42f1073cf493e7c299c72ae95180265d">glm::gtx::simd_vec4</a>
7879 </li>
7980 <li>refract()
80 : <a class="el" href="a00238.html#ga895392ad98499a450e2cc8579d76a84d">glm::core::function::geometric</a>
81 , <a class="el" href="a00292.html#ga894c3ec0524d03313dc9c72d36290c00">glm::gtx::simd_vec4</a>
81 : <a class="el" href="a00291.html#ga894c3ec0524d03313dc9c72d36290c00">glm::gtx::simd_vec4</a>
8282 </li>
8383 <li>repeat()
84 : <a class="el" href="a00302.html#ga3a80250939448f34862edddfb763e2ce">glm::gtx::wrap</a>
84 : <a class="el" href="a00301.html#ga3a80250939448f34862edddfb763e2ce">glm::gtx::wrap</a>
8585 </li>
8686 <li>rgb2YCoCg()
87 : <a class="el" href="a00254.html#ga41820be771f6edb66eec3d3376bae693">glm::gtx::color_space_YCoCg</a>
87 : <a class="el" href="a00253.html#ga41820be771f6edb66eec3d3376bae693">glm::gtx::color_space_YCoCg</a>
8888 </li>
8989 <li>rgb2YCoCgR()
90 : <a class="el" href="a00254.html#ga3c8d61f4ce259ce76b44fe70f472c766">glm::gtx::color_space_YCoCg</a>
90 : <a class="el" href="a00253.html#ga3c8d61f4ce259ce76b44fe70f472c766">glm::gtx::color_space_YCoCg</a>
9191 </li>
9292 <li>rgbColor()
93 : <a class="el" href="a00253.html#gaa84fde704746ed36b80df7bf521510c5">glm::gtx::color_space</a>
93 : <a class="el" href="a00252.html#gaa84fde704746ed36b80df7bf521510c5">glm::gtx::color_space</a>
9494 </li>
9595 <li>rightHanded()
96 : <a class="el" href="a00264.html#ga472eb0d6e9fcf9b503d3c1a74fdee645">glm::gtx::handed_coordinate_space</a>
96 : <a class="el" href="a00263.html#ga472eb0d6e9fcf9b503d3c1a74fdee645">glm::gtx::handed_coordinate_space</a>
9797 </li>
9898 <li>roll()
99 : <a class="el" href="a00286.html#ga60a4f955b2836d85f3d21ded84879926">glm::gtx::quaternion</a>
99 : <a class="el" href="a00285.html#ga60a4f955b2836d85f3d21ded84879926">glm::gtx::quaternion</a>
100100 </li>
101101 <li>rotate()
102 : <a class="el" href="a00290.html#ga916271935bb670e1a75797860af56ae0">glm::gtx::rotate_vector</a>
103 , <a class="el" href="a00295.html#ga6051e4c2205da027f721331b22f70d9d">glm::gtx::transform</a>
104 , <a class="el" href="a00244.html#ga48168ff70412019857ceb28b3b2b1f5e">glm::gtc::matrix_transform</a>
105 , <a class="el" href="a00245.html#ga98c5928aefea9c200a285a5f1c3a0da5">glm::gtc::quaternion</a>
106 , <a class="el" href="a00286.html#ga7f163c787898b76dc1d91eb48523ce87">glm::gtx::quaternion</a>
102 : <a class="el" href="a00289.html#gacbdc12006e75f857cf9ad07377499d6a">glm::gtx::rotate_vector</a>
103 , <a class="el" href="a00294.html#ga6051e4c2205da027f721331b22f70d9d">glm::gtx::transform</a>
104 , <a class="el" href="a00243.html#ga48168ff70412019857ceb28b3b2b1f5e">glm::gtc::matrix_transform</a>
105 , <a class="el" href="a00244.html#ga98c5928aefea9c200a285a5f1c3a0da5">glm::gtc::quaternion</a>
106 , <a class="el" href="a00285.html#ga7f163c787898b76dc1d91eb48523ce87">glm::gtx::quaternion</a>
107 , <a class="el" href="a00289.html#ga74ee9d3b702b3ddfc07478b86c89ce18">glm::gtx::rotate_vector</a>
107108 </li>
108109 <li>rotateX()
109 : <a class="el" href="a00290.html#ga1c732f02c6ac2ae68614baa28635be83">glm::gtx::rotate_vector</a>
110 : <a class="el" href="a00289.html#gabb24431b78204cb7852f0597f4514e6a">glm::gtx::rotate_vector</a>
110111 </li>
111112 <li>rotateY()
112 : <a class="el" href="a00290.html#gae2831fcaafe493b83b75f775cb9fe39e">glm::gtx::rotate_vector</a>
113 : <a class="el" href="a00289.html#ga6d4d0d7e78fc92f77e3e5474d46e703f">glm::gtx::rotate_vector</a>
113114 </li>
114115 <li>rotateZ()
115 : <a class="el" href="a00290.html#gafd0e0ce6a665978a3c72d31f0028d77d">glm::gtx::rotate_vector</a>
116 : <a class="el" href="a00289.html#ga3137076b99675a999459d52475a926e6">glm::gtx::rotate_vector</a>
116117 </li>
117118 <li>round()
118 : <a class="el" href="a00292.html#gad17e750a691edfe51fd1f60d8cac2329">glm::gtx::simd_vec4</a>
119 , <a class="el" href="a00238.html#gaa4cb0836cd9457ac6cedd3366333b16f">glm::core::function::common</a>
119 : <a class="el" href="a00291.html#gad17e750a691edfe51fd1f60d8cac2329">glm::gtx::simd_vec4</a>
120 , <a class="el" href="a00145.html#a76670d4897bcb1cf29956d48a5eb1841">glm</a>
120121 </li>
121122 <li>roundEven()
122 : <a class="el" href="a00238.html#ga656ce625ba1dc1d137bfc7cc7b2ab50b">glm::core::function::common</a>
123 : <a class="el" href="a00145.html#ab36c846a2b5c10ad70c45101c70893b7">glm</a>
123124 </li>
124125 <li>row()
125 : <a class="el" href="a00241.html#gab6684183e0e91181c960ce21efe1ce67">glm::gtc::matrix_access</a>
126 : <a class="el" href="a00240.html#ga35d133d689062739c8dad60b7e399bbe">glm::gtc::matrix_access</a>
126127 </li>
127128 <li>rowMajor2()
128 : <a class="el" href="a00271.html#ga136490f7562fa59d7733e2664f8c9fbb">glm::gtx::matrix_major_storage</a>
129 : <a class="el" href="a00270.html#ga136490f7562fa59d7733e2664f8c9fbb">glm::gtx::matrix_major_storage</a>
129130 </li>
130131 <li>rowMajor3()
131 : <a class="el" href="a00271.html#ga276a9398b180d8028b4a73fb9e675a23">glm::gtx::matrix_major_storage</a>
132 : <a class="el" href="a00270.html#ga276a9398b180d8028b4a73fb9e675a23">glm::gtx::matrix_major_storage</a>
132133 </li>
133134 <li>rowMajor4()
134 : <a class="el" href="a00271.html#gab834e851140a115bad912ebac8335bc6">glm::gtx::matrix_major_storage</a>
135 : <a class="el" href="a00270.html#gae1d60e551ab2912d6bb32a999c65b932">glm::gtx::matrix_major_storage</a>
135136 </li>
136137 </ul>
137138 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
7274 <li>saturate()
73 : <a class="el" href="a00255.html#gaa2afedf17ac7da10d95f383ea6be3124">glm::gtx::compatibility</a>
75 : <a class="el" href="a00254.html#gaa2afedf17ac7da10d95f383ea6be3124">glm::gtx::compatibility</a>
7476 </li>
7577 <li>saturation()
76 : <a class="el" href="a00253.html#gade937a20e420b352d33cce2e92c6fe10">glm::gtx::color_space</a>
78 : <a class="el" href="a00252.html#gade937a20e420b352d33cce2e92c6fe10">glm::gtx::color_space</a>
7779 </li>
7880 <li>scale()
79 : <a class="el" href="a00244.html#ga6da77ee2c33d0d33de557a37ff35b197">glm::gtc::matrix_transform</a>
80 , <a class="el" href="a00295.html#ga491ec926cfd56184de78ce4594e004a0">glm::gtx::transform</a>
81 : <a class="el" href="a00243.html#ga6da77ee2c33d0d33de557a37ff35b197">glm::gtc::matrix_transform</a>
82 , <a class="el" href="a00294.html#ga491ec926cfd56184de78ce4594e004a0">glm::gtx::transform</a>
8183 </li>
8284 <li>scaleBias()
83 : <a class="el" href="a00296.html#gae193c4807264f8454b1786ceeac02455">glm::gtx::transform2</a>
85 : <a class="el" href="a00295.html#gae193c4807264f8454b1786ceeac02455">glm::gtx::transform2</a>
8486 </li>
8587 <li>sec()
86 : <a class="el" href="a00289.html#gace10a38c1888d5fe0f77c08ba1775b41">glm::gtx::reciprocal</a>
88 : <a class="el" href="a00288.html#gace10a38c1888d5fe0f77c08ba1775b41">glm::gtx::reciprocal</a>
8789 </li>
8890 <li>sech()
89 : <a class="el" href="a00289.html#ga3d6f2c8efdefcf326be500a565d48a29">glm::gtx::reciprocal</a>
91 : <a class="el" href="a00288.html#ga3d6f2c8efdefcf326be500a565d48a29">glm::gtx::reciprocal</a>
9092 </li>
9193 <li>set()
92 : <a class="el" href="a00298.html#ga97b820e01a1b136b670aaa01d0a634bf">glm::gtx::vector_access</a>
94 : <a class="el" href="a00297.html#ga97b820e01a1b136b670aaa01d0a634bf">glm::gtx::vector_access</a>
9395 </li>
9496 <li>shearX2D()
95 : <a class="el" href="a00296.html#gaf9900000ffffcb4e50f0f97101a35a27">glm::gtx::transform2</a>
97 : <a class="el" href="a00295.html#gaf9900000ffffcb4e50f0f97101a35a27">glm::gtx::transform2</a>
9698 </li>
9799 <li>shearX3D()
98 : <a class="el" href="a00296.html#ga8b165c7be525526861e19675cca6e192">glm::gtx::transform2</a>
100 : <a class="el" href="a00295.html#ga8b165c7be525526861e19675cca6e192">glm::gtx::transform2</a>
99101 </li>
100102 <li>shearY2D()
101 : <a class="el" href="a00296.html#ga73d1c5572f57bc69cd8296fa6411370a">glm::gtx::transform2</a>
103 : <a class="el" href="a00295.html#ga73d1c5572f57bc69cd8296fa6411370a">glm::gtx::transform2</a>
102104 </li>
103105 <li>shearY3D()
104 : <a class="el" href="a00296.html#gab059e40261cbfe782efb81aa866f1399">glm::gtx::transform2</a>
106 : <a class="el" href="a00295.html#gab059e40261cbfe782efb81aa866f1399">glm::gtx::transform2</a>
105107 </li>
106108 <li>shearZ3D()
107 : <a class="el" href="a00296.html#ga3fbd91d387fea4c3f2d74e0ef2250996">glm::gtx::transform2</a>
109 : <a class="el" href="a00295.html#ga3fbd91d387fea4c3f2d74e0ef2250996">glm::gtx::transform2</a>
108110 </li>
109111 <li>shortMix()
110 : <a class="el" href="a00286.html#ga22566896a998311431a0612e1c222002">glm::gtx::quaternion</a>
112 : <a class="el" href="a00285.html#ga22566896a998311431a0612e1c222002">glm::gtx::quaternion</a>
111113 </li>
112114 <li>sign()
113 : <a class="el" href="a00238.html#ga992a45e46af5dc123e688808d1bae48f">glm::core::function::common</a>
114 , <a class="el" href="a00292.html#ga5a32ecd67af075293c5c8278f2938d4d">glm::gtx::simd_vec4</a>
115 : <a class="el" href="a00145.html#a0b7728fc27b611270eada9f278051cb6">glm</a>
116 , <a class="el" href="a00291.html#ga5a32ecd67af075293c5c8278f2938d4d">glm::gtx::simd_vec4</a>
115117 </li>
116118 <li>signedRand1()
117 : <a class="el" href="a00287.html#ga8b6a21d90d07f7a655264009590ddcce">glm::gtx::random</a>
119 : <a class="el" href="a00286.html#ga8b6a21d90d07f7a655264009590ddcce">glm::gtx::random</a>
118120 </li>
119121 <li>signedRand2()
120 : <a class="el" href="a00287.html#ga65f615e428d1e4009cdf872d434d5267">glm::gtx::random</a>
122 : <a class="el" href="a00286.html#ga65f615e428d1e4009cdf872d434d5267">glm::gtx::random</a>
121123 </li>
122124 <li>signedRand3()
123 : <a class="el" href="a00287.html#gab3a7fc45bf10792e96e5bbc6aa3ff30b">glm::gtx::random</a>
125 : <a class="el" href="a00286.html#gab3a7fc45bf10792e96e5bbc6aa3ff30b">glm::gtx::random</a>
124126 </li>
125127 <li>signedRand4()
126 : <a class="el" href="a00287.html#ga917ac879bf910263d7af720d03342e8a">glm::gtx::random</a>
128 : <a class="el" href="a00286.html#ga917ac879bf910263d7af720d03342e8a">glm::gtx::random</a>
127129 </li>
128130 <li>simdDot()
129 : <a class="el" href="a00292.html#ga44faf22be31f5809ed97bf611a56f3e9">glm::gtx::simd_vec4</a>
131 : <a class="el" href="a00291.html#ga44faf22be31f5809ed97bf611a56f3e9">glm::gtx::simd_vec4</a>
130132 </li>
131133 <li>simdFaceforward()
132 : <a class="el" href="a00292.html#gac11cb08f6ba68f761b7146a60e72da55">glm::gtx::simd_vec4</a>
134 : <a class="el" href="a00291.html#gac11cb08f6ba68f761b7146a60e72da55">glm::gtx::simd_vec4</a>
133135 </li>
134136 <li>simplex()
135137 : <a class="el" href="a00306.html#gaab96cbe99e3757bb55c7d830462fab94">glm::gtx::noise</a>
136138 </li>
137139 <li>sin()
138 : <a class="el" href="a00238.html#gad246389321f46f7cb1cc422f9fd64cf4">glm::core::function::trigonometric</a>
140 : <a class="el" href="a00237.html#gad246389321f46f7cb1cc422f9fd64cf4">glm::core::function::trigonometric</a>
139141 </li>
140142 <li>sinh()
141 : <a class="el" href="a00238.html#ga13a63bc67a160b1614ba3681f57fe480">glm::core::function::trigonometric</a>
143 : <a class="el" href="a00237.html#ga13a63bc67a160b1614ba3681f57fe480">glm::core::function::trigonometric</a>
142144 </li>
143145 <li>smoothstep()
144 : <a class="el" href="a00238.html#gaec459c912160fa6d9c18acd52976bb4d">glm::core::function::common</a>
145 , <a class="el" href="a00292.html#gaeadaacf6c87b0699292de98b7140a278">glm::gtx::simd_vec4</a>
146 : <a class="el" href="a00145.html#a15314aa4f9d5db43a35367fb7c0ae50a">glm</a>
147 , <a class="el" href="a00291.html#gaeadaacf6c87b0699292de98b7140a278">glm::gtx::simd_vec4</a>
146148 </li>
147149 <li>sphereInertia3()
148 : <a class="el" href="a00265.html#gad3bcd1a2ac02d030f6b774f5692aee01">glm::gtx::inertia</a>
150 : <a class="el" href="a00264.html#gad3bcd1a2ac02d030f6b774f5692aee01">glm::gtx::inertia</a>
149151 </li>
150152 <li>sphereInertia4()
151 : <a class="el" href="a00265.html#ga3d50f9cd04751451b22d712f1ce26351">glm::gtx::inertia</a>
153 : <a class="el" href="a00264.html#ga3d50f9cd04751451b22d712f1ce26351">glm::gtx::inertia</a>
152154 </li>
153155 <li>sqrt()
154 : <a class="el" href="a00292.html#ga28dbd1d165fc4301de4fb16a049fcfb2">glm::gtx::simd_vec4</a>
155 , <a class="el" href="a00267.html#gac6ee2be886e1f3be68adc5ee0552bad7">glm::gtx::integer</a>
156 , <a class="el" href="a00238.html#ga29d9d4ccbca8f2168ac6534fbb65cbad">glm::core::function::exponential</a>
157 , <a class="el" href="a00297.html#ga0fe1b8123e6661dda5969ee76a2b23df">glm::gtx::unsigned_int</a>
156 : <a class="el" href="a00291.html#ga28dbd1d165fc4301de4fb16a049fcfb2">glm::gtx::simd_vec4</a>
157 , <a class="el" href="a00266.html#gac6ee2be886e1f3be68adc5ee0552bad7">glm::gtx::integer</a>
158 , <a class="el" href="a00237.html#ga29d9d4ccbca8f2168ac6534fbb65cbad">glm::core::function::exponential</a>
159 , <a class="el" href="a00296.html#ga0fe1b8123e6661dda5969ee76a2b23df">glm::gtx::unsigned_int</a>
158160 </li>
159161 <li>squad()
160 : <a class="el" href="a00286.html#ga203b736245b7519eb151ac46e0bf7f21">glm::gtx::quaternion</a>
162 : <a class="el" href="a00285.html#ga203b736245b7519eb151ac46e0bf7f21">glm::gtx::quaternion</a>
161163 </li>
162164 <li>step()
163 : <a class="el" href="a00238.html#gaf1c0aac0585f62db8db44e407478c434">glm::core::function::common</a>
164 , <a class="el" href="a00292.html#ga459647604ac2aa0a97c4eb739a7302cb">glm::gtx::simd_vec4</a>
165 : <a class="el" href="a00145.html#af2b4a76ca689c24fe70b2f9b97816502">glm</a>
166 , <a class="el" href="a00291.html#ga459647604ac2aa0a97c4eb739a7302cb">glm::gtx::simd_vec4</a>
165167 </li>
166168 <li>sub()
167 : <a class="el" href="a00301.html#gae0f130b059368ee8ef65522b0d434e7e">glm::gtx::verbose_operator</a>
169 : <a class="el" href="a00300.html#gae0f130b059368ee8ef65522b0d434e7e">glm::gtx::verbose_operator</a>
168170 </li>
169171 </ul>
170172 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
7274 <li>tan()
73 : <a class="el" href="a00238.html#ga1a556079a4fee8b5e12fcfe7551f6931">glm::core::function::trigonometric</a>
75 : <a class="el" href="a00237.html#ga1a556079a4fee8b5e12fcfe7551f6931">glm::core::function::trigonometric</a>
7476 </li>
7577 <li>tanh()
76 : <a class="el" href="a00238.html#gad93de1d635832bf722eb78a088bfbaa6">glm::core::function::trigonometric</a>
78 : <a class="el" href="a00237.html#gad93de1d635832bf722eb78a088bfbaa6">glm::core::function::trigonometric</a>
7779 </li>
7880 <li>to_string()
79 : <a class="el" href="a00294.html#ga9ab4dfc4ab5f29591638fb56d7752fff">glm::gtx::string_cast</a>
81 : <a class="el" href="a00293.html#ga9ab4dfc4ab5f29591638fb56d7752fff">glm::gtx::string_cast</a>
8082 </li>
8183 <li>toMat3()
82 : <a class="el" href="a00286.html#ga61ec971322157330116a3aefe5bae609">glm::gtx::quaternion</a>
84 : <a class="el" href="a00285.html#ga61ec971322157330116a3aefe5bae609">glm::gtx::quaternion</a>
8385 </li>
8486 <li>toMat4()
85 : <a class="el" href="a00286.html#ga80622343bd7ccf43c9b4cb677ba3ce38">glm::gtx::quaternion</a>
87 : <a class="el" href="a00285.html#ga80622343bd7ccf43c9b4cb677ba3ce38">glm::gtx::quaternion</a>
8688 </li>
8789 <li>toQuat()
88 : <a class="el" href="a00286.html#ga991e534718ab690ff21e201f27bfd43b">glm::gtx::quaternion</a>
90 : <a class="el" href="a00285.html#ga991e534718ab690ff21e201f27bfd43b">glm::gtx::quaternion</a>
8991 </li>
9092 <li>translate()
91 : <a class="el" href="a00295.html#gac0a389d3a4a74010983db8bccab78d7f">glm::gtx::transform</a>
92 , <a class="el" href="a00244.html#ga4683c446c8432476750ade56f2537397">glm::gtc::matrix_transform</a>
93 , <a class="el" href="a00295.html#ga982331dbdf3a14d1ed6601e67178cff3">glm::gtx::transform</a>
93 : <a class="el" href="a00294.html#gac0a389d3a4a74010983db8bccab78d7f">glm::gtx::transform</a>
94 , <a class="el" href="a00243.html#ga4683c446c8432476750ade56f2537397">glm::gtc::matrix_transform</a>
95 , <a class="el" href="a00294.html#ga982331dbdf3a14d1ed6601e67178cff3">glm::gtx::transform</a>
9496 </li>
9597 <li>transpose()
96 : <a class="el" href="a00291.html#ga5da402c7d42808dfc8c8d51e0ac9c868">glm::gtx::simd_mat4</a>
97 , <a class="el" href="a00238.html#ga8b1a22512f73b0176ad062d3d480e906">glm::core::function::matrix</a>
98 : <a class="el" href="a00290.html#ga5da402c7d42808dfc8c8d51e0ac9c868">glm::gtx::simd_mat4</a>
99 , <a class="el" href="a00237.html#ga8b1a22512f73b0176ad062d3d480e906">glm::core::function::matrix</a>
98100 </li>
99101 <li>triangleNormal()
100 : <a class="el" href="a00277.html#ga465b51d9e302c22572a656e657631310">glm::gtx::normal</a>
102 : <a class="el" href="a00276.html#ga465b51d9e302c22572a656e657631310">glm::gtx::normal</a>
101103 </li>
102104 <li>trunc()
103 : <a class="el" href="a00292.html#ga4733720fa96ed2125f15e4b96578f486">glm::gtx::simd_vec4</a>
104 , <a class="el" href="a00238.html#ga2303d814e83b34ee2d5f34fcff7fa275">glm::core::function::common</a>
105 : <a class="el" href="a00291.html#ga4733720fa96ed2125f15e4b96578f486">glm::gtx::simd_vec4</a>
106 , <a class="el" href="a00145.html#a658fa96882dd07b523c48c88bf73d59c">glm</a>
105107 </li>
106108 <li>tweakedInfinitePerspective()
107 : <a class="el" href="a00244.html#gac257959595078f003d6a0e4be6f9a2eb">glm::gtc::matrix_transform</a>
109 : <a class="el" href="a00243.html#gac257959595078f003d6a0e4be6f9a2eb">glm::gtc::matrix_transform</a>
108110 </li>
109111 </ul>
110112 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
7274 <li>u16channel_cast()
73 : <a class="el" href="a00252.html#gab1c15b0a63939cf8b73704b3ee0531bf">glm::gtx::color_cast</a>
75 : <a class="el" href="a00251.html#gab1c15b0a63939cf8b73704b3ee0531bf">glm::gtx::color_cast</a>
7476 </li>
7577 <li>u32_abgr_cast()
76 : <a class="el" href="a00252.html#ga7419ad7d2b6280021d2e6fe61f959593">glm::gtx::color_cast</a>
78 : <a class="el" href="a00251.html#ga7419ad7d2b6280021d2e6fe61f959593">glm::gtx::color_cast</a>
7779 </li>
7880 <li>u32_argb_cast()
79 : <a class="el" href="a00252.html#ga54d650e121ffa7dd5df995f45eacbe7c">glm::gtx::color_cast</a>
81 : <a class="el" href="a00251.html#ga54d650e121ffa7dd5df995f45eacbe7c">glm::gtx::color_cast</a>
8082 </li>
8183 <li>u32_bgra_cast()
82 : <a class="el" href="a00252.html#ga994311f638751fbd6c18cbc6e7cc40a2">glm::gtx::color_cast</a>
84 : <a class="el" href="a00251.html#ga994311f638751fbd6c18cbc6e7cc40a2">glm::gtx::color_cast</a>
8385 </li>
8486 <li>u32_bgrx_cast()
85 : <a class="el" href="a00252.html#ga4343a2cc949e6a62e3195a50e03b328a">glm::gtx::color_cast</a>
87 : <a class="el" href="a00251.html#ga4343a2cc949e6a62e3195a50e03b328a">glm::gtx::color_cast</a>
8688 </li>
8789 <li>u32_rgba_cast()
88 : <a class="el" href="a00252.html#ga3251915cd4e12f9c74f80949dda11751">glm::gtx::color_cast</a>
90 : <a class="el" href="a00251.html#ga3251915cd4e12f9c74f80949dda11751">glm::gtx::color_cast</a>
8991 </li>
9092 <li>u32_rgbx_cast()
91 : <a class="el" href="a00252.html#ga76304a49860f623238edd96c9a181963">glm::gtx::color_cast</a>
93 : <a class="el" href="a00251.html#ga76304a49860f623238edd96c9a181963">glm::gtx::color_cast</a>
9294 </li>
9395 <li>u32_xbgr_cast()
94 : <a class="el" href="a00252.html#gae24be431c89259065ba614b12e130740">glm::gtx::color_cast</a>
96 : <a class="el" href="a00251.html#gae24be431c89259065ba614b12e130740">glm::gtx::color_cast</a>
9597 </li>
9698 <li>u32_xrgb_cast()
97 : <a class="el" href="a00252.html#gaeeb39141498fdaceb0eb7badd03b3111">glm::gtx::color_cast</a>
99 : <a class="el" href="a00251.html#gaeeb39141498fdaceb0eb7badd03b3111">glm::gtx::color_cast</a>
98100 </li>
99101 <li>u64_abgr_cast()
100 : <a class="el" href="a00252.html#ga4f050b0db28ca10c503188070330a8c5">glm::gtx::color_cast</a>
102 : <a class="el" href="a00251.html#ga4f050b0db28ca10c503188070330a8c5">glm::gtx::color_cast</a>
101103 </li>
102104 <li>u64_argb_cast()
103 : <a class="el" href="a00252.html#gadbf0e161e934b6dc7fda389481764f4e">glm::gtx::color_cast</a>
105 : <a class="el" href="a00251.html#gadbf0e161e934b6dc7fda389481764f4e">glm::gtx::color_cast</a>
104106 </li>
105107 <li>u64_bgra_cast()
106 : <a class="el" href="a00252.html#ga36cc78b5052b31b83c2f9562088dc66f">glm::gtx::color_cast</a>
108 : <a class="el" href="a00251.html#ga36cc78b5052b31b83c2f9562088dc66f">glm::gtx::color_cast</a>
107109 </li>
108110 <li>u64_bgrx_cast()
109 : <a class="el" href="a00252.html#gae19e40c22424904d922e22525a0bb455">glm::gtx::color_cast</a>
111 : <a class="el" href="a00251.html#gae19e40c22424904d922e22525a0bb455">glm::gtx::color_cast</a>
110112 </li>
111113 <li>u64_rgba_cast()
112 : <a class="el" href="a00252.html#gafd8e66f86f3c42fe17637ca0db751d40">glm::gtx::color_cast</a>
114 : <a class="el" href="a00251.html#gafd8e66f86f3c42fe17637ca0db751d40">glm::gtx::color_cast</a>
113115 </li>
114116 <li>u64_rgbx_cast()
115 : <a class="el" href="a00252.html#gac6f16d71adbccd604cffae1c83961bba">glm::gtx::color_cast</a>
117 : <a class="el" href="a00251.html#gac6f16d71adbccd604cffae1c83961bba">glm::gtx::color_cast</a>
116118 </li>
117119 <li>u64_xbgr_cast()
118 : <a class="el" href="a00252.html#gac3327797af9858e7716cb02b9f8452bc">glm::gtx::color_cast</a>
120 : <a class="el" href="a00251.html#gac3327797af9858e7716cb02b9f8452bc">glm::gtx::color_cast</a>
119121 </li>
120122 <li>u64_xrgb_cast()
121 : <a class="el" href="a00252.html#ga4b860d9689ce434bef7ecdbb8cdbc4b4">glm::gtx::color_cast</a>
123 : <a class="el" href="a00251.html#ga4b860d9689ce434bef7ecdbb8cdbc4b4">glm::gtx::color_cast</a>
122124 </li>
123125 <li>u8channel_cast()
124 : <a class="el" href="a00252.html#gab11ba0a450ba9a2b3885fa6a631df6f5">glm::gtx::color_cast</a>
126 : <a class="el" href="a00251.html#gab11ba0a450ba9a2b3885fa6a631df6f5">glm::gtx::color_cast</a>
125127 </li>
126128 <li>uaddCarry()
127 : <a class="el" href="a00238.html#ga8d63fd56743cc93286f09742baed4002">glm::core::function::integer</a>
129 : <a class="el" href="a00237.html#ga8d63fd56743cc93286f09742baed4002">glm::core::function::integer</a>
128130 </li>
129131 <li>uint10_10_10_2_cast()
130 : <a class="el" href="a00266.html#ga01b292ff461ea3d8e90a916c5b374fb1">glm::gtx::int_10_10_10_2</a>
132 : <a class="el" href="a00265.html#ga01b292ff461ea3d8e90a916c5b374fb1">glm::gtx::int_10_10_10_2</a>
131133 </li>
132134 <li>uintBitsToFloat()
133 : <a class="el" href="a00238.html#ga1a38039b00f182b6b22e909ea5a87bab">glm::core::function::common</a>
135 : <a class="el" href="a00145.html#a74b00f232062a3de845fdf3e24312196">glm</a>
134136 </li>
135137 <li>umulExtended()
136 : <a class="el" href="a00238.html#gad9b60d1c7e161b78682b7f8b071e213e">glm::core::function::integer</a>
138 : <a class="el" href="a00237.html#gad9b60d1c7e161b78682b7f8b071e213e">glm::core::function::integer</a>
137139 </li>
138140 <li>unpackDouble2x32()
139 : <a class="el" href="a00238.html#ga4e80ba8eaef0b878ecb43053a4df9ff7">glm::core::function::packing</a>
141 : <a class="el" href="a00237.html#ga4e80ba8eaef0b878ecb43053a4df9ff7">glm::core::function::packing</a>
140142 </li>
141143 <li>unpackSnorm4x8()
142 : <a class="el" href="a00238.html#ga03dafa00be8359e3a028aed81ae6007e">glm::core::function::packing</a>
144 : <a class="el" href="a00237.html#ga03dafa00be8359e3a028aed81ae6007e">glm::core::function::packing</a>
143145 </li>
144146 <li>unpackUnorm2x16()
145 : <a class="el" href="a00238.html#gab3745178db4024212c4d7cb3df9a6f39">glm::core::function::packing</a>
147 : <a class="el" href="a00237.html#gab3745178db4024212c4d7cb3df9a6f39">glm::core::function::packing</a>
146148 </li>
147149 <li>unpackUnorm4x8()
148 : <a class="el" href="a00238.html#ga11630d2b293d96452c412639ec3c942e">glm::core::function::packing</a>
150 : <a class="el" href="a00237.html#ga11630d2b293d96452c412639ec3c942e">glm::core::function::packing</a>
149151 </li>
150152 <li>unProject()
151 : <a class="el" href="a00244.html#gac38d611231b15799a0c06c54ff1ede43">glm::gtc::matrix_transform</a>
153 : <a class="el" href="a00243.html#gac38d611231b15799a0c06c54ff1ede43">glm::gtc::matrix_transform</a>
152154 </li>
153155 <li>usubBorrow()
154 : <a class="el" href="a00238.html#ga5ea2ea51e7cf73056069ce7583d61560">glm::core::function::integer</a>
156 : <a class="el" href="a00237.html#ga5ea2ea51e7cf73056069ce7583d61560">glm::core::function::integer</a>
155157 </li>
156158 </ul>
157159 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
7274 <li>value_ptr()
73 : <a class="el" href="a00247.html#gac21518f95a134dbe3c61460c89264b08">glm::gtc::type_ptr</a>
75 : <a class="el" href="a00246.html#gac21518f95a134dbe3c61460c89264b08">glm::gtc::type_ptr</a>
7476 </li>
7577 <li>vec4_cast()
76 : <a class="el" href="a00292.html#gaf44c64b2f9e70746b8a83571812670fc">glm::gtx::simd_vec4</a>
78 : <a class="el" href="a00291.html#gaf44c64b2f9e70746b8a83571812670fc">glm::gtx::simd_vec4</a>
7779 </li>
7880 <li>vecRand2()
79 : <a class="el" href="a00287.html#ga12d03cc32f213b4173e58f05d74232b3">glm::gtx::random</a>
81 : <a class="el" href="a00286.html#ga12d03cc32f213b4173e58f05d74232b3">glm::gtx::random</a>
8082 </li>
8183 <li>vecRand3()
82 : <a class="el" href="a00287.html#ga4e2bc1fdcc9bbb6292b858d50d467393">glm::gtx::random</a>
84 : <a class="el" href="a00286.html#ga4e2bc1fdcc9bbb6292b858d50d467393">glm::gtx::random</a>
8385 </li>
8486 <li>vecRand4()
85 : <a class="el" href="a00287.html#gafa1635f3e6a4db81474e4002f9f3e64b">glm::gtx::random</a>
87 : <a class="el" href="a00286.html#gafa1635f3e6a4db81474e4002f9f3e64b">glm::gtx::random</a>
8688 </li>
8789 </ul>
8890 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
7072
7173 <h3><a class="anchor" id="index_y"></a>- y -</h3><ul>
7274 <li>yaw()
73 : <a class="el" href="a00286.html#ga4795f1cc522d82d672f7be9a405583c4">glm::gtx::quaternion</a>
75 : <a class="el" href="a00285.html#ga4795f1cc522d82d672f7be9a405583c4">glm::gtx::quaternion</a>
7476 </li>
7577 <li>yawPitchRoll()
76 : <a class="el" href="a00258.html#gab21847188e03d21037f895642252dcc7">glm::gtx::euler_angles</a>
78 : <a class="el" href="a00257.html#gab21847188e03d21037f895642252dcc7">glm::gtx::euler_angles</a>
7779 </li>
7880 <li>YCoCg2rgb()
79 : <a class="el" href="a00254.html#ga638451b1492ea464bcda5d1abb0db614">glm::gtx::color_space_YCoCg</a>
81 : <a class="el" href="a00253.html#ga638451b1492ea464bcda5d1abb0db614">glm::gtx::color_space_YCoCg</a>
8082 </li>
8183 <li>YCoCgR2rgb()
82 : <a class="el" href="a00254.html#ga75497f0965bd4834d39a88c10dee12c4">glm::gtx::color_space_YCoCg</a>
84 : <a class="el" href="a00253.html#ga75497f0965bd4834d39a88c10dee12c4">glm::gtx::color_space_YCoCg</a>
8385 </li>
8486 </ul>
8587 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
6264
6365 <h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
6466 <li>bool1
65 : <a class="el" href="a00255.html#gaddcd7aa2e30e61af5b38660613d3979e">glm::gtx::compatibility</a>
67 : <a class="el" href="a00254.html#gaddcd7aa2e30e61af5b38660613d3979e">glm::gtx::compatibility</a>
6668 </li>
6769 <li>bool1x1
68 : <a class="el" href="a00255.html#ga7f895c936f0c29c8729afbbf22806090">glm::gtx::compatibility</a>
70 : <a class="el" href="a00254.html#ga7f895c936f0c29c8729afbbf22806090">glm::gtx::compatibility</a>
6971 </li>
7072 <li>bool2
71 : <a class="el" href="a00255.html#ga88cfb6bf63a7fd1f03fe5abeae2aec1d">glm::gtx::compatibility</a>
73 : <a class="el" href="a00254.html#ga88cfb6bf63a7fd1f03fe5abeae2aec1d">glm::gtx::compatibility</a>
7274 </li>
7375 <li>bool2x2
74 : <a class="el" href="a00255.html#ga51dfdd84c191d9433ebf5e626af2c1f9">glm::gtx::compatibility</a>
76 : <a class="el" href="a00254.html#ga51dfdd84c191d9433ebf5e626af2c1f9">glm::gtx::compatibility</a>
7577 </li>
7678 <li>bool2x3
77 : <a class="el" href="a00255.html#ga3982a05435c6c2d492b747f8adf6b9e0">glm::gtx::compatibility</a>
79 : <a class="el" href="a00254.html#ga3982a05435c6c2d492b747f8adf6b9e0">glm::gtx::compatibility</a>
7880 </li>
7981 <li>bool2x4
80 : <a class="el" href="a00255.html#ga78a505943e47244f4495d07e4884c318">glm::gtx::compatibility</a>
82 : <a class="el" href="a00254.html#ga78a505943e47244f4495d07e4884c318">glm::gtx::compatibility</a>
8183 </li>
8284 <li>bool3
83 : <a class="el" href="a00255.html#gade36f151806e985eec29fdf96ae6a2bb">glm::gtx::compatibility</a>
85 : <a class="el" href="a00254.html#gade36f151806e985eec29fdf96ae6a2bb">glm::gtx::compatibility</a>
8486 </li>
8587 <li>bool3x2
86 : <a class="el" href="a00255.html#gaf4e8c9209cfd75ac029f8d95e9520e2d">glm::gtx::compatibility</a>
88 : <a class="el" href="a00254.html#gaf4e8c9209cfd75ac029f8d95e9520e2d">glm::gtx::compatibility</a>
8789 </li>
8890 <li>bool3x3
89 : <a class="el" href="a00255.html#ga977c0274e9364b129774aedb65b3dcbd">glm::gtx::compatibility</a>
91 : <a class="el" href="a00254.html#ga977c0274e9364b129774aedb65b3dcbd">glm::gtx::compatibility</a>
9092 </li>
9193 <li>bool3x4
92 : <a class="el" href="a00255.html#ga5174a0758ee4bc91a51b1eb7b100a416">glm::gtx::compatibility</a>
94 : <a class="el" href="a00254.html#ga5174a0758ee4bc91a51b1eb7b100a416">glm::gtx::compatibility</a>
9395 </li>
9496 <li>bool4
95 : <a class="el" href="a00255.html#ga1ee8c362caed549a5a83fdd9db6ec6c2">glm::gtx::compatibility</a>
97 : <a class="el" href="a00254.html#ga1ee8c362caed549a5a83fdd9db6ec6c2">glm::gtx::compatibility</a>
9698 </li>
9799 <li>bool4x2
98 : <a class="el" href="a00255.html#ga590198580792550bff2a6bd7f811c8d9">glm::gtx::compatibility</a>
100 : <a class="el" href="a00254.html#ga590198580792550bff2a6bd7f811c8d9">glm::gtx::compatibility</a>
99101 </li>
100102 <li>bool4x3
101 : <a class="el" href="a00255.html#gac8ac5c2c5db2f164ae2e25d1b9898a6b">glm::gtx::compatibility</a>
103 : <a class="el" href="a00254.html#gac8ac5c2c5db2f164ae2e25d1b9898a6b">glm::gtx::compatibility</a>
102104 </li>
103105 <li>bool4x4
104 : <a class="el" href="a00255.html#gac437f71eba4fabf6d7551f1889af2ea5">glm::gtx::compatibility</a>
105 </li>
106 <li>bvec1
107 : <a class="el" href="a00223.html#a4cb77cff76a0649661d8909ac19bdec8">glm::gtx::vector1</a>
106 : <a class="el" href="a00254.html#gac437f71eba4fabf6d7551f1889af2ea5">glm::gtx::compatibility</a>
108107 </li>
109108 <li>bvec2
110 : <a class="el" href="a00235.html#ga3bdc45d8289530ec60f8b0afd86dec9d">glm</a>
109 : <a class="el" href="a00234.html#ga3bdc45d8289530ec60f8b0afd86dec9d">glm</a>
111110 </li>
112111 <li>bvec3
113 : <a class="el" href="a00235.html#gaa6930ec345061c66a5fcb4839bbc23b2">glm</a>
112 : <a class="el" href="a00234.html#gaa6930ec345061c66a5fcb4839bbc23b2">glm</a>
114113 </li>
115114 <li>bvec4
116 : <a class="el" href="a00235.html#ga3b7e171999130bbe808335a4e41356a0">glm</a>
115 : <a class="el" href="a00234.html#ga3b7e171999130bbe808335a4e41356a0">glm</a>
117116 </li>
118117 <li>byte
119 : <a class="el" href="a00288.html#ga4a5def5e5e8468de8e97132ddf5c72c5">glm::gtx::raw_data</a>
118 : <a class="el" href="a00287.html#ga4a5def5e5e8468de8e97132ddf5c72c5">glm::gtx::raw_data</a>
120119 </li>
121120 </ul>
122121 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
6264
6365 <h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
6466 <li>cl_char
65 : <a class="el" href="a00280.html#ga595300752d3c11b13411074df8fcadc7">glm::gtx::ocl_type</a>
67 : <a class="el" href="a00279.html#ga595300752d3c11b13411074df8fcadc7">glm::gtx::ocl_type</a>
6668 </li>
6769 <li>cl_char1
68 : <a class="el" href="a00280.html#gafe341e63c543ce750d41ed776ca0f8cc">glm::gtx::ocl_type</a>
70 : <a class="el" href="a00279.html#gafe341e63c543ce750d41ed776ca0f8cc">glm::gtx::ocl_type</a>
6971 </li>
7072 <li>cl_char2
71 : <a class="el" href="a00280.html#ga5eaab898e9289ffad98798d96a8ff22e">glm::gtx::ocl_type</a>
73 : <a class="el" href="a00279.html#ga5eaab898e9289ffad98798d96a8ff22e">glm::gtx::ocl_type</a>
7274 </li>
7375 <li>cl_char3
74 : <a class="el" href="a00280.html#ga3f60c528dc517a88386358e525238198">glm::gtx::ocl_type</a>
76 : <a class="el" href="a00279.html#ga3f60c528dc517a88386358e525238198">glm::gtx::ocl_type</a>
7577 </li>
7678 <li>cl_char4
77 : <a class="el" href="a00280.html#ga7235804672db90b3b2e8bba142ff4977">glm::gtx::ocl_type</a>
79 : <a class="el" href="a00279.html#ga7235804672db90b3b2e8bba142ff4977">glm::gtx::ocl_type</a>
7880 </li>
7981 <li>cl_float
80 : <a class="el" href="a00280.html#ga6a505bfaeb7d16f0aee456c238d31f06">glm::gtx::ocl_type</a>
82 : <a class="el" href="a00279.html#ga6a505bfaeb7d16f0aee456c238d31f06">glm::gtx::ocl_type</a>
8183 </li>
8284 <li>cl_float1
83 : <a class="el" href="a00280.html#gabd9de5d6f4075dcf643bcb3c74b4d169">glm::gtx::ocl_type</a>
85 : <a class="el" href="a00279.html#gabd9de5d6f4075dcf643bcb3c74b4d169">glm::gtx::ocl_type</a>
8486 </li>
8587 <li>cl_float2
86 : <a class="el" href="a00280.html#ga1d631e031b44406b9ecf4c9390ff4aaf">glm::gtx::ocl_type</a>
88 : <a class="el" href="a00279.html#ga1d631e031b44406b9ecf4c9390ff4aaf">glm::gtx::ocl_type</a>
8789 </li>
8890 <li>cl_float3
89 : <a class="el" href="a00280.html#gaad4526a10e23f201f55649f264856683">glm::gtx::ocl_type</a>
91 : <a class="el" href="a00279.html#gaad4526a10e23f201f55649f264856683">glm::gtx::ocl_type</a>
9092 </li>
9193 <li>cl_float4
92 : <a class="el" href="a00280.html#ga6a4d1b4f7bfdb1721f1554b30096b325">glm::gtx::ocl_type</a>
94 : <a class="el" href="a00279.html#ga6a4d1b4f7bfdb1721f1554b30096b325">glm::gtx::ocl_type</a>
9395 </li>
9496 <li>cl_half
95 : <a class="el" href="a00280.html#ga8bb152355ac899354df1742c673faad0">glm::gtx::ocl_type</a>
97 : <a class="el" href="a00279.html#ga8bb152355ac899354df1742c673faad0">glm::gtx::ocl_type</a>
9698 </li>
9799 <li>cl_int
98 : <a class="el" href="a00280.html#ga15daeef78674bfa6218f1fc8050e0967">glm::gtx::ocl_type</a>
100 : <a class="el" href="a00279.html#ga15daeef78674bfa6218f1fc8050e0967">glm::gtx::ocl_type</a>
99101 </li>
100102 <li>cl_int1
101 : <a class="el" href="a00280.html#ga929eeb0ebaa707edf32fe6381eac38a2">glm::gtx::ocl_type</a>
103 : <a class="el" href="a00279.html#ga929eeb0ebaa707edf32fe6381eac38a2">glm::gtx::ocl_type</a>
102104 </li>
103105 <li>cl_int2
104 : <a class="el" href="a00280.html#ga75d44bea03be3491e5636dea711b70eb">glm::gtx::ocl_type</a>
106 : <a class="el" href="a00279.html#ga75d44bea03be3491e5636dea711b70eb">glm::gtx::ocl_type</a>
105107 </li>
106108 <li>cl_int3
107 : <a class="el" href="a00280.html#ga685501809b08b64d48ede7cd04818675">glm::gtx::ocl_type</a>
109 : <a class="el" href="a00279.html#ga685501809b08b64d48ede7cd04818675">glm::gtx::ocl_type</a>
108110 </li>
109111 <li>cl_int4
110 : <a class="el" href="a00280.html#ga7cf765cb37a5717826260a44e7c37d03">glm::gtx::ocl_type</a>
112 : <a class="el" href="a00279.html#ga7cf765cb37a5717826260a44e7c37d03">glm::gtx::ocl_type</a>
111113 </li>
112114 <li>cl_long
113 : <a class="el" href="a00280.html#ga58de53886632d819d967a2972a977c37">glm::gtx::ocl_type</a>
115 : <a class="el" href="a00279.html#ga58de53886632d819d967a2972a977c37">glm::gtx::ocl_type</a>
114116 </li>
115117 <li>cl_long1
116 : <a class="el" href="a00280.html#ga23c699d4f4ccf698822b67da14b87481">glm::gtx::ocl_type</a>
118 : <a class="el" href="a00279.html#ga23c699d4f4ccf698822b67da14b87481">glm::gtx::ocl_type</a>
117119 </li>
118120 <li>cl_long2
119 : <a class="el" href="a00280.html#ga64aa9b2dc534ebd9cb26010e2eabd987">glm::gtx::ocl_type</a>
121 : <a class="el" href="a00279.html#ga64aa9b2dc534ebd9cb26010e2eabd987">glm::gtx::ocl_type</a>
120122 </li>
121123 <li>cl_long3
122 : <a class="el" href="a00280.html#ga6deed316e020729bc448758fc2e72388">glm::gtx::ocl_type</a>
124 : <a class="el" href="a00279.html#ga6deed316e020729bc448758fc2e72388">glm::gtx::ocl_type</a>
123125 </li>
124126 <li>cl_long4
125 : <a class="el" href="a00280.html#ga4f38be1bb22d86fa7617da6f6907b74c">glm::gtx::ocl_type</a>
127 : <a class="el" href="a00279.html#ga4f38be1bb22d86fa7617da6f6907b74c">glm::gtx::ocl_type</a>
126128 </li>
127129 <li>cl_short
128 : <a class="el" href="a00280.html#ga30b0387f3031a789362d91fc2dd2dc3f">glm::gtx::ocl_type</a>
130 : <a class="el" href="a00279.html#ga30b0387f3031a789362d91fc2dd2dc3f">glm::gtx::ocl_type</a>
129131 </li>
130132 <li>cl_short1
131 : <a class="el" href="a00280.html#gacedae42c667e97db08055a962e4ac73f">glm::gtx::ocl_type</a>
133 : <a class="el" href="a00279.html#gacedae42c667e97db08055a962e4ac73f">glm::gtx::ocl_type</a>
132134 </li>
133135 <li>cl_short2
134 : <a class="el" href="a00280.html#ga035b54a5fd591587d9fa6131e8a0c73c">glm::gtx::ocl_type</a>
136 : <a class="el" href="a00279.html#ga035b54a5fd591587d9fa6131e8a0c73c">glm::gtx::ocl_type</a>
135137 </li>
136138 <li>cl_short3
137 : <a class="el" href="a00280.html#gaacc919abeb1dac5c46b35cba6f2ff1f6">glm::gtx::ocl_type</a>
139 : <a class="el" href="a00279.html#gaacc919abeb1dac5c46b35cba6f2ff1f6">glm::gtx::ocl_type</a>
138140 </li>
139141 <li>cl_short4
140 : <a class="el" href="a00280.html#ga4682ecd16257fe283e891b3979e3037c">glm::gtx::ocl_type</a>
142 : <a class="el" href="a00279.html#ga4682ecd16257fe283e891b3979e3037c">glm::gtx::ocl_type</a>
141143 </li>
142144 <li>cl_uchar
143 : <a class="el" href="a00280.html#ga791bdd6f40533322f03efcc031dc43e7">glm::gtx::ocl_type</a>
145 : <a class="el" href="a00279.html#ga791bdd6f40533322f03efcc031dc43e7">glm::gtx::ocl_type</a>
144146 </li>
145147 <li>cl_uchar1
146 : <a class="el" href="a00280.html#ga458a3244086d84cb4a02356e17e10e41">glm::gtx::ocl_type</a>
148 : <a class="el" href="a00279.html#ga458a3244086d84cb4a02356e17e10e41">glm::gtx::ocl_type</a>
147149 </li>
148150 <li>cl_uchar2
149 : <a class="el" href="a00280.html#gafee78def47febbb4ff7789df67f80e67">glm::gtx::ocl_type</a>
151 : <a class="el" href="a00279.html#gafee78def47febbb4ff7789df67f80e67">glm::gtx::ocl_type</a>
150152 </li>
151153 <li>cl_uchar3
152 : <a class="el" href="a00280.html#ga03f1fdd60172bf92db40de83e13ab2f8">glm::gtx::ocl_type</a>
154 : <a class="el" href="a00279.html#ga03f1fdd60172bf92db40de83e13ab2f8">glm::gtx::ocl_type</a>
153155 </li>
154156 <li>cl_uchar4
155 : <a class="el" href="a00280.html#ga1ba627aa90581618f0aff17a4f52ebc6">glm::gtx::ocl_type</a>
157 : <a class="el" href="a00279.html#ga1ba627aa90581618f0aff17a4f52ebc6">glm::gtx::ocl_type</a>
156158 </li>
157159 <li>cl_uint
158 : <a class="el" href="a00280.html#gafab0cba90c3db2c143bb3e1bc38ac41f">glm::gtx::ocl_type</a>
160 : <a class="el" href="a00279.html#gafab0cba90c3db2c143bb3e1bc38ac41f">glm::gtx::ocl_type</a>
159161 </li>
160162 <li>cl_uint1
161 : <a class="el" href="a00280.html#ga463351df94e9f31c91787e9ead1d0f5e">glm::gtx::ocl_type</a>
163 : <a class="el" href="a00279.html#ga463351df94e9f31c91787e9ead1d0f5e">glm::gtx::ocl_type</a>
162164 </li>
163165 <li>cl_uint2
164 : <a class="el" href="a00280.html#gaf64dcd996174ae3271a9590c232d680f">glm::gtx::ocl_type</a>
166 : <a class="el" href="a00279.html#gaf64dcd996174ae3271a9590c232d680f">glm::gtx::ocl_type</a>
165167 </li>
166168 <li>cl_uint3
167 : <a class="el" href="a00280.html#ga423c13d5b93ab6f5fcdf248e0c89fb8d">glm::gtx::ocl_type</a>
169 : <a class="el" href="a00279.html#ga423c13d5b93ab6f5fcdf248e0c89fb8d">glm::gtx::ocl_type</a>
168170 </li>
169171 <li>cl_uint4
170 : <a class="el" href="a00280.html#gae75d9f1c7e3cebf862623eb3073870b0">glm::gtx::ocl_type</a>
172 : <a class="el" href="a00279.html#gae75d9f1c7e3cebf862623eb3073870b0">glm::gtx::ocl_type</a>
171173 </li>
172174 <li>cl_ulong
173 : <a class="el" href="a00280.html#gaf00884c494b2bd9d47c739847c5e8eaf">glm::gtx::ocl_type</a>
175 : <a class="el" href="a00279.html#gaf00884c494b2bd9d47c739847c5e8eaf">glm::gtx::ocl_type</a>
174176 </li>
175177 <li>cl_ulong1
176 : <a class="el" href="a00280.html#ga38c51ec5073e63c422c741cf7e40a6a8">glm::gtx::ocl_type</a>
178 : <a class="el" href="a00279.html#ga38c51ec5073e63c422c741cf7e40a6a8">glm::gtx::ocl_type</a>
177179 </li>
178180 <li>cl_ulong2
179 : <a class="el" href="a00280.html#ga983b584fd1a89ba357c4d161f57a97a5">glm::gtx::ocl_type</a>
181 : <a class="el" href="a00279.html#ga983b584fd1a89ba357c4d161f57a97a5">glm::gtx::ocl_type</a>
180182 </li>
181183 <li>cl_ulong3
182 : <a class="el" href="a00280.html#gaad8f2d09028d9522ff6b792ceaeeebbc">glm::gtx::ocl_type</a>
184 : <a class="el" href="a00279.html#gaad8f2d09028d9522ff6b792ceaeeebbc">glm::gtx::ocl_type</a>
183185 </li>
184186 <li>cl_ulong4
185 : <a class="el" href="a00280.html#ga5724575e5574de465785f06eeefd8789">glm::gtx::ocl_type</a>
187 : <a class="el" href="a00279.html#ga5724575e5574de465785f06eeefd8789">glm::gtx::ocl_type</a>
186188 </li>
187189 <li>cl_ushort
188 : <a class="el" href="a00280.html#ga17431e27a8e8d20ec69a3ba3f6557a2d">glm::gtx::ocl_type</a>
190 : <a class="el" href="a00279.html#ga17431e27a8e8d20ec69a3ba3f6557a2d">glm::gtx::ocl_type</a>
189191 </li>
190192 <li>cl_ushort1
191 : <a class="el" href="a00280.html#ga2765c8e248830f14881cafc7ff08ce48">glm::gtx::ocl_type</a>
193 : <a class="el" href="a00279.html#ga2765c8e248830f14881cafc7ff08ce48">glm::gtx::ocl_type</a>
192194 </li>
193195 <li>cl_ushort2
194 : <a class="el" href="a00280.html#ga83879286ad8a304211a9bd1dec8a81b9">glm::gtx::ocl_type</a>
196 : <a class="el" href="a00279.html#ga83879286ad8a304211a9bd1dec8a81b9">glm::gtx::ocl_type</a>
195197 </li>
196198 <li>cl_ushort3
197 : <a class="el" href="a00280.html#ga8ffa538b79f80a173f52a83c3bcc0587">glm::gtx::ocl_type</a>
199 : <a class="el" href="a00279.html#ga8ffa538b79f80a173f52a83c3bcc0587">glm::gtx::ocl_type</a>
198200 </li>
199201 <li>cl_ushort4
200 : <a class="el" href="a00280.html#gaef286e330c9eaa72e71c5081a85592b3">glm::gtx::ocl_type</a>
202 : <a class="el" href="a00279.html#gaef286e330c9eaa72e71c5081a85592b3">glm::gtx::ocl_type</a>
201203 </li>
202204 </ul>
203205 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
6264
6365 <h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
6466 <li>dmat2
65 : <a class="el" href="a00235.html#gac47a6148fdae0fe40858fb357aa9e9c5">glm</a>
67 : <a class="el" href="a00234.html#gac47a6148fdae0fe40858fb357aa9e9c5">glm</a>
6668 </li>
6769 <li>dmat2x2
68 : <a class="el" href="a00235.html#ga154eeba579bb2792509d4f68d7269116">glm</a>
70 : <a class="el" href="a00234.html#ga154eeba579bb2792509d4f68d7269116">glm</a>
6971 </li>
7072 <li>dmat2x3
71 : <a class="el" href="a00235.html#ga6722002d2b3591b9617696009cb92d7d">glm</a>
73 : <a class="el" href="a00234.html#ga6722002d2b3591b9617696009cb92d7d">glm</a>
7274 </li>
7375 <li>dmat2x4
74 : <a class="el" href="a00235.html#ga839ae2cf7dd0064e97529dfe10017ad2">glm</a>
76 : <a class="el" href="a00234.html#ga839ae2cf7dd0064e97529dfe10017ad2">glm</a>
7577 </li>
7678 <li>dmat3
77 : <a class="el" href="a00235.html#ga92c12ba0463edf4aa5d6d0e506591cf0">glm</a>
79 : <a class="el" href="a00234.html#ga92c12ba0463edf4aa5d6d0e506591cf0">glm</a>
7880 </li>
7981 <li>dmat3x2
80 : <a class="el" href="a00235.html#ga94c2f5b05e0be254d81b53fdea6602d7">glm</a>
82 : <a class="el" href="a00234.html#ga94c2f5b05e0be254d81b53fdea6602d7">glm</a>
8183 </li>
8284 <li>dmat3x3
83 : <a class="el" href="a00235.html#gaf72ab1d43dc5d437d2c9ea53ea038e3b">glm</a>
85 : <a class="el" href="a00234.html#gaf72ab1d43dc5d437d2c9ea53ea038e3b">glm</a>
8486 </li>
8587 <li>dmat3x4
86 : <a class="el" href="a00235.html#ga04f2a951763897578c4c08e61989f1d1">glm</a>
88 : <a class="el" href="a00234.html#ga04f2a951763897578c4c08e61989f1d1">glm</a>
8789 </li>
8890 <li>dmat4
89 : <a class="el" href="a00235.html#ga5db20fe7521b2e5bfa67a3131bdd0623">glm</a>
91 : <a class="el" href="a00234.html#ga5db20fe7521b2e5bfa67a3131bdd0623">glm</a>
9092 </li>
9193 <li>dmat4x2
92 : <a class="el" href="a00235.html#ga1c381a2410bbabe8464254b1ff76173c">glm</a>
94 : <a class="el" href="a00234.html#ga1c381a2410bbabe8464254b1ff76173c">glm</a>
9395 </li>
9496 <li>dmat4x3
95 : <a class="el" href="a00235.html#ga250ca1110cb3df02e122705e0df801f3">glm</a>
97 : <a class="el" href="a00234.html#ga250ca1110cb3df02e122705e0df801f3">glm</a>
9698 </li>
9799 <li>dmat4x4
98 : <a class="el" href="a00235.html#gae2cf7fdac82b788e8f4d4145f6c963f1">glm</a>
100 : <a class="el" href="a00234.html#gae2cf7fdac82b788e8f4d4145f6c963f1">glm</a>
99101 </li>
100102 <li>double1
101 : <a class="el" href="a00255.html#ga20b861a9b6e2a300323671c57a02525b">glm::gtx::compatibility</a>
103 : <a class="el" href="a00254.html#ga20b861a9b6e2a300323671c57a02525b">glm::gtx::compatibility</a>
102104 </li>
103105 <li>double1x1
104 : <a class="el" href="a00255.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">glm::gtx::compatibility</a>
106 : <a class="el" href="a00254.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">glm::gtx::compatibility</a>
105107 </li>
106108 <li>double2
107 : <a class="el" href="a00255.html#ga7a2bed57d1cc7209ee6d027010bc96b6">glm::gtx::compatibility</a>
109 : <a class="el" href="a00254.html#ga7a2bed57d1cc7209ee6d027010bc96b6">glm::gtx::compatibility</a>
108110 </li>
109111 <li>double2x2
110 : <a class="el" href="a00255.html#ga96772f5981821b9e80c572481e37f220">glm::gtx::compatibility</a>
112 : <a class="el" href="a00254.html#ga96772f5981821b9e80c572481e37f220">glm::gtx::compatibility</a>
111113 </li>
112114 <li>double2x3
113 : <a class="el" href="a00255.html#ga07bbc143dfea7838be68d63c114317f4">glm::gtx::compatibility</a>
115 : <a class="el" href="a00254.html#ga07bbc143dfea7838be68d63c114317f4">glm::gtx::compatibility</a>
114116 </li>
115117 <li>double2x4
116 : <a class="el" href="a00255.html#ga1e68c0a16e5684f44d86faac2a7d6810">glm::gtx::compatibility</a>
118 : <a class="el" href="a00254.html#ga1e68c0a16e5684f44d86faac2a7d6810">glm::gtx::compatibility</a>
117119 </li>
118120 <li>double3
119 : <a class="el" href="a00255.html#gaed0358fe1eb696b655a13eac4ececb2a">glm::gtx::compatibility</a>
121 : <a class="el" href="a00254.html#gaed0358fe1eb696b655a13eac4ececb2a">glm::gtx::compatibility</a>
120122 </li>
121123 <li>double3x2
122 : <a class="el" href="a00255.html#ga6e8dd2531703ce00b253ddd3c0c6eaca">glm::gtx::compatibility</a>
124 : <a class="el" href="a00254.html#ga6e8dd2531703ce00b253ddd3c0c6eaca">glm::gtx::compatibility</a>
123125 </li>
124126 <li>double3x3
125 : <a class="el" href="a00255.html#ga5dfb1357edcef48fcfdf9908906ae086">glm::gtx::compatibility</a>
127 : <a class="el" href="a00254.html#ga5dfb1357edcef48fcfdf9908906ae086">glm::gtx::compatibility</a>
126128 </li>
127129 <li>double3x4
128 : <a class="el" href="a00255.html#ga3b83eafbc284acce070855469c39b991">glm::gtx::compatibility</a>
130 : <a class="el" href="a00254.html#ga3b83eafbc284acce070855469c39b991">glm::gtx::compatibility</a>
129131 </li>
130132 <li>double4
131 : <a class="el" href="a00255.html#gace0ba846c7443d0d56abb0ca3e61469d">glm::gtx::compatibility</a>
133 : <a class="el" href="a00254.html#gace0ba846c7443d0d56abb0ca3e61469d">glm::gtx::compatibility</a>
132134 </li>
133135 <li>double4x2
134 : <a class="el" href="a00255.html#ga19c9ec02aa62b78e9709c4b2e2ae6f35">glm::gtx::compatibility</a>
136 : <a class="el" href="a00254.html#ga19c9ec02aa62b78e9709c4b2e2ae6f35">glm::gtx::compatibility</a>
135137 </li>
136138 <li>double4x3
137 : <a class="el" href="a00255.html#ga53c7dc9532c324aefb75a5f08033cd12">glm::gtx::compatibility</a>
139 : <a class="el" href="a00254.html#ga53c7dc9532c324aefb75a5f08033cd12">glm::gtx::compatibility</a>
138140 </li>
139141 <li>double4x4
140 : <a class="el" href="a00255.html#ga2cc8e4fa772bfc5c1cada72ee5cadaf8">glm::gtx::compatibility</a>
142 : <a class="el" href="a00254.html#ga2cc8e4fa772bfc5c1cada72ee5cadaf8">glm::gtx::compatibility</a>
141143 </li>
142144 <li>dquat
143 : <a class="el" href="a00245.html#ga5428321324094c7170d6133c8139d255">glm::gtc::quaternion</a>
145 : <a class="el" href="a00244.html#ga5428321324094c7170d6133c8139d255">glm::gtc::quaternion</a>
144146 </li>
145147 <li>dvec2
146 : <a class="el" href="a00235.html#ga88bf1a60f35314a6b3f2c5adc97004cf">glm</a>
148 : <a class="el" href="a00234.html#ga88bf1a60f35314a6b3f2c5adc97004cf">glm</a>
147149 </li>
148150 <li>dvec3
149 : <a class="el" href="a00235.html#ga0f0fcb7b631cbbac4341badb01d84218">glm</a>
151 : <a class="el" href="a00234.html#ga0f0fcb7b631cbbac4341badb01d84218">glm</a>
150152 </li>
151153 <li>dvec4
152 : <a class="el" href="a00235.html#ga6f62aca8ddbdb3badf9d52885e7dcfb6">glm</a>
154 : <a class="el" href="a00234.html#ga6f62aca8ddbdb3badf9d52885e7dcfb6">glm</a>
153155 </li>
154156 <li>dword
155 : <a class="el" href="a00288.html#ga162201f4386c2973e6ebd76ac0941de0">glm::gtx::raw_data</a>
157 : <a class="el" href="a00287.html#ga162201f4386c2973e6ebd76ac0941de0">glm::gtx::raw_data</a>
156158 </li>
157159 </ul>
158160 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
6264
6365 <h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
6466 <li>f16
65 : <a class="el" href="a00246.html#ga3ca1b6511bcc12516b5fd76c7976f01b">glm::gtc::type_precision</a>
67 : <a class="el" href="a00245.html#ga3ca1b6511bcc12516b5fd76c7976f01b">glm::gtc::type_precision</a>
6668 </li>
6769 <li>f16mat1
68 : <a class="el" href="a00279.html#gafb6d00d30a02bc379153fbf0859c55fe">glm::gtx::number_precision</a>
70 : <a class="el" href="a00278.html#gafb6d00d30a02bc379153fbf0859c55fe">glm::gtx::number_precision</a>
6971 </li>
7072 <li>f16mat1x1
71 : <a class="el" href="a00279.html#ga228eca02d3e3f24c2eec052ee7f719fa">glm::gtx::number_precision</a>
73 : <a class="el" href="a00278.html#ga228eca02d3e3f24c2eec052ee7f719fa">glm::gtx::number_precision</a>
7274 </li>
7375 <li>f16mat2
74 : <a class="el" href="a00246.html#gae16f41dbae14d92fb946080a0a868de9">glm::gtc::type_precision</a>
76 : <a class="el" href="a00245.html#gae16f41dbae14d92fb946080a0a868de9">glm::gtc::type_precision</a>
7577 </li>
7678 <li>f16mat2x2
77 : <a class="el" href="a00246.html#ga0251c24813cf14f31851e506ccaca8e3">glm::gtc::type_precision</a>
79 : <a class="el" href="a00245.html#ga0251c24813cf14f31851e506ccaca8e3">glm::gtc::type_precision</a>
7880 </li>
7981 <li>f16mat2x3
80 : <a class="el" href="a00246.html#ga75b44fd9278b87d63926bf6cb83a90ce">glm::gtc::type_precision</a>
82 : <a class="el" href="a00245.html#ga75b44fd9278b87d63926bf6cb83a90ce">glm::gtc::type_precision</a>
8183 </li>
8284 <li>f16mat2x4
83 : <a class="el" href="a00246.html#ga5f7b279e5d36687a69f75cf2f95b64c5">glm::gtc::type_precision</a>
85 : <a class="el" href="a00245.html#ga5f7b279e5d36687a69f75cf2f95b64c5">glm::gtc::type_precision</a>
8486 </li>
8587 <li>f16mat3
86 : <a class="el" href="a00246.html#ga3ada76173b353ee8615dcd70dbf7fe7f">glm::gtc::type_precision</a>
88 : <a class="el" href="a00245.html#ga3ada76173b353ee8615dcd70dbf7fe7f">glm::gtc::type_precision</a>
8789 </li>
8890 <li>f16mat3x2
89 : <a class="el" href="a00246.html#gacc55b3fc1bd509b96f5f291b019b0c3a">glm::gtc::type_precision</a>
91 : <a class="el" href="a00245.html#gacc55b3fc1bd509b96f5f291b019b0c3a">glm::gtc::type_precision</a>
9092 </li>
9193 <li>f16mat3x3
92 : <a class="el" href="a00246.html#ga4fe684c085caee45c79f6b8e2a8a498e">glm::gtc::type_precision</a>
94 : <a class="el" href="a00245.html#ga4fe684c085caee45c79f6b8e2a8a498e">glm::gtc::type_precision</a>
9395 </li>
9496 <li>f16mat3x4
95 : <a class="el" href="a00246.html#gaeefd948e1360ef7fe65201482f07e379">glm::gtc::type_precision</a>
97 : <a class="el" href="a00245.html#gaeefd948e1360ef7fe65201482f07e379">glm::gtc::type_precision</a>
9698 </li>
9799 <li>f16mat4
98 : <a class="el" href="a00246.html#gac12c1d9b5e7ef301c81b23cd555c5be9">glm::gtc::type_precision</a>
100 : <a class="el" href="a00245.html#gac12c1d9b5e7ef301c81b23cd555c5be9">glm::gtc::type_precision</a>
99101 </li>
100102 <li>f16mat4x2
101 : <a class="el" href="a00246.html#gad18e575d7bc47e6d696366712724c31a">glm::gtc::type_precision</a>
103 : <a class="el" href="a00245.html#gad18e575d7bc47e6d696366712724c31a">glm::gtc::type_precision</a>
102104 </li>
103105 <li>f16mat4x3
104 : <a class="el" href="a00246.html#ga38e54b583ed34891b3dc3fcd8f194a44">glm::gtc::type_precision</a>
106 : <a class="el" href="a00245.html#ga38e54b583ed34891b3dc3fcd8f194a44">glm::gtc::type_precision</a>
105107 </li>
106108 <li>f16mat4x4
107 : <a class="el" href="a00246.html#ga996f1e97233164dd076fad915b1f4b2a">glm::gtc::type_precision</a>
109 : <a class="el" href="a00245.html#ga996f1e97233164dd076fad915b1f4b2a">glm::gtc::type_precision</a>
108110 </li>
109111 <li>f16quat
110 : <a class="el" href="a00246.html#ga38cc7dfd875fb2a5d07101972bf96bfb">glm::gtc::type_precision</a>
112 : <a class="el" href="a00245.html#ga38cc7dfd875fb2a5d07101972bf96bfb">glm::gtc::type_precision</a>
111113 </li>
112114 <li>f16vec1
113 : <a class="el" href="a00279.html#ga116e2376ef94e8c60bc5c2b66fc5a6db">glm::gtx::number_precision</a>
115 : <a class="el" href="a00278.html#ga116e2376ef94e8c60bc5c2b66fc5a6db">glm::gtx::number_precision</a>
114116 </li>
115117 <li>f16vec2
116 : <a class="el" href="a00246.html#gac29c0992aa0fe2df8f9b6b9edc220822">glm::gtc::type_precision</a>
118 : <a class="el" href="a00245.html#gac29c0992aa0fe2df8f9b6b9edc220822">glm::gtc::type_precision</a>
117119 </li>
118120 <li>f16vec3
119 : <a class="el" href="a00246.html#gaa68a583d3e3b202e1b48c7bc94964c78">glm::gtc::type_precision</a>
121 : <a class="el" href="a00245.html#gaa68a583d3e3b202e1b48c7bc94964c78">glm::gtc::type_precision</a>
120122 </li>
121123 <li>f16vec4
122 : <a class="el" href="a00246.html#gae77767db0311f307255a057fd7358704">glm::gtc::type_precision</a>
124 : <a class="el" href="a00245.html#gae77767db0311f307255a057fd7358704">glm::gtc::type_precision</a>
123125 </li>
124126 <li>f32
125 : <a class="el" href="a00246.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">glm::gtc::type_precision</a>
127 : <a class="el" href="a00245.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">glm::gtc::type_precision</a>
126128 </li>
127129 <li>f32mat1
128 : <a class="el" href="a00279.html#ga145ad477a2a3e152855511c3b52469a6">glm::gtx::number_precision</a>
130 : <a class="el" href="a00278.html#ga145ad477a2a3e152855511c3b52469a6">glm::gtx::number_precision</a>
129131 </li>
130132 <li>f32mat1x1
131 : <a class="el" href="a00279.html#gac88c6a4dbfc380aa26e3adbbade36348">glm::gtx::number_precision</a>
133 : <a class="el" href="a00278.html#gac88c6a4dbfc380aa26e3adbbade36348">glm::gtx::number_precision</a>
132134 </li>
133135 <li>f32mat2
134 : <a class="el" href="a00246.html#gaaffc1dddbdfee9006f65dec7490cef35">glm::gtc::type_precision</a>
136 : <a class="el" href="a00245.html#gaaffc1dddbdfee9006f65dec7490cef35">glm::gtc::type_precision</a>
135137 </li>
136138 <li>f32mat2x2
137 : <a class="el" href="a00246.html#ga9b851abbec4f37c06604e5b612b764a3">glm::gtc::type_precision</a>
139 : <a class="el" href="a00245.html#ga9b851abbec4f37c06604e5b612b764a3">glm::gtc::type_precision</a>
138140 </li>
139141 <li>f32mat2x3
140 : <a class="el" href="a00246.html#gabc06add14a487def0be0a88cb7191310">glm::gtc::type_precision</a>
142 : <a class="el" href="a00245.html#gabc06add14a487def0be0a88cb7191310">glm::gtc::type_precision</a>
141143 </li>
142144 <li>f32mat2x4
143 : <a class="el" href="a00246.html#gae7d246881a2b9bbf2933e9aa32c873f9">glm::gtc::type_precision</a>
145 : <a class="el" href="a00245.html#gae7d246881a2b9bbf2933e9aa32c873f9">glm::gtc::type_precision</a>
144146 </li>
145147 <li>f32mat3
146 : <a class="el" href="a00246.html#ga2da36e87f1f319cd99d2870ab3be4799">glm::gtc::type_precision</a>
148 : <a class="el" href="a00245.html#ga2da36e87f1f319cd99d2870ab3be4799">glm::gtc::type_precision</a>
147149 </li>
148150 <li>f32mat3x2
149 : <a class="el" href="a00246.html#ga3c2727aca36e2f45f4eaabc06fe859e5">glm::gtc::type_precision</a>
151 : <a class="el" href="a00245.html#ga3c2727aca36e2f45f4eaabc06fe859e5">glm::gtc::type_precision</a>
150152 </li>
151153 <li>f32mat3x3
152 : <a class="el" href="a00246.html#gad60954ab0fcc5d2fdf2573be7d359920">glm::gtc::type_precision</a>
154 : <a class="el" href="a00245.html#gad60954ab0fcc5d2fdf2573be7d359920">glm::gtc::type_precision</a>
153155 </li>
154156 <li>f32mat3x4
155 : <a class="el" href="a00246.html#ga76466bef28f20c754b6f25da8138033b">glm::gtc::type_precision</a>
157 : <a class="el" href="a00245.html#ga76466bef28f20c754b6f25da8138033b">glm::gtc::type_precision</a>
156158 </li>
157159 <li>f32mat4
158 : <a class="el" href="a00246.html#gae84e6d0a740dbbefeb29c72ca93b9202">glm::gtc::type_precision</a>
160 : <a class="el" href="a00245.html#gae84e6d0a740dbbefeb29c72ca93b9202">glm::gtc::type_precision</a>
159161 </li>
160162 <li>f32mat4x2
161 : <a class="el" href="a00246.html#gaf81550e292ce3d4dd2c22960713188f3">glm::gtc::type_precision</a>
163 : <a class="el" href="a00245.html#gaf81550e292ce3d4dd2c22960713188f3">glm::gtc::type_precision</a>
162164 </li>
163165 <li>f32mat4x3
164 : <a class="el" href="a00246.html#ga0a78d326a35e18803e7ae7a49d2c738c">glm::gtc::type_precision</a>
166 : <a class="el" href="a00245.html#ga0a78d326a35e18803e7ae7a49d2c738c">glm::gtc::type_precision</a>
165167 </li>
166168 <li>f32mat4x4
167 : <a class="el" href="a00246.html#ga390ae17a61ddb8a7702cd92065754633">glm::gtc::type_precision</a>
169 : <a class="el" href="a00245.html#ga390ae17a61ddb8a7702cd92065754633">glm::gtc::type_precision</a>
168170 </li>
169171 <li>f32quat
170 : <a class="el" href="a00246.html#gad073de7365e4b6771de824b18b0ea7a9">glm::gtc::type_precision</a>
172 : <a class="el" href="a00245.html#gad073de7365e4b6771de824b18b0ea7a9">glm::gtc::type_precision</a>
171173 </li>
172174 <li>f32vec1
173 : <a class="el" href="a00279.html#ga07f8d7348eb7ae059a84c118fdfeb943">glm::gtx::number_precision</a>
175 : <a class="el" href="a00278.html#ga07f8d7348eb7ae059a84c118fdfeb943">glm::gtx::number_precision</a>
174176 </li>
175177 <li>f32vec2
176 : <a class="el" href="a00246.html#ga6a1674122ce80c7f3b77ddbc85b4d9f1">glm::gtc::type_precision</a>
178 : <a class="el" href="a00245.html#ga6a1674122ce80c7f3b77ddbc85b4d9f1">glm::gtc::type_precision</a>
177179 </li>
178180 <li>f32vec3
179 : <a class="el" href="a00246.html#ga81353c6a9b282b2b34185306a40040ad">glm::gtc::type_precision</a>
181 : <a class="el" href="a00245.html#ga81353c6a9b282b2b34185306a40040ad">glm::gtc::type_precision</a>
180182 </li>
181183 <li>f32vec4
182 : <a class="el" href="a00246.html#ga58dbce28a4d4b0d72c239cf3069bd28b">glm::gtc::type_precision</a>
184 : <a class="el" href="a00245.html#ga58dbce28a4d4b0d72c239cf3069bd28b">glm::gtc::type_precision</a>
183185 </li>
184186 <li>f64
185 : <a class="el" href="a00246.html#ga1d794d240091678f602e8de225b8d8c9">glm::gtc::type_precision</a>
187 : <a class="el" href="a00245.html#ga1d794d240091678f602e8de225b8d8c9">glm::gtc::type_precision</a>
186188 </li>
187189 <li>f64mat1
188 : <a class="el" href="a00279.html#ga59bfa589419b5265d01314fcecd33435">glm::gtx::number_precision</a>
190 : <a class="el" href="a00278.html#ga59bfa589419b5265d01314fcecd33435">glm::gtx::number_precision</a>
189191 </li>
190192 <li>f64mat1x1
191 : <a class="el" href="a00279.html#ga448eeb08d0b7d8c43a8b292c981955fd">glm::gtx::number_precision</a>
193 : <a class="el" href="a00278.html#ga448eeb08d0b7d8c43a8b292c981955fd">glm::gtx::number_precision</a>
192194 </li>
193195 <li>f64mat2
194 : <a class="el" href="a00246.html#ga8e6af45d08751da72ddb3c8380028d0b">glm::gtc::type_precision</a>
196 : <a class="el" href="a00245.html#ga8e6af45d08751da72ddb3c8380028d0b">glm::gtc::type_precision</a>
195197 </li>
196198 <li>f64mat2x2
197 : <a class="el" href="a00246.html#ga48dfaa0c23e89839f9fd43ae1d03f5de">glm::gtc::type_precision</a>
199 : <a class="el" href="a00245.html#ga48dfaa0c23e89839f9fd43ae1d03f5de">glm::gtc::type_precision</a>
198200 </li>
199201 <li>f64mat2x3
200 : <a class="el" href="a00246.html#ga0ee61da67c73edc53648db680e0a6d59">glm::gtc::type_precision</a>
202 : <a class="el" href="a00245.html#ga0ee61da67c73edc53648db680e0a6d59">glm::gtc::type_precision</a>
201203 </li>
202204 <li>f64mat2x4
203 : <a class="el" href="a00246.html#ga95a3099cce2b620027a9164324787a14">glm::gtc::type_precision</a>
205 : <a class="el" href="a00245.html#ga95a3099cce2b620027a9164324787a14">glm::gtc::type_precision</a>
204206 </li>
205207 <li>f64mat3
206 : <a class="el" href="a00246.html#gae394301075475e6759f0835a251d497e">glm::gtc::type_precision</a>
208 : <a class="el" href="a00245.html#gae394301075475e6759f0835a251d497e">glm::gtc::type_precision</a>
207209 </li>
208210 <li>f64mat3x2
209 : <a class="el" href="a00246.html#ga24ab90298c753e8da92ba333ef2f7f71">glm::gtc::type_precision</a>
211 : <a class="el" href="a00245.html#ga24ab90298c753e8da92ba333ef2f7f71">glm::gtc::type_precision</a>
210212 </li>
211213 <li>f64mat3x3
212 : <a class="el" href="a00246.html#ga5dfbb37bd5e0a221b1627172e052a168">glm::gtc::type_precision</a>
214 : <a class="el" href="a00245.html#ga5dfbb37bd5e0a221b1627172e052a168">glm::gtc::type_precision</a>
213215 </li>
214216 <li>f64mat3x4
215 : <a class="el" href="a00246.html#gaecc98ee8c67aaca82e817d2cf4028cd7">glm::gtc::type_precision</a>
217 : <a class="el" href="a00245.html#gaecc98ee8c67aaca82e817d2cf4028cd7">glm::gtc::type_precision</a>
216218 </li>
217219 <li>f64mat4
218 : <a class="el" href="a00246.html#ga4c6042a4ef0df9c92b94dd8a30df3f82">glm::gtc::type_precision</a>
220 : <a class="el" href="a00245.html#ga4c6042a4ef0df9c92b94dd8a30df3f82">glm::gtc::type_precision</a>
219221 </li>
220222 <li>f64mat4x2
221 : <a class="el" href="a00246.html#gac99d22a5ada54ab33aad0cd208d20e48">glm::gtc::type_precision</a>
223 : <a class="el" href="a00245.html#gac99d22a5ada54ab33aad0cd208d20e48">glm::gtc::type_precision</a>
222224 </li>
223225 <li>f64mat4x3
224 : <a class="el" href="a00246.html#ga1e10cbf50386189533011ef827204920">glm::gtc::type_precision</a>
226 : <a class="el" href="a00245.html#ga1e10cbf50386189533011ef827204920">glm::gtc::type_precision</a>
225227 </li>
226228 <li>f64mat4x4
227 : <a class="el" href="a00246.html#ga5efb4fb73bf79baf00cda64d318bfdb5">glm::gtc::type_precision</a>
229 : <a class="el" href="a00245.html#ga5efb4fb73bf79baf00cda64d318bfdb5">glm::gtc::type_precision</a>
228230 </li>
229231 <li>f64quat
230 : <a class="el" href="a00246.html#ga38a458ff317f21cf58ceed99dde5daaa">glm::gtc::type_precision</a>
232 : <a class="el" href="a00245.html#ga38a458ff317f21cf58ceed99dde5daaa">glm::gtc::type_precision</a>
231233 </li>
232234 <li>f64vec1
233 : <a class="el" href="a00279.html#gae5987a61b8c03d5c432a9e62f0b3efe1">glm::gtx::number_precision</a>
235 : <a class="el" href="a00278.html#gae5987a61b8c03d5c432a9e62f0b3efe1">glm::gtx::number_precision</a>
234236 </li>
235237 <li>f64vec2
236 : <a class="el" href="a00246.html#ga1de31e7b24d714613b83fb704b8b1fd1">glm::gtc::type_precision</a>
238 : <a class="el" href="a00245.html#ga1de31e7b24d714613b83fb704b8b1fd1">glm::gtc::type_precision</a>
237239 </li>
238240 <li>f64vec3
239 : <a class="el" href="a00246.html#ga2a4b3d9e62dc8c9b970e91c38bb56997">glm::gtc::type_precision</a>
241 : <a class="el" href="a00245.html#ga2a4b3d9e62dc8c9b970e91c38bb56997">glm::gtc::type_precision</a>
240242 </li>
241243 <li>f64vec4
242 : <a class="el" href="a00246.html#ga66999872051fdf1934199af093eedece">glm::gtc::type_precision</a>
244 : <a class="el" href="a00245.html#ga66999872051fdf1934199af093eedece">glm::gtc::type_precision</a>
243245 </li>
244246 <li>float1
245 : <a class="el" href="a00255.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">glm::gtx::compatibility</a>
247 : <a class="el" href="a00254.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">glm::gtx::compatibility</a>
246248 </li>
247249 <li>float16
248 : <a class="el" href="a00246.html#ga19287ee46bd37d1459731d7191bc2f66">glm::gtc::type_precision</a>
250 : <a class="el" href="a00245.html#ga19287ee46bd37d1459731d7191bc2f66">glm::gtc::type_precision</a>
249251 </li>
250252 <li>float1x1
251 : <a class="el" href="a00255.html#ga73720b8dc4620835b17f74d428f98c0c">glm::gtx::compatibility</a>
253 : <a class="el" href="a00254.html#ga73720b8dc4620835b17f74d428f98c0c">glm::gtx::compatibility</a>
252254 </li>
253255 <li>float2
254 : <a class="el" href="a00255.html#ga36aed7f41ff3a1be99f215754f43376f">glm::gtx::compatibility</a>
256 : <a class="el" href="a00254.html#ga36aed7f41ff3a1be99f215754f43376f">glm::gtx::compatibility</a>
255257 </li>
256258 <li>float2x2
257 : <a class="el" href="a00255.html#gaf8d19b6f81f5cb8151f37c66c15691fa">glm::gtx::compatibility</a>
259 : <a class="el" href="a00254.html#gaf8d19b6f81f5cb8151f37c66c15691fa">glm::gtx::compatibility</a>
258260 </li>
259261 <li>float2x3
260 : <a class="el" href="a00255.html#gaafc2b478b36de8b9da6fe1e0f88f68d4">glm::gtx::compatibility</a>
262 : <a class="el" href="a00254.html#gaafc2b478b36de8b9da6fe1e0f88f68d4">glm::gtx::compatibility</a>
261263 </li>
262264 <li>float2x4
263 : <a class="el" href="a00255.html#ga77d14ba22d90b0af72a1572ee1bd9458">glm::gtx::compatibility</a>
265 : <a class="el" href="a00254.html#ga77d14ba22d90b0af72a1572ee1bd9458">glm::gtx::compatibility</a>
264266 </li>
265267 <li>float3
266 : <a class="el" href="a00255.html#ga1fe9cc8caced9aa000c36ca3c0a046ab">glm::gtx::compatibility</a>
268 : <a class="el" href="a00254.html#ga1fe9cc8caced9aa000c36ca3c0a046ab">glm::gtx::compatibility</a>
267269 </li>
268270 <li>float32
269 : <a class="el" href="a00246.html#gad3c127f8bf8d7d4e738037c257abb5b1">glm::gtc::type_precision</a>
271 : <a class="el" href="a00245.html#gad3c127f8bf8d7d4e738037c257abb5b1">glm::gtc::type_precision</a>
270272 </li>
271273 <li>float3x2
272 : <a class="el" href="a00255.html#ga46c62307ff5e8418d27be225c1187e25">glm::gtx::compatibility</a>
274 : <a class="el" href="a00254.html#ga46c62307ff5e8418d27be225c1187e25">glm::gtx::compatibility</a>
273275 </li>
274276 <li>float3x3
275 : <a class="el" href="a00255.html#ga5e6e08a42341c82268a4a94a02f7b016">glm::gtx::compatibility</a>
277 : <a class="el" href="a00254.html#ga5e6e08a42341c82268a4a94a02f7b016">glm::gtx::compatibility</a>
276278 </li>
277279 <li>float3x4
278 : <a class="el" href="a00255.html#ga14a4142cbea2f8ade68c6c4ca0bca2e6">glm::gtx::compatibility</a>
280 : <a class="el" href="a00254.html#ga14a4142cbea2f8ade68c6c4ca0bca2e6">glm::gtx::compatibility</a>
279281 </li>
280282 <li>float4
281 : <a class="el" href="a00255.html#ga1b1ca9850faf4c3ffddf95093a17b49c">glm::gtx::compatibility</a>
283 : <a class="el" href="a00254.html#ga1b1ca9850faf4c3ffddf95093a17b49c">glm::gtx::compatibility</a>
282284 </li>
283285 <li>float4x2
284 : <a class="el" href="a00255.html#ga7d53a0bdb8ce3ea6f26483d03a93309c">glm::gtx::compatibility</a>
286 : <a class="el" href="a00254.html#ga7d53a0bdb8ce3ea6f26483d03a93309c">glm::gtx::compatibility</a>
285287 </li>
286288 <li>float4x3
287 : <a class="el" href="a00255.html#ga90ec9566c9961638c70e2ba2e3fd94fc">glm::gtx::compatibility</a>
289 : <a class="el" href="a00254.html#ga90ec9566c9961638c70e2ba2e3fd94fc">glm::gtx::compatibility</a>
288290 </li>
289291 <li>float4x4
290 : <a class="el" href="a00255.html#ga1ab661a1b315e963ce81a7ebfb110aa7">glm::gtx::compatibility</a>
292 : <a class="el" href="a00254.html#ga1ab661a1b315e963ce81a7ebfb110aa7">glm::gtx::compatibility</a>
291293 </li>
292294 <li>float64
293 : <a class="el" href="a00246.html#gab5596d48586414c91ccb270962dc14d3">glm::gtc::type_precision</a>
295 : <a class="el" href="a00245.html#gab5596d48586414c91ccb270962dc14d3">glm::gtc::type_precision</a>
294296 </li>
295297 <li>fmat2
296 : <a class="el" href="a00246.html#gaee87d6e282960e7c75bfb1371def1fc6">glm::gtc::type_precision</a>
298 : <a class="el" href="a00245.html#gaee87d6e282960e7c75bfb1371def1fc6">glm::gtc::type_precision</a>
297299 </li>
298300 <li>fmat2x2
299 : <a class="el" href="a00246.html#ga1c9d98f605e9194e6febfc8c390f21e2">glm::gtc::type_precision</a>
301 : <a class="el" href="a00245.html#ga1c9d98f605e9194e6febfc8c390f21e2">glm::gtc::type_precision</a>
300302 </li>
301303 <li>fmat2x3
302 : <a class="el" href="a00246.html#ga5a49e7e42cb7826309dfe5914ff7adb2">glm::gtc::type_precision</a>
304 : <a class="el" href="a00245.html#ga5a49e7e42cb7826309dfe5914ff7adb2">glm::gtc::type_precision</a>
303305 </li>
304306 <li>fmat2x4
305 : <a class="el" href="a00246.html#ga17af021ba84b81a88cd8ff5415737082">glm::gtc::type_precision</a>
307 : <a class="el" href="a00245.html#ga17af021ba84b81a88cd8ff5415737082">glm::gtc::type_precision</a>
306308 </li>
307309 <li>fmat3
308 : <a class="el" href="a00246.html#ga885ab2670ad608f174889cc5779e814c">glm::gtc::type_precision</a>
310 : <a class="el" href="a00245.html#ga885ab2670ad608f174889cc5779e814c">glm::gtc::type_precision</a>
309311 </li>
310312 <li>fmat3x2
311 : <a class="el" href="a00246.html#gabb5363b848026b7819e8df12f9eba807">glm::gtc::type_precision</a>
313 : <a class="el" href="a00245.html#gabb5363b848026b7819e8df12f9eba807">glm::gtc::type_precision</a>
312314 </li>
313315 <li>fmat3x3
314 : <a class="el" href="a00246.html#gae3cec4e7ffbfce5fc693f70693b67bdd">glm::gtc::type_precision</a>
316 : <a class="el" href="a00245.html#gae3cec4e7ffbfce5fc693f70693b67bdd">glm::gtc::type_precision</a>
315317 </li>
316318 <li>fmat3x4
317 : <a class="el" href="a00246.html#ga8cc18a8db872ac321446a0ec76d0f4c9">glm::gtc::type_precision</a>
319 : <a class="el" href="a00245.html#ga8cc18a8db872ac321446a0ec76d0f4c9">glm::gtc::type_precision</a>
318320 </li>
319321 <li>fmat4
320 : <a class="el" href="a00246.html#ga17a80f33494617743e6156e125c2333d">glm::gtc::type_precision</a>
322 : <a class="el" href="a00245.html#ga17a80f33494617743e6156e125c2333d">glm::gtc::type_precision</a>
321323 </li>
322324 <li>fmat4x2
323 : <a class="el" href="a00246.html#ga730c05a1fd676cedcecd74595866bb35">glm::gtc::type_precision</a>
325 : <a class="el" href="a00245.html#ga730c05a1fd676cedcecd74595866bb35">glm::gtc::type_precision</a>
324326 </li>
325327 <li>fmat4x3
326 : <a class="el" href="a00246.html#gac9d68d8ad27aceea1814b96b1e8fc92e">glm::gtc::type_precision</a>
328 : <a class="el" href="a00245.html#gac9d68d8ad27aceea1814b96b1e8fc92e">glm::gtc::type_precision</a>
327329 </li>
328330 <li>fmat4x4
329 : <a class="el" href="a00246.html#ga5a1741d5e03b4a99ad1728a8e8c65a38">glm::gtc::type_precision</a>
331 : <a class="el" href="a00245.html#ga5a1741d5e03b4a99ad1728a8e8c65a38">glm::gtc::type_precision</a>
330332 </li>
331333 <li>fquat
332 : <a class="el" href="a00245.html#gaae07c293efbe1c530ff18044a15fe662">glm::gtc::quaternion</a>
334 : <a class="el" href="a00244.html#gaae07c293efbe1c530ff18044a15fe662">glm::gtc::quaternion</a>
333335 </li>
334336 <li>fvec2
335 : <a class="el" href="a00246.html#gaeb3201411f8933fae30fe36b3fb1db90">glm::gtc::type_precision</a>
337 : <a class="el" href="a00245.html#gaeb3201411f8933fae30fe36b3fb1db90">glm::gtc::type_precision</a>
336338 </li>
337339 <li>fvec3
338 : <a class="el" href="a00246.html#ga36d8bc27da6e04285ab3b11d0af061b0">glm::gtc::type_precision</a>
340 : <a class="el" href="a00245.html#ga36d8bc27da6e04285ab3b11d0af061b0">glm::gtc::type_precision</a>
339341 </li>
340342 <li>fvec4
341 : <a class="el" href="a00246.html#gac8e4776e86d01ed43b2dce32db2c72ba">glm::gtc::type_precision</a>
343 : <a class="el" href="a00245.html#gac8e4776e86d01ed43b2dce32db2c72ba">glm::gtc::type_precision</a>
342344 </li>
343345 </ul>
344346 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
6264
6365 <h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
6466 <li>half
65 : <a class="el" href="a00240.html#ga256188598ace9135605a8ac8fc158654">glm::gtc::half_float</a>
67 : <a class="el" href="a00239.html#ga256188598ace9135605a8ac8fc158654">glm::gtc::half_float</a>
6668 </li>
6769 <li>half1
68 : <a class="el" href="a00255.html#gac92f2c2693fb34285be07e772fcf0a53">glm::gtx::compatibility</a>
70 : <a class="el" href="a00254.html#gac92f2c2693fb34285be07e772fcf0a53">glm::gtx::compatibility</a>
6971 </li>
7072 <li>half1x1
71 : <a class="el" href="a00255.html#ga9117ea66da761db845b445c4e7e1c745">glm::gtx::compatibility</a>
73 : <a class="el" href="a00254.html#ga9117ea66da761db845b445c4e7e1c745">glm::gtx::compatibility</a>
7274 </li>
7375 <li>half2
74 : <a class="el" href="a00255.html#gaf768e8598259bc50119150ebea01fdbb">glm::gtx::compatibility</a>
76 : <a class="el" href="a00254.html#gaf768e8598259bc50119150ebea01fdbb">glm::gtx::compatibility</a>
7577 </li>
7678 <li>half2x2
77 : <a class="el" href="a00255.html#gae04667191899a90d334e7585f341c523">glm::gtx::compatibility</a>
79 : <a class="el" href="a00254.html#gae04667191899a90d334e7585f341c523">glm::gtx::compatibility</a>
7880 </li>
7981 <li>half2x3
80 : <a class="el" href="a00255.html#ga44334615025353ffd16946ee83c96ebe">glm::gtx::compatibility</a>
82 : <a class="el" href="a00254.html#ga44334615025353ffd16946ee83c96ebe">glm::gtx::compatibility</a>
8183 </li>
8284 <li>half2x4
83 : <a class="el" href="a00255.html#gae0b63041228648f9223a421429c5a243">glm::gtx::compatibility</a>
85 : <a class="el" href="a00254.html#gae0b63041228648f9223a421429c5a243">glm::gtx::compatibility</a>
8486 </li>
8587 <li>half3
86 : <a class="el" href="a00255.html#gadb391aad07ab3f0a00d53a0a322fe52e">glm::gtx::compatibility</a>
88 : <a class="el" href="a00254.html#gadb391aad07ab3f0a00d53a0a322fe52e">glm::gtx::compatibility</a>
8789 </li>
8890 <li>half3x2
89 : <a class="el" href="a00255.html#gabb94c5e2a5c5091b7c65e132a02b2e55">glm::gtx::compatibility</a>
91 : <a class="el" href="a00254.html#gabb94c5e2a5c5091b7c65e132a02b2e55">glm::gtx::compatibility</a>
9092 </li>
9193 <li>half3x3
92 : <a class="el" href="a00255.html#ga2a4cf36c30efcd3358d617840ed8a3f2">glm::gtx::compatibility</a>
94 : <a class="el" href="a00254.html#ga2a4cf36c30efcd3358d617840ed8a3f2">glm::gtx::compatibility</a>
9395 </li>
9496 <li>half3x4
95 : <a class="el" href="a00255.html#gadecf6b2be379805949e6e74a24e2bdbd">glm::gtx::compatibility</a>
97 : <a class="el" href="a00254.html#gadecf6b2be379805949e6e74a24e2bdbd">glm::gtx::compatibility</a>
9698 </li>
9799 <li>half4
98 : <a class="el" href="a00255.html#gaa4906c782e978976545039046ed3d629">glm::gtx::compatibility</a>
100 : <a class="el" href="a00254.html#gaa4906c782e978976545039046ed3d629">glm::gtx::compatibility</a>
99101 </li>
100102 <li>half4x2
101 : <a class="el" href="a00255.html#ga34877ae24fd35deb8001cc358366e47f">glm::gtx::compatibility</a>
103 : <a class="el" href="a00254.html#ga34877ae24fd35deb8001cc358366e47f">glm::gtx::compatibility</a>
102104 </li>
103105 <li>half4x3
104 : <a class="el" href="a00255.html#gaae1ce7ae382a802a08180c21bfb2d863">glm::gtx::compatibility</a>
106 : <a class="el" href="a00254.html#gaae1ce7ae382a802a08180c21bfb2d863">glm::gtx::compatibility</a>
105107 </li>
106108 <li>half4x4
107 : <a class="el" href="a00255.html#gad5c6e0603afbcd8ccf217fe2dca50cc1">glm::gtx::compatibility</a>
109 : <a class="el" href="a00254.html#gad5c6e0603afbcd8ccf217fe2dca50cc1">glm::gtx::compatibility</a>
108110 </li>
109111 <li>highp_float
110 : <a class="el" href="a00236.html#ga6e95694987ba35af6f736638be39626a">glm::core::type::precision</a>
112 : <a class="el" href="a00235.html#ga6e95694987ba35af6f736638be39626a">glm::core::type::precision</a>
111113 </li>
112114 <li>highp_imat2
113 : <a class="el" href="a00242.html#ga16e9ac01daa94cd41baca57b1720c4d2">glm::gtc::matrix_integer</a>
115 : <a class="el" href="a00241.html#ga16e9ac01daa94cd41baca57b1720c4d2">glm::gtc::matrix_integer</a>
114116 </li>
115117 <li>highp_imat2x2
116 : <a class="el" href="a00242.html#ga503734c9f848968b3ede74017d3927e0">glm::gtc::matrix_integer</a>
118 : <a class="el" href="a00241.html#ga503734c9f848968b3ede74017d3927e0">glm::gtc::matrix_integer</a>
117119 </li>
118120 <li>highp_imat2x3
119 : <a class="el" href="a00242.html#gae4ac618eb06b7288e4a14633971320ed">glm::gtc::matrix_integer</a>
121 : <a class="el" href="a00241.html#gae4ac618eb06b7288e4a14633971320ed">glm::gtc::matrix_integer</a>
120122 </li>
121123 <li>highp_imat2x4
122 : <a class="el" href="a00242.html#ga73ca75871a9a43972be9bb4b295b1e3f">glm::gtc::matrix_integer</a>
124 : <a class="el" href="a00241.html#ga73ca75871a9a43972be9bb4b295b1e3f">glm::gtc::matrix_integer</a>
123125 </li>
124126 <li>highp_imat3
125 : <a class="el" href="a00242.html#ga1aab5488573c134db709107b0aa45060">glm::gtc::matrix_integer</a>
127 : <a class="el" href="a00241.html#ga1aab5488573c134db709107b0aa45060">glm::gtc::matrix_integer</a>
126128 </li>
127129 <li>highp_imat3x2
128 : <a class="el" href="a00242.html#ga8e2e34fc5f030a888cff9b9fdf169c01">glm::gtc::matrix_integer</a>
130 : <a class="el" href="a00241.html#ga8e2e34fc5f030a888cff9b9fdf169c01">glm::gtc::matrix_integer</a>
129131 </li>
130132 <li>highp_imat3x3
131 : <a class="el" href="a00242.html#ga20a5eb2dc99580c5eee0d1287a81dc71">glm::gtc::matrix_integer</a>
133 : <a class="el" href="a00241.html#ga20a5eb2dc99580c5eee0d1287a81dc71">glm::gtc::matrix_integer</a>
132134 </li>
133135 <li>highp_imat3x4
134 : <a class="el" href="a00242.html#ga52c1fd71b37cd7534b3ba05cfddf5641">glm::gtc::matrix_integer</a>
136 : <a class="el" href="a00241.html#ga52c1fd71b37cd7534b3ba05cfddf5641">glm::gtc::matrix_integer</a>
135137 </li>
136138 <li>highp_imat4
137 : <a class="el" href="a00242.html#ga001cb3722aece6e478d1c013cd561248">glm::gtc::matrix_integer</a>
139 : <a class="el" href="a00241.html#ga001cb3722aece6e478d1c013cd561248">glm::gtc::matrix_integer</a>
138140 </li>
139141 <li>highp_imat4x2
140 : <a class="el" href="a00242.html#ga8d5483e43eaf948445dad0316adfd065">glm::gtc::matrix_integer</a>
142 : <a class="el" href="a00241.html#ga8d5483e43eaf948445dad0316adfd065">glm::gtc::matrix_integer</a>
141143 </li>
142144 <li>highp_imat4x3
143 : <a class="el" href="a00242.html#ga39096445d642ca381cec94a9dcefa49e">glm::gtc::matrix_integer</a>
145 : <a class="el" href="a00241.html#ga39096445d642ca381cec94a9dcefa49e">glm::gtc::matrix_integer</a>
144146 </li>
145147 <li>highp_imat4x4
146 : <a class="el" href="a00242.html#ga1956c46bca65b5b00c01250e0d5f1de6">glm::gtc::matrix_integer</a>
148 : <a class="el" href="a00241.html#ga1956c46bca65b5b00c01250e0d5f1de6">glm::gtc::matrix_integer</a>
147149 </li>
148150 <li>highp_int
149 : <a class="el" href="a00236.html#gaaabe7eb044941ebf308b53a447d692dc">glm::core::type::precision</a>
151 : <a class="el" href="a00235.html#gaaabe7eb044941ebf308b53a447d692dc">glm::core::type::precision</a>
152 </li>
153 <li>highp_ivec1
154 : <a class="el" href="a00224.html#a7b3964cbe14cee973bc856b81708fb36">glm::gtx::vector1::precision</a>
150155 </li>
151156 <li>highp_ivec2
152 : <a class="el" href="a00236.html#ga306173e656477f59bf0164a623780236">glm::core::type::precision</a>
157 : <a class="el" href="a00235.html#ga306173e656477f59bf0164a623780236">glm::core::type::precision</a>
153158 </li>
154159 <li>highp_ivec3
155 : <a class="el" href="a00236.html#gaccca78e0907313665d47af163c17c5bb">glm::core::type::precision</a>
160 : <a class="el" href="a00235.html#gaccca78e0907313665d47af163c17c5bb">glm::core::type::precision</a>
156161 </li>
157162 <li>highp_ivec4
158 : <a class="el" href="a00236.html#ga320e40ad19a7be26cff134cce4f15a51">glm::core::type::precision</a>
163 : <a class="el" href="a00235.html#ga320e40ad19a7be26cff134cce4f15a51">glm::core::type::precision</a>
164 </li>
165 <li>highp_mat2
166 : <a class="el" href="a00235.html#gaeedb9e4f01fefcd5a47356b476b6890c">glm::core::type::precision</a>
159167 </li>
160168 <li>highp_mat2x2
161 : <a class="el" href="a00236.html#ga9aa0c5dce81439aa15a0d5b5e5006d81">glm::core::type::precision</a>
169 : <a class="el" href="a00235.html#ga9aa0c5dce81439aa15a0d5b5e5006d81">glm::core::type::precision</a>
162170 </li>
163171 <li>highp_mat2x3
164 : <a class="el" href="a00236.html#ga895ba4ec32bd7cfb0d07572556572069">glm::core::type::precision</a>
172 : <a class="el" href="a00235.html#ga895ba4ec32bd7cfb0d07572556572069">glm::core::type::precision</a>
165173 </li>
166174 <li>highp_mat2x4
167175 : <a class="el" href="a00156.html#af8816ff880fbae96a59c543904333109">glm::core::type::precision</a>
168176 </li>
177 <li>highp_mat3
178 : <a class="el" href="a00235.html#ga95c93f032b4713aff2886a39f96822e1">glm::core::type::precision</a>
179 </li>
169180 <li>highp_mat3x2
170181 : <a class="el" href="a00156.html#ae5e017b25e88ff5c61f4538a2dd5647a">glm::core::type::precision</a>
171182 </li>
172183 <li>highp_mat3x3
173 : <a class="el" href="a00236.html#ga20aa8e5c6061576079c10e86cd743c8d">glm::core::type::precision</a>
184 : <a class="el" href="a00235.html#ga20aa8e5c6061576079c10e86cd743c8d">glm::core::type::precision</a>
174185 </li>
175186 <li>highp_mat3x4
176187 : <a class="el" href="a00156.html#a8efc769b3edb7a3f420d6344e2308c72">glm::core::type::precision</a>
177188 </li>
189 <li>highp_mat4
190 : <a class="el" href="a00235.html#ga6e0882bb7c778ee27596e1cbe70cad1a">glm::core::type::precision</a>
191 </li>
178192 <li>highp_mat4x2
179 : <a class="el" href="a00236.html#ga3178de2c189bfdda4c73d6af8017f5d3">glm::core::type::precision</a>
193 : <a class="el" href="a00235.html#ga3178de2c189bfdda4c73d6af8017f5d3">glm::core::type::precision</a>
180194 </li>
181195 <li>highp_mat4x3
182 : <a class="el" href="a00236.html#ga00d8bf8ebaab7d6647a3b7f73ae324af">glm::core::type::precision</a>
196 : <a class="el" href="a00235.html#ga00d8bf8ebaab7d6647a3b7f73ae324af">glm::core::type::precision</a>
183197 </li>
184198 <li>highp_mat4x4
185 : <a class="el" href="a00236.html#gadd2ef277f86f6fa29804a22d1eb7d662">glm::core::type::precision</a>
199 : <a class="el" href="a00235.html#gadd2ef277f86f6fa29804a22d1eb7d662">glm::core::type::precision</a>
200 </li>
201 <li>highp_quat
202 : <a class="el" href="a00244.html#ga8a7c2c751ad30db9ec4268a6b7d99f6c">glm::gtc::quaternion</a>
186203 </li>
187204 <li>highp_uint
188 : <a class="el" href="a00236.html#ga73e8a694d7fc69143cf25161d18d1dcf">glm::core::type::precision</a>
205 : <a class="el" href="a00235.html#ga73e8a694d7fc69143cf25161d18d1dcf">glm::core::type::precision</a>
189206 </li>
190207 <li>highp_umat2
191 : <a class="el" href="a00242.html#ga9917f09e4bbb414e5b10f5e00c7de70d">glm::gtc::matrix_integer</a>
208 : <a class="el" href="a00241.html#ga9917f09e4bbb414e5b10f5e00c7de70d">glm::gtc::matrix_integer</a>
192209 </li>
193210 <li>highp_umat2x2
194 : <a class="el" href="a00242.html#gac46ccd4fa290488681c4574e5e562d55">glm::gtc::matrix_integer</a>
211 : <a class="el" href="a00241.html#gac46ccd4fa290488681c4574e5e562d55">glm::gtc::matrix_integer</a>
195212 </li>
196213 <li>highp_umat2x3
197 : <a class="el" href="a00242.html#ga81a27f521f29ff4ace4d1e4cde1de2a5">glm::gtc::matrix_integer</a>
214 : <a class="el" href="a00241.html#ga81a27f521f29ff4ace4d1e4cde1de2a5">glm::gtc::matrix_integer</a>
198215 </li>
199216 <li>highp_umat2x4
200 : <a class="el" href="a00242.html#gab6c2023040df42564c16a2b464adba9b">glm::gtc::matrix_integer</a>
217 : <a class="el" href="a00241.html#gab6c2023040df42564c16a2b464adba9b">glm::gtc::matrix_integer</a>
201218 </li>
202219 <li>highp_umat3
203 : <a class="el" href="a00242.html#gac7928fd1dbf3decc2463e0044d10ba14">glm::gtc::matrix_integer</a>
220 : <a class="el" href="a00241.html#gac7928fd1dbf3decc2463e0044d10ba14">glm::gtc::matrix_integer</a>
204221 </li>
205222 <li>highp_umat3x2
206 : <a class="el" href="a00242.html#gab9cdf3c2c04d7346cc45b212a904f02d">glm::gtc::matrix_integer</a>
223 : <a class="el" href="a00241.html#gab9cdf3c2c04d7346cc45b212a904f02d">glm::gtc::matrix_integer</a>
207224 </li>
208225 <li>highp_umat3x3
209 : <a class="el" href="a00242.html#gabb4b97694034f2d650dca359db023eaa">glm::gtc::matrix_integer</a>
226 : <a class="el" href="a00241.html#gabb4b97694034f2d650dca359db023eaa">glm::gtc::matrix_integer</a>
210227 </li>
211228 <li>highp_umat3x4
212 : <a class="el" href="a00242.html#ga8c7be88fb8d49dd55eb6892da1bf1966">glm::gtc::matrix_integer</a>
229 : <a class="el" href="a00241.html#ga8c7be88fb8d49dd55eb6892da1bf1966">glm::gtc::matrix_integer</a>
213230 </li>
214231 <li>highp_umat4
215 : <a class="el" href="a00242.html#ga2f29d9ef4636752de31b92a56b44bd8a">glm::gtc::matrix_integer</a>
232 : <a class="el" href="a00241.html#ga2f29d9ef4636752de31b92a56b44bd8a">glm::gtc::matrix_integer</a>
216233 </li>
217234 <li>highp_umat4x2
218 : <a class="el" href="a00242.html#ga84ddf69a6f1912a196c505c4a8fe817b">glm::gtc::matrix_integer</a>
235 : <a class="el" href="a00241.html#ga84ddf69a6f1912a196c505c4a8fe817b">glm::gtc::matrix_integer</a>
219236 </li>
220237 <li>highp_umat4x3
221 : <a class="el" href="a00242.html#gaba6def08906f182866bd945babf9a5f7">glm::gtc::matrix_integer</a>
238 : <a class="el" href="a00241.html#gaba6def08906f182866bd945babf9a5f7">glm::gtc::matrix_integer</a>
222239 </li>
223240 <li>highp_umat4x4
224 : <a class="el" href="a00242.html#gaff8f7574251ea10466c0f31ca1e83f6d">glm::gtc::matrix_integer</a>
241 : <a class="el" href="a00241.html#gaff8f7574251ea10466c0f31ca1e83f6d">glm::gtc::matrix_integer</a>
242 </li>
243 <li>highp_uvec1
244 : <a class="el" href="a00224.html#a9ada3d09911046c294f83bdaebd7ce8e">glm::gtx::vector1::precision</a>
225245 </li>
226246 <li>highp_uvec2
227 : <a class="el" href="a00236.html#gad4a5243fc438d0f2efbc22d075b4e399">glm::core::type::precision</a>
247 : <a class="el" href="a00235.html#gad4a5243fc438d0f2efbc22d075b4e399">glm::core::type::precision</a>
228248 </li>
229249 <li>highp_uvec3
230 : <a class="el" href="a00236.html#gaf4b32075ad193e4f47c8bfc367593d8c">glm::core::type::precision</a>
250 : <a class="el" href="a00235.html#gaf4b32075ad193e4f47c8bfc367593d8c">glm::core::type::precision</a>
231251 </li>
232252 <li>highp_uvec4
233 : <a class="el" href="a00236.html#ga5ad6375e810e3050a6c845b600422b70">glm::core::type::precision</a>
253 : <a class="el" href="a00235.html#ga5ad6375e810e3050a6c845b600422b70">glm::core::type::precision</a>
254 </li>
255 <li>highp_vec1
256 : <a class="el" href="a00224.html#a26cc70c8e50dcdbd7fba41515d3f3f4e">glm::gtx::vector1::precision</a>
234257 </li>
235258 <li>highp_vec2
236 : <a class="el" href="a00236.html#ga9b65d7afd0783a02f5b3d1b75d1d872e">glm::core::type::precision</a>
259 : <a class="el" href="a00235.html#ga9b65d7afd0783a02f5b3d1b75d1d872e">glm::core::type::precision</a>
237260 </li>
238261 <li>highp_vec3
239 : <a class="el" href="a00236.html#ga0d3129f5f6644cb7552f520ff0dfa789">glm::core::type::precision</a>
262 : <a class="el" href="a00235.html#ga0d3129f5f6644cb7552f520ff0dfa789">glm::core::type::precision</a>
240263 </li>
241264 <li>highp_vec4
242 : <a class="el" href="a00236.html#gaaef692a5e2eae7dad32ca2f8ed0d16d8">glm::core::type::precision</a>
265 : <a class="el" href="a00235.html#gaaef692a5e2eae7dad32ca2f8ed0d16d8">glm::core::type::precision</a>
243266 </li>
244267 <li>hmat2
245 : <a class="el" href="a00240.html#ga784f92f5a36fd8e23a69119eb6a80eb8">glm::gtc::half_float</a>
268 : <a class="el" href="a00239.html#ga784f92f5a36fd8e23a69119eb6a80eb8">glm::gtc::half_float</a>
269 </li>
270 <li>hmat2x2
271 : <a class="el" href="a00239.html#gaef5a99a975d1df44e43f3662d84d24e2">glm::gtc::half_float</a>
272 </li>
273 <li>hmat2x3
274 : <a class="el" href="a00239.html#ga55c96491b1d2508504b7fad8f31fdd47">glm::gtc::half_float</a>
275 </li>
276 <li>hmat2x4
277 : <a class="el" href="a00239.html#ga43a7d1bfd8945398effa19eb66ce304a">glm::gtc::half_float</a>
246278 </li>
247279 <li>hmat3
248 : <a class="el" href="a00240.html#ga97a57670730ece7f6b904d6dcce5bd7a">glm::gtc::half_float</a>
280 : <a class="el" href="a00239.html#ga97a57670730ece7f6b904d6dcce5bd7a">glm::gtc::half_float</a>
281 </li>
282 <li>hmat3x2
283 : <a class="el" href="a00239.html#gaf89371358a1d90a224c72795d25a4f3e">glm::gtc::half_float</a>
284 </li>
285 <li>hmat3x3
286 : <a class="el" href="a00239.html#ga3b23962a795f1f157242859c1a35dec0">glm::gtc::half_float</a>
287 </li>
288 <li>hmat3x4
289 : <a class="el" href="a00239.html#ga8eeb3d8c00910f5497117d1749b6550f">glm::gtc::half_float</a>
249290 </li>
250291 <li>hmat4
251 : <a class="el" href="a00240.html#gaffa8b541819e978ede6129703be94285">glm::gtc::half_float</a>
292 : <a class="el" href="a00239.html#gaffa8b541819e978ede6129703be94285">glm::gtc::half_float</a>
293 </li>
294 <li>hmat4x2
295 : <a class="el" href="a00239.html#ga370098417bb96d7796b11a4611bf67ac">glm::gtc::half_float</a>
296 </li>
297 <li>hmat4x3
298 : <a class="el" href="a00239.html#ga8248b190b2f9a4ff3f2aadf865f72b84">glm::gtc::half_float</a>
299 </li>
300 <li>hmat4x4
301 : <a class="el" href="a00239.html#ga66a4356be6f3c7a1e5cb944657917002">glm::gtc::half_float</a>
252302 </li>
253303 <li>hquat
254 : <a class="el" href="a00245.html#ga552e75db1669a7a86b59070d4efd6941">glm::gtc::quaternion</a>
304 : <a class="el" href="a00244.html#ga552e75db1669a7a86b59070d4efd6941">glm::gtc::quaternion</a>
255305 </li>
256306 <li>hvec2
257 : <a class="el" href="a00240.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a">glm::gtc::half_float</a>
307 : <a class="el" href="a00239.html#ga2cd0b3fe113dc1aa2ee750a85f77c50a">glm::gtc::half_float</a>
258308 </li>
259309 <li>hvec3
260 : <a class="el" href="a00240.html#gab708ed615526a03ec26e3b614bea2b7b">glm::gtc::half_float</a>
310 : <a class="el" href="a00239.html#gab708ed615526a03ec26e3b614bea2b7b">glm::gtc::half_float</a>
261311 </li>
262312 <li>hvec4
263 : <a class="el" href="a00240.html#ga912913b034fea8952fcfc129a633c667">glm::gtc::half_float</a>
313 : <a class="el" href="a00239.html#ga912913b034fea8952fcfc129a633c667">glm::gtc::half_float</a>
264314 </li>
265315 </ul>
266316 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
6264
6365 <h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
6466 <li>i16
65 : <a class="el" href="a00246.html#ga47ad84e86d8eef23a5ebab2815242a0d">glm::gtc::type_precision</a>
67 : <a class="el" href="a00245.html#ga47ad84e86d8eef23a5ebab2815242a0d">glm::gtc::type_precision</a>
6668 </li>
6769 <li>i16vec2
68 : <a class="el" href="a00246.html#ga6a9c8e79629016f081cd3274eeafe429">glm::gtc::type_precision</a>
70 : <a class="el" href="a00245.html#ga6a9c8e79629016f081cd3274eeafe429">glm::gtc::type_precision</a>
6971 </li>
7072 <li>i16vec3
71 : <a class="el" href="a00246.html#ga539ac09149e338c783bc492fd25d504c">glm::gtc::type_precision</a>
73 : <a class="el" href="a00245.html#ga539ac09149e338c783bc492fd25d504c">glm::gtc::type_precision</a>
7274 </li>
7375 <li>i16vec4
74 : <a class="el" href="a00246.html#ga09c99e80eb63c8df7a9cc4021c8a2811">glm::gtc::type_precision</a>
76 : <a class="el" href="a00245.html#ga09c99e80eb63c8df7a9cc4021c8a2811">glm::gtc::type_precision</a>
7577 </li>
7678 <li>i32
77 : <a class="el" href="a00246.html#ga324db08ffb2a193f9a10864288b94523">glm::gtc::type_precision</a>
79 : <a class="el" href="a00245.html#ga324db08ffb2a193f9a10864288b94523">glm::gtc::type_precision</a>
7880 </li>
7981 <li>i32vec2
80 : <a class="el" href="a00246.html#ga587a33330386e50f7ff9a870f1b62ab1">glm::gtc::type_precision</a>
82 : <a class="el" href="a00245.html#ga587a33330386e50f7ff9a870f1b62ab1">glm::gtc::type_precision</a>
8183 </li>
8284 <li>i32vec3
83 : <a class="el" href="a00246.html#gae8b7bb7698c98fb69f2a4aff8a757416">glm::gtc::type_precision</a>
85 : <a class="el" href="a00245.html#gae8b7bb7698c98fb69f2a4aff8a757416">glm::gtc::type_precision</a>
8486 </li>
8587 <li>i32vec4
86 : <a class="el" href="a00246.html#gaa82f1d2958dfcc463a2498d52ee80a0a">glm::gtc::type_precision</a>
88 : <a class="el" href="a00245.html#gaa82f1d2958dfcc463a2498d52ee80a0a">glm::gtc::type_precision</a>
8789 </li>
8890 <li>i64
89 : <a class="el" href="a00246.html#ga60abe2e6e0bacb893a2d6d17cc50f753">glm::gtc::type_precision</a>
91 : <a class="el" href="a00245.html#ga60abe2e6e0bacb893a2d6d17cc50f753">glm::gtc::type_precision</a>
9092 </li>
9193 <li>i64vec2
92 : <a class="el" href="a00246.html#ga7a6245c652f68ba306c05bb0d4ca1361">glm::gtc::type_precision</a>
94 : <a class="el" href="a00245.html#ga7a6245c652f68ba306c05bb0d4ca1361">glm::gtc::type_precision</a>
9395 </li>
9496 <li>i64vec3
95 : <a class="el" href="a00246.html#ga78ad50b24382913ef6068ded644c9f3f">glm::gtc::type_precision</a>
97 : <a class="el" href="a00245.html#ga78ad50b24382913ef6068ded644c9f3f">glm::gtc::type_precision</a>
9698 </li>
9799 <li>i64vec4
98 : <a class="el" href="a00246.html#ga8392ac39a51731ab9a5b3f23a5eaf1d7">glm::gtc::type_precision</a>
100 : <a class="el" href="a00245.html#ga8392ac39a51731ab9a5b3f23a5eaf1d7">glm::gtc::type_precision</a>
99101 </li>
100102 <li>i8
101 : <a class="el" href="a00246.html#ga112f99168645b5338136b72eddd12895">glm::gtc::type_precision</a>
103 : <a class="el" href="a00245.html#ga112f99168645b5338136b72eddd12895">glm::gtc::type_precision</a>
102104 </li>
103105 <li>i8vec2
104 : <a class="el" href="a00246.html#ga9ab3f26fa232d5a4d2397d7904eb9069">glm::gtc::type_precision</a>
106 : <a class="el" href="a00245.html#ga9ab3f26fa232d5a4d2397d7904eb9069">glm::gtc::type_precision</a>
105107 </li>
106108 <li>i8vec3
107 : <a class="el" href="a00246.html#gaa8c91ad088bbbd51f2ef3b7701f00ed9">glm::gtc::type_precision</a>
109 : <a class="el" href="a00245.html#gaa8c91ad088bbbd51f2ef3b7701f00ed9">glm::gtc::type_precision</a>
108110 </li>
109111 <li>i8vec4
110 : <a class="el" href="a00246.html#ga792e1b3e596a020df28a8eb4ec3c0708">glm::gtc::type_precision</a>
112 : <a class="el" href="a00245.html#ga792e1b3e596a020df28a8eb4ec3c0708">glm::gtc::type_precision</a>
111113 </li>
112114 <li>imat2
113 : <a class="el" href="a00242.html#gaabe04f9948d4a213bb1c20137de03e01">glm::gtc::matrix_integer</a>
115 : <a class="el" href="a00241.html#gaabe04f9948d4a213bb1c20137de03e01">glm::gtc::matrix_integer</a>
114116 </li>
115117 <li>imat2x2
116 : <a class="el" href="a00242.html#gaa4732a240522ad9bc28144fda2fc14ec">glm::gtc::matrix_integer</a>
118 : <a class="el" href="a00241.html#gaa4732a240522ad9bc28144fda2fc14ec">glm::gtc::matrix_integer</a>
117119 </li>
118120 <li>imat2x3
119 : <a class="el" href="a00242.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">glm::gtc::matrix_integer</a>
121 : <a class="el" href="a00241.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">glm::gtc::matrix_integer</a>
120122 </li>
121123 <li>imat2x4
122 : <a class="el" href="a00242.html#ga9d8faafdca42583d67e792dd038fc668">glm::gtc::matrix_integer</a>
124 : <a class="el" href="a00241.html#ga9d8faafdca42583d67e792dd038fc668">glm::gtc::matrix_integer</a>
123125 </li>
124126 <li>imat3
125 : <a class="el" href="a00242.html#ga038f68437155ffa3c2583a15264a8195">glm::gtc::matrix_integer</a>
127 : <a class="el" href="a00241.html#ga038f68437155ffa3c2583a15264a8195">glm::gtc::matrix_integer</a>
126128 </li>
127129 <li>imat3x2
128 : <a class="el" href="a00242.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">glm::gtc::matrix_integer</a>
130 : <a class="el" href="a00241.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">glm::gtc::matrix_integer</a>
129131 </li>
130132 <li>imat3x3
131 : <a class="el" href="a00242.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">glm::gtc::matrix_integer</a>
133 : <a class="el" href="a00241.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">glm::gtc::matrix_integer</a>
132134 </li>
133135 <li>imat3x4
134 : <a class="el" href="a00242.html#ga6e9ce23496d8b08dfc302d4039694b58">glm::gtc::matrix_integer</a>
136 : <a class="el" href="a00241.html#ga6e9ce23496d8b08dfc302d4039694b58">glm::gtc::matrix_integer</a>
135137 </li>
136138 <li>imat4
137 : <a class="el" href="a00242.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">glm::gtc::matrix_integer</a>
139 : <a class="el" href="a00241.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">glm::gtc::matrix_integer</a>
138140 </li>
139141 <li>imat4x2
140 : <a class="el" href="a00242.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">glm::gtc::matrix_integer</a>
142 : <a class="el" href="a00241.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">glm::gtc::matrix_integer</a>
141143 </li>
142144 <li>imat4x3
143 : <a class="el" href="a00242.html#ga705ee0bf49d6c3de4404ce2481bf0df5">glm::gtc::matrix_integer</a>
145 : <a class="el" href="a00241.html#ga705ee0bf49d6c3de4404ce2481bf0df5">glm::gtc::matrix_integer</a>
144146 </li>
145147 <li>imat4x4
146 : <a class="el" href="a00242.html#ga43ed5e4f475b6f4cad7cba78f29c405b">glm::gtc::matrix_integer</a>
148 : <a class="el" href="a00241.html#ga43ed5e4f475b6f4cad7cba78f29c405b">glm::gtc::matrix_integer</a>
147149 </li>
148150 <li>int1
149 : <a class="el" href="a00255.html#ga0670a2111b5e4a6410bd027fa0232fc3">glm::gtx::compatibility</a>
151 : <a class="el" href="a00254.html#ga0670a2111b5e4a6410bd027fa0232fc3">glm::gtx::compatibility</a>
150152 </li>
151153 <li>int16
152 : <a class="el" href="a00246.html#ga302041c186d0d028bea31b711fe16759">glm::gtc::type_precision</a>
154 : <a class="el" href="a00245.html#ga302041c186d0d028bea31b711fe16759">glm::gtc::type_precision</a>
153155 </li>
154156 <li>int1x1
155 : <a class="el" href="a00255.html#ga056ffe02d3a45af626f8e62221881c7a">glm::gtx::compatibility</a>
157 : <a class="el" href="a00254.html#ga056ffe02d3a45af626f8e62221881c7a">glm::gtx::compatibility</a>
156158 </li>
157159 <li>int2
158 : <a class="el" href="a00255.html#ga96b72b048dd3d9eb7caa93f9589b46a0">glm::gtx::compatibility</a>
160 : <a class="el" href="a00254.html#ga96b72b048dd3d9eb7caa93f9589b46a0">glm::gtx::compatibility</a>
159161 </li>
160162 <li>int2x2
161 : <a class="el" href="a00255.html#gab7644293a70c1e329624f556b779edde">glm::gtx::compatibility</a>
163 : <a class="el" href="a00254.html#gab7644293a70c1e329624f556b779edde">glm::gtx::compatibility</a>
162164 </li>
163165 <li>int2x3
164 : <a class="el" href="a00255.html#gaf2c5ace70f19d3916b43f25ab7ffbc95">glm::gtx::compatibility</a>
166 : <a class="el" href="a00254.html#gaf2c5ace70f19d3916b43f25ab7ffbc95">glm::gtx::compatibility</a>
165167 </li>
166168 <li>int2x4
167 : <a class="el" href="a00255.html#ga20ba14d42f3856221a0eb5194184bcf9">glm::gtx::compatibility</a>
169 : <a class="el" href="a00254.html#ga20ba14d42f3856221a0eb5194184bcf9">glm::gtx::compatibility</a>
168170 </li>
169171 <li>int3
170 : <a class="el" href="a00255.html#ga0e57fa71b1be1f6501d3985b7b7d4dac">glm::gtx::compatibility</a>
172 : <a class="el" href="a00254.html#ga0e57fa71b1be1f6501d3985b7b7d4dac">glm::gtx::compatibility</a>
171173 </li>
172174 <li>int32
173 : <a class="el" href="a00246.html#ga8df669f4e7698dfe0c0354d92578d74f">glm::gtc::type_precision</a>
175 : <a class="el" href="a00245.html#ga8df669f4e7698dfe0c0354d92578d74f">glm::gtc::type_precision</a>
174176 </li>
175177 <li>int3x2
176 : <a class="el" href="a00255.html#ga75bc457489f7d23f5ea56445c0b3fa3f">glm::gtx::compatibility</a>
178 : <a class="el" href="a00254.html#ga75bc457489f7d23f5ea56445c0b3fa3f">glm::gtx::compatibility</a>
177179 </li>
178180 <li>int3x3
179 : <a class="el" href="a00255.html#ga90d6b84bdde0d8247774aac30909ed03">glm::gtx::compatibility</a>
181 : <a class="el" href="a00254.html#ga90d6b84bdde0d8247774aac30909ed03">glm::gtx::compatibility</a>
180182 </li>
181183 <li>int3x4
182 : <a class="el" href="a00255.html#ga91da3b288518f40c78ee1d0e1fb1cdb3">glm::gtx::compatibility</a>
184 : <a class="el" href="a00254.html#ga91da3b288518f40c78ee1d0e1fb1cdb3">glm::gtx::compatibility</a>
183185 </li>
184186 <li>int4
185 : <a class="el" href="a00255.html#ga827bb0abe63248b0ae292a83ff55097a">glm::gtx::compatibility</a>
187 : <a class="el" href="a00254.html#ga827bb0abe63248b0ae292a83ff55097a">glm::gtx::compatibility</a>
186188 </li>
187189 <li>int4x2
188 : <a class="el" href="a00255.html#ga9101cda6ad27c3d5aa596ef9baeca75d">glm::gtx::compatibility</a>
190 : <a class="el" href="a00254.html#ga9101cda6ad27c3d5aa596ef9baeca75d">glm::gtx::compatibility</a>
189191 </li>
190192 <li>int4x3
191 : <a class="el" href="a00255.html#ga5f93d57c0c99fd11c353e952b107b036">glm::gtx::compatibility</a>
193 : <a class="el" href="a00254.html#ga5f93d57c0c99fd11c353e952b107b036">glm::gtx::compatibility</a>
192194 </li>
193195 <li>int4x4
194 : <a class="el" href="a00255.html#gacd4827b69f52f6486625bf65d23fe53f">glm::gtx::compatibility</a>
196 : <a class="el" href="a00254.html#gacd4827b69f52f6486625bf65d23fe53f">glm::gtx::compatibility</a>
195197 </li>
196198 <li>int64
197 : <a class="el" href="a00246.html#gaff5189f97f9e842d9636a0f240001b2e">glm::gtc::type_precision</a>
199 : <a class="el" href="a00245.html#gaff5189f97f9e842d9636a0f240001b2e">glm::gtc::type_precision</a>
198200 </li>
199201 <li>int8
200 : <a class="el" href="a00246.html#ga41c6189f6485c2825d60fdc835b3a2b0">glm::gtc::type_precision</a>
201 </li>
202 <li>ivec1
203 : <a class="el" href="a00223.html#acad21ad05f36e9ca36c040086837987e">glm::gtx::vector1</a>
202 : <a class="el" href="a00245.html#ga41c6189f6485c2825d60fdc835b3a2b0">glm::gtc::type_precision</a>
204203 </li>
205204 <li>ivec2
206 : <a class="el" href="a00235.html#gae34ec1dcb70458421c150176537dca90">glm</a>
205 : <a class="el" href="a00234.html#gae34ec1dcb70458421c150176537dca90">glm</a>
207206 </li>
208207 <li>ivec3
209 : <a class="el" href="a00235.html#ga8772f4d0808ec3571b0b21c7514ae626">glm</a>
208 : <a class="el" href="a00234.html#ga8772f4d0808ec3571b0b21c7514ae626">glm</a>
210209 </li>
211210 <li>ivec4
212 : <a class="el" href="a00235.html#ga4ca78493e6bc3274eb996a783f6336ec">glm</a>
211 : <a class="el" href="a00234.html#ga4ca78493e6bc3274eb996a783f6336ec">glm</a>
213212 </li>
214213 </ul>
215214 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
6264
6365 <h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
6466 <li>lowp_float
65 : <a class="el" href="a00236.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">glm::core::type::precision</a>
67 : <a class="el" href="a00235.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">glm::core::type::precision</a>
6668 </li>
6769 <li>lowp_imat2
68 : <a class="el" href="a00242.html#ga53ba084d560fbe0a32409b7ad29a405f">glm::gtc::matrix_integer</a>
70 : <a class="el" href="a00241.html#ga53ba084d560fbe0a32409b7ad29a405f">glm::gtc::matrix_integer</a>
6971 </li>
7072 <li>lowp_imat2x2
71 : <a class="el" href="a00242.html#ga4cb2449be4c36270d0f6c2849f72037c">glm::gtc::matrix_integer</a>
73 : <a class="el" href="a00241.html#ga4cb2449be4c36270d0f6c2849f72037c">glm::gtc::matrix_integer</a>
7274 </li>
7375 <li>lowp_imat2x3
74 : <a class="el" href="a00242.html#gad9cf0368a1cd253d87307c9784ea4c56">glm::gtc::matrix_integer</a>
76 : <a class="el" href="a00241.html#gad9cf0368a1cd253d87307c9784ea4c56">glm::gtc::matrix_integer</a>
7577 </li>
7678 <li>lowp_imat2x4
77 : <a class="el" href="a00242.html#gab065fa79d6c42b6df2e261c76b359524">glm::gtc::matrix_integer</a>
79 : <a class="el" href="a00241.html#gab065fa79d6c42b6df2e261c76b359524">glm::gtc::matrix_integer</a>
7880 </li>
7981 <li>lowp_imat3
80 : <a class="el" href="a00242.html#ga602bbe8185b35c8e02038924c95c526c">glm::gtc::matrix_integer</a>
82 : <a class="el" href="a00241.html#ga602bbe8185b35c8e02038924c95c526c">glm::gtc::matrix_integer</a>
8183 </li>
8284 <li>lowp_imat3x2
83 : <a class="el" href="a00242.html#gaf96385c22d0e6876b8b5c3dcc2e1d91a">glm::gtc::matrix_integer</a>
85 : <a class="el" href="a00241.html#gaf96385c22d0e6876b8b5c3dcc2e1d91a">glm::gtc::matrix_integer</a>
8486 </li>
8587 <li>lowp_imat3x3
86 : <a class="el" href="a00242.html#ga4da80362c97eb9abb48cedc5a444daf6">glm::gtc::matrix_integer</a>
88 : <a class="el" href="a00241.html#ga4da80362c97eb9abb48cedc5a444daf6">glm::gtc::matrix_integer</a>
8789 </li>
8890 <li>lowp_imat3x4
89 : <a class="el" href="a00242.html#ga7114fd267da92d44c98a440704e0be79">glm::gtc::matrix_integer</a>
91 : <a class="el" href="a00241.html#ga7114fd267da92d44c98a440704e0be79">glm::gtc::matrix_integer</a>
9092 </li>
9193 <li>lowp_imat4
92 : <a class="el" href="a00242.html#ga6e0f075c487aee31df91d9dbd71db88d">glm::gtc::matrix_integer</a>
94 : <a class="el" href="a00241.html#ga6e0f075c487aee31df91d9dbd71db88d">glm::gtc::matrix_integer</a>
9395 </li>
9496 <li>lowp_imat4x2
95 : <a class="el" href="a00242.html#gab9357fc7eb98b919fba7f1656fd548a8">glm::gtc::matrix_integer</a>
97 : <a class="el" href="a00241.html#gab9357fc7eb98b919fba7f1656fd548a8">glm::gtc::matrix_integer</a>
9698 </li>
9799 <li>lowp_imat4x3
98 : <a class="el" href="a00242.html#gac21d66a9936eb54d12b8e57b08e589bc">glm::gtc::matrix_integer</a>
100 : <a class="el" href="a00241.html#gac21d66a9936eb54d12b8e57b08e589bc">glm::gtc::matrix_integer</a>
99101 </li>
100102 <li>lowp_imat4x4
101 : <a class="el" href="a00242.html#gad30fba4d4c94eda205b3f768274f0893">glm::gtc::matrix_integer</a>
103 : <a class="el" href="a00241.html#gad30fba4d4c94eda205b3f768274f0893">glm::gtc::matrix_integer</a>
102104 </li>
103105 <li>lowp_int
104 : <a class="el" href="a00236.html#gad0fa1e32e8b3552ed63556eca51c620e">glm::core::type::precision</a>
106 : <a class="el" href="a00235.html#gad0fa1e32e8b3552ed63556eca51c620e">glm::core::type::precision</a>
107 </li>
108 <li>lowp_ivec1
109 : <a class="el" href="a00224.html#a12a4c27c1cc45db7cd062d3e1e7ad443">glm::gtx::vector1::precision</a>
105110 </li>
106111 <li>lowp_ivec2
107 : <a class="el" href="a00236.html#ga26364654fd75ba6c7f11a65967a7fbee">glm::core::type::precision</a>
112 : <a class="el" href="a00235.html#ga26364654fd75ba6c7f11a65967a7fbee">glm::core::type::precision</a>
108113 </li>
109114 <li>lowp_ivec3
110 : <a class="el" href="a00236.html#gac246e3a1a470974283d6618ad77fd477">glm::core::type::precision</a>
115 : <a class="el" href="a00235.html#gac246e3a1a470974283d6618ad77fd477">glm::core::type::precision</a>
111116 </li>
112117 <li>lowp_ivec4
113 : <a class="el" href="a00236.html#gafc7521507e40fbc269149475a725dbbe">glm::core::type::precision</a>
118 : <a class="el" href="a00235.html#gafc7521507e40fbc269149475a725dbbe">glm::core::type::precision</a>
119 </li>
120 <li>lowp_mat2
121 : <a class="el" href="a00235.html#gaee10b4a3cac178528f8e56c90313094a">glm::core::type::precision</a>
114122 </li>
115123 <li>lowp_mat2x2
116 : <a class="el" href="a00236.html#ga8b49c3aa6665011440c32c281b2032c0">glm::core::type::precision</a>
124 : <a class="el" href="a00235.html#ga8b49c3aa6665011440c32c281b2032c0">glm::core::type::precision</a>
117125 </li>
118126 <li>lowp_mat2x3
119 : <a class="el" href="a00236.html#ga0b32355a31b4c14e98f69b43a9077456">glm::core::type::precision</a>
127 : <a class="el" href="a00235.html#ga0b32355a31b4c14e98f69b43a9077456">glm::core::type::precision</a>
120128 </li>
121129 <li>lowp_mat2x4
122130 : <a class="el" href="a00156.html#af95b55f8954834b05b5463bc153deae5">glm::core::type::precision</a>
123131 </li>
132 <li>lowp_mat3
133 : <a class="el" href="a00235.html#ga5bbef8a57946dd7a91c9e0260d9edfbf">glm::core::type::precision</a>
134 </li>
124135 <li>lowp_mat3x2
125136 : <a class="el" href="a00156.html#a745259412efbd5e07b1a4062190e3135">glm::core::type::precision</a>
126137 </li>
127138 <li>lowp_mat3x3
128 : <a class="el" href="a00236.html#ga0bb652c1f4401b9b3359ae6b2bf13678">glm::core::type::precision</a>
139 : <a class="el" href="a00235.html#ga0bb652c1f4401b9b3359ae6b2bf13678">glm::core::type::precision</a>
129140 </li>
130141 <li>lowp_mat3x4
131142 : <a class="el" href="a00156.html#a2e7a430ab7df03b63b5c7b776f7675a1">glm::core::type::precision</a>
132143 </li>
144 <li>lowp_mat4
145 : <a class="el" href="a00235.html#ga4954a51c5507e62185d6d82dc39016a5">glm::core::type::precision</a>
146 </li>
133147 <li>lowp_mat4x2
134 : <a class="el" href="a00236.html#gac88de3260a910584e02b98f087a34502">glm::core::type::precision</a>
148 : <a class="el" href="a00235.html#gac88de3260a910584e02b98f087a34502">glm::core::type::precision</a>
135149 </li>
136150 <li>lowp_mat4x3
137 : <a class="el" href="a00236.html#ga0072cb659f9360a7bb2c3e6646609ad7">glm::core::type::precision</a>
151 : <a class="el" href="a00235.html#ga0072cb659f9360a7bb2c3e6646609ad7">glm::core::type::precision</a>
138152 </li>
139153 <li>lowp_mat4x4
140 : <a class="el" href="a00236.html#gaae14374ee642a8d553ce64f17a4597b1">glm::core::type::precision</a>
154 : <a class="el" href="a00235.html#gaae14374ee642a8d553ce64f17a4597b1">glm::core::type::precision</a>
155 </li>
156 <li>lowp_quat
157 : <a class="el" href="a00244.html#ga5acd0f3e9f9e3c0e6577440443ec4594">glm::gtc::quaternion</a>
141158 </li>
142159 <li>lowp_uint
143 : <a class="el" href="a00236.html#ga25ebc60727fc8b4a1167665f9ecdca97">glm::core::type::precision</a>
160 : <a class="el" href="a00235.html#ga25ebc60727fc8b4a1167665f9ecdca97">glm::core::type::precision</a>
144161 </li>
145162 <li>lowp_umat2
146 : <a class="el" href="a00242.html#gaf5fd055eb478c690723f3db742fed7ee">glm::gtc::matrix_integer</a>
163 : <a class="el" href="a00241.html#gaf5fd055eb478c690723f3db742fed7ee">glm::gtc::matrix_integer</a>
147164 </li>
148165 <li>lowp_umat2x2
149 : <a class="el" href="a00242.html#ga2041f6554b1e8ed2a6b74cffa2b8d917">glm::gtc::matrix_integer</a>
166 : <a class="el" href="a00241.html#ga2041f6554b1e8ed2a6b74cffa2b8d917">glm::gtc::matrix_integer</a>
150167 </li>
151168 <li>lowp_umat2x3
152 : <a class="el" href="a00242.html#ga2831bb6c3ed95cfefc2fffd315d31904">glm::gtc::matrix_integer</a>
169 : <a class="el" href="a00241.html#ga2831bb6c3ed95cfefc2fffd315d31904">glm::gtc::matrix_integer</a>
153170 </li>
154171 <li>lowp_umat2x4
155 : <a class="el" href="a00242.html#ga7e15349e63fbb93ce8ab047a02f0fe73">glm::gtc::matrix_integer</a>
172 : <a class="el" href="a00241.html#ga7e15349e63fbb93ce8ab047a02f0fe73">glm::gtc::matrix_integer</a>
156173 </li>
157174 <li>lowp_umat3
158 : <a class="el" href="a00242.html#ga9b9e4dbbb43103f29e432c611ba2a8e9">glm::gtc::matrix_integer</a>
175 : <a class="el" href="a00241.html#ga9b9e4dbbb43103f29e432c611ba2a8e9">glm::gtc::matrix_integer</a>
159176 </li>
160177 <li>lowp_umat3x2
161 : <a class="el" href="a00242.html#ga9bb2ec92ae5a588cc2f2487a2b39091a">glm::gtc::matrix_integer</a>
178 : <a class="el" href="a00241.html#ga9bb2ec92ae5a588cc2f2487a2b39091a">glm::gtc::matrix_integer</a>
162179 </li>
163180 <li>lowp_umat3x3
164 : <a class="el" href="a00242.html#ga0cd96f6db0335fec76d521c04e55aa72">glm::gtc::matrix_integer</a>
181 : <a class="el" href="a00241.html#ga0cd96f6db0335fec76d521c04e55aa72">glm::gtc::matrix_integer</a>
165182 </li>
166183 <li>lowp_umat3x4
167 : <a class="el" href="a00242.html#ga74afefa6d98ed4013b0b8973aedaa3c3">glm::gtc::matrix_integer</a>
184 : <a class="el" href="a00241.html#ga74afefa6d98ed4013b0b8973aedaa3c3">glm::gtc::matrix_integer</a>
168185 </li>
169186 <li>lowp_umat4
170 : <a class="el" href="a00242.html#gabe8174acf8b97bba515e77b050dee149">glm::gtc::matrix_integer</a>
187 : <a class="el" href="a00241.html#gabe8174acf8b97bba515e77b050dee149">glm::gtc::matrix_integer</a>
171188 </li>
172189 <li>lowp_umat4x2
173 : <a class="el" href="a00242.html#ga6c87f764b7e37b732701d12a5dd99b60">glm::gtc::matrix_integer</a>
190 : <a class="el" href="a00241.html#ga6c87f764b7e37b732701d12a5dd99b60">glm::gtc::matrix_integer</a>
174191 </li>
175192 <li>lowp_umat4x3
176 : <a class="el" href="a00242.html#gaf0ec78e818b558be26ab100630bb1a2f">glm::gtc::matrix_integer</a>
193 : <a class="el" href="a00241.html#gaf0ec78e818b558be26ab100630bb1a2f">glm::gtc::matrix_integer</a>
177194 </li>
178195 <li>lowp_umat4x4
179 : <a class="el" href="a00242.html#ga8afd2898b4e81ddfcf4826a1f09261df">glm::gtc::matrix_integer</a>
196 : <a class="el" href="a00241.html#ga8afd2898b4e81ddfcf4826a1f09261df">glm::gtc::matrix_integer</a>
197 </li>
198 <li>lowp_uvec1
199 : <a class="el" href="a00224.html#acc4c5715d5f36547163197c72ebc7b89">glm::gtx::vector1::precision</a>
180200 </li>
181201 <li>lowp_uvec2
182 : <a class="el" href="a00236.html#ga9cb9b78162fca09f7ce9d08758f8b3c1">glm::core::type::precision</a>
202 : <a class="el" href="a00235.html#ga9cb9b78162fca09f7ce9d08758f8b3c1">glm::core::type::precision</a>
183203 </li>
184204 <li>lowp_uvec3
185 : <a class="el" href="a00236.html#gaefdce0fe4ed79b26ed2b5f00bbf39075">glm::core::type::precision</a>
205 : <a class="el" href="a00235.html#gaefdce0fe4ed79b26ed2b5f00bbf39075">glm::core::type::precision</a>
186206 </li>
187207 <li>lowp_uvec4
188 : <a class="el" href="a00236.html#ga3ebda7e36e3948ceea0cbc90061c643d">glm::core::type::precision</a>
208 : <a class="el" href="a00235.html#ga3ebda7e36e3948ceea0cbc90061c643d">glm::core::type::precision</a>
209 </li>
210 <li>lowp_vec1
211 : <a class="el" href="a00224.html#a0b7ff5513e300963adbdda29f20a71d5">glm::gtx::vector1::precision</a>
189212 </li>
190213 <li>lowp_vec2
191 : <a class="el" href="a00236.html#ga4df6c67742cd65d6d0a885b3a539d9ff">glm::core::type::precision</a>
214 : <a class="el" href="a00235.html#ga4df6c67742cd65d6d0a885b3a539d9ff">glm::core::type::precision</a>
192215 </li>
193216 <li>lowp_vec3
194 : <a class="el" href="a00236.html#gab9e39d9db144322c1ad30ab3141084ad">glm::core::type::precision</a>
217 : <a class="el" href="a00235.html#gab9e39d9db144322c1ad30ab3141084ad">glm::core::type::precision</a>
195218 </li>
196219 <li>lowp_vec4
197 : <a class="el" href="a00236.html#ga653b0bf7ff2cb590f6e1338682fd0327">glm::core::type::precision</a>
220 : <a class="el" href="a00235.html#ga653b0bf7ff2cb590f6e1338682fd0327">glm::core::type::precision</a>
198221 </li>
199222 </ul>
200223 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
6264
6365 <h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
6466 <li>mat2
65 : <a class="el" href="a00235.html#ga6e30cfba068ebc3c71fe1f8b3110e450">glm</a>
67 : <a class="el" href="a00234.html#ga6e30cfba068ebc3c71fe1f8b3110e450">glm</a>
6668 </li>
6769 <li>mat2x2
68 : <a class="el" href="a00235.html#gac0430f4e1a8747774bcfbd0ea7c7df7b">glm</a>
70 : <a class="el" href="a00234.html#gac0430f4e1a8747774bcfbd0ea7c7df7b">glm</a>
6971 </li>
7072 <li>mat2x3
71 : <a class="el" href="a00235.html#ga166bc1c922bedbb7f655bd348ff2f97b">glm</a>
73 : <a class="el" href="a00234.html#ga166bc1c922bedbb7f655bd348ff2f97b">glm</a>
7274 </li>
7375 <li>mat2x4
74 : <a class="el" href="a00235.html#ga0c9a783f321486534bd3a2fd3701a374">glm</a>
76 : <a class="el" href="a00234.html#ga0c9a783f321486534bd3a2fd3701a374">glm</a>
7577 </li>
7678 <li>mat3
77 : <a class="el" href="a00235.html#ga6dd3ec98a548755676267e59142911f8">glm</a>
79 : <a class="el" href="a00234.html#ga6dd3ec98a548755676267e59142911f8">glm</a>
7880 </li>
7981 <li>mat3x2
80 : <a class="el" href="a00235.html#ga839dac056fcbc087c6c161eb0d7fbe1b">glm</a>
82 : <a class="el" href="a00234.html#ga839dac056fcbc087c6c161eb0d7fbe1b">glm</a>
8183 </li>
8284 <li>mat3x3
83 : <a class="el" href="a00235.html#gaf188822f2db83067facc9fa922416ad9">glm</a>
85 : <a class="el" href="a00234.html#gaf188822f2db83067facc9fa922416ad9">glm</a>
8486 </li>
8587 <li>mat3x4
86 : <a class="el" href="a00235.html#ga70f8918f1c21ead733c8f089c09d353a">glm</a>
88 : <a class="el" href="a00234.html#ga70f8918f1c21ead733c8f089c09d353a">glm</a>
8789 </li>
8890 <li>mat4
89 : <a class="el" href="a00235.html#gade0eb47c01f79384a6f38017ede17446">glm</a>
91 : <a class="el" href="a00234.html#gade0eb47c01f79384a6f38017ede17446">glm</a>
9092 </li>
9193 <li>mat4x2
92 : <a class="el" href="a00235.html#ga2c797007acc18027b65dad6e1f2d7b77">glm</a>
94 : <a class="el" href="a00234.html#ga2c797007acc18027b65dad6e1f2d7b77">glm</a>
9395 </li>
9496 <li>mat4x3
95 : <a class="el" href="a00235.html#ga73f97cdfb274c84ac7115b8e03c6b54a">glm</a>
97 : <a class="el" href="a00234.html#ga73f97cdfb274c84ac7115b8e03c6b54a">glm</a>
9698 </li>
9799 <li>mat4x4
98 : <a class="el" href="a00235.html#ga214f3d771188cb5b9ec6b5485ac082dc">glm</a>
100 : <a class="el" href="a00234.html#ga214f3d771188cb5b9ec6b5485ac082dc">glm</a>
99101 </li>
100102 <li>mediump_float
101 : <a class="el" href="a00236.html#ga280c68f537f4b1e03a00b23e62573b98">glm::core::type::precision</a>
103 : <a class="el" href="a00235.html#ga280c68f537f4b1e03a00b23e62573b98">glm::core::type::precision</a>
102104 </li>
103105 <li>mediump_imat2
104 : <a class="el" href="a00242.html#ga143ecf702b39ac7730009796b5d61b48">glm::gtc::matrix_integer</a>
106 : <a class="el" href="a00241.html#ga143ecf702b39ac7730009796b5d61b48">glm::gtc::matrix_integer</a>
105107 </li>
106108 <li>mediump_imat2x2
107 : <a class="el" href="a00242.html#ga14f7ebf70ea05156698a0cb403dff827">glm::gtc::matrix_integer</a>
109 : <a class="el" href="a00241.html#ga14f7ebf70ea05156698a0cb403dff827">glm::gtc::matrix_integer</a>
108110 </li>
109111 <li>mediump_imat2x3
110 : <a class="el" href="a00242.html#ga971f0d97d5aa82d96885b23132260bc5">glm::gtc::matrix_integer</a>
112 : <a class="el" href="a00241.html#ga971f0d97d5aa82d96885b23132260bc5">glm::gtc::matrix_integer</a>
111113 </li>
112114 <li>mediump_imat2x4
113 : <a class="el" href="a00242.html#gaa912743dd1649cdc2231ad08c7b3ad83">glm::gtc::matrix_integer</a>
115 : <a class="el" href="a00241.html#gaa912743dd1649cdc2231ad08c7b3ad83">glm::gtc::matrix_integer</a>
114116 </li>
115117 <li>mediump_imat3
116 : <a class="el" href="a00242.html#ga88879288540afc046b8dcf9574f39599">glm::gtc::matrix_integer</a>
118 : <a class="el" href="a00241.html#ga88879288540afc046b8dcf9574f39599">glm::gtc::matrix_integer</a>
117119 </li>
118120 <li>mediump_imat3x2
119 : <a class="el" href="a00242.html#ga846e335231d6d156ce1dff7ee8d247c0">glm::gtc::matrix_integer</a>
121 : <a class="el" href="a00241.html#ga846e335231d6d156ce1dff7ee8d247c0">glm::gtc::matrix_integer</a>
120122 </li>
121123 <li>mediump_imat3x3
122 : <a class="el" href="a00242.html#gae49f27a71c9643dc6e852d29de1a7337">glm::gtc::matrix_integer</a>
124 : <a class="el" href="a00241.html#gae49f27a71c9643dc6e852d29de1a7337">glm::gtc::matrix_integer</a>
123125 </li>
124126 <li>mediump_imat3x4
125 : <a class="el" href="a00242.html#ga5c32e78899b8ddc6d38a46a059dea62b">glm::gtc::matrix_integer</a>
127 : <a class="el" href="a00241.html#ga5c32e78899b8ddc6d38a46a059dea62b">glm::gtc::matrix_integer</a>
126128 </li>
127129 <li>mediump_imat4
128 : <a class="el" href="a00242.html#ga8f1cc05b68f13365c227d40cb52e6a6d">glm::gtc::matrix_integer</a>
130 : <a class="el" href="a00241.html#ga8f1cc05b68f13365c227d40cb52e6a6d">glm::gtc::matrix_integer</a>
129131 </li>
130132 <li>mediump_imat4x2
131 : <a class="el" href="a00242.html#gafa1f18250380f03bcdba92af051cf436">glm::gtc::matrix_integer</a>
133 : <a class="el" href="a00241.html#gafa1f18250380f03bcdba92af051cf436">glm::gtc::matrix_integer</a>
132134 </li>
133135 <li>mediump_imat4x3
134 : <a class="el" href="a00242.html#ga6ce6435a08574b6d53933bce0fb99aa9">glm::gtc::matrix_integer</a>
136 : <a class="el" href="a00241.html#ga6ce6435a08574b6d53933bce0fb99aa9">glm::gtc::matrix_integer</a>
135137 </li>
136138 <li>mediump_imat4x4
137 : <a class="el" href="a00242.html#gad548e325172bf111285d710e0aedada6">glm::gtc::matrix_integer</a>
139 : <a class="el" href="a00241.html#gad548e325172bf111285d710e0aedada6">glm::gtc::matrix_integer</a>
138140 </li>
139141 <li>mediump_int
140 : <a class="el" href="a00236.html#ga212ef8f883878cb7430228a279a7d866">glm::core::type::precision</a>
142 : <a class="el" href="a00235.html#ga212ef8f883878cb7430228a279a7d866">glm::core::type::precision</a>
143 </li>
144 <li>mediump_ivec1
145 : <a class="el" href="a00224.html#a9ee2fea9ceb3f51ca2ec46047bbd0203">glm::gtx::vector1::precision</a>
141146 </li>
142147 <li>mediump_ivec2
143 : <a class="el" href="a00236.html#ga269315792504783f450b829161f2bccf">glm::core::type::precision</a>
148 : <a class="el" href="a00235.html#ga269315792504783f450b829161f2bccf">glm::core::type::precision</a>
144149 </li>
145150 <li>mediump_ivec3
146 : <a class="el" href="a00236.html#ga1d8ae738ed79d71f8d381f472d366913">glm::core::type::precision</a>
151 : <a class="el" href="a00235.html#ga1d8ae738ed79d71f8d381f472d366913">glm::core::type::precision</a>
147152 </li>
148153 <li>mediump_ivec4
149 : <a class="el" href="a00236.html#ga5f624d3f93fa1a197ba767f9b1d6d7aa">glm::core::type::precision</a>
154 : <a class="el" href="a00235.html#ga5f624d3f93fa1a197ba767f9b1d6d7aa">glm::core::type::precision</a>
155 </li>
156 <li>mediump_mat2
157 : <a class="el" href="a00235.html#ga42f1426987103b15613671b323e90e5c">glm::core::type::precision</a>
150158 </li>
151159 <li>mediump_mat2x2
152 : <a class="el" href="a00236.html#gaa5970a6f98990c15b7a3be7cc7b79f4f">glm::core::type::precision</a>
160 : <a class="el" href="a00235.html#gaa5970a6f98990c15b7a3be7cc7b79f4f">glm::core::type::precision</a>
153161 </li>
154162 <li>mediump_mat2x3
155 : <a class="el" href="a00236.html#gacceeb5355767eb306c12ea961b31e808">glm::core::type::precision</a>
163 : <a class="el" href="a00235.html#gacceeb5355767eb306c12ea961b31e808">glm::core::type::precision</a>
156164 </li>
157165 <li>mediump_mat2x4
158166 : <a class="el" href="a00156.html#abbec32a495b527df1796bb46f8cce516">glm::core::type::precision</a>
159167 </li>
168 <li>mediump_mat3
169 : <a class="el" href="a00235.html#ga0957c911430959270e296b6abf1463c3">glm::core::type::precision</a>
170 </li>
160171 <li>mediump_mat3x2
161172 : <a class="el" href="a00156.html#a08c1cebbdb2cdfa0a62b23981db1c059">glm::core::type::precision</a>
162173 </li>
163174 <li>mediump_mat3x3
164 : <a class="el" href="a00236.html#ga76c68d8cad333d1f5ba1b20a40415cda">glm::core::type::precision</a>
175 : <a class="el" href="a00235.html#ga76c68d8cad333d1f5ba1b20a40415cda">glm::core::type::precision</a>
165176 </li>
166177 <li>mediump_mat3x4
167178 : <a class="el" href="a00156.html#a167125bb484e539a3c56f7b7aa0409f8">glm::core::type::precision</a>
168179 </li>
180 <li>mediump_mat4
181 : <a class="el" href="a00235.html#gabb71589a7fc80f6ca0c134efb878338d">glm::core::type::precision</a>
182 </li>
169183 <li>mediump_mat4x2
170 : <a class="el" href="a00236.html#ga31b1d523c1dc83c0ef9cded942950666">glm::core::type::precision</a>
184 : <a class="el" href="a00235.html#ga31b1d523c1dc83c0ef9cded942950666">glm::core::type::precision</a>
171185 </li>
172186 <li>mediump_mat4x3
173 : <a class="el" href="a00236.html#ga236d4c1060c1ce9908d3de61b3d9334e">glm::core::type::precision</a>
187 : <a class="el" href="a00235.html#ga236d4c1060c1ce9908d3de61b3d9334e">glm::core::type::precision</a>
174188 </li>
175189 <li>mediump_mat4x4
176 : <a class="el" href="a00236.html#gad0e848d34a6838e413a41018228ded41">glm::core::type::precision</a>
190 : <a class="el" href="a00235.html#gad0e848d34a6838e413a41018228ded41">glm::core::type::precision</a>
191 </li>
192 <li>mediump_quat
193 : <a class="el" href="a00244.html#gae93fe73ea5fe5e2150c2eb0641394dc8">glm::gtc::quaternion</a>
177194 </li>
178195 <li>mediump_uint
179 : <a class="el" href="a00236.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">glm::core::type::precision</a>
196 : <a class="el" href="a00235.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">glm::core::type::precision</a>
180197 </li>
181198 <li>mediump_umat2
182 : <a class="el" href="a00242.html#ga248ef3b18ce8e7974a1b04b9e10b0d70">glm::gtc::matrix_integer</a>
199 : <a class="el" href="a00241.html#ga248ef3b18ce8e7974a1b04b9e10b0d70">glm::gtc::matrix_integer</a>
183200 </li>
184201 <li>mediump_umat2x2
185 : <a class="el" href="a00242.html#ga4deef9aaf20528b594af15e0d8a8394a">glm::gtc::matrix_integer</a>
202 : <a class="el" href="a00241.html#ga4deef9aaf20528b594af15e0d8a8394a">glm::gtc::matrix_integer</a>
186203 </li>
187204 <li>mediump_umat2x3
188 : <a class="el" href="a00242.html#ga57dcd02ce5c008214d1ac033d62237f4">glm::gtc::matrix_integer</a>
205 : <a class="el" href="a00241.html#ga57dcd02ce5c008214d1ac033d62237f4">glm::gtc::matrix_integer</a>
189206 </li>
190207 <li>mediump_umat2x4
191 : <a class="el" href="a00242.html#gaa0005c075583fa42425573df59ae47b7">glm::gtc::matrix_integer</a>
208 : <a class="el" href="a00241.html#gaa0005c075583fa42425573df59ae47b7">glm::gtc::matrix_integer</a>
192209 </li>
193210 <li>mediump_umat3
194 : <a class="el" href="a00242.html#gaa802202181dac79e9dcd7848af5b57df">glm::gtc::matrix_integer</a>
211 : <a class="el" href="a00241.html#gaa802202181dac79e9dcd7848af5b57df">glm::gtc::matrix_integer</a>
195212 </li>
196213 <li>mediump_umat3x2
197 : <a class="el" href="a00242.html#gac65dc743ab57f960c9f77eb817a2b375">glm::gtc::matrix_integer</a>
214 : <a class="el" href="a00241.html#gac65dc743ab57f960c9f77eb817a2b375">glm::gtc::matrix_integer</a>
198215 </li>
199216 <li>mediump_umat3x3
200 : <a class="el" href="a00242.html#ga69d2278480a495af358ba198cdd708d1">glm::gtc::matrix_integer</a>
217 : <a class="el" href="a00241.html#ga69d2278480a495af358ba198cdd708d1">glm::gtc::matrix_integer</a>
201218 </li>
202219 <li>mediump_umat3x4
203 : <a class="el" href="a00242.html#ga65ed7a18729feae1ca61a8ab573fe5db">glm::gtc::matrix_integer</a>
220 : <a class="el" href="a00241.html#ga65ed7a18729feae1ca61a8ab573fe5db">glm::gtc::matrix_integer</a>
204221 </li>
205222 <li>mediump_umat4
206 : <a class="el" href="a00242.html#ga3981b8297512d35fe39413149e3f57ad">glm::gtc::matrix_integer</a>
223 : <a class="el" href="a00241.html#ga3981b8297512d35fe39413149e3f57ad">glm::gtc::matrix_integer</a>
207224 </li>
208225 <li>mediump_umat4x2
209 : <a class="el" href="a00242.html#gabab2363c9e7691ba23319174dd3b211e">glm::gtc::matrix_integer</a>
226 : <a class="el" href="a00241.html#gabab2363c9e7691ba23319174dd3b211e">glm::gtc::matrix_integer</a>
210227 </li>
211228 <li>mediump_umat4x3
212 : <a class="el" href="a00242.html#gaeb0dd2f67c17909a8747089bee0cf301">glm::gtc::matrix_integer</a>
229 : <a class="el" href="a00241.html#gaeb0dd2f67c17909a8747089bee0cf301">glm::gtc::matrix_integer</a>
213230 </li>
214231 <li>mediump_umat4x4
215 : <a class="el" href="a00242.html#gad8086f60b4190c4b567bded1d0fb4edb">glm::gtc::matrix_integer</a>
232 : <a class="el" href="a00241.html#gad8086f60b4190c4b567bded1d0fb4edb">glm::gtc::matrix_integer</a>
233 </li>
234 <li>mediump_uvec1
235 : <a class="el" href="a00224.html#a17b8da90f5d16810910a9c8429987cbc">glm::gtx::vector1::precision</a>
216236 </li>
217237 <li>mediump_uvec2
218 : <a class="el" href="a00236.html#ga5cd4f5f5667de09c7c12df85d138f599">glm::core::type::precision</a>
238 : <a class="el" href="a00235.html#ga5cd4f5f5667de09c7c12df85d138f599">glm::core::type::precision</a>
219239 </li>
220240 <li>mediump_uvec3
221 : <a class="el" href="a00236.html#ga70d49eff07e7988447c93a83f9f311b6">glm::core::type::precision</a>
241 : <a class="el" href="a00235.html#ga70d49eff07e7988447c93a83f9f311b6">glm::core::type::precision</a>
222242 </li>
223243 <li>mediump_uvec4
224 : <a class="el" href="a00236.html#ga4b2bc896ec01198bdc4f9dc896e5f06d">glm::core::type::precision</a>
244 : <a class="el" href="a00235.html#ga4b2bc896ec01198bdc4f9dc896e5f06d">glm::core::type::precision</a>
245 </li>
246 <li>mediump_vec1
247 : <a class="el" href="a00224.html#ada105899989019a13f333e271677ab52">glm::gtx::vector1::precision</a>
225248 </li>
226249 <li>mediump_vec2
227 : <a class="el" href="a00236.html#ga9a8a10fce5852b088dd631b34e942b7d">glm::core::type::precision</a>
250 : <a class="el" href="a00235.html#ga9a8a10fce5852b088dd631b34e942b7d">glm::core::type::precision</a>
228251 </li>
229252 <li>mediump_vec3
230 : <a class="el" href="a00236.html#gaf6aa71f085a150f42929a4b77458143e">glm::core::type::precision</a>
253 : <a class="el" href="a00235.html#gaf6aa71f085a150f42929a4b77458143e">glm::core::type::precision</a>
231254 </li>
232255 <li>mediump_vec4
233 : <a class="el" href="a00236.html#gafddaa69a1d46a27e2767b780e0e6b4b0">glm::core::type::precision</a>
256 : <a class="el" href="a00235.html#gafddaa69a1d46a27e2767b780e0e6b4b0">glm::core::type::precision</a>
234257 </li>
235258 </ul>
236259 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
6264
6365 <h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
6466 <li>quat
65 : <a class="el" href="a00245.html#ga60408579db470456070a3336295625a7">glm::gtc::quaternion</a>
67 : <a class="el" href="a00244.html#ga60408579db470456070a3336295625a7">glm::gtc::quaternion</a>
6668 </li>
6769 <li>qword
68 : <a class="el" href="a00288.html#gab7872fb6c3bcddc8658fe3209f04d275">glm::gtx::raw_data</a>
70 : <a class="el" href="a00287.html#gab7872fb6c3bcddc8658fe3209f04d275">glm::gtx::raw_data</a>
6971 </li>
7072 </ul>
7173 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
6264
6365 <h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
6466 <li>sint
65 : <a class="el" href="a00297.html#gada7e83fdfe943aba4f1d5bf80cb66f40">glm::gtx::unsigned_int</a>
67 : <a class="el" href="a00296.html#gada7e83fdfe943aba4f1d5bf80cb66f40">glm::gtx::unsigned_int</a>
6668 </li>
6769 </ul>
6870 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
6264
6365 <h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
6466 <li>u16
65 : <a class="el" href="a00246.html#ga91ec65f57d610f6902fd081f1d1e265a">glm::gtc::type_precision</a>
67 : <a class="el" href="a00245.html#ga91ec65f57d610f6902fd081f1d1e265a">glm::gtc::type_precision</a>
6668 </li>
6769 <li>u16vec1
68 : <a class="el" href="a00279.html#ga52cc069a92e126c3a8dcde93424d2ef0">glm::gtx::number_precision</a>
70 : <a class="el" href="a00278.html#ga52cc069a92e126c3a8dcde93424d2ef0">glm::gtx::number_precision</a>
6971 </li>
7072 <li>u16vec2
71 : <a class="el" href="a00246.html#ga63f78111033fd19335588c549fcc0512">glm::gtc::type_precision</a>
73 : <a class="el" href="a00245.html#ga63f78111033fd19335588c549fcc0512">glm::gtc::type_precision</a>
7274 </li>
7375 <li>u16vec3
74 : <a class="el" href="a00246.html#ga53d4785d0f40c66bf58b315dd1122fe4">glm::gtc::type_precision</a>
76 : <a class="el" href="a00245.html#ga53d4785d0f40c66bf58b315dd1122fe4">glm::gtc::type_precision</a>
7577 </li>
7678 <li>u16vec4
77 : <a class="el" href="a00246.html#ga0331a2b68ce5f72a450f6d45c90f7709">glm::gtc::type_precision</a>
79 : <a class="el" href="a00245.html#ga0331a2b68ce5f72a450f6d45c90f7709">glm::gtc::type_precision</a>
7880 </li>
7981 <li>u32
80 : <a class="el" href="a00246.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">glm::gtc::type_precision</a>
82 : <a class="el" href="a00245.html#ga0bb0c4c53d0a5ea2c01d0bb363b56722">glm::gtc::type_precision</a>
8183 </li>
8284 <li>u32vec1
83 : <a class="el" href="a00279.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">glm::gtx::number_precision</a>
85 : <a class="el" href="a00278.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">glm::gtx::number_precision</a>
8486 </li>
8587 <li>u32vec2
86 : <a class="el" href="a00246.html#gaae1d6aa5d86a2744294b97e05b623e29">glm::gtc::type_precision</a>
88 : <a class="el" href="a00245.html#gaae1d6aa5d86a2744294b97e05b623e29">glm::gtc::type_precision</a>
8789 </li>
8890 <li>u32vec3
89 : <a class="el" href="a00246.html#gae013bd205f900d8ac3d783e62c9fa294">glm::gtc::type_precision</a>
91 : <a class="el" href="a00245.html#gae013bd205f900d8ac3d783e62c9fa294">glm::gtc::type_precision</a>
9092 </li>
9193 <li>u32vec4
92 : <a class="el" href="a00246.html#gac61f03e72cbcace4582b0c11859f54c7">glm::gtc::type_precision</a>
94 : <a class="el" href="a00245.html#gac61f03e72cbcace4582b0c11859f54c7">glm::gtc::type_precision</a>
9395 </li>
9496 <li>u64
95 : <a class="el" href="a00246.html#ga02ecb7390e4c4515df2268d18f99abc0">glm::gtc::type_precision</a>
97 : <a class="el" href="a00245.html#ga02ecb7390e4c4515df2268d18f99abc0">glm::gtc::type_precision</a>
9698 </li>
9799 <li>u64vec1
98 : <a class="el" href="a00279.html#ga818de170e2584ab037130f2881925974">glm::gtx::number_precision</a>
100 : <a class="el" href="a00278.html#ga818de170e2584ab037130f2881925974">glm::gtx::number_precision</a>
99101 </li>
100102 <li>u64vec2
101 : <a class="el" href="a00246.html#ga98265c5d66ab4bf19f4242746233526c">glm::gtc::type_precision</a>
103 : <a class="el" href="a00245.html#ga98265c5d66ab4bf19f4242746233526c">glm::gtc::type_precision</a>
102104 </li>
103105 <li>u64vec3
104 : <a class="el" href="a00246.html#ga470cfa496aae49e63c5becee347651a1">glm::gtc::type_precision</a>
106 : <a class="el" href="a00245.html#ga470cfa496aae49e63c5becee347651a1">glm::gtc::type_precision</a>
105107 </li>
106108 <li>u64vec4
107 : <a class="el" href="a00246.html#ga34a421d3df867266c9437dc00897edeb">glm::gtc::type_precision</a>
109 : <a class="el" href="a00245.html#ga34a421d3df867266c9437dc00897edeb">glm::gtc::type_precision</a>
108110 </li>
109111 <li>u8
110 : <a class="el" href="a00246.html#gad8d9dbef83392da434801486bf814fe4">glm::gtc::type_precision</a>
112 : <a class="el" href="a00245.html#gad8d9dbef83392da434801486bf814fe4">glm::gtc::type_precision</a>
111113 </li>
112114 <li>u8vec1
113 : <a class="el" href="a00279.html#ga5853fe457f4c8a6bc09343d0e9833980">glm::gtx::number_precision</a>
115 : <a class="el" href="a00278.html#ga5853fe457f4c8a6bc09343d0e9833980">glm::gtx::number_precision</a>
114116 </li>
115117 <li>u8vec2
116 : <a class="el" href="a00246.html#ga8f78a1ea21be24a89da31928fc037bfd">glm::gtc::type_precision</a>
118 : <a class="el" href="a00245.html#ga8f78a1ea21be24a89da31928fc037bfd">glm::gtc::type_precision</a>
117119 </li>
118120 <li>u8vec3
119 : <a class="el" href="a00246.html#ga7a4cb62a556ad09c7e0721aecac64dbd">glm::gtc::type_precision</a>
121 : <a class="el" href="a00245.html#ga7a4cb62a556ad09c7e0721aecac64dbd">glm::gtc::type_precision</a>
120122 </li>
121123 <li>u8vec4
122 : <a class="el" href="a00246.html#ga83091381b9b909057004c4de7896d072">glm::gtc::type_precision</a>
124 : <a class="el" href="a00245.html#ga83091381b9b909057004c4de7896d072">glm::gtc::type_precision</a>
123125 </li>
124126 <li>uint
125127 : <a class="el" href="a00155.html#a4d16da297112d05af72fc456a1c4f386">glm::core::type</a>
126128 </li>
127129 <li>uint16
128 : <a class="el" href="a00246.html#ga13471cbbe74e4303a57f3743d007b74d">glm::gtc::type_precision</a>
130 : <a class="el" href="a00245.html#ga13471cbbe74e4303a57f3743d007b74d">glm::gtc::type_precision</a>
129131 </li>
130132 <li>uint32
131 : <a class="el" href="a00246.html#ga5fa3ddcab56c789bc272ff5651faa12d">glm::gtc::type_precision</a>
133 : <a class="el" href="a00245.html#ga5fa3ddcab56c789bc272ff5651faa12d">glm::gtc::type_precision</a>
132134 </li>
133135 <li>uint64
134 : <a class="el" href="a00246.html#gab630f76c26b50298187f7889104d4b9c">glm::gtc::type_precision</a>
136 : <a class="el" href="a00245.html#gab630f76c26b50298187f7889104d4b9c">glm::gtc::type_precision</a>
135137 </li>
136138 <li>uint8
137 : <a class="el" href="a00246.html#ga36475e31b1992cfde54c1a6f5a148865">glm::gtc::type_precision</a>
139 : <a class="el" href="a00245.html#ga36475e31b1992cfde54c1a6f5a148865">glm::gtc::type_precision</a>
138140 </li>
139141 <li>umat2
140 : <a class="el" href="a00242.html#ga4cae85566f900debf930c41944b64691">glm::gtc::matrix_integer</a>
142 : <a class="el" href="a00241.html#ga4cae85566f900debf930c41944b64691">glm::gtc::matrix_integer</a>
141143 </li>
142144 <li>umat2x2
143 : <a class="el" href="a00242.html#gabf8acdd33ce8951051edbca5200898aa">glm::gtc::matrix_integer</a>
145 : <a class="el" href="a00241.html#gabf8acdd33ce8951051edbca5200898aa">glm::gtc::matrix_integer</a>
144146 </li>
145147 <li>umat2x3
146 : <a class="el" href="a00242.html#ga1870da7578d5022b973a83155d386ab3">glm::gtc::matrix_integer</a>
148 : <a class="el" href="a00241.html#ga1870da7578d5022b973a83155d386ab3">glm::gtc::matrix_integer</a>
147149 </li>
148150 <li>umat2x4
149 : <a class="el" href="a00242.html#ga57936a3998e992370e59a223e0ee4fd4">glm::gtc::matrix_integer</a>
151 : <a class="el" href="a00241.html#ga57936a3998e992370e59a223e0ee4fd4">glm::gtc::matrix_integer</a>
150152 </li>
151153 <li>umat3
152 : <a class="el" href="a00242.html#ga5085e3ff02abbac5e537eb7b89ab63b6">glm::gtc::matrix_integer</a>
154 : <a class="el" href="a00241.html#ga5085e3ff02abbac5e537eb7b89ab63b6">glm::gtc::matrix_integer</a>
153155 </li>
154156 <li>umat3x2
155 : <a class="el" href="a00242.html#ga9cd7fa637a4a6788337f45231fad9e1a">glm::gtc::matrix_integer</a>
157 : <a class="el" href="a00241.html#ga9cd7fa637a4a6788337f45231fad9e1a">glm::gtc::matrix_integer</a>
156158 </li>
157159 <li>umat3x3
158 : <a class="el" href="a00242.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">glm::gtc::matrix_integer</a>
160 : <a class="el" href="a00241.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">glm::gtc::matrix_integer</a>
159161 </li>
160162 <li>umat3x4
161 : <a class="el" href="a00242.html#gae7c78ff3fc4309605ab0fa186c8d48ba">glm::gtc::matrix_integer</a>
163 : <a class="el" href="a00241.html#gae7c78ff3fc4309605ab0fa186c8d48ba">glm::gtc::matrix_integer</a>
162164 </li>
163165 <li>umat4
164 : <a class="el" href="a00242.html#ga38bc7bb6494e344185df596deeb4544c">glm::gtc::matrix_integer</a>
166 : <a class="el" href="a00241.html#ga38bc7bb6494e344185df596deeb4544c">glm::gtc::matrix_integer</a>
165167 </li>
166168 <li>umat4x2
167 : <a class="el" href="a00242.html#ga70fa2d05896aa83cbc8c07672a429b53">glm::gtc::matrix_integer</a>
169 : <a class="el" href="a00241.html#ga70fa2d05896aa83cbc8c07672a429b53">glm::gtc::matrix_integer</a>
168170 </li>
169171 <li>umat4x3
170 : <a class="el" href="a00242.html#ga87581417945411f75cb31dd6ca1dba98">glm::gtc::matrix_integer</a>
172 : <a class="el" href="a00241.html#ga87581417945411f75cb31dd6ca1dba98">glm::gtc::matrix_integer</a>
171173 </li>
172174 <li>umat4x4
173 : <a class="el" href="a00242.html#gaf72e6d399c42985db6872c50f53d7eb8">glm::gtc::matrix_integer</a>
174 </li>
175 <li>uvec1
176 : <a class="el" href="a00223.html#a3e65e37bdbada1e13e0c66883bb449eb">glm::gtx::vector1</a>
175 : <a class="el" href="a00241.html#gaf72e6d399c42985db6872c50f53d7eb8">glm::gtc::matrix_integer</a>
177176 </li>
178177 <li>uvec2
179 : <a class="el" href="a00235.html#ga3fae7e520beaa9bca6625b98d782f47e">glm</a>
178 : <a class="el" href="a00234.html#ga3fae7e520beaa9bca6625b98d782f47e">glm</a>
180179 </li>
181180 <li>uvec3
182 : <a class="el" href="a00235.html#ga48a100077cb128b9c790c71ac1d1d7d2">glm</a>
181 : <a class="el" href="a00234.html#ga48a100077cb128b9c790c71ac1d1d7d2">glm</a>
183182 </li>
184183 <li>uvec4
185 : <a class="el" href="a00235.html#gafbb266d616ea71ad5099994980f8651d">glm</a>
184 : <a class="el" href="a00234.html#gafbb266d616ea71ad5099994980f8651d">glm</a>
186185 </li>
187186 </ul>
188187 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
6163 &#160;
6264
6365 <h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
64 <li>vec1
65 : <a class="el" href="a00223.html#ac60e77a28be159c8f883242b991dd5fb">glm::gtx::vector1</a>
66 </li>
6766 <li>vec3
68 : <a class="el" href="a00235.html#gac422c7058a7c9963b55ad70764c62752">glm</a>
67 : <a class="el" href="a00234.html#gac422c7058a7c9963b55ad70764c62752">glm</a>
6968 </li>
7069 <li>vec4
71 : <a class="el" href="a00235.html#ga8fad5ffc01ba6dea689f2a38bf30bda4">glm</a>
70 : <a class="el" href="a00234.html#ga8fad5ffc01ba6dea689f2a38bf30bda4">glm</a>
7271 </li>
7372 </ul>
7473 </div>
3737 <li><a href="namespacemembers.html"><span>All</span></a></li>
3838 <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
3939 <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
40 <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
41 <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
4042 </ul>
4143 </div>
4244 <div id="navrow4" class="tabs3">
6264
6365 <h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
6466 <li>word
65 : <a class="el" href="a00288.html#ga9599d4794d33c5d5d07675b5250b74bd">glm::gtx::raw_data</a>
67 : <a class="el" href="a00287.html#ga9599d4794d33c5d5d07675b5250b74bd">glm::gtx::raw_data</a>
6668 </li>
6769 </ul>
6870 </div>
3939 </div>
4040 <div class="contents">
4141 <div class="textblock">Here is a list of all documented namespaces with brief descriptions:</div><table>
42 <tr><td class="indexkey"><a class="el" href="a00143.html">glm</a></td><td class="indexvalue">GLM namespace, it contains all GLSL based features </td></tr>
43 <tr><td class="indexkey"><a class="el" href="a00144.html">glm::core</a></td><td class="indexvalue">GLM core. Namespace that includes all the feature define by GLSL 4.10.6 specification. This namespace is included in glm namespace </td></tr>
44 <tr><td class="indexkey"><a class="el" href="a00145.html">glm::core::function</a></td><td class="indexvalue">Some of the functions defined in section 8 Built-in Functions of GLSL 1.30.8 specification </td></tr>
45 <tr><td class="indexkey"><a class="el" href="a00146.html">glm::core::function::common</a></td><td class="indexvalue">Define common functions from Section 8.3 of GLSL 1.30.8 specification. Included in glm namespace </td></tr>
46 <tr><td class="indexkey"><a class="el" href="a00147.html">glm::core::function::exponential</a></td><td class="indexvalue">Define all exponential functions from Section 8.2 of GLSL 1.30.8 specification. Included in glm namespace </td></tr>
47 <tr><td class="indexkey"><a class="el" href="a00148.html">glm::core::function::geometric</a></td><td class="indexvalue">Define all geometric functions from Section 8.4 of GLSL 1.30.8 specification. Included in glm namespace </td></tr>
48 <tr><td class="indexkey"><a class="el" href="a00149.html">glm::core::function::integer</a></td><td class="indexvalue">Define integer functions from Section 8.8 of GLSL 4.00.8 specification </td></tr>
49 <tr><td class="indexkey"><a class="el" href="a00150.html">glm::core::function::matrix</a></td><td class="indexvalue">Define all matrix functions from Section 8.5 of GLSL 1.30.8 specification. Included in glm namespace </td></tr>
50 <tr><td class="indexkey"><a class="el" href="a00152.html">glm::core::function::packing</a></td><td class="indexvalue">Define packing functions from section 8.4 floating-point pack and unpack functions of GLSL 4.00.8 specification </td></tr>
51 <tr><td class="indexkey"><a class="el" href="a00153.html">glm::core::function::trigonometric</a></td><td class="indexvalue">Define Angle and trigonometry functions from Section 8.1 of GLSL 1.30.8 specification </td></tr>
52 <tr><td class="indexkey"><a class="el" href="a00154.html">glm::core::function::vector_relational</a></td><td class="indexvalue">Define vector relational functions from Section 8.6 of GLSL 1.30.8 specification </td></tr>
42 <tr><td class="indexkey"><a class="el" href="a00145.html">glm</a></td><td class="indexvalue">GLM namespace, it contains all GLSL based features </td></tr>
43 <tr><td class="indexkey"><a class="el" href="a00146.html">glm::core</a></td><td class="indexvalue">GLM core. Namespace that includes all the feature define by GLSL 4.10.6 specification. This namespace is included in glm namespace </td></tr>
44 <tr><td class="indexkey"><a class="el" href="a00147.html">glm::core::function</a></td><td class="indexvalue">Some of the functions defined in section 8 Built-in Functions of GLSL 1.30.8 specification </td></tr>
45 <tr><td class="indexkey"><a class="el" href="a00148.html">glm::core::function::exponential</a></td><td class="indexvalue">Define all exponential functions from Section 8.2 of GLSL 1.30.8 specification. Included in glm namespace </td></tr>
46 <tr><td class="indexkey"><a class="el" href="a00150.html">glm::core::function::integer</a></td><td class="indexvalue">Define integer functions from Section 8.8 of GLSL 4.00.8 specification </td></tr>
47 <tr><td class="indexkey"><a class="el" href="a00151.html">glm::core::function::matrix</a></td><td class="indexvalue">Define all matrix functions from Section 8.5 of GLSL 1.30.8 specification. Included in glm namespace </td></tr>
48 <tr><td class="indexkey"><a class="el" href="a00153.html">glm::core::function::packing</a></td><td class="indexvalue">Define packing functions from section 8.4 floating-point pack and unpack functions of GLSL 4.00.8 specification </td></tr>
49 <tr><td class="indexkey"><a class="el" href="a00154.html">glm::core::function::trigonometric</a></td><td class="indexvalue">Define Angle and trigonometry functions from Section 8.1 of GLSL 1.30.8 specification </td></tr>
5350 <tr><td class="indexkey"><a class="el" href="a00155.html">glm::core::type</a></td><td class="indexvalue">Scalar, vectors and matrices from section 4.1.2 Booleans, 4.1.3 Integers section, 4.1.4 Floats section, 4.1.5 Vectors and section 4.1.6 Matrices of GLSL 1.30.8 specification </td></tr>
54 <tr><td class="indexkey"><a class="el" href="a00156.html">glm::core::type::precision</a></td><td class="indexvalue">Namespace for precision stuff </td></tr>
51 <tr><td class="indexkey"><a class="el" href="a00156.html">glm::core::type::precision</a></td><td class="indexvalue">&lt; Namespace for precision stuff </td></tr>
5552 <tr><td class="indexkey"><a class="el" href="a00158.html">glm::gtc</a></td><td class="indexvalue">G-Truc Creation stable extensions </td></tr>
56 <tr><td class="indexkey"><a class="el" href="a00159.html">glm::gtc::half_float</a></td><td class="indexvalue">GLM_GTC_half_float extension: Add support for half precision floating-point types </td></tr>
57 <tr><td class="indexkey"><a class="el" href="a00160.html">glm::gtc::matrix_access</a></td><td class="indexvalue">GLM_GTC_matrix_access extension: Set a column or a row of a matrix </td></tr>
58 <tr><td class="indexkey"><a class="el" href="a00161.html">glm::gtc::matrix_integer</a></td><td class="indexvalue">GLM_GTC_matrix_integer extension: Add integer matrices </td></tr>
59 <tr><td class="indexkey"><a class="el" href="a00162.html">glm::gtc::matrix_inverse</a></td><td class="indexvalue">GLM_GTC_matrix_inverse extension: Inverse matrix functions </td></tr>
60 <tr><td class="indexkey"><a class="el" href="a00163.html">glm::gtc::matrix_transform</a></td><td class="indexvalue">GLM_GTC_matrix_transform extension: Add transformation matrices </td></tr>
61 <tr><td class="indexkey"><a class="el" href="a00164.html">glm::gtc::quaternion</a></td><td class="indexvalue">GLM_GTC_quaternion extension: Quaternion types and functions </td></tr>
62 <tr><td class="indexkey"><a class="el" href="a00165.html">glm::gtc::swizzle</a></td><td class="indexvalue">GLM_GTC_swizzle extension </td></tr>
63 <tr><td class="indexkey"><a class="el" href="a00166.html">glm::gtc::type_precision</a></td><td class="indexvalue">GLM_GTC_type_precision extension: Defined types with specific size </td></tr>
64 <tr><td class="indexkey"><a class="el" href="a00167.html">glm::gtc::type_ptr</a></td><td class="indexvalue">GLM_GTC_type_ptr extension: Get access to vectors &amp; matrices value type address </td></tr>
53 <tr><td class="indexkey"><a class="el" href="a00159.html">glm::gtc::half_float</a></td><td class="indexvalue">&lt; GLM_GTC_half_float extension: Add support for half precision floating-point types </td></tr>
54 <tr><td class="indexkey"><a class="el" href="a00160.html">glm::gtc::matrix_access</a></td><td class="indexvalue">&lt; GLM_GTC_matrix_access extension: Set a column or a row of a matrix </td></tr>
55 <tr><td class="indexkey"><a class="el" href="a00161.html">glm::gtc::matrix_integer</a></td><td class="indexvalue">&lt; GLM_GTC_matrix_integer extension: Add integer matrices </td></tr>
56 <tr><td class="indexkey"><a class="el" href="a00162.html">glm::gtc::matrix_inverse</a></td><td class="indexvalue">&lt; GLM_GTC_matrix_inverse extension: Inverse matrix functions </td></tr>
57 <tr><td class="indexkey"><a class="el" href="a00163.html">glm::gtc::matrix_transform</a></td><td class="indexvalue">&lt; GLM_GTC_matrix_transform extension: Add transformation matrices </td></tr>
58 <tr><td class="indexkey"><a class="el" href="a00164.html">glm::gtc::quaternion</a></td><td class="indexvalue">&lt; GLM_GTC_quaternion extension: Quaternion types and functions </td></tr>
59 <tr><td class="indexkey"><a class="el" href="a00165.html">glm::gtc::swizzle</a></td><td class="indexvalue">&lt; GLM_GTC_swizzle extension </td></tr>
60 <tr><td class="indexkey"><a class="el" href="a00166.html">glm::gtc::type_precision</a></td><td class="indexvalue">&lt; GLM_GTC_type_precision extension: Defined types with specific size </td></tr>
61 <tr><td class="indexkey"><a class="el" href="a00167.html">glm::gtc::type_ptr</a></td><td class="indexvalue">&lt; GLM_GTC_type_ptr extension: Get access to vectors &amp; matrices value type address </td></tr>
6562 <tr><td class="indexkey"><a class="el" href="a00168.html">glm::gtx</a></td><td class="indexvalue">G-Truc Creation experimental extensions </td></tr>
66 <tr><td class="indexkey"><a class="el" href="a00169.html">glm::gtx::associated_min_max</a></td><td class="indexvalue">GLM_GTX_associated_min_max extension: Min and max functions that return associated values not the compared onces </td></tr>
67 <tr><td class="indexkey"><a class="el" href="a00170.html">glm::gtx::bit</a></td><td class="indexvalue">GLM_GTX_bit extension: Allow to perform bit operations on integer values </td></tr>
68 <tr><td class="indexkey"><a class="el" href="a00171.html">glm::gtx::closest_point</a></td><td class="indexvalue">GLM_GTX_closest_point extension: Find the point on a straight line which is the closet of a point </td></tr>
69 <tr><td class="indexkey"><a class="el" href="a00172.html">glm::gtx::color_cast</a></td><td class="indexvalue">GLM_GTX_color_cast extension: Conversion between two color types </td></tr>
70 <tr><td class="indexkey"><a class="el" href="a00173.html">glm::gtx::color_space</a></td><td class="indexvalue">GLM_GTX_color_space extension: Related to RGB to HSV conversions and operations </td></tr>
71 <tr><td class="indexkey"><a class="el" href="a00174.html">glm::gtx::color_space_YCoCg</a></td><td class="indexvalue">GLM_GTX_color_space_YCoCg extension: RGB to YCoCg conversions and operations </td></tr>
72 <tr><td class="indexkey"><a class="el" href="a00175.html">glm::gtx::compatibility</a></td><td class="indexvalue">GLM_GTX_compatibility extension: Provide functions to increase the compatibility with Cg and HLSL languages </td></tr>
73 <tr><td class="indexkey"><a class="el" href="a00176.html">glm::gtx::component_wise</a></td><td class="indexvalue">GLM_GTX_component_wise extension: Operations between components of a type </td></tr>
74 <tr><td class="indexkey"><a class="el" href="a00177.html">glm::gtx::epsilon</a></td><td class="indexvalue">GLM_GTX_epsilon extension: Comparison functions for a user defined epsilon values </td></tr>
75 <tr><td class="indexkey"><a class="el" href="a00178.html">glm::gtx::euler_angles</a></td><td class="indexvalue">GLM_GTX_euler_angles extension: Build matrices from Euler angles </td></tr>
76 <tr><td class="indexkey"><a class="el" href="a00179.html">glm::gtx::extend</a></td><td class="indexvalue">GLM_GTX_extend extension: Extend a position from a source to a position at a defined length </td></tr>
77 <tr><td class="indexkey"><a class="el" href="a00180.html">glm::gtx::extented_min_max</a></td><td class="indexvalue">GLM_GTX_extented_min_max extension: Min and max functions for 3 to 4 parameters </td></tr>
78 <tr><td class="indexkey"><a class="el" href="a00181.html">glm::gtx::fast_exponential</a></td><td class="indexvalue">GLM_GTX_fast_exponential extension: Fast but less accurate implementations of exponential based functions </td></tr>
79 <tr><td class="indexkey"><a class="el" href="a00182.html">glm::gtx::fast_square_root</a></td><td class="indexvalue">GLM_GTX_fast_square_root extension: Fast but less accurate implementations of square root based functions </td></tr>
80 <tr><td class="indexkey"><a class="el" href="a00183.html">glm::gtx::fast_trigonometry</a></td><td class="indexvalue">GLM_GTX_fast_trigonometry extension: Fast but less accurate implementations of trigonometric functions </td></tr>
81 <tr><td class="indexkey"><a class="el" href="a00184.html">glm::gtx::gradient_paint</a></td><td class="indexvalue">GLM_GTX_gradient_paint extension: Compute a radient gradient according section OpenVG 1.1 specifications, 9.3.2 Radial Gradients </td></tr>
82 <tr><td class="indexkey"><a class="el" href="a00185.html">glm::gtx::handed_coordinate_space</a></td><td class="indexvalue">GLM_GTX_handed_coordinate_space extension: To know if a set of three basis vectors defines a right or left-handed coordinate system </td></tr>
83 <tr><td class="indexkey"><a class="el" href="a00186.html">glm::gtx::inertia</a></td><td class="indexvalue">GLM_GTX_inertia extension: Create inertia matrices </td></tr>
84 <tr><td class="indexkey"><a class="el" href="a00187.html">glm::gtx::int_10_10_10_2</a></td><td class="indexvalue">GLM_GTX_int_10_10_10_2 extension: Add support for integer for core functions </td></tr>
85 <tr><td class="indexkey"><a class="el" href="a00188.html">glm::gtx::integer</a></td><td class="indexvalue">GLM_GTX_integer extension: Add support for integer for core functions </td></tr>
86 <tr><td class="indexkey"><a class="el" href="a00189.html">glm::gtx::intersect</a></td><td class="indexvalue">GLM_GTX_intersect extension: Add intersection functions </td></tr>
87 <tr><td class="indexkey"><a class="el" href="a00190.html">glm::gtx::log_base</a></td><td class="indexvalue">GLM_GTX_log_base extension: Logarithm for any base. base can be a vector or a scalar </td></tr>
88 <tr><td class="indexkey"><a class="el" href="a00191.html">glm::gtx::matrix_cross_product</a></td><td class="indexvalue">GLM_GTX_matrix_cross_product: Build cross product matrices </td></tr>
89 <tr><td class="indexkey"><a class="el" href="a00192.html">glm::gtx::matrix_interpolation</a></td><td class="indexvalue">GLM_GTX_matrix_interpolation extension: Add transformation matrices </td></tr>
90 <tr><td class="indexkey"><a class="el" href="a00193.html">glm::gtx::matrix_major_storage</a></td><td class="indexvalue">GLM_GTX_matrix_major_storage: Build matrices with specific matrix order, row or column </td></tr>
91 <tr><td class="indexkey"><a class="el" href="a00194.html">glm::gtx::matrix_operation</a></td><td class="indexvalue">GLM_GTX_matrix_operation: Build diagonal matrices </td></tr>
92 <tr><td class="indexkey"><a class="el" href="a00195.html">glm::gtx::matrix_query</a></td><td class="indexvalue">GLM_GTX_matrix_query: Query to evaluate matrix properties </td></tr>
93 <tr><td class="indexkey"><a class="el" href="a00196.html">glm::gtx::mixed_product</a></td><td class="indexvalue">GLM_GTX_mixed_product extension: Mixed product of 3 vectors </td></tr>
94 <tr><td class="indexkey"><a class="el" href="a00197.html">glm::gtx::multiple</a></td><td class="indexvalue">GLM_GTX_multiple: Find the closest number of a number multiple of other number </td></tr>
95 <tr><td class="indexkey"><a class="el" href="a00198.html">glm::gtx::noise</a></td><td class="indexvalue">GLM_GTX_noise extension: Comparison functions for a user defined epsilon values </td></tr>
96 <tr><td class="indexkey"><a class="el" href="a00199.html">glm::gtx::norm</a></td><td class="indexvalue">GLM_GTX_norm extension: Various way to compute vector norms </td></tr>
97 <tr><td class="indexkey"><a class="el" href="a00200.html">glm::gtx::normal</a></td><td class="indexvalue">GLM_GTX_normal extension: Compute the normal of a triangle </td></tr>
98 <tr><td class="indexkey"><a class="el" href="a00201.html">glm::gtx::normalize_dot</a></td><td class="indexvalue">GLM_GTX_normalize_dot extension: Dot product of vectors that need to be normalize with a single square root </td></tr>
99 <tr><td class="indexkey"><a class="el" href="a00202.html">glm::gtx::number_precision</a></td><td class="indexvalue">GLM_GTX_number_precision extension: Defined size types </td></tr>
100 <tr><td class="indexkey"><a class="el" href="a00203.html">glm::gtx::ocl_type</a></td><td class="indexvalue">GLM_GTX_ocl_type extension: OpenCL types </td></tr>
101 <tr><td class="indexkey"><a class="el" href="a00204.html">glm::gtx::optimum_pow</a></td><td class="indexvalue">GLM_GTX_optimum_pow extension: Integer exponentiation of power functions </td></tr>
102 <tr><td class="indexkey"><a class="el" href="a00205.html">glm::gtx::orthonormalize</a></td><td class="indexvalue">GLM_GTX_orthonormalize extension: Orthonormalize matrices </td></tr>
103 <tr><td class="indexkey"><a class="el" href="a00206.html">glm::gtx::perpendicular</a></td><td class="indexvalue">GLM_GTX_perpendicular extension: Perpendicular of a vector from other one </td></tr>
104 <tr><td class="indexkey"><a class="el" href="a00207.html">glm::gtx::polar_coordinates</a></td><td class="indexvalue">GLM_GTX_polar_coordinates extension: Conversion from Euclidean space to polar space and revert </td></tr>
105 <tr><td class="indexkey"><a class="el" href="a00208.html">glm::gtx::projection</a></td><td class="indexvalue">GLM_GTX_projection extension: Projection of a vector to other one </td></tr>
106 <tr><td class="indexkey"><a class="el" href="a00209.html">glm::gtx::quaternion</a></td><td class="indexvalue">GLM_GTX_quaternion extension: Quaternion types and functions </td></tr>
107 <tr><td class="indexkey"><a class="el" href="a00210.html">glm::gtx::random</a></td><td class="indexvalue">GLM_GTX_random extension: Generate random number from various distribution methods </td></tr>
108 <tr><td class="indexkey"><a class="el" href="a00211.html">glm::gtx::raw_data</a></td><td class="indexvalue">GLM_GTX_raw_data extension: Projection of a vector to other one </td></tr>
109 <tr><td class="indexkey"><a class="el" href="a00212.html">glm::gtx::reciprocal</a></td><td class="indexvalue">GLM_GTX_reciprocal extension: Define secant, cosecant and cotangent functions </td></tr>
110 <tr><td class="indexkey"><a class="el" href="a00213.html">glm::gtx::rotate_vector</a></td><td class="indexvalue">GLM_GTX_rotate_vector extension: Function to directly rotate a vector </td></tr>
111 <tr><td class="indexkey"><a class="el" href="a00214.html">glm::gtx::simd_mat4</a></td><td class="indexvalue">GLM_GTX_simd_mat4 extension: SIMD implementation of mat4 type </td></tr>
112 <tr><td class="indexkey"><a class="el" href="a00215.html">glm::gtx::simd_vec4</a></td><td class="indexvalue">GLM_GTX_simd_vec4 extension: SIMD implementation of vec4 type </td></tr>
113 <tr><td class="indexkey"><a class="el" href="a00216.html">glm::gtx::spline</a></td><td class="indexvalue">GLM_GTX_simplex extension: Spline functions </td></tr>
114 <tr><td class="indexkey"><a class="el" href="a00217.html">glm::gtx::std_based_type</a></td><td class="indexvalue">GLM_GTX_std_based_type extension: Add support vector types based on C++ standard type </td></tr>
115 <tr><td class="indexkey"><a class="el" href="a00218.html">glm::gtx::string_cast</a></td><td class="indexvalue">GLM_GTX_string_cast extension: Setup strings for GLM type values </td></tr>
116 <tr><td class="indexkey"><a class="el" href="a00219.html">glm::gtx::transform</a></td><td class="indexvalue">GLM_GTX_transform extension: Add transformation matrices </td></tr>
117 <tr><td class="indexkey"><a class="el" href="a00220.html">glm::gtx::transform2</a></td><td class="indexvalue">GLM_GTX_transform2 extension: Add extra transformation matrices </td></tr>
118 <tr><td class="indexkey"><a class="el" href="a00221.html">glm::gtx::ulp</a></td><td class="indexvalue">GLM_GTX_ulp extension: Precision calculation functions </td></tr>
119 <tr><td class="indexkey"><a class="el" href="a00222.html">glm::gtx::unsigned_int</a></td><td class="indexvalue">GLM_GTX_unsigned_int extension: Add support for unsigned integer for core functions </td></tr>
120 <tr><td class="indexkey"><a class="el" href="a00223.html">glm::gtx::vector1</a></td><td class="indexvalue">GLM_GTX_vector1 extension: 1 component vector </td></tr>
121 <tr><td class="indexkey"><a class="el" href="a00225.html">glm::gtx::vector_access</a></td><td class="indexvalue">GLM_GTX_vector_access extension: Function to set values to vectors </td></tr>
122 <tr><td class="indexkey"><a class="el" href="a00226.html">glm::gtx::vector_angle</a></td><td class="indexvalue">GLM_GTX_vector_angle extension: Compute angle between vectors </td></tr>
123 <tr><td class="indexkey"><a class="el" href="a00227.html">glm::gtx::vector_query</a></td><td class="indexvalue">GLM_GTX_vector_query extension: Query informations of vector types </td></tr>
124 <tr><td class="indexkey"><a class="el" href="a00228.html">glm::gtx::verbose_operator</a></td><td class="indexvalue">GLM_GTX_verbose_operator extension: Use words to replace operators </td></tr>
125 <tr><td class="indexkey"><a class="el" href="a00229.html">glm::gtx::wrap</a></td><td class="indexvalue">GLM_GTX_wrap: Wrapping mode using my texture samping </td></tr>
126 <tr><td class="indexkey"><a class="el" href="a00230.html">glm::img</a></td><td class="indexvalue">VIRTREV extensions </td></tr>
127 <tr><td class="indexkey"><a class="el" href="a00233.html">glm::virtrev_glmext::xstream</a></td><td class="indexvalue">GLM_VIRTREV_xstream extension: Streaming vector and matrix in a xml way </td></tr>
63 <tr><td class="indexkey"><a class="el" href="a00169.html">glm::gtx::associated_min_max</a></td><td class="indexvalue">&lt; GLM_GTX_associated_min_max extension: Min and max functions that return associated values not the compared onces </td></tr>
64 <tr><td class="indexkey"><a class="el" href="a00170.html">glm::gtx::bit</a></td><td class="indexvalue">&lt; GLM_GTX_bit extension: Allow to perform bit operations on integer values </td></tr>
65 <tr><td class="indexkey"><a class="el" href="a00171.html">glm::gtx::closest_point</a></td><td class="indexvalue">&lt; GLM_GTX_closest_point extension: Find the point on a straight line which is the closet of a point </td></tr>
66 <tr><td class="indexkey"><a class="el" href="a00172.html">glm::gtx::color_cast</a></td><td class="indexvalue">&lt; GLM_GTX_color_cast extension: Conversion between two color types </td></tr>
67 <tr><td class="indexkey"><a class="el" href="a00173.html">glm::gtx::color_space</a></td><td class="indexvalue">&lt; GLM_GTX_color_space extension: Related to RGB to HSV conversions and operations </td></tr>
68 <tr><td class="indexkey"><a class="el" href="a00174.html">glm::gtx::color_space_YCoCg</a></td><td class="indexvalue">&lt; GLM_GTX_color_space_YCoCg extension: RGB to YCoCg conversions and operations </td></tr>
69 <tr><td class="indexkey"><a class="el" href="a00175.html">glm::gtx::compatibility</a></td><td class="indexvalue">&lt; GLM_GTX_compatibility extension: Provide functions to increase the compatibility with Cg and HLSL languages </td></tr>
70 <tr><td class="indexkey"><a class="el" href="a00176.html">glm::gtx::component_wise</a></td><td class="indexvalue">&lt; GLM_GTX_component_wise extension: Operations between components of a type </td></tr>
71 <tr><td class="indexkey"><a class="el" href="a00177.html">glm::gtx::epsilon</a></td><td class="indexvalue">&lt; GLM_GTX_epsilon extension: Comparison functions for a user defined epsilon values </td></tr>
72 <tr><td class="indexkey"><a class="el" href="a00178.html">glm::gtx::euler_angles</a></td><td class="indexvalue">&lt; GLM_GTX_euler_angles extension: Build matrices from Euler angles </td></tr>
73 <tr><td class="indexkey"><a class="el" href="a00179.html">glm::gtx::extend</a></td><td class="indexvalue">&lt; GLM_GTX_extend extension: Extend a position from a source to a position at a defined length </td></tr>
74 <tr><td class="indexkey"><a class="el" href="a00180.html">glm::gtx::extented_min_max</a></td><td class="indexvalue">&lt; GLM_GTX_extented_min_max extension: Min and max functions for 3 to 4 parameters </td></tr>
75 <tr><td class="indexkey"><a class="el" href="a00181.html">glm::gtx::fast_exponential</a></td><td class="indexvalue">&lt; GLM_GTX_fast_exponential extension: Fast but less accurate implementations of exponential based functions </td></tr>
76 <tr><td class="indexkey"><a class="el" href="a00182.html">glm::gtx::fast_square_root</a></td><td class="indexvalue">&lt; GLM_GTX_fast_square_root extension: Fast but less accurate implementations of square root based functions </td></tr>
77 <tr><td class="indexkey"><a class="el" href="a00183.html">glm::gtx::fast_trigonometry</a></td><td class="indexvalue">&lt; GLM_GTX_fast_trigonometry extension: Fast but less accurate implementations of trigonometric functions </td></tr>
78 <tr><td class="indexkey"><a class="el" href="a00184.html">glm::gtx::gradient_paint</a></td><td class="indexvalue">&lt; GLM_GTX_gradient_paint extension: Compute a radient gradient according section OpenVG 1.1 specifications, 9.3.2 Radial Gradients </td></tr>
79 <tr><td class="indexkey"><a class="el" href="a00185.html">glm::gtx::handed_coordinate_space</a></td><td class="indexvalue">&lt; GLM_GTX_handed_coordinate_space extension: To know if a set of three basis vectors defines a right or left-handed coordinate system </td></tr>
80 <tr><td class="indexkey"><a class="el" href="a00186.html">glm::gtx::inertia</a></td><td class="indexvalue">&lt; GLM_GTX_inertia extension: Create inertia matrices </td></tr>
81 <tr><td class="indexkey"><a class="el" href="a00187.html">glm::gtx::int_10_10_10_2</a></td><td class="indexvalue">&lt; GLM_GTX_int_10_10_10_2 extension: Add support for integer for core functions </td></tr>
82 <tr><td class="indexkey"><a class="el" href="a00188.html">glm::gtx::integer</a></td><td class="indexvalue">&lt; GLM_GTX_integer extension: Add support for integer for core functions </td></tr>
83 <tr><td class="indexkey"><a class="el" href="a00189.html">glm::gtx::intersect</a></td><td class="indexvalue">&lt; GLM_GTX_intersect extension: Add intersection functions </td></tr>
84 <tr><td class="indexkey"><a class="el" href="a00190.html">glm::gtx::log_base</a></td><td class="indexvalue">&lt; GLM_GTX_log_base extension: Logarithm for any base. base can be a vector or a scalar </td></tr>
85 <tr><td class="indexkey"><a class="el" href="a00191.html">glm::gtx::matrix_cross_product</a></td><td class="indexvalue">&lt; GLM_GTX_matrix_cross_product: Build cross product matrices </td></tr>
86 <tr><td class="indexkey"><a class="el" href="a00192.html">glm::gtx::matrix_interpolation</a></td><td class="indexvalue">&lt; GLM_GTX_matrix_interpolation extension: Add transformation matrices </td></tr>
87 <tr><td class="indexkey"><a class="el" href="a00193.html">glm::gtx::matrix_major_storage</a></td><td class="indexvalue">&lt; GLM_GTX_matrix_major_storage: Build matrices with specific matrix order, row or column </td></tr>
88 <tr><td class="indexkey"><a class="el" href="a00194.html">glm::gtx::matrix_operation</a></td><td class="indexvalue">&lt; GLM_GTX_matrix_operation: Build diagonal matrices </td></tr>
89 <tr><td class="indexkey"><a class="el" href="a00195.html">glm::gtx::matrix_query</a></td><td class="indexvalue">&lt; GLM_GTX_matrix_query: Query to evaluate matrix properties </td></tr>
90 <tr><td class="indexkey"><a class="el" href="a00196.html">glm::gtx::mixed_product</a></td><td class="indexvalue">&lt; GLM_GTX_mixed_product extension: Mixed product of 3 vectors </td></tr>
91 <tr><td class="indexkey"><a class="el" href="a00197.html">glm::gtx::multiple</a></td><td class="indexvalue">&lt; GLM_GTX_multiple: Find the closest number of a number multiple of other number </td></tr>
92 <tr><td class="indexkey"><a class="el" href="a00198.html">glm::gtx::noise</a></td><td class="indexvalue">&lt; GLM_GTX_noise extension: Comparison functions for a user defined epsilon values </td></tr>
93 <tr><td class="indexkey"><a class="el" href="a00199.html">glm::gtx::norm</a></td><td class="indexvalue">&lt; GLM_GTX_norm extension: Various way to compute vector norms </td></tr>
94 <tr><td class="indexkey"><a class="el" href="a00200.html">glm::gtx::normal</a></td><td class="indexvalue">&lt; GLM_GTX_normal extension: Compute the normal of a triangle </td></tr>
95 <tr><td class="indexkey"><a class="el" href="a00201.html">glm::gtx::normalize_dot</a></td><td class="indexvalue">&lt; GLM_GTX_normalize_dot extension: Dot product of vectors that need to be normalize with a single square root </td></tr>
96 <tr><td class="indexkey"><a class="el" href="a00202.html">glm::gtx::number_precision</a></td><td class="indexvalue">&lt; GLM_GTX_number_precision extension: Defined size types </td></tr>
97 <tr><td class="indexkey"><a class="el" href="a00203.html">glm::gtx::ocl_type</a></td><td class="indexvalue">&lt; GLM_GTX_ocl_type extension: OpenCL types </td></tr>
98 <tr><td class="indexkey"><a class="el" href="a00204.html">glm::gtx::optimum_pow</a></td><td class="indexvalue">&lt; GLM_GTX_optimum_pow extension: Integer exponentiation of power functions </td></tr>
99 <tr><td class="indexkey"><a class="el" href="a00205.html">glm::gtx::orthonormalize</a></td><td class="indexvalue">&lt; GLM_GTX_orthonormalize extension: Orthonormalize matrices </td></tr>
100 <tr><td class="indexkey"><a class="el" href="a00206.html">glm::gtx::perpendicular</a></td><td class="indexvalue">&lt; GLM_GTX_perpendicular extension: Perpendicular of a vector from other one </td></tr>
101 <tr><td class="indexkey"><a class="el" href="a00207.html">glm::gtx::polar_coordinates</a></td><td class="indexvalue">&lt; GLM_GTX_polar_coordinates extension: Conversion from Euclidean space to polar space and revert </td></tr>
102 <tr><td class="indexkey"><a class="el" href="a00208.html">glm::gtx::projection</a></td><td class="indexvalue">&lt; GLM_GTX_projection extension: Projection of a vector to other one </td></tr>
103 <tr><td class="indexkey"><a class="el" href="a00209.html">glm::gtx::quaternion</a></td><td class="indexvalue">&lt; GLM_GTX_quaternion extension: Quaternion types and functions </td></tr>
104 <tr><td class="indexkey"><a class="el" href="a00210.html">glm::gtx::random</a></td><td class="indexvalue">&lt; GLM_GTX_random extension: Generate random number from various distribution methods </td></tr>
105 <tr><td class="indexkey"><a class="el" href="a00211.html">glm::gtx::raw_data</a></td><td class="indexvalue">&lt; GLM_GTX_raw_data extension: Projection of a vector to other one </td></tr>
106 <tr><td class="indexkey"><a class="el" href="a00212.html">glm::gtx::reciprocal</a></td><td class="indexvalue">&lt; GLM_GTX_reciprocal extension: Define secant, cosecant and cotangent functions </td></tr>
107 <tr><td class="indexkey"><a class="el" href="a00213.html">glm::gtx::rotate_vector</a></td><td class="indexvalue">&lt; GLM_GTX_rotate_vector extension: Function to directly rotate a vector </td></tr>
108 <tr><td class="indexkey"><a class="el" href="a00214.html">glm::gtx::simd_mat4</a></td><td class="indexvalue">&lt; GLM_GTX_simd_mat4 extension: SIMD implementation of mat4 type </td></tr>
109 <tr><td class="indexkey"><a class="el" href="a00215.html">glm::gtx::simd_vec4</a></td><td class="indexvalue">&lt; GLM_GTX_simd_vec4 extension: SIMD implementation of vec4 type </td></tr>
110 <tr><td class="indexkey"><a class="el" href="a00216.html">glm::gtx::spline</a></td><td class="indexvalue">&lt; GLM_GTX_simplex extension: Spline functions </td></tr>
111 <tr><td class="indexkey"><a class="el" href="a00217.html">glm::gtx::std_based_type</a></td><td class="indexvalue">&lt; GLM_GTX_std_based_type extension: Add support vector types based on C++ standard type </td></tr>
112 <tr><td class="indexkey"><a class="el" href="a00218.html">glm::gtx::string_cast</a></td><td class="indexvalue">&lt; GLM_GTX_string_cast extension: Setup strings for GLM type values </td></tr>
113 <tr><td class="indexkey"><a class="el" href="a00219.html">glm::gtx::transform</a></td><td class="indexvalue">&lt; GLM_GTX_transform extension: Add transformation matrices </td></tr>
114 <tr><td class="indexkey"><a class="el" href="a00220.html">glm::gtx::transform2</a></td><td class="indexvalue">&lt; GLM_GTX_transform2 extension: Add extra transformation matrices </td></tr>
115 <tr><td class="indexkey"><a class="el" href="a00221.html">glm::gtx::ulp</a></td><td class="indexvalue">&lt; GLM_GTX_ulp extension: Precision calculation functions </td></tr>
116 <tr><td class="indexkey"><a class="el" href="a00222.html">glm::gtx::unsigned_int</a></td><td class="indexvalue">&lt; GLM_GTX_unsigned_int extension: Add support for unsigned integer for core functions </td></tr>
117 <tr><td class="indexkey"><a class="el" href="a00224.html">glm::gtx::vector1::precision</a></td><td class="indexvalue">&lt; GLM_GTX_vec1 extension: 1 component vector </td></tr>
118 <tr><td class="indexkey"><a class="el" href="a00225.html">glm::gtx::vector_access</a></td><td class="indexvalue">&lt; GLM_GTX_vector_access extension: Function to set values to vectors </td></tr>
119 <tr><td class="indexkey"><a class="el" href="a00226.html">glm::gtx::vector_angle</a></td><td class="indexvalue">&lt; GLM_GTX_vector_angle extension: Compute angle between vectors </td></tr>
120 <tr><td class="indexkey"><a class="el" href="a00227.html">glm::gtx::vector_query</a></td><td class="indexvalue">&lt; GLM_GTX_vector_query extension: Query informations of vector types </td></tr>
121 <tr><td class="indexkey"><a class="el" href="a00228.html">glm::gtx::verbose_operator</a></td><td class="indexvalue">&lt; GLM_GTX_verbose_operator extension: Use words to replace operators </td></tr>
122 <tr><td class="indexkey"><a class="el" href="a00229.html">glm::gtx::wrap</a></td><td class="indexvalue">&lt; GLM_GTX_wrap: Wrapping mode using my texture samping </td></tr>
123 <tr><td class="indexkey"><a class="el" href="a00230.html">glm::virtrev</a></td><td class="indexvalue">VIRTREV extensions </td></tr>
124 <tr><td class="indexkey"><a class="el" href="a00232.html">glm::virtrev_glmext::xstream</a></td><td class="indexvalue">GLM_VIRTREV_xstream extension: Streaming vector and matrix in a xml way </td></tr>
128125 </table>
129126 </div>
130127 <hr class="footer"/><address class="footer"><small>Generated by&#160;
1010 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
1111 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
1212 })();
13 </script></head><body><table><tr><td class="menu"><div class="menu1"><br /><div><a href="./goodies/logo1920x1200.png"><img class="menu-img" src="./common/logo.png" alt="GLM Logo" /></a></div><br /><div><a class="menu" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.0/glm-0.9.2.0.zip/download">
14 Download GLM 0.9.2.0</a></div></div><br /><div class="menu2"><a href="./index.html">Front page</a></div><div class="menu2"><a href="./download.html">Downloads</a></div><div class="menu2"><a href="http://www.opengl.org/sdk/libs/GLM/">OpenGL SDK page</a></div><br /><div class="menu2"><a href="./glm-0.9.2.pdf">GLM Manual</a></div><div class="menu2"><a href="./api-0.9.2/index.html">GLM API</a></div><div class="menu2"><a href="./code.html">Code samples</a></div><div class="menu2"><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.10.6.clean.pdf">GLSL Specification</a></div><div class="menu2"><a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&amp;Board=10&amp;page=1">OpenGL.org Toolkits forum</a></div><br /><div class="menu2"><a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Report a bug</a></div><div class="menu2"><a href="https://sourceforge.net/projects/ogl-math/">SourceForge page</a></div><div class="menu2"><a href="http://www.g-truc.net/project-0016.html#menu">G-Truc Creation page</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=summary">Browse Git repository</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=snapshot;h=HEAD;sf=tgz">Source snapshot</a></div><br /><br /><div class="menu2"><a href="http://www.g-truc.net"><img class="menu-img" src="./common/g-truc.png" alt="G-Truc" /></a></div><br /></td><td class="page"><div class="title1"><img src="./common/title.png" alt="OpenGL Mathematics" /></div><div class="title3">GLSL + Optional features = OpenGL Mathematics (GLM).<br />A C++ mathematics library for 3D graphics.<br /></div><br /><br /><p>
13 </script></head><body><table><tr><td class="menu"><div class="menu1"><br /><div><a href="./goodies/logo1920x1200.png"><img class="menu-img" src="./common/logo.png" alt="GLM Logo" /></a></div><br /><div><a class="menu" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.6/glm-0.9.2.6.zip/download">
14 Download GLM 0.9.2.6</a></div></div><br /><div class="menu2"><a href="./index.html">Front page</a></div><div class="menu2"><a href="./download.html">Downloads</a></div><div class="menu2"><a href="http://www.opengl.org/sdk/libs/GLM/">OpenGL SDK page</a></div><br /><div class="menu2"><a href="./glm-0.9.2.pdf">GLM Manual</a></div><div class="menu2"><a href="./api-0.9.2/index.html">GLM API</a></div><div class="menu2"><a href="./code.html">Code samples</a></div><div class="menu2"><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.10.6.clean.pdf">GLSL Specification</a></div><div class="menu2"><a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&amp;Board=10&amp;page=1">OpenGL.org Toolkits forum</a></div><br /><div class="menu2"><a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Report a bug</a></div><div class="menu2"><a href="https://sourceforge.net/projects/ogl-math/">SourceForge page</a></div><div class="menu2"><a href="http://www.g-truc.net/project-0016.html#menu">G-Truc Creation page</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=summary">Browse Git repository</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=snapshot;h=HEAD;sf=tgz">Source snapshot</a></div><br /><br /><div class="menu2"><a href="http://www.g-truc.net"><img class="menu-img" src="./common/g-truc.png" alt="G-Truc" /></a></div><br /></td><td class="page"><div class="title1"><img src="./common/title.png" alt="OpenGL Mathematics" /></div><div class="title3">GLSL + Optional features = OpenGL Mathematics (GLM)<br />A C++ mathematics library for graphics programming<br /></div><br /><br /><p>
1515 OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software
1616 based on the <a href="http://www.opengl.org/documentation/glsl/">OpenGL Shading Language (GLSL)</a> specification.
1717 </p><p>
2626 quaternions, half-based types, random numbers, etc...
2727 </p><p>
2828 This library works perfectly with OpenGL but it also ensures interoperability with other 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.
29 </p><div xmlns="http://www.w3.org/1999/xhtml"><span class="list">GLM is written as a platform independent library with no dependence and officially supports the following compilers:</span><ul><li><a xmlns="" href="http://http://gcc.gnu.org/">GCC</a> 3.4 and higher</li><li><a xmlns="" href="http://llvm.org/">LLVM</a> 2.3 through GCC 4.2 front-end and higher</li><li><a xmlns="" href="http://msdn.microsoft.com/en-us/visualc/default">Visual C++</a> 2005 and higher</li><li>Any C++ compiler following C++98 norm</li></ul></div><p>
29 </p><div xmlns="http://www.w3.org/1999/xhtml"><span class="list">GLM is written as a platform independent library with no dependence and officially supports the following compilers:</span><ul><li><a xmlns="" href="http://clang.llvm.org">Clang</a> 2.0 and higher</li><li><a xmlns="" href="http://developer.nvidia.com/category/zone/cuda-zone">CUDA</a> 3.0 and higher
30 </li><li><a xmlns="" href="http://gcc.gnu.org/">GCC</a> 3.4 and higher</li><li><a xmlns="" href="http://llvm.org/">LLVM</a> 2.3 through GCC 4.2 front-end and higher</li><li><a xmlns="" href="http://msdn.microsoft.com/en-us/visualc/default">Visual C++</a> 2005 and higher</li><li>Any C++ compiler following C++98 norm</li></ul></div><p>
3031 The source code is under the <a href="./copying.txt">MIT license</a>.
3132 </p><p>
3233 Thanks for contributing to the project by <a href="https://sourceforge.net/apps/trac/ogl-math/newticket">submitting tickets</a> for bug reports and feature requests. (SF.net account required).
3334 Any feedback is welcome at glm@g-truc.net.
34 </p><br /><div><h3>09/05/2011 - GLM 0.9.2.0 released</h3><div><p>
35 </p><br /><div><h3>01/10/2011 - GLM 0.9.2.6 released</h3><div><p>
36 Half based vector types have been fixed on GCC 4.4 and below, missing l-value swizzle operations added and a couple of other bugs squeezed down.
37 </p><p>
38 Finally, all the Visual C++ /W4 warnings should have been removed. However, for this to happen, it is required to build with the Visual C++ language extension disabled (/Za).
39 </p>Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.6/glm-0.9.2.6.zip/download">GLM 0.9.2.6 (zip)</a><br />Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.6/glm-0.9.2.6.7z/download">GLM 0.9.2.6 (7z)</a><br />Link: <a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</a><br /></div><br /></div><div><h3>20/09/2011 - GLM 0.9.2.5 released</h3><div><p>
40 This update fixes some major core issues including the implementation of round, floatBitToXint, pack and unpack functions.
41 </p>Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.5/glm-0.9.2.5.zip/download">GLM 0.9.2.5 (zip)</a><br />Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.5/glm-0.9.2.5.7z/download">GLM 0.9.2.5 (7z)</a><br />Link: <a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</a><br /></div><br /></div><div><h3>03/09/2011 - GLM 0.9.2.4 released</h3><div><p>
42 Fixed bugs and warnings reported by GLM users. Thanks!
43 </p>Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.4/glm-0.9.2.4.zip/download">GLM 0.9.2.4 (zip)</a><br />Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.4/glm-0.9.2.4.7z/download">GLM 0.9.2.4 (7z)</a><br />Link: <a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</a><br /></div><br /></div><div><h3>08/06/2011 - GLM 0.9.2.3 released</h3><div><p>
44 This version only fixes a couple of major bugs introduced in GLM 0.9.2.2.
45 </p>Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.3/glm-0.9.2.3.zip/download">GLM 0.9.2.3 (zip)</a><br />Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.3/glm-0.9.2.3.7z/download">GLM 0.9.2.3 (7z)</a><br />Link: <a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</a><br /></div><br /></div><div><h3>02/06/2011 - GLM 0.9.2.2 released</h3><div><p>
46 The main improvement of this version comes from the extended number of matrix constructors so that a programmer can used different scalar types for each parameter.
47 </p><ul xmlns="http://www.w3.org/1999/xhtml" class="code-list"><li class="code-line"><span class="code-line-content"><span class="keyword">#include </span><span class="string">&lt;glm/glm.hpp&gt;</span></span></li><li class="code-line"><span class="code-line-content" /></li><li class="code-line"><span class="code-line-content"><span class="comment">// Create an identity matrix</span></span></li><li class="code-line"><span class="code-line-content">
48 glm::mat3 m(
49 </span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
50 1, 0.0, 0,
51 </span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
52 0.0, 1.0, 0.0f,
53 </span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
54 0, 0.0, 1.0f);
55 </span></li></ul><p>
56 The quaternion implementation has been updated as well, fixing the various slerp implementation flavours (mix, shortMix and fastMix) and providing more completeness: Added interaction with GLM_GTX_epsilon and missing lowp_quat, mediump_quat and highp_quat but also none square matrix equivalents.
57 </p><p>
58 Finally, some efforts have been put to remove warnings across all supported compilers.
59 </p>Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.2/glm-0.9.2.2.zip/download">GLM 0.9.2.2 (zip)</a><br />Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.2/glm-0.9.2.2.7z/download">GLM 0.9.2.2 (7z)</a><br />Link: <a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</a><br /></div><br /></div><div><h3>24/05/2011 - GLM 0.9.2.1 released</h3><div><p>
60 GLM 0.9.2.1 significantly improves compiler detection which allows CUDA to be automatically recognized when GLM is used inside a CUDA kernel.
61 By conscequence, <span xmlns="http://www.w3.org/1999/xhtml" class="codeword">GLM_FORCE_CUDA</span> is no longer required to be declared.
62 </p><p>
63 It fixed a couple of bugs, including Visual C++ supprot when Visual C++ extensions are disabled and fixed implementations of GLM_GTX_vector_angle and GLM_GTX_rotate_vector extensions.
64 </p>Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.1/glm-0.9.2.1.zip/download">GLM 0.9.2.1 (zip)</a><br />Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.1/glm-0.9.2.1.7z/download">GLM 0.9.2.1 (7z)</a><br />Link: <a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</a><br /></div><br /></div><div><h3>09/05/2011 - GLM 0.9.2.0 released</h3><div><p>
3565 GLM 0.9.2.0 provides many exciting features which first of all is the CUDA copiler support so that GLM can be used within a CUDA kernel. This is possible only by defining GLM_FORCE_CUDA before including glm/glm.hpp in the CUDA Kernel source code.
3666 </p><p>
3767 New experimental extensions are also available. GLM_GTX_noise is based on the work by Stefan Gustavson and Ashima Arts on <a href="https://github.com/ashima/webgl-noise">WebGL-noise</a> which adds perlin and simplex noise functions in a pure computational way.
99129 This implementation can probably be improve in many ways so don't hesitate to send me some feedbacks.
100130 </p><p>
101131 GLM 0.9.1 is not 100% backward compatible with GLM 0.9.0 but mostly advanced usages should be concerned by this compatibility issues.
102 </p></div><br /></div><div><h3>30/01/2011 - GLM 0.9.0.7 released</h3><div><p>
132 </p>Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.A/glm-0.9.1.A.zip/download">GLM 0.9.1.A (zip, 2.7 MB)</a><br />Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.A/glm-0.9.1.A.7z/download">GLM 0.9.1.A (7z, 1.7 MB)</a><br />Link: <a href="http://glm.g-truc.net/glm-0.9.1.pdf" /><br />Link: <a href="https://sourceforge.net/apps/trac/ogl-math/newticket" /><br /></div><br /></div><div><h3>30/01/2011 - GLM 0.9.0.7 released</h3><div><p>
103133 GLM 0.9.0.7 provides 2 main changes: GLSL 4.10 packing functions but also == and != operators for every types.
104134 </p>Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.7/glm-0.9.0.7.zip/download">GLM 0.9.0.7 (zip, 1.4 MB)</a><br />Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.7/glm-0.9.0.7.7z/download">GLM 0.9.0.7 (7z, 832 KB)</a><br />Link: <a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</a><br /></div><br /></div><div><h3>21/12/2010 - GLM 0.9.0.6 released</h3><div><p>
105135 GLM 0.9.0.6 is a new update of GLM built over GLM's user bug reports.
141171 </p><p>
142172 Reaching the beta status, this new features close the feature list of GLM 0.9.
143173 Further development releases may happen before the final release.
144 </p>Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.B.1/glm-0.9.B.1.zip/download">GLM 0.9.B.1 (zip, 964 KB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.B.1/glm-0.9.B.1.7z/download">GLM 0.9.B.1 (7z, 414 KB)</a><br /></div><br /></div><div><h3>20/02/2010 - GLM 0.9 Alpha 2 released</h3><div><p>
174 </p>Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.B.1/glm-0.9.B.1.zip/download">GLM 0.9.B.1 (zip, 964 KB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.B.1/glm-0.9.B.1.7z/download">GLM 0.9.B.1 (7z, 414 KB)</a><br /></div><br /></div><div><h3>20/02/2010 - GLM 0.9 Alpha 2 released</h3><div>Groove<p>
145175 This update fixes some problem of Alpha 1 but also brings some improvements in case of errors when using GLM to provide more relevant messages.
146 </p>Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.2/glm-0.9.A.2.zip/download">GLM 0.9.A.2 (zip, 1.3 MB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.2/glm-0.9.A.2.7z/download">GLM 0.9.A.2 (7z, 726 KB)</a><br /></div><br /></div><div><h3>09/02/2010 - GLM 0.9 Alpha 1 released</h3><div><p>
176 </p>Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.2/glm-0.9.A.2.zip/download">GLM 0.9.A.2 (zip, 1.3 MB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.2/glm-0.9.A.2.7z/download">GLM 0.9.A.2 (7z, 726 KB)</a><br /></div><br /></div><div><h3>09/02/2010 - GLM 0.9 Alpha 1 released</h3><div>Groove<p>
147177 First step until a major release for GLM with this first alpha of GLM 0.9.
148178 </p><p>
149179 This version brings a large internal redesign to improve the library reliability and optimized some parts.
152182 For most users the build issues when upgrading to GLM 0.9 should be reduced especially if they follow the deprecation policy.
153183 </p><p>
154184 This release is still UNSTABLE and not recommanded for commertial products.
155 </p>Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.1/glm-0.9.A.1.zip/download">GLM 0.9.A.1 (zip, 950 KB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.1/glm-0.9.A.1.7z/download">GLM 0.9.A.1 (7z, 391 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>25/01/2010 - GLM 0.8.4.4 released</h3><div><p>
185 </p>Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.1/glm-0.9.A.1.zip/download">GLM 0.9.A.1 (zip, 950 KB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.1/glm-0.9.A.1.7z/download">GLM 0.9.A.1 (7z, 391 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>25/01/2010 - GLM 0.8.4.4 released</h3><div>Groove<p>
156186 This update just removes some warnings
157187 </p><p>
158188 By the way, if you have questions about GLM, a good place for those is the <a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&amp;Board=10&amp;page=1">OpenGL.org Toolkits forum</a>.
159 </p>Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.4/glm-0.8.4.4.zip/download">GLM 0.8.4.4 (zip, 1.1 MB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.4/glm-0.8.4.4.7z/download">GLM 0.8.4.4 (7z, 479 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>16/11/2009 - GLM 0.8.4.3 released</h3><div><p>
189 </p>Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.4/glm-0.8.4.4.zip/download">GLM 0.8.4.4 (zip, 1.1 MB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.4/glm-0.8.4.4.7z/download">GLM 0.8.4.4 (7z, 479 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>16/11/2009 - GLM 0.8.4.3 released</h3><div>Groove<p>
160190 This version fixed half scalars and half vectors arithmetics.
161191 This is a really slow practice that should be avoid.
162192 Half floating point value should be use only to store GPU data.
163193 GPUs have native support for half values, not x86 CPUs.
164 </p>Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.3/glm-0.8.4.3.zip/download">GLM 0.8.4.3 (zip, 1.1 MB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.3/glm-0.8.4.3.7z/download">GLM 0.8.4.3 (7z, 463 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>19/10/2009 - GLM 0.8.4.2 released</h3><div><p>
194 </p>Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.3/glm-0.8.4.3.zip/download">GLM 0.8.4.3 (zip, 1.1 MB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.3/glm-0.8.4.3.7z/download">GLM 0.8.4.3 (7z, 463 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>19/10/2009 - GLM 0.8.4.2 released</h3><div>Groove<p>
165195 This version is a really minor updates, fixing single issue with half float types.
166 </p>Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.2/glm-0.8.4.2.zip/download">GLM 0.8.4.2 (zip, 1.1 MB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.2/glm-0.8.4.2.7z/download">GLM 0.8.4.2 (7z, 443 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>05/10/2009 - GLM 0.8.4.1 released</h3><div><p>
196 </p>Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.2/glm-0.8.4.2.zip/download">GLM 0.8.4.2 (zip, 1.1 MB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.2/glm-0.8.4.2.7z/download">GLM 0.8.4.2 (7z, 443 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>05/10/2009 - GLM 0.8.4.1 released</h3><div>Groove<p>
167197 This version fixes few bugs and provides an major update of the manual thanks to Damian Trebilco.
168 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.4.1.zip?download">GLM 0.8.4.1 (zip, 1.1 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.4.1.7z?download">GLM 0.8.4.1 (7z, 443 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>16/09/2009 - GLM 0.8.4.0 released</h3><div><p>
198 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.4.1.zip?download">GLM 0.8.4.1 (zip, 1.1 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.4.1.7z?download">GLM 0.8.4.1 (7z, 443 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>16/09/2009 - GLM 0.8.4.0 released</h3><div>Groove<p>
169199 This new version mainly adds support for Visual Studio 2010 and GCC 4.4. It also provides various code optimization, bug fixes and an extension.
170 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.4.0.zip?download">GLM 0.8.4.0 (zip, 1.1 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.4.0.7z?download">GLM 0.8.4.0 (7z, 439 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>11/08/2009 - GLM 0.8.3.5 released</h3><div><p>
200 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.4.0.zip?download">GLM 0.8.4.0 (zip, 1.1 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.4.0.7z?download">GLM 0.8.4.0 (7z, 439 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>11/08/2009 - GLM 0.8.3.5 released</h3><div>Groove<p>
171201 Fixed extension bugs introduced by core update.
172 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.5.zip?download">GLM 0.8.3.5 (zip, 971 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.5.7z?download">GLM 0.8.3.5 (7z, 405 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>10/08/2009 - GLM 0.8.3.4 released</h3><div><p>
202 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.5.zip?download">GLM 0.8.3.5 (zip, 971 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.5.7z?download">GLM 0.8.3.5 (7z, 405 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>10/08/2009 - GLM 0.8.3.4 released</h3><div>Groove<p>
173203 Fixed varius bugs. Move determinant fonction to core following GLSL 1.5 specification.
174 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.4.zip?download">GLM 0.8.3.4 (zip, 971 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.4.7z?download">GLM 0.8.3.4 (7z, 405 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>25/06/2009 - GLM 0.8.3.3 released</h3><div><p>
204 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.4.zip?download">GLM 0.8.3.4 (zip, 971 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.4.7z?download">GLM 0.8.3.4 (7z, 405 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>25/06/2009 - GLM 0.8.3.3 released</h3><div>Groove<p>
175205 Fixed varius bugs.
176 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.3.zip?download">GLM 0.8.3.3 (zip, 971 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.3.7z?download">GLM 0.8.3.3 (7z, 405 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>04/06/2009 - GLM 0.8.3.2 released</h3><div><p>
206 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.3.zip?download">GLM 0.8.3.3 (zip, 971 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.3.7z?download">GLM 0.8.3.3 (7z, 405 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>04/06/2009 - GLM 0.8.3.2 released</h3><div>Groove<p>
177207 Add GLM_GTC_quaternion and GLM_GTC_type_precision extensions both subset of GLM_GTX_quaternion and GLM_GTX_number_precision
178 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.2.zip?download">GLM 0.8.3.2 (zip, 971 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.2.7z?download">GLM 0.8.3.2 (7z, 405 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>21/05/2009 - GLM 0.8.3.1 released</h3><div><p>
208 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.2.zip?download">GLM 0.8.3.2 (zip, 971 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.2.7z?download">GLM 0.8.3.2 (7z, 405 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>21/05/2009 - GLM 0.8.3.1 released</h3><div>Groove<p>
179209 The old way to use extensions have been fixed and GLM_GTX_bit extension gets updated with more functions to manipulate bit fields.
180 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.1.zip?download">GLM 0.8.3.1 (zip, 954 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.1.7z?download">GLM 0.8.3.1 (7z, 402 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>06/05/2009 - GLM 0.8.3.0 released</h3><div><p>
210 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.1.zip?download">GLM 0.8.3.1 (zip, 954 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.1.7z?download">GLM 0.8.3.1 (7z, 402 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>06/05/2009 - GLM 0.8.3.0 released</h3><div>Groove<p>
181211 This version brings to main changed: Stable extensions and a new extension system.
182212 </p><p>
183213 The first stable GLM extensions are: GLM_GTC_double_float and GLM_GTC_half_float for higher and lower vectors and matrices floating point precision. GLM_GTC_matrix_operation provides determinant and inverse matrix calculation. GLM_GTC_matrix_transform allows to build scale, rotate and translate matrices and GLM_GTC_matrix_projection provides varius functions to build projection matrices. Few stable extensions yet but the number is going to grow with the next release!
185215 Both GLM 0.8.2.x extensions use method are deprecated (but still working) and replace by a new one. If you wnat to use GLM_GTC_half_float just include "glm/gtc/half_float.hpp" and it is going to be included in GLM namespace.
186216 </p><p>
187217 Finally, quite some file have been renamed, using "hpp" instead of ".h". Old file have been deprecated but are still available so that GLM 0.8.3.0 is fully compatible with GLM 0.8.2.x.
188 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.0.zip?download">GLM 0.8.3.0 (zip, 896 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.0.7z?download">GLM 0.8.3.0 (7z, 359 KB)</a><br />Link: <a href="./code.html">Code samples page</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>01/04/2009 - GLM 0.8.2.3 released</h3><div>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.3.zip?download">GLM 0.8.2.3 (zip, 963 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.3.7z?download">GLM 0.8.2.3 (7z, 381 KB)</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>13/02/2009 - GLM 0.8.2.1 released</h3><div><p>
218 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.0.zip?download">GLM 0.8.3.0 (zip, 896 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.0.7z?download">GLM 0.8.3.0 (7z, 359 KB)</a><br />Link: <a href="./code.html">Code samples page</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>01/04/2009 - GLM 0.8.2.3 released</h3><div>GrooveDownload: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.3.zip?download">GLM 0.8.2.3 (zip, 963 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.3.7z?download">GLM 0.8.2.3 (7z, 381 KB)</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>13/02/2009 - GLM 0.8.2.1 released</h3><div>Groove<p>
189219 A new release is available and inogurate a patch number. The goal of this patch number is to release faster fixes from bug reports.
190 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.1.zip?download">GLM 0.8.2.1 (zip, 963 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.1.7z?download">GLM 0.8.2.1 (7z, 381 KB)</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>21/01/2009 - GLM 0.8.2 released</h3><div><p>
220 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.1.zip?download">GLM 0.8.2.1 (zip, 963 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.1.7z?download">GLM 0.8.2.1 (7z, 381 KB)</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>21/01/2009 - GLM 0.8.2 released</h3><div>Groove<p>
191221 This release only fixes bugs. Left sided swizzle operators, quaternion operators, vectors access operators for the main onces.
192 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.zip?download">GLM 0.8.2 (zip, 963 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.7z?download">GLM 0.8.2 (7z, 381 KB)</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>19/11/2008 - GLM current developments</h3><div><p>
222 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.zip?download">GLM 0.8.2 (zip, 963 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.7z?download">GLM 0.8.2 (7z, 381 KB)</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>19/11/2008 - GLM current developments</h3><div>Groove<p>
193223 Some artifacts have been added to the tracker to give a picture of what you could expect for the next releases.
194224 </p><p>
195225 If you need something else you can add some artifacts to the tracker. Any comment on added entries is welcome.
197227 Furthermore, no more release of GLM 0.7.x will be done. Please upgrade to GLM 0.8.1.
198228 </p><p>
199229 Finally, a pack of programmable oriented OpenGL samples using GLM is under development and planed to be release in December.
200 </p>Link: <a href="https://sourceforge.net/tracker2/?group_id=129808&amp;atid=1126032">Tracker</a><br /></div><br /></div><div><h3>30/10/2008 - GLM 0.8.1 released</h3><div><p>
230 </p>Link: <a href="https://sourceforge.net/tracker2/?group_id=129808&amp;atid=1126032">Tracker</a><br /></div><br /></div><div><h3>30/10/2008 - GLM 0.8.1 released</h3><div>Groove<p>
201231 GLM 0.8.1 is released. This new version mainly fixes 64 bit integers with GCC and various bugs.
202 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.1.zip?download">GLM 0.8.1 (zip, 938 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.1.7z?download">GLM 0.8.1 (7z, 372 KB)</a><br />Link: <a href="./glm-manual.pdf">GLM 0.8.1 Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>23/10/2008 - GLM 0.8.0 final released</h3><div><p>
232 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.1.zip?download">GLM 0.8.1 (zip, 938 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.1.7z?download">GLM 0.8.1 (7z, 372 KB)</a><br />Link: <a href="./glm-manual.pdf">GLM 0.8.1 Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>23/10/2008 - GLM 0.8.0 final released</h3><div>Groove<p>
203233 GLM 0.8.0 is released. This new version is now based on GLSL 1.30 specification which provided new functions and precision qualifiers.
204234 </p><p>
205235 Beyond this, lot of changes have been done to make GLM easier to use, easier to develop, more reliable, more conform to C++ ISO98 standard and GLSL specifications.
211241 On GLM extension side, the mechanism to use them has changed. The old [__]***GTX way doesn't exist anymore. Have a look on the manual for more information.
212242 </p><p>
213243 Have a look on the manual and the changelog for more information. Don't forget to send your <a href="./about.html">feedback</a> and enjoy!
214 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0.zip?download">GLM 0.8.0 (zip, 936 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0.7z?download">GLM 0.8.0 (7z, 370 KB)</a><br />Link: <a href="./glm-manual.pdf">GLM 0.8.0 Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="http://www.ozone3d.net/smf/index.php/topic,1682.0.html">Post a comment</a><br /></div><br /></div><div><h3>22/10/2008 - A Humus demo to feature GLM 0.8.0</h3><div><p>
244 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0.zip?download">GLM 0.8.0 (zip, 936 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0.7z?download">GLM 0.8.0 (7z, 370 KB)</a><br />Link: <a href="./glm-manual.pdf">GLM 0.8.0 Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="http://www.ozone3d.net/smf/index.php/topic,1682.0.html">Post a comment</a><br /></div><br /></div><div><h3>22/10/2008 - A Humus demo to feature GLM 0.8.0</h3><div>Groove<p>
215245 Ambient aperture lighting <a href="http://www.humus.name">Humus</a> demo have been updated to use GLM as math library.
216 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/AmbientApertureLighting.zip?download">Updated demo + all sources (zip, 2.38 MB)</a><br />Download: <a href="http://www.humus.name/3D/AmbientApertureLighting.zip">Original demo (zip, 1.40 MB)</a><br />Link: <a href="http://www.ozone3d.net/smf/index.php/topic,1681.0.html">Post a comment</a><br /></div><br /></div><div><h3>18/10/2008 - Webside updated</h3><div><p>
246 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/AmbientApertureLighting.zip?download">Updated demo + all sources (zip, 2.38 MB)</a><br />Download: <a href="http://www.humus.name/3D/AmbientApertureLighting.zip">Original demo (zip, 1.40 MB)</a><br />Link: <a href="http://www.ozone3d.net/smf/index.php/topic,1681.0.html">Post a comment</a><br /></div><br /></div><div><h3>18/10/2008 - Webside updated</h3><div>Groove<p>
217247 As you can see the website get a little update to prepare GLM 0.8.0 final release.
218248 </p><p>
219249 GLM 0.8.0 final should be release during the week.
220 </p></div><br /></div><div><h3>10/10/2008 - GLM 0.8.0 beta 3 released</h3><div><p>
250 </p></div><br /></div><div><h3>10/10/2008 - GLM 0.8.0 beta 3 released</h3><div>Groove<p>
221251 This release fixes some bugs and add few features though extensions. The development is now based on <a href="http://www.cmake.org">CMake</a> to make easier cross platform tests and project management.
222 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta3.zip?download">GLM 0.8.0 Beta 3 (zip, 819 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta3.7z?download">GLM 0.8.0 Beta 3 (7z, 345 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="http://www.ozone3d.net/smf/index.php/topic,1639.0.html">Post a comment</a><br /></div><br /></div><div><h3>04/10/2008 - GLM 0.8.0 beta 2 released</h3><div><p>
252 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta3.zip?download">GLM 0.8.0 Beta 3 (zip, 819 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta3.7z?download">GLM 0.8.0 Beta 3 (7z, 345 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="http://www.ozone3d.net/smf/index.php/topic,1639.0.html">Post a comment</a><br /></div><br /></div><div><h3>04/10/2008 - GLM 0.8.0 beta 2 released</h3><div>Groove<p>
223253 This release mainly improves half float vectors support. By default the low precission vectors are based on float numbers not on half numbers
224254 </p><p>
225255 It also provides new setup options. GLM_USE_ONLY_XYZW to disable multiple names to access to a single vector component. GLM_USE_ANONYMOUS_UNION to allow multiple component names on half vectors with Visual C++.
226256 </p><p>
227257 Various bugs and updates of extensions have been done too. Final release is coming...
228 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta2.zip?download">GLM 0.8.0 Beta 2 (zip, 798 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta2.7z?download">GLM 0.8.0 Beta 2 (7z, 327 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="http://www.ozone3d.net/smf/index.php/topic,1639.0.html">Post a comment</a><br /></div><br /></div><div><h3>26/09/2008 - GLM 0.8.0 beta 1 released</h3><div><p>
258 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta2.zip?download">GLM 0.8.0 Beta 2 (zip, 798 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta2.7z?download">GLM 0.8.0 Beta 2 (7z, 327 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="http://www.ozone3d.net/smf/index.php/topic,1639.0.html">Post a comment</a><br /></div><br /></div><div><h3>26/09/2008 - GLM 0.8.0 beta 1 released</h3><div>Groove<p>
229259 GLM have been updated to support GLSL 1.30. API documentation had significant improvements to make easier finding of GLSL functions and types.
230260 </p><p>
231261 GLM 0.8.x is NOT backward compatible with GLM 0.7.x. Upgrade to GLM 0.8.x could involve build errors for the following cases: A lot of improvements have been made to increase the conformance with GLSL specification. Lot of GLSL 1.30 features were already exposed in extensions that have been deleted. The extension syntaxe based on ARB convension is no long used.
232262 </p><p>
233263 Due to the number of changes GLM 0.8.0 is release as beta first. The final release is schedule for october.
234 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta1.zip?download">GLM 0.8.0 Beta 1 (zip, 786 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta1.7z?download">GLM 0.8.0 Beta 1 (7z, 321 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="http://www.ozone3d.net/smf/index.php/topic,1639.0.html">Post a comment</a><br /></div><br /></div><div><h3>08/08/2008 - GLM 0.7.6 released</h3><div><p>
264 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta1.zip?download">GLM 0.8.0 Beta 1 (zip, 786 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta1.7z?download">GLM 0.8.0 Beta 1 (7z, 321 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="http://www.ozone3d.net/smf/index.php/topic,1639.0.html">Post a comment</a><br /></div><br /></div><div><h3>08/08/2008 - GLM 0.7.6 released</h3><div>Groove<p>
235265 GLM 0.7.6 provides a better C++ conformance so that you can build GLM with &#8211;pedantic G++ parameter or without Visual Studio extensions. To make GLM more reliable, BOOST_STATIC_ASSERT are used according developer wishes.
236 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.6.zip?download">GLM 0.7.6 (zip, 907 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.6.7z?download">GLM 0.7.6 (7z, 387 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br /></div><br /></div><div><h3>05/07/2008 - GLM 0.7.5 released</h3><div><p>
266 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.6.zip?download">GLM 0.7.6 (zip, 907 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.6.7z?download">GLM 0.7.6 (7z, 387 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br /></div><br /></div><div><h3>05/07/2008 - GLM 0.7.5 released</h3><div>Groove<p>
237267 GLM 0.7.5 is available and introduces a new build messsage system to get information of GLM build configuration with Visual Studio. This mechanism is documented in section 6 of GLM manual. Also, GLM can be built with GCC pedantic options.
238 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.5.zip?download">GLM 0.7.5 (zip, 852 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.5.7z?download">GLM 0.7.5 (7z, 366 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br /></div><br /></div><div><h3>01/06/2008 - GLM 0.7.4 released</h3><div><p>
268 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.5.zip?download">GLM 0.7.5 (zip, 852 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.5.7z?download">GLM 0.7.5 (7z, 366 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br /></div><br /></div><div><h3>01/06/2008 - GLM 0.7.4 released</h3><div>Groove<p>
239269 GLM 0.7.4 introduces a new system to manage external dependencies.
240270 </p><p>
241271 It allows developing extension using external dependencies like GLEW, Boost, etc. without making required those dependencies for GLM programmer that doesn't need those external dependent extensions.
242272 </p><p>
243273 The mechanism is described into the updated manual.
244 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.4.zip?download">GLM 0.7.4 (zip, 859 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.4.7z?download">GLM 0.7.4 (7z, 372 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br /></div><br /></div><div><h3>24/05/2008 - GLM 0.7.3 released</h3><div><p>
274 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.4.zip?download">GLM 0.7.4 (zip, 859 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.4.7z?download">GLM 0.7.4 (7z, 372 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br /></div><br /></div><div><h3>24/05/2008 - GLM 0.7.3 released</h3><div>Groove<p>
245275 GLM 0.7.3 is released. This version fixes few bugs and add few extensions
246 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.3.zip?download">GLM 0.7.3 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.3.7z?download">GLM 0.7.3 (7z, 635 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>27/04/2008 - GLM 0.7.2 released</h3><div><p>
276 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.3.zip?download">GLM 0.7.3 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.3.7z?download">GLM 0.7.3 (7z, 635 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>27/04/2008 - GLM 0.7.2 released</h3><div>Groove<p>
247277 GLM 0.7.2 is released. The documentation have been completed again and several issues handle with precompiler options.
248278 </p><p>
249279 #define GLM_SWIZZLE GLM_SWIZZLE_FUNC allows to use swizzle operators with internal functions. For example, glm::vec3(1, 2, 3).zyx is replaced by glm::vec3(1, 2, 3)._zyx() with this option.
253283 #define GLM_AUTO_CAST GLM_DISABLE allows to disable automatic cast (eg: glLoadMatrixf(glm::mat4(1.0))) which could involve unfortunate issues in some cases.
254284 </p><p>
255285 More information on these topic are available in GLM manual section 5 "Known issues".
256 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.2.zip?download">GLM 0.7.2 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.2.7z?download">GLM 0.7.2 (7z, 635 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>24/03/2008 - GLM 0.7.1 released</h3><div><p>
286 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.2.zip?download">GLM 0.7.2 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.2.7z?download">GLM 0.7.2 (7z, 635 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>24/03/2008 - GLM 0.7.1 released</h3><div>Groove<p>
257287 GLM 0.7.1 is available under MIT license. It fixes bugs with GCC.
258 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.1.zip?download">GLM 0.7.1 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.1.7z?download">GLM 0.7.1 (7z, 635 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>22/03/2008 - GLM 0.7.0 released</h3><div><p>
288 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.1.zip?download">GLM 0.7.1 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.1.7z?download">GLM 0.7.1 (7z, 635 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>22/03/2008 - GLM 0.7.0 released</h3><div>Groove<p>
259289 GLM 0.7.0 is available under MIT license. LGPL lisence have been discard due to an issue of use for console development. This release contains a lot better documentation based on Doxygen. Lot of bugs have been fixed and the documentation completed. Thanks to all people that has contributed thought bug reports and ideas to make this version a lot better!
260 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.0.zip?download">GLM 0.7.0 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.0.7z?download">GLM 0.7.0 (7z, 635 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>10/12/2007 - GLM 0.6.4 released</h3><div><p>
290 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.0.zip?download">GLM 0.7.0 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.0.7z?download">GLM 0.7.0 (7z, 635 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>10/12/2007 - GLM 0.6.4 released</h3><div>Groove<p>
261291 GLM 0.6.4 is available and fixes some swizzle operator issues.
262 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.4.zip?download">GLM 0.6.4 (zip, 1.7 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.4.7z?download">GLM 0.6.4 (7z, 612 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>05/11/2007 - GLM 0.6.3 released</h3><div><p>
292 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.4.zip?download">GLM 0.6.4 (zip, 1.7 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.4.7z?download">GLM 0.6.4 (7z, 612 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>05/11/2007 - GLM 0.6.3 released</h3><div>Groove<p>
263293 GLM 0.6.3 fixes accesses of matrices and a 3DSMax SDK conflict.
264 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.3.zip?download">GLM 0.6.3 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.3.7z?download">GLM 0.6.3 (7z, 633 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>08/10/2007 - GLM 0.6.2 released</h3><div><p>
294 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.3.zip?download">GLM 0.6.3 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.3.7z?download">GLM 0.6.3 (7z, 633 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>08/10/2007 - GLM 0.6.2 released</h3><div>Groove<p>
265295 GLM 0.6.2 fixes an error on an extension.
266 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.2.zip?download">GLM 0.6.2 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.2.7z?download">GLM 0.6.2 (7z, 632 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>07/10/2007 - GLM 0.6.1 released</h3><div><p>
296 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.2.zip?download">GLM 0.6.2 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.2.7z?download">GLM 0.6.2 (7z, 632 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>07/10/2007 - GLM 0.6.1 released</h3><div>Groove<p>
267297 GLM 0.6.1 is a minor update that fix an issue on extension namespace and add two more extensions.
268 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.1.zip?download">GLM 0.6.1 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.1.7z?download">GLM 0.6.1 (7z, 632 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>16/09/2007 - GLM 0.6.0 released</h3><div><p>
298 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.1.zip?download">GLM 0.6.1 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.1.7z?download">GLM 0.6.1 (7z, 632 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>16/09/2007 - GLM 0.6.0 released</h3><div>Groove<p>
269299 GLM 0.6.0 is available. For this release, work focus on extensions. A new mecanisum allows to integrate GLM extensions as it is actually done for GLSL extension by vendors. Lot of new extensions have been added.
270 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.0.zip?download">GLM 0.6.0 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.0.7z?download">GLM 0.6.0 (7z, 666 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/raytrace-v1.0.exe?download">Raytracer v1.0 (exe)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/raytrace-v1.0.zip?download">Raytracer v1.0 (zip)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>19/02/2007 - GLM 0.5.1 released</h3><div><p>
300 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.0.zip?download">GLM 0.6.0 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.0.7z?download">GLM 0.6.0 (7z, 666 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/raytrace-v1.0.exe?download">Raytracer v1.0 (exe)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/raytrace-v1.0.zip?download">Raytracer v1.0 (zip)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><br /></div><div><h3>19/02/2007 - GLM 0.5.1 released</h3><div>Groove<p>
271301 This release fixes some issues with swizzle operators.
272 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.5.1.zip?download">GLM 0.5.1 (zip, 2.3 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.5.1.7z?download">GLM 0.5.1 (7z, 789 KB)</a><br /></div><br /></div><div><h3>26/01/2007 - Cattmull Clark subdivision sample</h3><div><p>
302 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.5.1.zip?download">GLM 0.5.1 (zip, 2.3 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.5.1.7z?download">GLM 0.5.1 (7z, 789 KB)</a><br /></div><br /></div><div><h3>26/01/2007 - Cattmull Clark subdivision sample</h3><div>Groove<p>
273303 A new sample is available. It's an update of Philip Rideout's Catmull Clark subdivision program that uses GLM. Released with pleasant permission of <a href="http://prideout.net">Philip Rideout</a>.
274 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/CatmullClark.zip?download">CatmullClark sample (zip, 605 KB)</a><br /></div><br /></div><div><h3>06/01/2007 - GLM 0.5.0 released</h3><div><p>
304 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/CatmullClark.zip?download">CatmullClark sample (zip, 605 KB)</a><br /></div><br /></div><div><h3>06/01/2007 - GLM 0.5.0 released</h3><div>Groove<p>
275305 This release include GLSL 1.2 new feature in the core implementation. Also, it includes swizzle read and write operators and a custom options system to setup GLM.
276306 </p><p>
277307 It includes some new extensions to extend GLSL features but they remain experimental. The next release should provide the first stable extensions.
279309 The GLM 0.5.0 packages contain some basic samples and some documentation. The ray tracer sample has been updated to GLM 0.5.0. Except for specific cases, especially with extensions, GLM 0.5 is backward compatible.
280310 </p><p>
281311 Now, GLM development is taking advantages of <a href="http://www.sf.net">SourceForge.net</a> services: a <a href="https://sourceforge.net/tracker/?group_id=129808&amp;atid=901445">bug tracker system</a> and the development source code is publicly available on <a href="https://svn.sourceforge.net/svnroot/glf">SF.net SVN server</a>.
282 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.5.0.zip?download">GLM 0.5.0 (zip, 2.4 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.5.0.7z?download">GLM 0.5.0 (7z, 843 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/raytrace-b3.0.exe?download">Raytracer b3.0 (exe, 751 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/raytrace-b3.0.zip?download">Raytracer b3.0 (zip, 1.1 MB)</a><br /></div><br /></div><div><h3>22/05/2006 - GLM 0.4.1 released</h3><div><p>
312 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.5.0.zip?download">GLM 0.5.0 (zip, 2.4 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.5.0.7z?download">GLM 0.5.0 (7z, 843 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/raytrace-b3.0.exe?download">Raytracer b3.0 (exe, 751 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/raytrace-b3.0.zip?download">Raytracer b3.0 (zip, 1.1 MB)</a><br /></div><br /></div><div><h3>22/05/2006 - GLM 0.4.1 released</h3><div>Groove<p>
283313 A GLM update is available. It simply includes some examples for a sweet start with GLM.
284314 </p><p>
285315 The examples show how to use GLM with OpenGL intermediate mode and OpenGL vertex arrays. Also, they show how to use GLM extensions to replace GLU and OpenGL function witch could slightly increase performances by decreasing the number of OpenGL states changes.
286 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.4.1.zip?download">GLM 0.4.1 (zip, 1.6 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.4.1.7z?download">GLM 0.4.1 (7z, 521 KB)</a><br /></div><br /></div><div><h3>17/05/2006 - GLM 0.4.0 released</h3><div><p>
316 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.4.1.zip?download">GLM 0.4.1 (zip, 1.6 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.4.1.7z?download">GLM 0.4.1 (7z, 521 KB)</a><br /></div><br /></div><div><h3>17/05/2006 - GLM 0.4.0 released</h3><div>Groove<p>
287317 This release introduces first GLSL 1.2 features as planed. Also, various new extensions have been added and updated. Finally, it's not anymore required to include windows.h before glm.h when windows.h is required.
288318 </p><p>
289319 The number of features of GLM, including extensions, start to really increase the compilation time. That's why it's recommended to use precompiled headers.
290 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.4.0.zip?download">GLM 0.4.0</a><br /></div><br /></div><div><h3>23/04/2006 - Roadmap for the years</h3><div><p>
320 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.4.0.zip?download">GLM 0.4.0</a><br /></div><br /></div><div><h3>23/04/2006 - Roadmap for the years</h3><div>Groove<p>
291321 Version 0.4 will complete matrices and vectors operators and will add GLSL 1.2 features. First, conversions simplifications will be integrated. Then, 4 per 3 matrices and outer product will be available from extensions. The transpose function is already available from extension.
292322 </p><p>
293323 Version 0.5 will integrate GLSL 1.2 features to GLM core.
294324 </p><p>
295325 Version 0.6 will add swizzle operators in reading and writing. (eg: vec3 v1(1.0, 2.0, 3.0); vec3 v2 = v1.xxx; v1.zyx = v;).
296 </p></div><br /></div><div><h3>22/04/2006 - GLM 0.3.2 released</h3><div><p>
326 </p></div><br /></div><div><h3>22/04/2006 - GLM 0.3.2 released</h3><div>Groove<p>
297327 This release corrects two main bugs. First, a bug of the imat4 and mat4 division operators and other correct the vectors components access from texture coordinate way.
298 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.3.2.zip?download">GLM 0.3.2</a><br /></div><br /></div><div><h3>28/03/2006 - GLM 0.3.1 released</h3><div><p>
328 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.3.2.zip?download">GLM 0.3.2</a><br /></div><br /></div><div><h3>28/03/2006 - GLM 0.3.1 released</h3><div>Groove<p>
299329 This update adds GCC 4.0 support for MacOS X and Linux and GCC 4.1 under Linux. Also, its provides some optimisations.
300330 </p><p>
301331 Further release will prodive GLSL 1.2 compliances.
302 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.3.1.zip?download">GLM 0.3.1</a><br /></div><br /></div><div><h3>19/02/2006 - GLM 0.3 released</h3><div><p>
332 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.3.1.zip?download">GLM 0.3.1</a><br /></div><br /></div><div><h3>19/02/2006 - GLM 0.3 released</h3><div>Groove<p>
303333 A new release of GLM is now available. It improves GLSL data type conversion and construction compliance. Also, It's adds extensions like some to manage double-precision and half-precision float numbers. Finally a Doxygen documentation has been added.
304334 </p><p>
305335 This new release have been tested under Visual C++ 7.1, Visual C++ 8.0, GCC 3.2.3 et GCC 3.4.2.
306 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.3.zip?download">GLM 0.3</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/raytrace-b2.0.zip?download">Raytrace</a><br />Documentation: <a href="../html/index.html">Online documentation</a><br /></div><br /></div><div><h3>06/05/2005 - GLM 0.2 released</h3><div><p>
336 </p>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.3.zip?download">GLM 0.3</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/raytrace-b2.0.zip?download">Raytrace</a><br />Documentation: <a href="../html/index.html">Online documentation</a><br /></div><br /></div><div><h3>06/05/2005 - GLM 0.2 released</h3><div>Groove<p>
307337 A new release of GLM is now available. A few bugs have been fixed, the portability of GLSL into C++ has been improved, and new experimental extensions have been implemented, enhancing GLSL features.
308338 </p><p>
309339 Project now supports quaternions, adds new features to handle colors, vectors and matrices. For example, GLM allows base colors changing, vector projected operations, and 2D/3D transforms.
310340 </p><p>
311341 To demo the features of this new version, a sample program is included. It is a simple Ray Tracer supporting reflected and refracted rays, three lights types (point, directionnal and spot), two objects types (sphere, plan), using all of the GLM possibilities.
312 </p></div><br /></div><div><h3>04/05/2005 - English pages</h3><div><p>
342 </p></div><br /></div><div><h3>04/05/2005 - English pages</h3><div>Groove<p>
313343 The english section of this site is now available.
314 </p></div><br /></div><div><h3>21/02/2005 - GLM 0.1 is available</h3><div><p>
344 </p></div><br /></div><div><h3>21/02/2005 - GLM 0.1 is available</h3><div>Groove<p>
315345 This is the first public availability of GLM. This library supports part of GLSL specifications : All vectors and matrices types, and all the operators and associated functions.
316346 </p><p>
317347 For now, there isn't detailed documentation, but you can freely have a look on GLSL specifications. Consider any incoherence with GLM as an error. Keep in mind the library is included in the namespace "glm".
3030 # This could be handy for archiving the generated documentation or
3131 # if some version control system is used.
3232
33 PROJECT_NUMBER = 0.9.1
33 PROJECT_NUMBER = 0.9.2
3434
3535 # Using the PROJECT_BRIEF tag one can provide an optional one line description
3636 # for a project that appears at the top of each page and should give viewer
99 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 context that requires a simple and convenient mathematics library.
1010
1111 GLM is written as a platform independent library with no dependence and officially supports the following compilers:
12 1. Clang 2.0 and higher
12 1. Clang 2.0 and higher
1313 2. CUDA 3.0 and higher
1414 3. GCC 3.4 and higher
1515 4. LLVM 2.3 through GCC 4.2 front-end and higher
22 <glm copyright="Copyright © 2005 - 2011">
33 <downloads>
44 <section name="GLM - zip files">
5 <download name="GLM 0.9.2.0" date="08/05/2010" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.0/glm-0.9.2.0.zip/download"/>
6 <download name="GLM 0.9.1.3" date="07/05/2010" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.3/glm-0.9.1.3.zip/download"/>
7 <download name="GLM 0.9.1.2" date="12/04/2010" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.2/glm-0.9.1.2.zip/download"/>
8 <download name="GLM 0.9.1.1" date="17/03/2010" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.1/glm-0.9.1.1.zip/download"/>
9 <download name="GLM 0.9.1.0" date="03/03/2010" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.0/glm-0.9.1.0.zip/download"/>
10 <download name="GLM 0.9.1.B" date="13/02/2010" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.B/glm-0.9.1.B.zip/download"/>
11 <download name="GLM 0.9.0.8" date="13/02/2010" size="3.3 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.8/glm-0.9.0.8.zip/download"/>
12 <download name="GLM 0.9.1.A" date="31/01/2010" size="3.0 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.A/glm-0.9.1.A.zip/download"/>
13 <download name="GLM 0.9.0.7" date="30/01/2010" size="1.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.7/glm-0.9.0.7.zip/download"/>
5 <download name="GLM 0.9.2.6" date="01/10/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.6/glm-0.9.2.6.zip/download"/>
6 <download name="GLM 0.9.2.5" date="20/09/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.5/glm-0.9.2.5.zip/download"/>
7 <download name="GLM 0.9.2.4" date="03/09/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.4/glm-0.9.2.4.zip/download"/>
8 <download name="GLM 0.9.2.3" date="08/06/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.3/glm-0.9.2.3.zip/download"/>
9 <download name="GLM 0.9.2.2" date="02/06/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.2/glm-0.9.2.2.zip/download"/>
10 <download name="GLM 0.9.2.1" date="24/05/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.1/glm-0.9.2.1.zip/download"/>
11 <download name="GLM 0.9.2.0" date="08/05/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.0/glm-0.9.2.0.zip/download"/>
12 <download name="GLM 0.9.1.3" date="07/05/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.3/glm-0.9.1.3.zip/download"/>
13 <download name="GLM 0.9.1.2" date="12/04/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.2/glm-0.9.1.2.zip/download"/>
14 <download name="GLM 0.9.1.1" date="17/03/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.1/glm-0.9.1.1.zip/download"/>
15 <download name="GLM 0.9.1.0" date="03/03/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.0/glm-0.9.1.0.zip/download"/>
16 <download name="GLM 0.9.1.B" date="13/02/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.B/glm-0.9.1.B.zip/download"/>
17 <download name="GLM 0.9.0.8" date="13/02/2011" size="3.3 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.8/glm-0.9.0.8.zip/download"/>
18 <download name="GLM 0.9.1.A" date="31/01/2011" size="3.0 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.A/glm-0.9.1.A.zip/download"/>
19 <download name="GLM 0.9.0.7" date="30/01/2011" size="1.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.7/glm-0.9.0.7.zip/download"/>
1420 <download name="GLM 0.9.0.6" date="21/12/2010" size="2.2 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.6/glm-0.9.0.6.zip/download"/>
1521 <download name="GLM 0.9.0.5" date="01/11/2010" size="2.2 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.5/glm-0.9.0.5.zip/download"/>
1622 <download name="GLM 0.9.0.4" date="04/10/2010" size="1.5 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.4/glm-0.9.0.4.zip/download"/>
6268 <download name="GLM 0.1.0.0" date="02/21/2005" size="29.2 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.1-ur.zip?download"/>
6369 </section>
6470 <section name="GLM - 7z files">
65 <download name="GLM 0.9.2.0" date="08/05/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.0/glm-0.9.2.0.7z/download"/>
71 <download name="GLM 0.9.2.6" date="01/10/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.6/glm-0.9.2.6.7z/download"/>
72 <download name="GLM 0.9.2.5" date="20/09/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.5/glm-0.9.2.5.7z/download"/>
73 <download name="GLM 0.9.2.4" date="03/09/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.4/glm-0.9.2.4.7z/download"/>
74 <download name="GLM 0.9.2.3" date="08/06/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.3/glm-0.9.2.3.7z/download"/>
75 <download name="GLM 0.9.2.2" date="02/06/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.2/glm-0.9.2.2.7z/download"/>
76 <download name="GLM 0.9.2.1" date="24/05/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.1/glm-0.9.2.1.7z/download"/>
77 <download name="GLM 0.9.2.0" date="08/05/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.0/glm-0.9.2.0.7z/download"/>
6678 <download name="GLM 0.9.1.3" date="07/05/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.3/glm-0.9.1.3.7z/download"/>
6779 <download name="GLM 0.9.1.2" date="12/04/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.2/glm-0.9.1.2.7z/download"/>
6880 <download name="GLM 0.9.1.1" date="17/03/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.1/glm-0.9.1.1.7z/download"/>
69 <download name="GLM 0.9.1.0" date="03/03/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.0/glm-0.9.1.0.7z/download"/>
81 <download name="GLM 0.9.1.0" date="03/03/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.0/glm-0.9.1.0.7z/download"/>
7082 <download name="GLM 0.9.1.B" date="13/02/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.B/glm-0.9.1.B.7z/download"/>
7183 <download name="GLM 0.9.0.8" date="13/02/2011" size="1.9 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.8/glm-0.9.0.8.7z/download"/>
7284 <download name="GLM 0.9.1.A" date="31/01/2011" size="2.0 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.A/glm-0.9.1.A.7z/download"/>
149161 </todo>
150162
151163 <page_news>
164 <news index="0071" date="01/10/2011" title="GLM 0.9.2.6 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
165 <paragraph>
166 Half based vector types have been fixed on GCC 4.4 and below, missing l-value swizzle operations added and a couple of other bugs squeezed down.
167 </paragraph>
168 <paragraph>
169 Finally, all the Visual C++ /W4 warnings should have been removed. However, for this to happen, it is required to build with the Visual C++ language extension disabled (/Za).
170 </paragraph>
171
172 <source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.6/glm-0.9.2.6.zip/download">GLM 0.9.2.6 (zip)</source>
173 <source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.6/glm-0.9.2.6.7z/download">GLM 0.9.2.6 (7z)</source>
174 <source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
175 </news>
176
177 <news index="0070" date="20/09/2011" title="GLM 0.9.2.5 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
178 <paragraph>
179 This update fixes some major core issues including the implementation of round, floatBitToXint, pack and unpack functions.
180 </paragraph>
181
182 <source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.5/glm-0.9.2.5.zip/download">GLM 0.9.2.5 (zip)</source>
183 <source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.5/glm-0.9.2.5.7z/download">GLM 0.9.2.5 (7z)</source>
184 <source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
185 </news>
186
187 <news index="0069" date="03/09/2011" title="GLM 0.9.2.4 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
188 <paragraph>
189 Fixed bugs and warnings reported by GLM users. Thanks!
190 </paragraph>
191
192 <source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.4/glm-0.9.2.4.zip/download">GLM 0.9.2.4 (zip)</source>
193 <source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.4/glm-0.9.2.4.7z/download">GLM 0.9.2.4 (7z)</source>
194 <source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
195 </news>
196
197 <news index="0068" date="08/06/2011" title="GLM 0.9.2.3 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
198 <paragraph>
199 This version only fixes a couple of major bugs introduced in GLM 0.9.2.2.
200 </paragraph>
201
202 <source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.3/glm-0.9.2.3.zip/download">GLM 0.9.2.3 (zip)</source>
203 <source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.3/glm-0.9.2.3.7z/download">GLM 0.9.2.3 (7z)</source>
204 <source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
205 </news>
206
207 <news index="0067" date="02/06/2011" title="GLM 0.9.2.2 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
208 <paragraph>
209 The main improvement of this version comes from the extended number of matrix constructors so that a programmer can used different scalar types for each parameter.
210 </paragraph>
211 <code>
212 <line>
213 <keyword>#include </keyword>
214 <string>&lt;glm/glm.hpp&gt;</string>
215 </line>
216 <line>
217
218 </line>
219 <line>
220 <comment>// Create an identity matrix</comment>
221 </line>
222 <line>
223 glm::mat3 m(
224 </line>
225 <line align="32px">
226 1, 0.0, 0,
227 </line>
228 <line align="32px">
229 0.0, 1.0, 0.0f,
230 </line>
231 <line align="32px">
232 0, 0.0, 1.0f);
233 </line>
234 </code>
235 <paragraph>
236 The quaternion implementation has been updated as well, fixing the various slerp implementation flavours (mix, shortMix and fastMix) and providing more completeness: Added interaction with GLM_GTX_epsilon and missing lowp_quat, mediump_quat and highp_quat but also none square matrix equivalents.
237 </paragraph>
238 <paragraph>
239 Finally, some efforts have been put to remove warnings across all supported compilers.
240 </paragraph>
241
242 <source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.2/glm-0.9.2.2.zip/download">GLM 0.9.2.2 (zip)</source>
243 <source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.2/glm-0.9.2.2.7z/download">GLM 0.9.2.2 (7z)</source>
244 <source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
245 </news>
246
247 <news index="0066" date="24/05/2011" title="GLM 0.9.2.1 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
248 <paragraph>
249 GLM 0.9.2.1 significantly improves compiler detection which allows CUDA to be automatically recognized when GLM is used inside a CUDA kernel.
250 By conscequence, <codeword>GLM_FORCE_CUDA</codeword> is no longer required to be declared.
251 </paragraph>
252 <paragraph>
253 It fixed a couple of bugs, including Visual C++ supprot when Visual C++ extensions are disabled and fixed implementations of GLM_GTX_vector_angle and GLM_GTX_rotate_vector extensions.
254 </paragraph>
255
256 <source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.1/glm-0.9.2.1.zip/download">GLM 0.9.2.1 (zip)</source>
257 <source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.1/glm-0.9.2.1.7z/download">GLM 0.9.2.1 (7z)</source>
258 <source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
259 </news>
260
152261 <news index="0065" date="09/05/2011" title="GLM 0.9.2.0 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
153262 <paragraph>
154263 GLM 0.9.2.0 provides many exciting features which first of all is the CUDA copiler support so that GLM can be used within a CUDA kernel. This is possible only by defining GLM_FORCE_CUDA before including glm/glm.hpp in the CUDA Kernel source code.
15341643 This library works perfectly with OpenGL but it also ensures interoperability with other 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.
15351644 </paragraph>
15361645 <list name="GLM is written as a platform independent library with no dependence and officially supports the following compilers:">
1537 <list-element><link href="http://http://gcc.gnu.org/">GCC</link> 3.4 and higher</list-element>
1646 <list-element><link href="http://clang.llvm.org">Clang</link> 2.0 and higher</list-element>
1647 <list-element>
1648 <link href="http://developer.nvidia.com/category/zone/cuda-zone">CUDA</link> 3.0 and higher
1649 </list-element>
1650 <list-element><link href="http://gcc.gnu.org/">GCC</link> 3.4 and higher</list-element>
15381651 <list-element><link href="http://llvm.org/">LLVM</link> 2.3 through GCC 4.2 front-end and higher</list-element>
15391652 <list-element><link href="http://msdn.microsoft.com/en-us/visualc/default">Visual C++</link> 2005 and higher</list-element>
15401653 <list-element>Any C++ compiler following C++98 norm</list-element>
15491662 </about-long>
15501663
15511664 <about-short>
1552 <element>GLSL + Optional features = OpenGL Mathematics (GLM).</element>
1553 <element>A C++ mathematics library for 3D graphics.</element>
1665 <element>GLSL + Optional features = OpenGL Mathematics (GLM)</element>
1666 <element>A C++ mathematics library for graphics programming</element>
15541667 </about-short>
15551668
15561669 <goodies>
5959 <xsl:value-of select="./@title" />
6060 </h3>
6161 <div>
62 <xsl:apply-templates select="./paragraph" />
63 <xsl:apply-templates select="./list" />
64 <xsl:apply-templates select="./code" />
65 <xsl:apply-templates select="./source" />
62 <xsl:apply-templates />
6663 </div>
6764 <br />
6865 </div>
170170 </xsl:template>
171171
172172 <xsl:template match="code">
173 <xsl:choose>
174 <xsl:when test="./@href">
175 <span xmlns="http://www.w3.org/1999/xhtml" class="code-title">
176 <a href="{./@href}">
177 <xsl:value-of select="./@author" />
178 </a>
179 </span>
180 </xsl:when>
181 <xsl:otherwise>
182 <span xmlns="http://www.w3.org/1999/xhtml" class="code-title">
183 <xsl:value-of select="./@title" />
184 </span>
185 </xsl:otherwise>
186 </xsl:choose>
173 <xsl:if test="./@title">
174 <xsl:choose>
175 <xsl:when test="./@href">
176 <span xmlns="http://www.w3.org/1999/xhtml" class="code-title">
177 <a href="{./@href}">
178 <xsl:value-of select="./@title" />
179 </a>
180 </span>
181 </xsl:when>
182 <xsl:otherwise>
183 <span xmlns="http://www.w3.org/1999/xhtml" class="code-title">
184 <xsl:value-of select="./@title" />
185 </span>
186 </xsl:otherwise>
187 </xsl:choose>
188 </xsl:if>
187189 <ul xmlns="http://www.w3.org/1999/xhtml" class="code-list">
188190 <xsl:apply-templates select="./line" />
189191 </ul>
1717 {
1818 class thalf;
1919
20 #if(__STDC_VERSION__ >= 199901L) // C99 detected, 64 bit types available
20 #if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available
2121 typedef int64_t sint64;
2222 typedef uint64_t uint64;
2323 #elif(GLM_COMPILER & GLM_COMPILER_VC)
2424 typedef signed __int64 sint64;
2525 typedef unsigned __int64 uint64;
26 #elif(GLM_COMPILER & GLM_COMPILER_GCC)
26 #elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC | GLM_COMPILER_CLANG))
2727 __extension__ typedef signed long long sint64;
2828 __extension__ typedef unsigned long long uint64;
2929 #elif(GLM_COMPILER & GLM_COMPILER_BC)
3030 typedef Int64 sint64;
3131 typedef Uint64 uint64;
3232 #else//unknown compiler
33 typedef signed long sint64;
34 typedef unsigned long uint64;
33 typedef signed long long sint64;
34 typedef unsigned long long uint64;
3535 #endif//GLM_COMPILER
3636
3737 template<bool C>
331331 # define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct
332332 # define GLM_RESTRICT __declspec(restrict)
333333 # define GLM_RESTRICT_VAR __restrict
334 #elif((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC31))
334 #elif((GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC)) && (GLM_COMPILER >= GLM_COMPILER_GCC31))
335335 # define GLM_DEPRECATED __attribute__((__deprecated__))
336336 # define GLM_ALIGN(x) __attribute__((aligned(x)))
337337 # define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))
+0
-20
glm/core/_swizzle.inl less more
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2006-04-27
4 // Updated : 2006-04-27
5 // Licence : This source is under MIT License
6 // File : _swizzle.inl
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #ifndef __swizzle_inl__
10 #define __swizzle_inl__
11
12 #include "./_swizzle.h"
13
14 namespace glm
15 {
16
17 }
18
19 #endif//__swizzle_inl__
1313
1414 namespace glm
1515 {
16 namespace test{
17 void main_core_func_common();
18 }//namespace test
19
2016 namespace core{
2117 namespace function{
22 //! Define common functions from Section 8.3 of GLSL 1.30.8 specification. Included in glm namespace.
23 namespace common{
18 namespace common{ //!< Define common functions from Section 8.3 of GLSL 1.30.8 specification. Included in glm namespace.
2419
2520 /// \addtogroup core_funcs
26 ///@{
21 /// @{
2722
2823 //! Returns x if x >= 0; otherwise, it returns -x.
2924 //!
329324 genType ldexp(genType const & x, genIType const & exp);
330325
331326 ///@}
332
333327 }//namespace common
334328 }//namespace function
335329 }//namespace core
224224 {
225225 GLM_STATIC_ASSERT(detail::type<genType>::is_float, "'round' only accept floating-point inputs");
226226
227 return genType(int(x + genType(0.5)));
227 if(x < 0)
228 return genType(int(x - genType(0.5)));
229 return genType(int(x + genType(0.5)));
228230 }
229231
230232 template <typename valType>
935937 {
936938 GLM_STATIC_ASSERT(detail::type<genType>::is_float, "'mix' only accept floating-point inputs");
937939
938 return a ? x : y;
940 return a ? y : x;
939941 }
940942
941943 template <typename T>
956958 ++i
957959 )
958960 {
959 result[i] = a[i] ? x[i] : y[i];
961 result[i] = a[i] ? y[i] : x[i];
960962 }
961963 return result;
962964 }
979981 ++i
980982 )
981983 {
982 result[i] = a[i] ? x[i] : y[i];
984 result[i] = a[i] ? y[i] : x[i];
983985 }
984986 return result;
985987 }
10021004 ++i
10031005 )
10041006 {
1005 result[i] = a[i] ? x[i] : y[i];
1007 result[i] = a[i] ? y[i] : x[i];
10061008 }
10071009 return result;
10081010 }
13111313 return fi.i;
13121314 }
13131315
1314 template <typename T>
13151316 GLM_FUNC_QUALIFIER detail::tvec2<int> floatBitsToInt
13161317 (
1317 detail::tvec2<T> const & value
1318 )
1319 {
1320 return detail::tvec2<T>(
1318 detail::tvec2<float> const & value
1319 )
1320 {
1321 return detail::tvec2<int>(
13211322 floatBitsToInt(value.x),
13221323 floatBitsToInt(value.y));
13231324 }
13241325
1325 template <typename T>
13261326 GLM_FUNC_QUALIFIER detail::tvec3<int> floatBitsToInt
13271327 (
1328 detail::tvec3<T> const & value
1329 )
1330 {
1331 return detail::tvec3<T>(
1328 detail::tvec3<float> const & value
1329 )
1330 {
1331 return detail::tvec3<int>(
13321332 floatBitsToInt(value.x),
1333 floatBitsToInt(value.y));
1334 }
1335
1336 template <typename T>
1337 GLM_FUNC_QUALIFIER detail::tvec4<int> floatBitsToInt
1338 (
1339 detail::tvec4<T> const & value
1340 )
1341 {
1342 return detail::tvec4<T>(
1333 floatBitsToInt(value.y),
1334 floatBitsToInt(value.z));
1335 }
1336
1337 GLM_FUNC_QUALIFIER detail::tvec4<int> floatBitsToInt
1338 (
1339 detail::tvec4<float> const & value
1340 )
1341 {
1342 return detail::tvec4<int>(
13431343 floatBitsToInt(value.x),
1344 floatBitsToInt(value.y));
1344 floatBitsToInt(value.y),
1345 floatBitsToInt(value.z),
1346 floatBitsToInt(value.w));
13451347 }
13461348
13471349 GLM_FUNC_QUALIFIER uint floatBitsToUint(float const & value)
13561358 return fu.u;
13571359 }
13581360
1359 template <typename T>
13601361 GLM_FUNC_QUALIFIER detail::tvec2<uint> floatBitsToUint
13611362 (
1362 detail::tvec2<T> const & value
1363 )
1364 {
1365 return detail::tvec2<T>(
1363 detail::tvec2<float> const & value
1364 )
1365 {
1366 return detail::tvec2<uint>(
13661367 floatBitsToUint(value.x),
13671368 floatBitsToUint(value.y));
13681369 }
13691370
1370 template <typename T>
13711371 GLM_FUNC_QUALIFIER detail::tvec3<uint> floatBitsToUint
13721372 (
1373 detail::tvec3<T> const & value
1374 )
1375 {
1376 return detail::tvec3<T>(
1373 detail::tvec3<float> const & value
1374 )
1375 {
1376 return detail::tvec3<uint>(
13771377 floatBitsToUint(value.x),
1378 floatBitsToUint(value.y));
1379 }
1380
1381 template <typename T>
1378 floatBitsToUint(value.y),
1379 floatBitsToUint(value.z));
1380 }
1381
13821382 GLM_FUNC_QUALIFIER detail::tvec4<uint> floatBitsToUint
13831383 (
1384 detail::tvec4<T> const & value
1385 )
1386 {
1387 return detail::tvec4<T>(
1384 detail::tvec4<float> const & value
1385 )
1386 {
1387 return detail::tvec4<uint>(
13881388 floatBitsToUint(value.x),
1389 floatBitsToUint(value.y));
1389 floatBitsToUint(value.y),
1390 floatBitsToUint(value.z),
1391 floatBitsToUint(value.w));
13901392 }
13911393
13921394 GLM_FUNC_QUALIFIER float intBitsToFloat(int const & value)
14011403 return fi.f;
14021404 }
14031405
1404 template <typename T>
14051406 GLM_FUNC_QUALIFIER detail::tvec2<float> intBitsToFloat
14061407 (
1407 detail::tvec2<T> const & value
1408 )
1409 {
1410 return detail::tvec2<T>(
1408 detail::tvec2<int> const & value
1409 )
1410 {
1411 return detail::tvec2<float>(
14111412 intBitsToFloat(value.x),
14121413 intBitsToFloat(value.y));
14131414 }
14141415
1415 template <typename T>
14161416 GLM_FUNC_QUALIFIER detail::tvec3<float> intBitsToFloat
14171417 (
1418 detail::tvec3<T> const & value
1419 )
1420 {
1421 return detail::tvec3<T>(
1418 detail::tvec3<int> const & value
1419 )
1420 {
1421 return detail::tvec3<float>(
14221422 intBitsToFloat(value.x),
1423 intBitsToFloat(value.y));
1424 }
1425
1426 template <typename T>
1423 intBitsToFloat(value.y),
1424 intBitsToFloat(value.z));
1425 }
1426
14271427 GLM_FUNC_QUALIFIER detail::tvec4<float> intBitsToFloat
14281428 (
1429 detail::tvec4<T> const & value
1430 )
1431 {
1432 return detail::tvec4<T>(
1429 detail::tvec4<int> const & value
1430 )
1431 {
1432 return detail::tvec4<float>(
14331433 intBitsToFloat(value.x),
1434 intBitsToFloat(value.y));
1434 intBitsToFloat(value.y),
1435 intBitsToFloat(value.z),
1436 intBitsToFloat(value.w));
14351437 }
14361438
14371439 GLM_FUNC_QUALIFIER float uintBitsToFloat(uint const & value)
14461448 return fu.f;
14471449 }
14481450
1449 template <typename T>
14501451 GLM_FUNC_QUALIFIER detail::tvec2<float> uintBitsToFloat
14511452 (
1452 detail::tvec2<T> const & value
1453 )
1454 {
1455 return detail::tvec2<T>(
1453 detail::tvec2<uint> const & value
1454 )
1455 {
1456 return detail::tvec2<float>(
14561457 uintBitsToFloat(value.x),
14571458 uintBitsToFloat(value.y));
14581459 }
14591460
1460 template <typename T>
14611461 GLM_FUNC_QUALIFIER detail::tvec3<float> uintBitsToFloat
14621462 (
1463 detail::tvec3<T> const & value
1464 )
1465 {
1466 return detail::tvec3<T>(
1463 detail::tvec3<uint> const & value
1464 )
1465 {
1466 return detail::tvec3<float>(
14671467 uintBitsToFloat(value.x),
1468 uintBitsToFloat(value.y));
1469 }
1470
1471 template <typename T>
1468 uintBitsToFloat(value.y),
1469 uintBitsToFloat(value.z));
1470 }
1471
14721472 GLM_FUNC_QUALIFIER detail::tvec4<float> uintBitsToFloat
14731473 (
1474 detail::tvec4<T> const & value
1475 )
1476 {
1477 return detail::tvec4<T>(
1474 detail::tvec4<uint> const & value
1475 )
1476 {
1477 return detail::tvec4<float>(
14781478 uintBitsToFloat(value.x),
1479 uintBitsToFloat(value.y));
1479 uintBitsToFloat(value.y),
1480 uintBitsToFloat(value.z),
1481 uintBitsToFloat(value.w));
14801482 }
14811483
14821484 template <typename genType>
1111
1212 namespace glm
1313 {
14 namespace test{
15 void main_core_func_exponential();
16 }//namespace test
17
1814 namespace core{
1915 namespace function{
2016 //! Define all exponential functions from Section 8.2 of GLSL 1.30.8 specification. Included in glm namespace.
1111
1212 namespace glm
1313 {
14 namespace test{
15 void main_core_func_geometric();
16 }//namespace test
17
1814 namespace core{
1915 namespace function{
20 //! Define all geometric functions from Section 8.4 of GLSL 1.30.8 specification. Included in glm namespace.
21 namespace geometric{
16 namespace geometric{ //!< Define all geometric functions from Section 8.4 of GLSL 1.30.8 specification. Included in glm namespace.
2217
2318 /// \addtogroup core_funcs
2419 ///@{
1111
1212 namespace glm
1313 {
14 namespace test{
15 void main_core_func_integer();
16 }//namespace test
17
1814 namespace core{
1915 namespace function{
2016 //! Define integer functions from Section 8.8 of GLSL 4.00.8 specification.
284284 )
285285 {
286286 return detail::tvec2<T>(
287 bitfieldExtract(Value[0]),
288 bitfieldExtract(Value[1]));
287 bitfieldExtract(Value[0], Offset, Bits),
288 bitfieldExtract(Value[1], Offset, Bits));
289289 }
290290
291291 template <typename T>
297297 )
298298 {
299299 return detail::tvec3<T>(
300 bitfieldExtract(Value[0]),
301 bitfieldExtract(Value[1]),
302 bitfieldExtract(Value[2]));
300 bitfieldExtract(Value[0], Offset, Bits),
301 bitfieldExtract(Value[1], Offset, Bits),
302 bitfieldExtract(Value[2], Offset, Bits));
303303 }
304304
305305 template <typename T>
311311 )
312312 {
313313 return detail::tvec4<T>(
314 bitfieldExtract(Value[0]),
315 bitfieldExtract(Value[1]),
316 bitfieldExtract(Value[2]),
317 bitfieldExtract(Value[3]));
314 bitfieldExtract(Value[0], Offset, Bits),
315 bitfieldExtract(Value[1], Offset, Bits),
316 bitfieldExtract(Value[2], Offset, Bits),
317 bitfieldExtract(Value[3], Offset, Bits));
318318 }
319319
320320 // bitfieldInsert
1111
1212 namespace glm
1313 {
14 namespace test{
15 void main_core_func_matrix();
16 }//namespace test
17
1814 namespace core{
1915 namespace function{
2016 //! Define all matrix functions from Section 8.5 of GLSL 1.30.8 specification. Included in glm namespace.
1111
1212 namespace glm
1313 {
14 namespace test{
15 void main_core_func_noise();
16 }//namespace test
17
1814 namespace core{
1915 namespace function{
2016 // Define all noise functions from Section 8.9 of GLSL 1.30.8 specification. Included in glm namespace.
1111
1212 namespace glm
1313 {
14 namespace test{
15 void main_core_func_packing();
16 }//namespace test
17
1814 namespace core{
1915 namespace function{
2016 //! Define packing functions from section 8.4 floating-point pack and unpack functions of GLSL 4.00.8 specification
66 // File : glm/core/func_packing.inl
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
88
9 namespace glm
9 namespace glm{
10 namespace core{
11 namespace function{
12 namespace packing{
13
14 GLM_FUNC_QUALIFIER detail::uint32 packUnorm2x16(detail::tvec2<detail::float32> const & v)
1015 {
11 namespace detail
16 detail::uint16 A(detail::uint16(round(clamp(v.x, 0.0f, 1.0f) * 65535.0f)));
17 detail::uint16 B(detail::uint16(round(clamp(v.y, 0.0f, 1.0f) * 65535.0f)));
18 return detail::uint32((B << 16) | A);
19 }
20
21 GLM_FUNC_QUALIFIER detail::tvec2<detail::float32> unpackUnorm2x16(detail::uint32 const & p)
22 {
23 detail::uint32 Mask16((1 << 16) - 1);
24 detail::uint32 A((p >> 0) & Mask16);
25 detail::uint32 B((p >> 16) & Mask16);
26 return detail::tvec2<detail::float32>(
27 A * 1.0f / 65535.0f,
28 B * 1.0f / 65535.0f);
29 }
30
31 GLM_FUNC_QUALIFIER detail::uint32 packSnorm2x16(detail::tvec2<detail::float32> const & v)
32 {
33 union iu
1234 {
35 detail::int16 i;
36 detail::uint16 u;
37 } A, B;
1338
14 }//namespace detail
39 detail::tvec2<detail::float32> Unpack = clamp(v ,-1.0f, 1.0f) * 32767.0f;
40 A.i = detail::int16(round(Unpack.x));
41 B.i = detail::int16(round(Unpack.y));
42 detail::uint32 Pack = (detail::uint32(B.u) << 16) | (detail::uint32(A.u) << 0);
43 return Pack;
44 }
1545
16 namespace core{
17 namespace function{
18 namespace packing
46 GLM_FUNC_QUALIFIER detail::tvec2<detail::float32> unpackSnorm2x16(detail::uint32 const & p)
47 {
48 union iu
1949 {
20 GLM_FUNC_QUALIFIER detail::uint32 packUnorm2x16(detail::tvec2<detail::float32> const & v)
21 {
22 detail::uint16 A((detail::uint16)round(clamp(v.x, 0.0f, 1.0f) * 65535.0f));
23 detail::uint16 B((detail::uint16)round(clamp(v.y, 0.0f, 1.0f) * 65535.0f));
24 return detail::uint32((B << 16) | A);
25 }
50 detail::int16 i;
51 detail::uint16 u;
52 } A, B;
53
54 detail::uint32 Mask16((1 << 16) - 1);
55 A.u = detail::uint16((p >> 0) & Mask16);
56 B.u = detail::uint16((p >> 16) & Mask16);
57 detail::tvec2<detail::float32> Pack(A.i, B.i);
58
59 return clamp(Pack * 1.0f / 32767.0f, -1.0f, 1.0f);
60 }
2661
27 GLM_FUNC_QUALIFIER detail::uint32 packUnorm4x8(detail::tvec4<detail::float32> const & v)
28 {
29 detail::uint8 A((detail::uint8)round(clamp(v.x, 0.0f, 1.0f) * 255.0f));
30 detail::uint8 B((detail::uint8)round(clamp(v.y, 0.0f, 1.0f) * 255.0f));
31 detail::uint8 C((detail::uint8)round(clamp(v.z, 0.0f, 1.0f) * 255.0f));
32 detail::uint8 D((detail::uint8)round(clamp(v.w, 0.0f, 1.0f) * 255.0f));
33 return detail::uint32((D << 24) | (C << 16) | (B << 8) | A);
34 }
62 GLM_FUNC_QUALIFIER detail::uint32 packUnorm4x8(detail::tvec4<detail::float32> const & v)
63 {
64 detail::uint8 A((detail::uint8)round(clamp(v.x, 0.0f, 1.0f) * 255.0f));
65 detail::uint8 B((detail::uint8)round(clamp(v.y, 0.0f, 1.0f) * 255.0f));
66 detail::uint8 C((detail::uint8)round(clamp(v.z, 0.0f, 1.0f) * 255.0f));
67 detail::uint8 D((detail::uint8)round(clamp(v.w, 0.0f, 1.0f) * 255.0f));
68 return detail::uint32((D << 24) | (C << 16) | (B << 8) | A);
69 }
3570
36 GLM_FUNC_QUALIFIER detail::uint32 packSnorm4x8(detail::tvec4<detail::float32> const & v)
37 {
38 detail::uint8 A((detail::uint8)round(clamp(v.x,-1.0f, 1.0f) * 255.0f));
39 detail::uint8 B((detail::uint8)round(clamp(v.y,-1.0f, 1.0f) * 255.0f));
40 detail::uint8 C((detail::uint8)round(clamp(v.z,-1.0f, 1.0f) * 255.0f));
41 detail::uint8 D((detail::uint8)round(clamp(v.w,-1.0f, 1.0f) * 255.0f));
42 return detail::uint32((D << 24) | (C << 16) | (B << 8) | A);
43 }
71 GLM_FUNC_QUALIFIER detail::tvec4<detail::float32> unpackUnorm4x8(detail::uint32 const & p)
72 {
73 detail::uint32 Mask8((1 << 8) - 1);
74 detail::uint32 A((p >> 0) & Mask8);
75 detail::uint32 B((p >> 8) & Mask8);
76 detail::uint32 C((p >> 16) & Mask8);
77 detail::uint32 D((p >> 24) & Mask8);
78 return detail::tvec4<detail::float32>(
79 A * 1.0f / 255.0f,
80 B * 1.0f / 255.0f,
81 C * 1.0f / 255.0f,
82 D * 1.0f / 255.0f);
83 }
84
85 GLM_FUNC_QUALIFIER detail::uint32 packSnorm4x8(detail::tvec4<detail::float32> const & v)
86 {
87 union iu
88 {
89 detail::int8 i;
90 detail::uint8 u;
91 } A, B, C, D;
92
93 detail::tvec4<detail::float32> Unpack = clamp(v ,-1.0f, 1.0f) * 127.0f;
94 A.i = detail::int8(round(Unpack.x));
95 B.i = detail::int8(round(Unpack.y));
96 C.i = detail::int8(round(Unpack.z));
97 D.i = detail::int8(round(Unpack.w));
98 detail::uint32 Pack = (detail::uint32(D.u) << 24) | (detail::uint32(C.u) << 16) | (detail::uint32(B.u) << 8) | (detail::uint32(A.u) << 0);
99 return Pack;
100 }
101
102 GLM_FUNC_QUALIFIER detail::tvec4<detail::float32> unpackSnorm4x8(detail::uint32 const & p)
103 {
104 union iu
105 {
106 detail::int8 i;
107 detail::uint8 u;
108 } A, B, C, D;
109
110 detail::uint32 Mask8((1 << 8) - 1);
111 A.u = detail::uint8((p >> 0) & Mask8);
112 B.u = detail::uint8((p >> 8) & Mask8);
113 C.u = detail::uint8((p >> 16) & Mask8);
114 D.u = detail::uint8((p >> 24) & Mask8);
115 detail::tvec4<detail::float32> Pack(A.i, B.i, C.i, D.i);
116
117 return clamp(Pack * 1.0f / 127.0f, -1.0f, 1.0f);
118 }
44119
45 GLM_FUNC_QUALIFIER detail::tvec2<detail::float32> unpackUnorm2x16(detail::uint32 const & p)
46 {
47 detail::uint16 A(detail::uint16(p >> 0));
48 detail::uint16 B(detail::uint16(p >> 16));
49 return detail::tvec2<detail::float32>(
50 A * 1.0f / 65535.0f,
51 B * 1.0f / 65535.0f);
52 }
120 GLM_FUNC_QUALIFIER double packDouble2x32(detail::tvec2<detail::uint32> const & v)
121 {
122 return *(double*)&v;
123 }
53124
54 GLM_FUNC_QUALIFIER detail::tvec4<detail::float32> unpackUnorm4x8(detail::uint32 const & p)
55 {
56 detail::uint8 A(detail::uint8(p >> 0));
57 detail::uint8 B(detail::uint8(p >> 8));
58 detail::uint8 C(detail::uint8(p >> 16));
59 detail::uint8 D(detail::uint8(p >> 24));
60 return detail::tvec4<detail::float32>(
61 A * 1.0f / 255.0f,
62 B * 1.0f / 255.0f,
63 C * 1.0f / 255.0f,
64 D * 1.0f / 255.0f);
65 }
125 GLM_FUNC_QUALIFIER detail::tvec2<uint> unpackDouble2x32(double const & v)
126 {
127 return *(detail::tvec2<uint>*)&v;
128 }
66129
67 GLM_FUNC_QUALIFIER detail::tvec4<detail::float32> unpackSnorm4x8(detail::uint32 const & p)
68 {
69 detail::uint8 A(detail::uint8(p >> 0));
70 detail::uint8 B(detail::uint8(p >> 8));
71 detail::uint8 C(detail::uint8(p >> 16));
72 detail::uint8 D(detail::uint8(p >> 24));
73 return clamp(detail::tvec4<detail::float32>(
74 A * 1.0f / 127.0f,
75 B * 1.0f / 127.0f,
76 C * 1.0f / 127.0f,
77 D * 1.0f / 127.0f), -1.0f, 1.0f);
78 }
130 GLM_FUNC_QUALIFIER uint packHalf2x16(detail::tvec2<float> const & v)
131 {
132 detail::tvec2<detail::hdata> Pack(detail::toFloat16(v.x), detail::toFloat16(v.y));
133 return *(uint*)&Pack;
134 }
79135
80 GLM_FUNC_QUALIFIER double packDouble2x32(detail::tvec2<detail::uint32> const & v)
81 {
82 return *(double*)&v;
83 }
136 GLM_FUNC_QUALIFIER vec2 unpackHalf2x16(uint const & v)
137 {
138 detail::tvec2<detail::hdata> Unpack = *(detail::tvec2<detail::hdata>*)&v;
139 return vec2(detail::toFloat32(Unpack.x), detail::toFloat32(Unpack.y));
140 }
84141
85 GLM_FUNC_QUALIFIER detail::tvec2<detail::uint32> unpackDouble2x32(double const & v)
86 {
87 return *(detail::tvec2<detail::uint32>*)&v;
88 }
89
90 }//namespace packing
91 }//namespace function
92 }//namespace core
142 }//namespace packing
143 }//namespace function
144 }//namespace core
93145 }//namespace glm
1111
1212 namespace glm
1313 {
14 namespace test{
15 void main_core_func_trigonometric();
16 }//namespace test
17
1814 namespace core{
1915 namespace function{
2016 //! Define Angle and trigonometry functions
1313
1414 namespace glm
1515 {
16 namespace test{
17 void main_core_func_vector_relational();
18 }//namespace test
19
2016 namespace core{
2117 namespace function{
2218 //! Define vector relational functions from Section 8.6 of GLSL 1.30.8 specification.
99 namespace glm{
1010 namespace detail{
1111
12 #pragma warning(push)
13 #pragma warning(disable : 4510 4512 4610)
14
1215 union ieee754_QNAN
1316 {
1417 const float f;
15 struct
18 struct i
1619 {
1720 const unsigned int mantissa:23, exp:8, sign:1;
1821 };
1922
20 ieee754_QNAN() : f(0.0), mantissa(0x7FFFFF), exp(0xFF), sign(0x0) {}
23 ieee754_QNAN() : f(0.0)/*, mantissa(0x7FFFFF), exp(0xFF), sign(0x0)*/ {}
2124 };
2225
23 static const __m128 zero = _mm_setzero_ps();
24 static const __m128 one = _mm_set_ps1(1.0f);
25 static const __m128 minus_one = _mm_set_ps1(-1.0f);
26 static const __m128 two = _mm_set_ps1(2.0f);
27 static const __m128 three = _mm_set_ps1(3.0f);
28 static const __m128 pi = _mm_set_ps1(3.1415926535897932384626433832795f);
29 static const __m128 hundred_eighty = _mm_set_ps1(180.f);
30 static const __m128 pi_over_hundred_eighty = _mm_set_ps1(0.017453292519943295769236907684886f);
31 static const __m128 hundred_eighty_over_pi = _mm_set_ps1(57.295779513082320876798154814105f);
26 #pragma warning(pop)
27
28 static const __m128 GLM_VAR_USED zero = _mm_setzero_ps();
29 static const __m128 GLM_VAR_USED one = _mm_set_ps1(1.0f);
30 static const __m128 GLM_VAR_USED minus_one = _mm_set_ps1(-1.0f);
31 static const __m128 GLM_VAR_USED two = _mm_set_ps1(2.0f);
32 static const __m128 GLM_VAR_USED three = _mm_set_ps1(3.0f);
33 static const __m128 GLM_VAR_USED pi = _mm_set_ps1(3.1415926535897932384626433832795f);
34 static const __m128 GLM_VAR_USED hundred_eighty = _mm_set_ps1(180.f);
35 static const __m128 GLM_VAR_USED pi_over_hundred_eighty = _mm_set_ps1(0.017453292519943295769236907684886f);
36 static const __m128 GLM_VAR_USED hundred_eighty_over_pi = _mm_set_ps1(57.295779513082320876798154814105f);
3237
3338 static const ieee754_QNAN absMask;
34 static const __m128 abs4Mask = _mm_set_ps1(absMask.f);
35
36 static const __m128 _epi32_sign_mask = _mm_castsi128_ps(_mm_set1_epi32(0x80000000));
37 //static const __m128 _epi32_inv_sign_mask = _mm_castsi128_ps(_mm_set1_epi32(0x7FFFFFFF));
38 //static const __m128 _epi32_mant_mask = _mm_castsi128_ps(_mm_set1_epi32(0x7F800000));
39 //static const __m128 _epi32_inv_mant_mask = _mm_castsi128_ps(_mm_set1_epi32(0x807FFFFF));
40 //static const __m128 _epi32_min_norm_pos = _mm_castsi128_ps(_mm_set1_epi32(0x00800000));
41 static const __m128 _epi32_0 = _mm_set_ps1(0);
42 static const __m128 _epi32_1 = _mm_set_ps1(1);
43 static const __m128 _epi32_2 = _mm_set_ps1(2);
44 static const __m128 _epi32_3 = _mm_set_ps1(3);
45 static const __m128 _epi32_4 = _mm_set_ps1(4);
46 static const __m128 _epi32_5 = _mm_set_ps1(5);
47 static const __m128 _epi32_6 = _mm_set_ps1(6);
48 static const __m128 _epi32_7 = _mm_set_ps1(7);
49 static const __m128 _epi32_8 = _mm_set_ps1(8);
50 static const __m128 _epi32_9 = _mm_set_ps1(9);
51 static const __m128 _epi32_127 = _mm_set_ps1(127);
52 //static const __m128 _epi32_ninf = _mm_castsi128_ps(_mm_set1_epi32(0xFF800000));
53 //static const __m128 _epi32_pinf = _mm_castsi128_ps(_mm_set1_epi32(0x7F800000));
54
55 static const __m128 _ps_1_3 = _mm_set_ps1(0.33333333333333333333333333333333f);
56 static const __m128 _ps_0p5 = _mm_set_ps1(0.5f);
57 static const __m128 _ps_1 = _mm_set_ps1(1.0f);
58 static const __m128 _ps_m1 = _mm_set_ps1(-1.0f);
59 static const __m128 _ps_2 = _mm_set_ps1(2.0f);
60 static const __m128 _ps_3 = _mm_set_ps1(3.0f);
61 static const __m128 _ps_127 = _mm_set_ps1(127.0f);
62 static const __m128 _ps_255 = _mm_set_ps1(255.0f);
63 static const __m128 _ps_2pow23 = _mm_set_ps1(8388608.0f);
64
65 static const __m128 _ps_1_0_0_0 = _mm_set_ps(1.0f, 0.0f, 0.0f, 0.0f);
66 static const __m128 _ps_0_1_0_0 = _mm_set_ps(0.0f, 1.0f, 0.0f, 0.0f);
67 static const __m128 _ps_0_0_1_0 = _mm_set_ps(0.0f, 0.0f, 1.0f, 0.0f);
68 static const __m128 _ps_0_0_0_1 = _mm_set_ps(0.0f, 0.0f, 0.0f, 1.0f);
69
70 static const __m128 _ps_pi = _mm_set_ps1(3.1415926535897932384626433832795f);
71 static const __m128 _ps_pi2 = _mm_set_ps1(6.283185307179586476925286766560f);
72 static const __m128 _ps_2_pi = _mm_set_ps1(0.63661977236758134307553505349006f);
73 static const __m128 _ps_pi_2 = _mm_set_ps1(1.5707963267948966192313216916398f);
74 static const __m128 _ps_4_pi = _mm_set_ps1(1.2732395447351626861510701069801f);
75 static const __m128 _ps_pi_4 = _mm_set_ps1(0.78539816339744830961566084581988f);
76
77 static const __m128 _ps_sincos_p0 = _mm_set_ps1(0.15707963267948963959e1f);
78 static const __m128 _ps_sincos_p1 = _mm_set_ps1(-0.64596409750621907082e0f);
79 static const __m128 _ps_sincos_p2 = _mm_set_ps1(0.7969262624561800806e-1f);
80 static const __m128 _ps_sincos_p3 = _mm_set_ps1(-0.468175413106023168e-2f);
81 static const __m128 _ps_tan_p0 = _mm_set_ps1(-1.79565251976484877988e7f);
82 static const __m128 _ps_tan_p1 = _mm_set_ps1(1.15351664838587416140e6f);
83 static const __m128 _ps_tan_p2 = _mm_set_ps1(-1.30936939181383777646e4f);
84 static const __m128 _ps_tan_q0 = _mm_set_ps1(-5.38695755929454629881e7f);
85 static const __m128 _ps_tan_q1 = _mm_set_ps1(2.50083801823357915839e7f);
86 static const __m128 _ps_tan_q2 = _mm_set_ps1(-1.32089234440210967447e6f);
87 static const __m128 _ps_tan_q3 = _mm_set_ps1(1.36812963470692954678e4f);
88 static const __m128 _ps_tan_poleval = _mm_set_ps1(3.68935e19f);
89 static const __m128 _ps_atan_t0 = _mm_set_ps1(-0.91646118527267623468e-1f);
90 static const __m128 _ps_atan_t1 = _mm_set_ps1(-0.13956945682312098640e1f);
91 static const __m128 _ps_atan_t2 = _mm_set_ps1(-0.94393926122725531747e2f);
92 static const __m128 _ps_atan_t3 = _mm_set_ps1(0.12888383034157279340e2f);
93 static const __m128 _ps_atan_s0 = _mm_set_ps1(0.12797564625607904396e1f);
94 static const __m128 _ps_atan_s1 = _mm_set_ps1(0.21972168858277355914e1f);
95 static const __m128 _ps_atan_s2 = _mm_set_ps1(0.68193064729268275701e1f);
96 static const __m128 _ps_atan_s3 = _mm_set_ps1(0.28205206687035841409e2f);
97
98 static const __m128 _ps_exp_hi = _mm_set_ps1(88.3762626647949f);
99 static const __m128 _ps_exp_lo = _mm_set_ps1(-88.3762626647949f);
100 static const __m128 _ps_exp_rln2 = _mm_set_ps1(1.4426950408889634073599f);
101 static const __m128 _ps_exp_p0 = _mm_set_ps1(1.26177193074810590878e-4f);
102 static const __m128 _ps_exp_p1 = _mm_set_ps1(3.02994407707441961300e-2f);
103 static const __m128 _ps_exp_q0 = _mm_set_ps1(3.00198505138664455042e-6f);
104 static const __m128 _ps_exp_q1 = _mm_set_ps1(2.52448340349684104192e-3f);
105 static const __m128 _ps_exp_q2 = _mm_set_ps1(2.27265548208155028766e-1f);
106 static const __m128 _ps_exp_q3 = _mm_set_ps1(2.00000000000000000009e0f);
107 static const __m128 _ps_exp_c1 = _mm_set_ps1(6.93145751953125e-1f);
108 static const __m128 _ps_exp_c2 = _mm_set_ps1(1.42860682030941723212e-6f);
109 static const __m128 _ps_exp2_hi = _mm_set_ps1(127.4999961853f);
110 static const __m128 _ps_exp2_lo = _mm_set_ps1(-127.4999961853f);
111 static const __m128 _ps_exp2_p0 = _mm_set_ps1(2.30933477057345225087e-2f);
112 static const __m128 _ps_exp2_p1 = _mm_set_ps1(2.02020656693165307700e1f);
113 static const __m128 _ps_exp2_p2 = _mm_set_ps1(1.51390680115615096133e3f);
114 static const __m128 _ps_exp2_q0 = _mm_set_ps1(2.33184211722314911771e2f);
115 static const __m128 _ps_exp2_q1 = _mm_set_ps1(4.36821166879210612817e3f);
116 static const __m128 _ps_log_p0 = _mm_set_ps1(-7.89580278884799154124e-1f);
117 static const __m128 _ps_log_p1 = _mm_set_ps1(1.63866645699558079767e1f);
118 static const __m128 _ps_log_p2 = _mm_set_ps1(-6.41409952958715622951e1f);
119 static const __m128 _ps_log_q0 = _mm_set_ps1(-3.56722798256324312549e1f);
120 static const __m128 _ps_log_q1 = _mm_set_ps1(3.12093766372244180303e2f);
121 static const __m128 _ps_log_q2 = _mm_set_ps1(-7.69691943550460008604e2f);
122 static const __m128 _ps_log_c0 = _mm_set_ps1(0.693147180559945f);
123 static const __m128 _ps_log2_c0 = _mm_set_ps1(1.44269504088896340735992f);
39 static const __m128 GLM_VAR_USED abs4Mask = _mm_set_ps1(absMask.f);
40
41 static const __m128 GLM_VAR_USED _epi32_sign_mask = _mm_castsi128_ps(_mm_set1_epi32(0x80000000));
42 //static const __m128 GLM_VAR_USED _epi32_inv_sign_mask = _mm_castsi128_ps(_mm_set1_epi32(0x7FFFFFFF));
43 //static const __m128 GLM_VAR_USED _epi32_mant_mask = _mm_castsi128_ps(_mm_set1_epi32(0x7F800000));
44 //static const __m128 GLM_VAR_USED _epi32_inv_mant_mask = _mm_castsi128_ps(_mm_set1_epi32(0x807FFFFF));
45 //static const __m128 GLM_VAR_USED _epi32_min_norm_pos = _mm_castsi128_ps(_mm_set1_epi32(0x00800000));
46 static const __m128 GLM_VAR_USED _epi32_0 = _mm_set_ps1(0);
47 static const __m128 GLM_VAR_USED _epi32_1 = _mm_set_ps1(1);
48 static const __m128 GLM_VAR_USED _epi32_2 = _mm_set_ps1(2);
49 static const __m128 GLM_VAR_USED _epi32_3 = _mm_set_ps1(3);
50 static const __m128 GLM_VAR_USED _epi32_4 = _mm_set_ps1(4);
51 static const __m128 GLM_VAR_USED _epi32_5 = _mm_set_ps1(5);
52 static const __m128 GLM_VAR_USED _epi32_6 = _mm_set_ps1(6);
53 static const __m128 GLM_VAR_USED _epi32_7 = _mm_set_ps1(7);
54 static const __m128 GLM_VAR_USED _epi32_8 = _mm_set_ps1(8);
55 static const __m128 GLM_VAR_USED _epi32_9 = _mm_set_ps1(9);
56 static const __m128 GLM_VAR_USED _epi32_127 = _mm_set_ps1(127);
57 //static const __m128 GLM_VAR_USED _epi32_ninf = _mm_castsi128_ps(_mm_set1_epi32(0xFF800000));
58 //static const __m128 GLM_VAR_USED _epi32_pinf = _mm_castsi128_ps(_mm_set1_epi32(0x7F800000));
59
60 static const __m128 GLM_VAR_USED _ps_1_3 = _mm_set_ps1(0.33333333333333333333333333333333f);
61 static const __m128 GLM_VAR_USED _ps_0p5 = _mm_set_ps1(0.5f);
62 static const __m128 GLM_VAR_USED _ps_1 = _mm_set_ps1(1.0f);
63 static const __m128 GLM_VAR_USED _ps_m1 = _mm_set_ps1(-1.0f);
64 static const __m128 GLM_VAR_USED _ps_2 = _mm_set_ps1(2.0f);
65 static const __m128 GLM_VAR_USED _ps_3 = _mm_set_ps1(3.0f);
66 static const __m128 GLM_VAR_USED _ps_127 = _mm_set_ps1(127.0f);
67 static const __m128 GLM_VAR_USED _ps_255 = _mm_set_ps1(255.0f);
68 static const __m128 GLM_VAR_USED _ps_2pow23 = _mm_set_ps1(8388608.0f);
69
70 static const __m128 GLM_VAR_USED _ps_1_0_0_0 = _mm_set_ps(1.0f, 0.0f, 0.0f, 0.0f);
71 static const __m128 GLM_VAR_USED _ps_0_1_0_0 = _mm_set_ps(0.0f, 1.0f, 0.0f, 0.0f);
72 static const __m128 GLM_VAR_USED _ps_0_0_1_0 = _mm_set_ps(0.0f, 0.0f, 1.0f, 0.0f);
73 static const __m128 GLM_VAR_USED _ps_0_0_0_1 = _mm_set_ps(0.0f, 0.0f, 0.0f, 1.0f);
74
75 static const __m128 GLM_VAR_USED _ps_pi = _mm_set_ps1(3.1415926535897932384626433832795f);
76 static const __m128 GLM_VAR_USED _ps_pi2 = _mm_set_ps1(6.283185307179586476925286766560f);
77 static const __m128 GLM_VAR_USED _ps_2_pi = _mm_set_ps1(0.63661977236758134307553505349006f);
78 static const __m128 GLM_VAR_USED _ps_pi_2 = _mm_set_ps1(1.5707963267948966192313216916398f);
79 static const __m128 GLM_VAR_USED _ps_4_pi = _mm_set_ps1(1.2732395447351626861510701069801f);
80 static const __m128 GLM_VAR_USED _ps_pi_4 = _mm_set_ps1(0.78539816339744830961566084581988f);
81
82 static const __m128 GLM_VAR_USED _ps_sincos_p0 = _mm_set_ps1(0.15707963267948963959e1f);
83 static const __m128 GLM_VAR_USED _ps_sincos_p1 = _mm_set_ps1(-0.64596409750621907082e0f);
84 static const __m128 GLM_VAR_USED _ps_sincos_p2 = _mm_set_ps1(0.7969262624561800806e-1f);
85 static const __m128 GLM_VAR_USED _ps_sincos_p3 = _mm_set_ps1(-0.468175413106023168e-2f);
86 static const __m128 GLM_VAR_USED _ps_tan_p0 = _mm_set_ps1(-1.79565251976484877988e7f);
87 static const __m128 GLM_VAR_USED _ps_tan_p1 = _mm_set_ps1(1.15351664838587416140e6f);
88 static const __m128 GLM_VAR_USED _ps_tan_p2 = _mm_set_ps1(-1.30936939181383777646e4f);
89 static const __m128 GLM_VAR_USED _ps_tan_q0 = _mm_set_ps1(-5.38695755929454629881e7f);
90 static const __m128 GLM_VAR_USED _ps_tan_q1 = _mm_set_ps1(2.50083801823357915839e7f);
91 static const __m128 GLM_VAR_USED _ps_tan_q2 = _mm_set_ps1(-1.32089234440210967447e6f);
92 static const __m128 GLM_VAR_USED _ps_tan_q3 = _mm_set_ps1(1.36812963470692954678e4f);
93 static const __m128 GLM_VAR_USED _ps_tan_poleval = _mm_set_ps1(3.68935e19f);
94 static const __m128 GLM_VAR_USED _ps_atan_t0 = _mm_set_ps1(-0.91646118527267623468e-1f);
95 static const __m128 GLM_VAR_USED _ps_atan_t1 = _mm_set_ps1(-0.13956945682312098640e1f);
96 static const __m128 GLM_VAR_USED _ps_atan_t2 = _mm_set_ps1(-0.94393926122725531747e2f);
97 static const __m128 GLM_VAR_USED _ps_atan_t3 = _mm_set_ps1(0.12888383034157279340e2f);
98 static const __m128 GLM_VAR_USED _ps_atan_s0 = _mm_set_ps1(0.12797564625607904396e1f);
99 static const __m128 GLM_VAR_USED _ps_atan_s1 = _mm_set_ps1(0.21972168858277355914e1f);
100 static const __m128 GLM_VAR_USED _ps_atan_s2 = _mm_set_ps1(0.68193064729268275701e1f);
101 static const __m128 GLM_VAR_USED _ps_atan_s3 = _mm_set_ps1(0.28205206687035841409e2f);
102
103 static const __m128 GLM_VAR_USED _ps_exp_hi = _mm_set_ps1(88.3762626647949f);
104 static const __m128 GLM_VAR_USED _ps_exp_lo = _mm_set_ps1(-88.3762626647949f);
105 static const __m128 GLM_VAR_USED _ps_exp_rln2 = _mm_set_ps1(1.4426950408889634073599f);
106 static const __m128 GLM_VAR_USED _ps_exp_p0 = _mm_set_ps1(1.26177193074810590878e-4f);
107 static const __m128 GLM_VAR_USED _ps_exp_p1 = _mm_set_ps1(3.02994407707441961300e-2f);
108 static const __m128 GLM_VAR_USED _ps_exp_q0 = _mm_set_ps1(3.00198505138664455042e-6f);
109 static const __m128 GLM_VAR_USED _ps_exp_q1 = _mm_set_ps1(2.52448340349684104192e-3f);
110 static const __m128 GLM_VAR_USED _ps_exp_q2 = _mm_set_ps1(2.27265548208155028766e-1f);
111 static const __m128 GLM_VAR_USED _ps_exp_q3 = _mm_set_ps1(2.00000000000000000009e0f);
112 static const __m128 GLM_VAR_USED _ps_exp_c1 = _mm_set_ps1(6.93145751953125e-1f);
113 static const __m128 GLM_VAR_USED _ps_exp_c2 = _mm_set_ps1(1.42860682030941723212e-6f);
114 static const __m128 GLM_VAR_USED _ps_exp2_hi = _mm_set_ps1(127.4999961853f);
115 static const __m128 GLM_VAR_USED _ps_exp2_lo = _mm_set_ps1(-127.4999961853f);
116 static const __m128 GLM_VAR_USED _ps_exp2_p0 = _mm_set_ps1(2.30933477057345225087e-2f);
117 static const __m128 GLM_VAR_USED _ps_exp2_p1 = _mm_set_ps1(2.02020656693165307700e1f);
118 static const __m128 GLM_VAR_USED _ps_exp2_p2 = _mm_set_ps1(1.51390680115615096133e3f);
119 static const __m128 GLM_VAR_USED _ps_exp2_q0 = _mm_set_ps1(2.33184211722314911771e2f);
120 static const __m128 GLM_VAR_USED _ps_exp2_q1 = _mm_set_ps1(4.36821166879210612817e3f);
121 static const __m128 GLM_VAR_USED _ps_log_p0 = _mm_set_ps1(-7.89580278884799154124e-1f);
122 static const __m128 GLM_VAR_USED _ps_log_p1 = _mm_set_ps1(1.63866645699558079767e1f);
123 static const __m128 GLM_VAR_USED _ps_log_p2 = _mm_set_ps1(-6.41409952958715622951e1f);
124 static const __m128 GLM_VAR_USED _ps_log_q0 = _mm_set_ps1(-3.56722798256324312549e1f);
125 static const __m128 GLM_VAR_USED _ps_log_q1 = _mm_set_ps1(3.12093766372244180303e2f);
126 static const __m128 GLM_VAR_USED _ps_log_q2 = _mm_set_ps1(-7.69691943550460008604e2f);
127 static const __m128 GLM_VAR_USED _ps_log_c0 = _mm_set_ps1(0.693147180559945f);
128 static const __m128 GLM_VAR_USED _ps_log2_c0 = _mm_set_ps1(1.44269504088896340735992f);
124129
125130 GLM_FUNC_QUALIFIER __m128 sse_abs_ps(__m128 x)
126131 {
169174 }
170175
171176 //roundEven
172 GLM_FUNC_QUALIFIER __m128 sse_rde_ps(__m128 v)
173 {
174
177 GLM_FUNC_QUALIFIER __m128 sse_rde_ps(__m128 x)
178 {
179 __m128 and0 = _mm_and_ps(glm::detail::_epi32_sign_mask, x);
180 __m128 or0 = _mm_or_ps(and0, glm::detail::_ps_2pow23);
181 __m128 add0 = _mm_add_ps(x, or0);
182 __m128 sub0 = _mm_sub_ps(add0, or0);
183 return sub0;
175184 }
176185
177186 GLM_FUNC_QUALIFIER __m128 sse_ceil_ps(__m128 x)
199208 return sub0;
200209 }
201210
211 /// TODO
212 /*
202213 GLM_FUNC_QUALIFIER __m128 sse_modf_ps(__m128 x, __m128i & i)
203214 {
204
205 }
215 __m128 empty;
216 return empty;
217 }
218 */
206219
207220 //GLM_FUNC_QUALIFIER __m128 _mm_min_ps(__m128 x, __m128 y)
208221
246259 return mul2;
247260 }
248261
249 GLM_FUNC_QUALIFIER __m128 sse_nan_ps(__m128 x)
250 {
251
252 }
253
254 GLM_FUNC_QUALIFIER __m128 sse_inf_ps(__m128 x)
255 {
256
257 }
262 /// \todo
263 //GLM_FUNC_QUALIFIER __m128 sse_nan_ps(__m128 x)
264 //{
265 // __m128 empty;
266 // return empty;
267 //}
268
269 /// \todo
270 //GLM_FUNC_QUALIFIER __m128 sse_inf_ps(__m128 x)
271 //{
272 // __m128 empty;
273 // return empty;
274 //}
258275
259276 // SSE scalar reciprocal sqrt using rsqrt op, plus one Newton-Rhaphson iteration
260277 // By Elan Ruskin, http://assemblyrequired.crashworks.org/
99 namespace glm{
1010 namespace detail{
1111
12 static const __m128 _m128_rad_ps = _mm_set_ps1(3.141592653589793238462643383279f / 180.f);
13 static const __m128 _m128_deg_ps = _mm_set_ps1(180.f / 3.141592653589793238462643383279f);
12 static const __m128 GLM_VAR_USED _m128_rad_ps = _mm_set_ps1(3.141592653589793238462643383279f / 180.f);
13 static const __m128 GLM_VAR_USED _m128_deg_ps = _mm_set_ps1(180.f / 3.141592653589793238462643383279f);
1414
1515 template <typename matType>
1616 GLM_FUNC_QUALIFIER matType sse_comp_mul_ps
201201 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
202202 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
203203 Fac0 = _mm_sub_ps(Mul00, Mul01);
204
205 bool stop = true;
206204 }
207205
208206 __m128 Fac1;
223221 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
224222 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
225223 Fac1 = _mm_sub_ps(Mul00, Mul01);
226
227 bool stop = true;
228224 }
229225
230226
246242 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
247243 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
248244 Fac2 = _mm_sub_ps(Mul00, Mul01);
249
250 bool stop = true;
251245 }
252246
253247 __m128 Fac3;
268262 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
269263 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
270264 Fac3 = _mm_sub_ps(Mul00, Mul01);
271
272 bool stop = true;
273265 }
274266
275267 __m128 Fac4;
290282 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
291283 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
292284 Fac4 = _mm_sub_ps(Mul00, Mul01);
293
294 bool stop = true;
295285 }
296286
297287 __m128 Fac5;
312302 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
313303 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
314304 Fac5 = _mm_sub_ps(Mul00, Mul01);
315
316 bool stop = true;
317305 }
318306
319307 __m128 SignA = _mm_set_ps( 1.0f,-1.0f, 1.0f,-1.0f);
559547 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
560548 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
561549 Fac0 = _mm_sub_ps(Mul00, Mul01);
562
563 bool stop = true;
564550 }
565551
566552 __m128 Fac1;
581567 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
582568 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
583569 Fac1 = _mm_sub_ps(Mul00, Mul01);
584
585 bool stop = true;
586570 }
587571
588572
604588 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
605589 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
606590 Fac2 = _mm_sub_ps(Mul00, Mul01);
607
608 bool stop = true;
609 }
591 }
610592
611593 __m128 Fac3;
612594 {
626608 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
627609 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
628610 Fac3 = _mm_sub_ps(Mul00, Mul01);
629
630 bool stop = true;
631611 }
632612
633613 __m128 Fac4;
648628 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
649629 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
650630 Fac4 = _mm_sub_ps(Mul00, Mul01);
651
652 bool stop = true;
653631 }
654632
655633 __m128 Fac5;
670648 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
671649 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
672650 Fac5 = _mm_sub_ps(Mul00, Mul01);
673
674 bool stop = true;
675651 }
676652
677653 __m128 SignA = _mm_set_ps( 1.0f,-1.0f, 1.0f,-1.0f);
792768 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
793769 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
794770 Fac0 = _mm_sub_ps(Mul00, Mul01);
795
796 bool stop = true;
797771 }
798772
799773 __m128 Fac1;
814788 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
815789 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
816790 Fac1 = _mm_sub_ps(Mul00, Mul01);
817
818 bool stop = true;
819791 }
820792
821793
837809 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
838810 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
839811 Fac2 = _mm_sub_ps(Mul00, Mul01);
840
841 bool stop = true;
842812 }
843813
844814 __m128 Fac3;
859829 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
860830 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
861831 Fac3 = _mm_sub_ps(Mul00, Mul01);
862
863 bool stop = true;
864832 }
865833
866834 __m128 Fac4;
881849 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
882850 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
883851 Fac4 = _mm_sub_ps(Mul00, Mul01);
884
885 bool stop = true;
886852 }
887853
888854 __m128 Fac5;
903869 __m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
904870 __m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
905871 Fac5 = _mm_sub_ps(Mul00, Mul01);
906
907 bool stop = true;
908872 }
909873
910874 __m128 SignA = _mm_set_ps( 1.0f,-1.0f, 1.0f,-1.0f);
1003967 out[2] = _mm_mul_ps(Inv2, Rcp0);
1004968 out[3] = _mm_mul_ps(Inv3, Rcp0);
1005969 }
1006
970 /*
1007971 GLM_FUNC_QUALIFIER void sse_rotate_ps(__m128 const in[4], float Angle, float const v[3], __m128 out[4])
1008972 {
1009973 float a = glm::radians(Angle);
10731037 //return Result;
10741038 sse_mul_ps(in, Result, out);
10751039 }
1076
1040 */
10771041 GLM_FUNC_QUALIFIER void sse_outer_ps(__m128 const & c, __m128 const & r, __m128 out[4])
10781042 {
10791043 out[0] = _mm_mul_ps(c, _mm_shuffle_ps(r, r, _MM_SHUFFLE(0, 0, 0, 0)));
1616 #define GLM_VERSION_MAJOR 0
1717 #define GLM_VERSION_MINOR 9
1818 #define GLM_VERSION_PATCH 2
19 #define GLM_VERSION_REVISION 0
20
19 #define GLM_VERSION_REVISION 6
2120
2221 ///////////////////////////////////////////////////////////////////////////////////////////////////
2322 // Compiler
2423
2524 // User defines: GLM_FORCE_COMPILER_UNKNOWN
25 // TODO ? __llvm__
2626
2727 #define GLM_COMPILER_UNKNOWN 0x00000000
2828
4141
4242 // GCC defines
4343 #define GLM_COMPILER_GCC 0x02000000
44 #define GLM_COMPILER_GCC_LLVM 0x02000001
45 #define GLM_COMPILER_GCC_CLANG 0x02000002
4446 #define GLM_COMPILER_GCC30 0x02000010
4547 #define GLM_COMPILER_GCC31 0x02000020
4648 #define GLM_COMPILER_GCC32 0x02000030
8082 #define GLM_COMPILER_CUDA32 0x10000030
8183 #define GLM_COMPILER_CUDA40 0x10000040
8284
85 // Clang
86 #define GLM_COMPILER_CLANG 0x20000000
87 #define GLM_COMPILER_CLANG26 0x20000010
88 #define GLM_COMPILER_CLANG27 0x20000020
89 #define GLM_COMPILER_CLANG28 0x20000030
90 #define GLM_COMPILER_CLANG29 0x20000040
91
92 // LLVM GCC
93 #define GLM_COMPILER_LLVM_GCC 0x40000000
94
8395 // Build model
8496 #define GLM_MODEL_32 0x00000010
8597 #define GLM_MODEL_64 0x00000020
8799 // Force generic C++ compiler
88100 #ifdef GLM_FORCE_COMPILER_UNKNOWN
89101 # define GLM_COMPILER GLM_COMPILER_UNKNOWN
102
103 // CUDA
104 #elif defined(__CUDACC__)
105 # define GLM_COMPILER GLM_COMPILER_CUDA
106
90107 // Visual C++
91108 #elif defined(_MSC_VER)
92109 # if _MSC_VER == 900
114131 # endif//_MSC_VER
115132
116133 // G++
117 #elif defined(__GNUC__)
134 #elif defined(__GNUC__) || defined(__llvm__) || defined(__clang__)
135 # if defined (__llvm__)
136 # define GLM_COMPILER_GCC_EXTRA GLM_COMPILER_GCC_LLVM
137 # elif defined (__clang__)
138 # define GLM_COMPILER_GCC_EXTRA GLM_COMPILER_GCC_CLANG
139 # else
140 # define GLM_COMPILER_GCC_EXTRA 0
141 # endif
142 #
118143 # if (__GNUC__ == 3) && (__GNUC_MINOR__ == 2)
119144 # define GLM_COMPILER GLM_COMPILER_GCC32
120145 # elif (__GNUC__ == 3) && (__GNUC_MINOR__ == 3)
124149 # elif (__GNUC__ == 3) && (__GNUC_MINOR__ == 5)
125150 # define GLM_COMPILER GLM_COMPILER_GCC35
126151 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 0)
127 # define GLM_COMPILER GLM_COMPILER_GCC40
152 # define GLM_COMPILER (GLM_COMPILER_GCC40 | GLM_COMPILER_GCC_EXTRA)
128153 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 1)
129 # define GLM_COMPILER GLM_COMPILER_GCC41
154 # define GLM_COMPILER (GLM_COMPILER_GCC41 | GLM_COMPILER_GCC_EXTRA)
130155 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
131 # define GLM_COMPILER GLM_COMPILER_GCC42
156 # define GLM_COMPILER (GLM_COMPILER_GCC42 | GLM_COMPILER_GCC_EXTRA)
132157 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 3)
133 # define GLM_COMPILER GLM_COMPILER_GCC43
158 # define GLM_COMPILER (GLM_COMPILER_GCC43 | GLM_COMPILER_GCC_EXTRA)
134159 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 4)
135 # define GLM_COMPILER GLM_COMPILER_GCC44
160 # define GLM_COMPILER (GLM_COMPILER_GCC44 | GLM_COMPILER_GCC_EXTRA)
136161 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 5)
137 # define GLM_COMPILER GLM_COMPILER_GCC45
162 # define GLM_COMPILER (GLM_COMPILER_GCC45 | GLM_COMPILER_GCC_EXTRA)
138163 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 6)
139 # define GLM_COMPILER GLM_COMPILER_GCC46
164 # define GLM_COMPILER (GLM_COMPILER_GCC46 | GLM_COMPILER_GCC_EXTRA)
140165 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 7)
141 # define GLM_COMPILER GLM_COMPILER_GCC47
166 # define GLM_COMPILER (GLM_COMPILER_GCC47 | GLM_COMPILER_GCC_EXTRA)
142167 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
143 # define GLM_COMPILER GLM_COMPILER_GCC48
168 # define GLM_COMPILER (GLM_COMPILER_GCC48 | GLM_COMPILER_GCC_EXTRA)
144169 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 9)
145 # define GLM_COMPILER GLM_COMPILER_GCC49
170 # define GLM_COMPILER (GLM_COMPILER_GCC49 | GLM_COMPILER_GCC_EXTRA)
146171 # elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 0)
147 # define GLM_COMPILER GLM_COMPILER_GCC50
148 # else
149 # define GLM_COMPILER GLM_COMPILER_GCC
172 # define GLM_COMPILER (GLM_COMPILER_GCC50 | GLM_COMPILER_GCC_EXTRA)
173 # else
174 # define GLM_COMPILER (GLM_COMPILER_GCC | GLM_COMPILER_GCC_EXTRA)
150175 # endif
151176
152177 // Borland C++
167192 #elif defined(__MWERKS__)
168193 # define GLM_COMPILER GLM_COMPILER_CODEWARRIOR
169194
170 // CUDA
171 /*
172 #elif defined(__CUDACC__)
173 # if CUDA_VERSION < 3000
174 # error "GLM requires CUDA 3.0 or higher"
175 # elif CUDA_VERSION == 3000
176 # define GLM_COMPILER GLM_COMPILER_CUDA30
177 # elif CUDA_VERSION == 3010
178 # define GLM_COMPILER GLM_COMPILER_CUDA31
179 # elif CUDA_VERSION == 3020
180 # define GLM_COMPILER GLM_COMPILER_CUDA32
181 # elif CUDA_VERSION == 4000
182 # define GLM_COMPILER GLM_COMPILER_CUDA40
183 # else
184 # define GLM_COMPILER GLM_COMPILER_CUDA
185 # endif
186 */
187
188195 #else
189196 # define GLM_COMPILER GLM_COMPILER_UNKNOWN
190197 #endif
196203 // Report compiler detection
197204 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_COMPILER_DISPLAYED))
198205 # define GLM_MESSAGE_COMPILER_DISPLAYED
199 # if(GLM_COMPILER & GLM_COMPILER_VC)
206 # if(GLM_COMPILER & GLM_COMPILER_CUDA)
207 # pragma message("GLM: CUDA compiler detected")
208 # elif(GLM_COMPILER & GLM_COMPILER_VC)
200209 # pragma message("GLM: Visual C++ compiler detected")
210 # elif(GLM_COMPILER & GLM_COMPILER_CLANG)
211 # pragma message("GLM: Clang compiler detected")
212 # elif(GLM_COMPILER & GLM_COMPILER_LLVM_GCC)
213 # pragma message("GLM: LLVM GCC compiler detected")
201214 # elif(GLM_COMPILER & GLM_COMPILER_GCC)
202 # pragma message("GLM: GCC compiler detected")
215 # if(GLM_COMPILER == GLM_COMPILER_GCC_LLVM)
216 # pragma message("GLM: LLVM GCC compiler detected")
217 # elif(GLM_COMPILER == GLM_COMPILER_GCC_CLANG)
218 # pragma message("GLM: CLANG compiler detected")
219 # else
220 # pragma message("GLM: GCC compiler detected")
221 # endif
203222 # elif(GLM_COMPILER & GLM_COMPILER_BC)
204223 # pragma message("GLM: Borland compiler detected but not supported")
205224 # elif(GLM_COMPILER & GLM_COMPILER_CODEWARRIOR)
309328 # else
310329 # define GLM_ARCH GLM_ARCH_PURE
311330 # endif
331 #elif(GLM_COMPILER & GLM_COMPILER_LLVM_GCC)
332 # if(defined(__AVX__))
333 # define GLM_ARCH GLM_ARCH_AVX
334 # elif(defined(__SSE3__))
335 # define GLM_ARCH GLM_ARCH_SSE3
336 # elif(defined(__SSE2__))
337 # define GLM_ARCH GLM_ARCH_SSE2
338 # else
339 # define GLM_ARCH GLM_ARCH_PURE
340 # endif
312341 #elif((GLM_COMPILER & GLM_COMPILER_GCC) && (defined(__i386__) || defined(__x86_64__)))
313342 # if(defined(__AVX__))
314343 # define GLM_ARCH GLM_ARCH_AVX
402431
403432 // User defines: GLM_FORCE_INLINE GLM_FORCE_CUDA
404433
405 #if(defined(GLM_FORCE_CUDA) || (defined(GLM_COMPILER) && (GLM_COMPILER >= GLM_COMPILER_CUDA30)))
434 #if(defined(GLM_FORCE_CUDA) || (GLM_COMPILER & GLM_COMPILER_CUDA))
406435 # define GLM_CUDA_FUNC_DEF __device__ __host__
407436 # define GLM_CUDA_FUNC_DECL __device__ __host__
408437 #else
409438 # define GLM_CUDA_FUNC_DEF
410439 # define GLM_CUDA_FUNC_DECL
440 #endif
441
442 #if GLM_COMPILER & GLM_COMPILER_GCC
443 #define GLM_VAR_USED __attribute__ ((unused))
444 #else
445 #define GLM_VAR_USED
411446 #endif
412447
413448 #if(defined(GLM_FORCE_INLINE))
1111
1212 #include <cstdlib>
1313
14 namespace glm
14 namespace glm{
15 namespace detail
1516 {
16 namespace test
17 typedef short hdata;
18
19 float toFloat32(hdata value);
20 hdata toFloat16(float const & value);
21
22 ///16-bit floating point type.
23 /// \ingroup gtc_half_float
24 class thalf
1725 {
18 bool main_type_half();
26 public:
27 // Constructors
28 GLM_FUNC_DECL thalf();
29 GLM_FUNC_DECL thalf(thalf const & s);
30
31 template <typename U>
32 GLM_FUNC_DECL explicit thalf(U const & s);
1933
20 }//namespace test
34 // Cast
35 //operator float();
36 GLM_FUNC_DECL operator float() const;
37 //operator double();
38 //operator double() const;
2139
22 namespace detail
23 {
24 typedef short hdata;
40 // Unary updatable operators
41 GLM_FUNC_DECL thalf& operator= (thalf const & s);
42 GLM_FUNC_DECL thalf& operator+=(thalf const & s);
43 GLM_FUNC_DECL thalf& operator-=(thalf const & s);
44 GLM_FUNC_DECL thalf& operator*=(thalf const & s);
45 GLM_FUNC_DECL thalf& operator/=(thalf const & s);
46 GLM_FUNC_DECL thalf& operator++();
47 GLM_FUNC_DECL thalf& operator--();
48
49 GLM_FUNC_DECL float toFloat() const{return toFloat32(data);}
2550
26 float toFloat32(hdata value);
27 hdata toFloat16(float const & value);
51 GLM_FUNC_DECL hdata _data() const{return data;}
2852
29 ///16-bit floating point type.
30 /// \ingroup gtc_half_float
31 class thalf
32 {
33 public:
34 // Constructors
35 GLM_FUNC_DECL thalf();
36 GLM_FUNC_DECL thalf(thalf const & s);
37
38 template <typename U>
39 GLM_FUNC_DECL explicit thalf(U const & s);
53 private:
54 hdata data;
55 };
4056
41 // Cast
42 //operator float();
43 GLM_FUNC_DECL operator float() const;
44 //operator double();
45 //operator double() const;
57 thalf operator+ (thalf const & s1, thalf const & s2);
4658
47 // Unary updatable operators
48 GLM_FUNC_DECL thalf& operator= (thalf const & s);
49 GLM_FUNC_DECL thalf& operator+=(thalf const & s);
50 GLM_FUNC_DECL thalf& operator-=(thalf const & s);
51 GLM_FUNC_DECL thalf& operator*=(thalf const & s);
52 GLM_FUNC_DECL thalf& operator/=(thalf const & s);
53 GLM_FUNC_DECL thalf& operator++();
54 GLM_FUNC_DECL thalf& operator--();
55
56 GLM_FUNC_DECL float toFloat() const{return toFloat32(data);}
59 thalf operator- (thalf const & s1, thalf const & s2);
5760
58 GLM_FUNC_DECL hdata _data() const{return data;}
61 thalf operator* (thalf const & s1, thalf const & s2);
5962
60 private:
61 hdata data;
62 };
63 thalf operator/ (thalf const & s1, thalf const & s2);
6364
64 thalf operator+ (thalf const & s1, thalf const & s2);
65 // Unary constant operators
66 thalf operator- (thalf const & s);
6567
66 thalf operator- (thalf const & s1, thalf const & s2);
68 thalf operator-- (thalf const & s, int);
6769
68 thalf operator* (thalf const & s1, thalf const & s2);
70 thalf operator++ (thalf const & s, int);
6971
70 thalf operator/ (thalf const & s1, thalf const & s2);
71
72 // Unary constant operators
73 thalf operator- (thalf const & s);
74
75 thalf operator-- (thalf const & s, int);
76
77 thalf operator++ (thalf const & s, int);
78
79 }//namespace detail
80
81
72 }//namespace detail
8273 }//namespace glm
8374
8475 #include "type_half.inl"
4040 //
4141
4242 detail::uif result;
43 result.i = s << 31;
43 result.i = (unsigned int)(s << 31);
4444 return result.f;
4545 }
4646 else
6868 //
6969
7070 uif result;
71 result.i = (s << 31) | 0x7f800000;
71 result.i = (unsigned int)((s << 31) | 0x7f800000);
7272 return result.f;
7373 }
7474 else
7878 //
7979
8080 uif result;
81 result.i = (s << 31) | 0x7f800000 | (m << 13);
81 result.i = (unsigned int)((s << 31) | 0x7f800000 | (m << 13));
8282 return result.f;
8383 }
8484 }
9595 //
9696
9797 uif Result;
98 Result.i = (s << 31) | (e << 23) | m;
98 Result.i = (unsigned int)((s << 31) | (e << 23) | m);
9999 return Result.f;
100100 }
101101
103103 {
104104 uif Entry;
105105 Entry.f = f;
106 int i = Entry.i;
106 int i = (int)Entry.i;
107107
108108 //
109109 // Our floating point number, f, is represented by the bit
1212 #include "setup.hpp"
1313 #include "_detail.hpp"
1414
15 namespace glm
15 namespace glm{
16 namespace detail
1617 {
17 namespace detail
18 {
19 typedef signed short lowp_int_t;
20 typedef signed int mediump_int_t;
21 typedef sint64 highp_int_t;
18 typedef signed short lowp_int_t;
19 typedef signed int mediump_int_t;
20 typedef sint64 highp_int_t;
2221
23 typedef unsigned short lowp_uint_t;
24 typedef unsigned int mediump_uint_t;
25 typedef uint64 highp_uint_t;
22 typedef unsigned short lowp_uint_t;
23 typedef unsigned int mediump_uint_t;
24 typedef uint64 highp_uint_t;
2625
27 GLM_DETAIL_IS_INT(signed char);
28 GLM_DETAIL_IS_INT(signed short);
29 GLM_DETAIL_IS_INT(signed int);
30 GLM_DETAIL_IS_INT(signed long);
31 GLM_DETAIL_IS_INT(highp_int_t);
26 GLM_DETAIL_IS_INT(signed char);
27 GLM_DETAIL_IS_INT(signed short);
28 GLM_DETAIL_IS_INT(signed int);
29 GLM_DETAIL_IS_INT(signed long);
30 GLM_DETAIL_IS_INT(highp_int_t);
3231
33 GLM_DETAIL_IS_UINT(unsigned char);
34 GLM_DETAIL_IS_UINT(unsigned short);
35 GLM_DETAIL_IS_UINT(unsigned int);
36 GLM_DETAIL_IS_UINT(unsigned long);
37 GLM_DETAIL_IS_UINT(highp_uint_t);
38 }
39 //namespace detail
32 GLM_DETAIL_IS_UINT(unsigned char);
33 GLM_DETAIL_IS_UINT(unsigned short);
34 GLM_DETAIL_IS_UINT(unsigned int);
35 GLM_DETAIL_IS_UINT(unsigned long);
36 GLM_DETAIL_IS_UINT(highp_uint_t);
37 }//namespace detail
4038
41 namespace core{
42 namespace type{
39 namespace core{
40 namespace type{
41 namespace precision //!< Namespace for precision stuff.
42 {
43 //! Low precision signed integer.
44 //! There is no guarantee on the actual precision.
45 //! From GLSL 1.30.8 specification.
46 //! \ingroup core_precision
47 typedef detail::lowp_int_t lowp_int;
48 //! Medium precision signed integer.
49 //! There is no guarantee on the actual precision.
50 //! From GLSL 1.30.8 specification.
51 //! \ingroup core_precision
52 typedef detail::mediump_int_t mediump_int;
53 //! High precision signed integer.
54 //! There is no guarantee on the actual precision.
55 //! From GLSL 1.30.8 specification.
56 //! \ingroup core_precision
57 typedef detail::highp_int_t highp_int;
4358
44 ///namespace for precision stuff.
45 namespace precision
46 {
47 //! Low precision signed integer.
48 //! There is no guarantee on the actual precision.
49 //! From GLSL 1.30.8 specification.
50 //! \ingroup core_precision
51 typedef detail::lowp_int_t lowp_int;
52 //! Medium precision signed integer.
53 //! There is no guarantee on the actual precision.
54 //! From GLSL 1.30.8 specification.
55 //! \ingroup core_precision
56 typedef detail::mediump_int_t mediump_int;
57 //! High precision signed integer.
58 //! There is no guarantee on the actual precision.
59 //! From GLSL 1.30.8 specification.
60 //! \ingroup core_precision
61 typedef detail::highp_int_t highp_int;
62
63 //! Low precision unsigned integer.
64 //! There is no guarantee on the actual precision.
65 //! From GLSL 1.30.8 specification.
66 //! \ingroup core_precision
67 typedef detail::lowp_uint_t lowp_uint;
68 //! Medium precision unsigned integer.
69 //! There is no guarantee on the actual precision.
70 //! From GLSL 1.30.8 specification.
71 //! \ingroup core_precision
72 typedef detail::mediump_uint_t mediump_uint;
73 //! High precision unsigned integer.
74 //! There is no guarantee on the actual precision.
75 //! From GLSL 1.30.8 specification.
76 //! \ingroup core_precision
77 typedef detail::highp_uint_t highp_uint;
78 }
79 //namespace precision
59 //! Low precision unsigned integer.
60 //! There is no guarantee on the actual precision.
61 //! From GLSL 1.30.8 specification.
62 //! \ingroup core_precision
63 typedef detail::lowp_uint_t lowp_uint;
64 //! Medium precision unsigned integer.
65 //! There is no guarantee on the actual precision.
66 //! From GLSL 1.30.8 specification.
67 //! \ingroup core_precision
68 typedef detail::mediump_uint_t mediump_uint;
69 //! High precision unsigned integer.
70 //! There is no guarantee on the actual precision.
71 //! From GLSL 1.30.8 specification.
72 //! \ingroup core_precision
73 typedef detail::highp_uint_t highp_uint;
74 }//namespace precision
8075
8176 #if(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
8277 typedef precision::mediump_int int_t;
106101 //! From GLSL 1.30.8 specification section 4.1.3 Integers.
107102 typedef uint_t uint;
108103
109 }//namespace type
110 }//namespace core
104 }//namespace type
105 }//namespace core
111106 }//namespace glm
112107
113108 #endif//glm_core_type_int
1111
1212 #include "type_mat.hpp"
1313
14 namespace glm
14 namespace glm{
15 namespace detail
1516 {
16 namespace test
17 template <typename T> struct tvec1;
18 template <typename T> struct tvec2;
19 template <typename T> struct tvec3;
20 template <typename T> struct tvec4;
21 template <typename T> struct tmat2x2;
22 template <typename T> struct tmat2x3;
23 template <typename T> struct tmat2x4;
24 template <typename T> struct tmat3x2;
25 template <typename T> struct tmat3x3;
26 template <typename T> struct tmat3x4;
27 template <typename T> struct tmat4x2;
28 template <typename T> struct tmat4x3;
29 template <typename T> struct tmat4x4;
30
31 //! \brief Template for 2 * 2 matrix of floating-point numbers.
32 //! \ingroup core_template
33 template <typename T>
34 struct tmat2x2
1735 {
18 void main_mat2x2();
19 }//namespace test
20
21 namespace detail
22 {
23 template <typename T> struct tvec1;
24 template <typename T> struct tvec2;
25 template <typename T> struct tvec3;
26 template <typename T> struct tvec4;
27 template <typename T> struct tmat2x2;
28 template <typename T> struct tmat2x3;
29 template <typename T> struct tmat2x4;
30 template <typename T> struct tmat3x2;
31 template <typename T> struct tmat3x3;
32 template <typename T> struct tmat3x4;
33 template <typename T> struct tmat4x2;
34 template <typename T> struct tmat4x3;
35 template <typename T> struct tmat4x4;
36
37 //! \brief Template for 2 * 2 matrix of floating-point numbers.
38 //! \ingroup core_template
39 template <typename T>
40 struct tmat2x2
41 {
42 enum ctor{null};
43 typedef T value_type;
44 typedef std::size_t size_type;
45 typedef tvec2<T> col_type;
46 typedef tvec2<T> row_type;
47 static GLM_FUNC_DECL size_type col_size();
48 static GLM_FUNC_DECL size_type row_size();
49
50 typedef tmat2x2<T> type;
51 typedef tmat2x2<T> transpose_type;
52
53 public:
54 // Implementation detail
55 GLM_FUNC_DECL tmat2x2<T> _inverse() const;
56
57 private:
58 // Data
59 col_type value[2];
60
61 public:
62 // Constructors
63 GLM_FUNC_DECL tmat2x2();
64 GLM_FUNC_DECL tmat2x2(
65 tmat2x2 const & m);
66
67 GLM_FUNC_DECL explicit tmat2x2(
68 ctor Null);
69 GLM_FUNC_DECL explicit tmat2x2(
70 value_type const & x);
71 GLM_FUNC_DECL explicit tmat2x2(
72 value_type const & x1, value_type const & y1,
73 value_type const & x2, value_type const & y2);
74 GLM_FUNC_DECL explicit tmat2x2(
75 col_type const & v1,
76 col_type const & v2);
77
78 // Conversions
79 template <typename U>
80 GLM_FUNC_DECL explicit tmat2x2(tmat2x2<U> const & m);
81
82 GLM_FUNC_DECL explicit tmat2x2(tmat3x3<T> const & x);
83 GLM_FUNC_DECL explicit tmat2x2(tmat4x4<T> const & x);
84 GLM_FUNC_DECL explicit tmat2x2(tmat2x3<T> const & x);
85 GLM_FUNC_DECL explicit tmat2x2(tmat3x2<T> const & x);
86 GLM_FUNC_DECL explicit tmat2x2(tmat2x4<T> const & x);
87 GLM_FUNC_DECL explicit tmat2x2(tmat4x2<T> const & x);
88 GLM_FUNC_DECL explicit tmat2x2(tmat3x4<T> const & x);
89 GLM_FUNC_DECL explicit tmat2x2(tmat4x3<T> const & x);
90
91 //////////////////////////////////////
92 // Accesses
93
94 GLM_FUNC_DECL col_type & operator[](size_type i);
95 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
96
97 // Unary updatable operators
98 GLM_FUNC_DECL tmat2x2<T> & operator=(tmat2x2<T> const & m);
99 template <typename U>
100 GLM_FUNC_DECL tmat2x2<T> & operator=(tmat2x2<U> const & m);
101 template <typename U>
102 GLM_FUNC_DECL tmat2x2<T> & operator+=(U const & s);
103 template <typename U>
104 GLM_FUNC_DECL tmat2x2<T> & operator+=(tmat2x2<U> const & m);
105 template <typename U>
106 GLM_FUNC_DECL tmat2x2<T> & operator-=(U const & s);
107 template <typename U>
108 GLM_FUNC_DECL tmat2x2<T> & operator-=(tmat2x2<U> const & m);
109 template <typename U>
110 GLM_FUNC_DECL tmat2x2<T> & operator*=(U const & s);
111 template <typename U>
112 GLM_FUNC_DECL tmat2x2<T> & operator*=(tmat2x2<U> const & m);
113 template <typename U>
114 GLM_FUNC_DECL tmat2x2<T> & operator/=(U const & s);
115 template <typename U>
116 GLM_FUNC_DECL tmat2x2<T> & operator/=(tmat2x2<U> const & m);
117 GLM_FUNC_DECL tmat2x2<T> & operator++();
118 GLM_FUNC_DECL tmat2x2<T> & operator--();
119 };
120
121 // Binary operators
122 template <typename T>
123 tmat2x2<T> operator+ (
124 tmat2x2<T> const & m,
125 typename tmat2x2<T>::value_type const & s);
126
127 template <typename T>
128 tmat2x2<T> operator+ (
129 typename tmat2x2<T>::value_type const & s,
130 tmat2x2<T> const & m);
131
132 template <typename T>
133 tmat2x2<T> operator+ (
134 tmat2x2<T> const & m1,
135 tmat2x2<T> const & m2);
36 enum ctor{null};
37 typedef T value_type;
38 typedef std::size_t size_type;
39 typedef tvec2<T> col_type;
40 typedef tvec2<T> row_type;
41 static GLM_FUNC_DECL size_type col_size();
42 static GLM_FUNC_DECL size_type row_size();
43
44 typedef tmat2x2<T> type;
45 typedef tmat2x2<T> transpose_type;
46
47 public:
48 // Implementation detail
49 GLM_FUNC_DECL tmat2x2<T> _inverse() const;
50
51 private:
52 //////////////////////////////////////
53 // Data
54 col_type value[2];
55
56 public:
57 //////////////////////////////////////
58 // Constructors
59 GLM_FUNC_DECL tmat2x2();
60 GLM_FUNC_DECL tmat2x2(
61 tmat2x2 const & m);
62
63 GLM_FUNC_DECL explicit tmat2x2(
64 ctor Null);
65 GLM_FUNC_DECL explicit tmat2x2(
66 value_type const & x);
67 GLM_FUNC_DECL explicit tmat2x2(
68 value_type const & x1, value_type const & y1,
69 value_type const & x2, value_type const & y2);
70 GLM_FUNC_DECL explicit tmat2x2(
71 col_type const & v1,
72 col_type const & v2);
73
74 //////////////////////////////////////
75 // Conversions
76 template <typename U>
77 GLM_FUNC_DECL explicit tmat2x2(
78 U const & x);
79
80 template <typename U, typename V, typename M, typename N>
81 GLM_FUNC_DECL explicit 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 explicit tmat2x2(
87 tvec2<U> const & v1,
88 tvec2<V> const & v2);
89
90 //////////////////////////////////////
91 // Matrix conversions
92 template <typename U>
93 GLM_FUNC_DECL explicit tmat2x2(tmat2x2<U> const & m);
94
95 GLM_FUNC_DECL explicit tmat2x2(tmat3x3<T> const & x);
96 GLM_FUNC_DECL explicit tmat2x2(tmat4x4<T> const & x);
97 GLM_FUNC_DECL explicit tmat2x2(tmat2x3<T> const & x);
98 GLM_FUNC_DECL explicit tmat2x2(tmat3x2<T> const & x);
99 GLM_FUNC_DECL explicit tmat2x2(tmat2x4<T> const & x);
100 GLM_FUNC_DECL explicit tmat2x2(tmat4x2<T> const & x);
101 GLM_FUNC_DECL explicit tmat2x2(tmat3x4<T> const & x);
102 GLM_FUNC_DECL explicit tmat2x2(tmat4x3<T> const & x);
103
104 //////////////////////////////////////
105 // Accesses
106
107 GLM_FUNC_DECL col_type & operator[](size_type i);
108 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
109
110 // Unary updatable operators
111 GLM_FUNC_DECL tmat2x2<T> & operator=(tmat2x2<T> const & m);
112 template <typename U>
113 GLM_FUNC_DECL tmat2x2<T> & operator=(tmat2x2<U> const & m);
114 template <typename U>
115 GLM_FUNC_DECL tmat2x2<T> & operator+=(U const & s);
116 template <typename U>
117 GLM_FUNC_DECL tmat2x2<T> & operator+=(tmat2x2<U> const & m);
118 template <typename U>
119 GLM_FUNC_DECL tmat2x2<T> & operator-=(U const & s);
120 template <typename U>
121 GLM_FUNC_DECL tmat2x2<T> & operator-=(tmat2x2<U> const & m);
122 template <typename U>
123 GLM_FUNC_DECL tmat2x2<T> & operator*=(U const & s);
124 template <typename U>
125 GLM_FUNC_DECL tmat2x2<T> & operator*=(tmat2x2<U> const & m);
126 template <typename U>
127 GLM_FUNC_DECL tmat2x2<T> & operator/=(U const & s);
128 template <typename U>
129 GLM_FUNC_DECL tmat2x2<T> & operator/=(tmat2x2<U> const & m);
130 GLM_FUNC_DECL tmat2x2<T> & operator++();
131 GLM_FUNC_DECL tmat2x2<T> & operator--();
132 };
133
134 // Binary operators
135 template <typename T>
136 tmat2x2<T> operator+ (
137 tmat2x2<T> const & m,
138 typename tmat2x2<T>::value_type const & s);
139
140 template <typename T>
141 tmat2x2<T> operator+ (
142 typename tmat2x2<T>::value_type const & s,
143 tmat2x2<T> const & m);
144
145 template <typename T>
146 tmat2x2<T> operator+ (
147 tmat2x2<T> const & m1,
148 tmat2x2<T> const & m2);
136149
137 template <typename T>
138 tmat2x2<T> operator- (
139 tmat2x2<T> const & m,
140 typename tmat2x2<T>::value_type const & s);
141
142 template <typename T>
143 tmat2x2<T> operator- (
144 typename tmat2x2<T>::value_type const & s,
145 tmat2x2<T> const & m);
146
147 template <typename T>
148 tmat2x2<T> operator- (
149 tmat2x2<T> const & m1,
150 tmat2x2<T> const & m2);
151
152 template <typename T>
153 tmat2x2<T> operator* (
154 tmat2x2<T> const & m,
155 typename tmat2x2<T>::value_type const & s);
156
157 template <typename T>
158 tmat2x2<T> operator* (
159 typename tmat2x2<T>::value_type const & s,
160 tmat2x2<T> const & m);
161
162 template <typename T>
163 typename tmat2x2<T>::col_type operator* (
164 tmat2x2<T> const & m,
165 typename tmat2x2<T>::row_type const & v);
166
167 template <typename T>
168 typename tmat2x2<T>::row_type operator* (
169 typename tmat2x2<T>::col_type const & v,
170 tmat2x2<T> const & m);
171
172 template <typename T>
173 tmat2x2<T> operator* (
174 tmat2x2<T> const & m1,
175 tmat2x2<T> const & m2);
176
177 template <typename T>
178 tmat2x2<T> operator/ (
179 tmat2x2<T> const & m,
180 typename tmat2x2<T>::value_type const & s);
181
182 template <typename T>
183 tmat2x2<T> operator/ (
184 typename tmat2x2<T>::value_type const & s,
185 tmat2x2<T> const & m);
186
187 template <typename T>
188 typename tmat2x2<T>::col_type operator/ (
189 tmat2x2<T> const & m,
190 typename tmat2x2<T>::row_type const & v);
191
192 template <typename T>
193 typename tmat2x2<T>::row_type operator/ (
194 typename tmat2x2<T>::col_type const & v,
195 tmat2x2<T> const & m);
196
197 template <typename T>
198 tmat2x2<T> operator/ (
199 tmat2x2<T> const & m1,
200 tmat2x2<T> const & m2);
201
202 // Unary constant operators
203 template <typename T>
204 tmat2x2<T> const operator- (
205 tmat2x2<T> const & m);
206
207 template <typename T>
208 tmat2x2<T> const operator-- (
209 tmat2x2<T> const & m,
210 int);
211
212 template <typename T>
213 tmat2x2<T> const operator++ (
214 tmat2x2<T> const & m,
215 int);
216
217 } //namespace detail
218
219 namespace core{
220 namespace type{
221
222 namespace precision
223 {
224 //! 2 columns of 2 components matrix of low precision floating-point numbers.
225 //! There is no guarantee on the actual precision.
226 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
227 //! \ingroup core_precision
228 typedef detail::tmat2x2<lowp_float> lowp_mat2x2;
229 //! 2 columns of 2 components matrix of medium precision floating-point numbers.
230 //! There is no guarantee on the actual precision.
231 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
232 //! \ingroup core_precision
233 typedef detail::tmat2x2<mediump_float> mediump_mat2x2;
234 //! 2 columns of 2 components matrix of high precision floating-point numbers.
235 //! There is no guarantee on the actual precision.
236 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
237 //! \ingroup core_precision
238 typedef detail::tmat2x2<highp_float> highp_mat2x2;
239 }
240 //namespace precision
241
242 }//namespace type
243 }//namespace core
244 } //namespace glm
150 template <typename T>
151 tmat2x2<T> operator- (
152 tmat2x2<T> const & m,
153 typename tmat2x2<T>::value_type const & s);
154
155 template <typename T>
156 tmat2x2<T> operator- (
157 typename tmat2x2<T>::value_type const & s,
158 tmat2x2<T> const & m);
159
160 template <typename T>
161 tmat2x2<T> operator- (
162 tmat2x2<T> const & m1,
163 tmat2x2<T> const & m2);
164
165 template <typename T>
166 tmat2x2<T> operator* (
167 tmat2x2<T> const & m,
168 typename tmat2x2<T>::value_type const & s);
169
170 template <typename T>
171 tmat2x2<T> operator* (
172 typename tmat2x2<T>::value_type const & s,
173 tmat2x2<T> const & m);
174
175 template <typename T>
176 typename tmat2x2<T>::col_type operator* (
177 tmat2x2<T> const & m,
178 typename tmat2x2<T>::row_type const & v);
179
180 template <typename T>
181 typename tmat2x2<T>::row_type operator* (
182 typename tmat2x2<T>::col_type const & v,
183 tmat2x2<T> const & m);
184
185 template <typename T>
186 tmat2x2<T> operator* (
187 tmat2x2<T> const & m1,
188 tmat2x2<T> const & m2);
189
190 template <typename T>
191 tmat2x2<T> operator/ (
192 tmat2x2<T> const & m,
193 typename tmat2x2<T>::value_type const & s);
194
195 template <typename T>
196 tmat2x2<T> operator/ (
197 typename tmat2x2<T>::value_type const & s,
198 tmat2x2<T> const & m);
199
200 template <typename T>
201 typename tmat2x2<T>::col_type operator/ (
202 tmat2x2<T> const & m,
203 typename tmat2x2<T>::row_type const & v);
204
205 template <typename T>
206 typename tmat2x2<T>::row_type operator/ (
207 typename tmat2x2<T>::col_type const & v,
208 tmat2x2<T> const & m);
209
210 template <typename T>
211 tmat2x2<T> operator/ (
212 tmat2x2<T> const & m1,
213 tmat2x2<T> const & m2);
214
215 // Unary constant operators
216 template <typename T>
217 tmat2x2<T> const operator- (
218 tmat2x2<T> const & m);
219
220 template <typename T>
221 tmat2x2<T> const operator-- (
222 tmat2x2<T> const & m,
223 int);
224
225 template <typename T>
226 tmat2x2<T> const operator++ (
227 tmat2x2<T> const & m,
228 int);
229 } //namespace detail
230
231 namespace core{
232 namespace type{
233 namespace precision
234 {
235 //! 2 columns of 2 components matrix of low precision floating-point numbers.
236 //! There is no guarantee on the actual precision.
237 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
238 //! \ingroup core_precision
239 typedef detail::tmat2x2<lowp_float> lowp_mat2;
240
241 //! 2 columns of 2 components matrix of medium precision floating-point numbers.
242 //! There is no guarantee on the actual precision.
243 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
244 //! \ingroup core_precision
245 typedef detail::tmat2x2<mediump_float> mediump_mat2;
246
247 //! 2 columns of 2 components matrix of high precision floating-point numbers.
248 //! There is no guarantee on the actual precision.
249 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
250 //! \ingroup core_precision
251 typedef detail::tmat2x2<highp_float> highp_mat2;
252
253 //! 2 columns of 2 components matrix of low precision floating-point numbers.
254 //! There is no guarantee on the actual precision.
255 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
256 //! \ingroup core_precision
257 typedef detail::tmat2x2<lowp_float> lowp_mat2x2;
258
259 //! 2 columns of 2 components matrix of medium precision floating-point numbers.
260 //! There is no guarantee on the actual precision.
261 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
262 //! \ingroup core_precision
263 typedef detail::tmat2x2<mediump_float> mediump_mat2x2;
264
265 //! 2 columns of 2 components matrix of high precision floating-point numbers.
266 //! There is no guarantee on the actual precision.
267 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
268 //! \ingroup core_precision
269 typedef detail::tmat2x2<highp_float> highp_mat2x2;
270
271 }//namespace precision
272 }//namespace type
273 }//namespace core
274 }//namespace glm
245275
246276 #ifndef GLM_EXTERNAL_TEMPLATE
247277 #include "type_mat2x2.inl"
106106 this->value[1] = v1;
107107 }
108108
109 //////////////////////////////////////
110 // Convertion constructors
111 template <typename T>
112 template <typename U>
113 GLM_FUNC_DECL tmat2x2<T>::tmat2x2
114 (
115 U const & s
116 )
117 {
118 value_type const Zero(0);
119 this->value[0] = tvec2<T>(value_type(s), Zero);
120 this->value[1] = tvec2<T>(Zero, value_type(s));
121 }
122
123 template <typename T>
124 template <typename X1, typename Y1, typename X2, typename Y2>
125 GLM_FUNC_DECL tmat2x2<T>::tmat2x2
126 (
127 X1 const & x1, Y1 const & y1,
128 X2 const & x2, Y2 const & y2
129 )
130 {
131 this->value[0] = col_type(value_type(x1), value_type(y1));
132 this->value[1] = col_type(value_type(x2), value_type(y2));
133 }
134
135 template <typename T>
136 template <typename V1, typename V2>
137 GLM_FUNC_DECL tmat2x2<T>::tmat2x2
138 (
139 tvec2<V1> const & v1,
140 tvec2<V2> const & v2
141 )
142 {
143 this->value[0] = col_type(v1);
144 this->value[1] = col_type(v2);
145 }
146
109147 //////////////////////////////////////////////////////////////
110 // mat2 conversions
148 // mat2x2 matrix conversions
111149
112150 template <typename T>
113151 template <typename U>
214252 }
215253
216254 //////////////////////////////////////////////////////////////
217 // mat3 operators
255 // mat2x2 operators
218256
219257 // This function shouldn't required but it seems that VC7.1 have an optimisation bug if this operator wasn't declared
220258 template <typename T>
1111
1212 #include "type_mat.hpp"
1313
14 namespace glm
14 namespace glm{
15 namespace detail
1516 {
16 namespace test
17 template <typename T> struct tvec1;
18 template <typename T> struct tvec2;
19 template <typename T> struct tvec3;
20 template <typename T> struct tvec4;
21 template <typename T> struct tmat2x2;
22 template <typename T> struct tmat2x3;
23 template <typename T> struct tmat2x4;
24 template <typename T> struct tmat3x2;
25 template <typename T> struct tmat3x3;
26 template <typename T> struct tmat3x4;
27 template <typename T> struct tmat4x2;
28 template <typename T> struct tmat4x3;
29 template <typename T> struct tmat4x4;
30
31 //! \brief Template for 2 columns and 3 rows matrix of floating-point numbers.
32 //! \ingroup core_template
33 template <typename T>
34 struct tmat2x3
1735 {
18 void main_mat2x3();
19 }//namespace test
20
21 namespace detail
22 {
23 template <typename T> struct tvec1;
24 template <typename T> struct tvec2;
25 template <typename T> struct tvec3;
26 template <typename T> struct tvec4;
27 template <typename T> struct tmat2x2;
28 template <typename T> struct tmat2x3;
29 template <typename T> struct tmat2x4;
30 template <typename T> struct tmat3x2;
31 template <typename T> struct tmat3x3;
32 template <typename T> struct tmat3x4;
33 template <typename T> struct tmat4x2;
34 template <typename T> struct tmat4x3;
35 template <typename T> struct tmat4x4;
36
37 //! \brief Template for 2 columns and 3 rows matrix of floating-point numbers.
38 //! \ingroup core_template
39 template <typename T>
40 struct tmat2x3
41 {
42 enum ctor{null};
43 typedef T value_type;
44 typedef std::size_t size_type;
45 typedef tvec3<T> col_type;
46 typedef tvec2<T> row_type;
47 static GLM_FUNC_DECL size_type col_size();
48 static GLM_FUNC_DECL size_type row_size();
49
50 typedef tmat2x3<T> type;
51 typedef tmat3x2<T> transpose_type;
52
53 private:
54 // Data
55 col_type value[2];
56
57 public:
58 // Constructors
59 GLM_FUNC_DECL tmat2x3();
60 GLM_FUNC_DECL tmat2x3(tmat2x3 const & m);
61
62 GLM_FUNC_DECL explicit tmat2x3(
63 ctor);
64 GLM_FUNC_DECL explicit tmat2x3(
65 value_type const & s);
66 GLM_FUNC_DECL explicit tmat2x3(
67 value_type const & x0, value_type const & y0, value_type const & z0,
68 value_type const & x1, value_type const & y1, value_type const & z1);
69 GLM_FUNC_DECL explicit tmat2x3(
70 col_type const & v0,
71 col_type const & v1);
72
73 // Conversion
74 template <typename U>
75 GLM_FUNC_DECL explicit tmat2x3(tmat2x3<U> const & m);
76
77 GLM_FUNC_DECL explicit tmat2x3(tmat2x2<T> const & x);
78 GLM_FUNC_DECL explicit tmat2x3(tmat3x3<T> const & x);
79 GLM_FUNC_DECL explicit tmat2x3(tmat4x4<T> const & x);
80 GLM_FUNC_DECL explicit tmat2x3(tmat2x4<T> const & x);
81 GLM_FUNC_DECL explicit tmat2x3(tmat3x2<T> const & x);
82 GLM_FUNC_DECL explicit tmat2x3(tmat3x4<T> const & x);
83 GLM_FUNC_DECL explicit tmat2x3(tmat4x2<T> const & x);
84 GLM_FUNC_DECL explicit tmat2x3(tmat4x3<T> const & x);
85
86 // Accesses
87 col_type & operator[](size_type i);
88 col_type const & operator[](size_type i) const;
89
90 // Unary updatable operators
91 GLM_FUNC_DECL tmat2x3<T> & operator= (tmat2x3<T> const & m);
92 template <typename U>
93 GLM_FUNC_DECL tmat2x3<T> & operator= (tmat2x3<U> const & m);
94 template <typename U>
95 GLM_FUNC_DECL tmat2x3<T> & operator+= (U const & s);
96 template <typename U>
97 GLM_FUNC_DECL tmat2x3<T> & operator+= (tmat2x3<U> const & m);
98 template <typename U>
99 GLM_FUNC_DECL tmat2x3<T> & operator-= (U const & s);
100 template <typename U>
101 GLM_FUNC_DECL tmat2x3<T> & operator-= (tmat2x3<U> const & m);
102 template <typename U>
103 GLM_FUNC_DECL tmat2x3<T> & operator*= (U const & s);
104 template <typename U>
105 GLM_FUNC_DECL tmat2x3<T> & operator*= (tmat2x3<U> const & m);
106 template <typename U>
107 GLM_FUNC_DECL tmat2x3<T> & operator/= (U const & s);
108
109 GLM_FUNC_DECL tmat2x3<T> & operator++ ();
110 GLM_FUNC_DECL tmat2x3<T> & operator-- ();
111 };
112
113 // Binary operators
114 template <typename T>
115 tmat2x3<T> operator+ (
116 tmat2x3<T> const & m,
117 typename tmat2x3<T>::value_type const & s);
36 enum ctor{null};
37 typedef T value_type;
38 typedef std::size_t size_type;
39 typedef tvec3<T> col_type;
40 typedef tvec2<T> row_type;
41 static GLM_FUNC_DECL size_type col_size();
42 static GLM_FUNC_DECL size_type row_size();
43
44 typedef tmat2x3<T> type;
45 typedef tmat3x2<T> transpose_type;
46
47 private:
48 // Data
49 col_type value[2];
50
51 public:
52 // Constructors
53 GLM_FUNC_DECL tmat2x3();
54 GLM_FUNC_DECL tmat2x3(tmat2x3 const & m);
55
56 GLM_FUNC_DECL explicit tmat2x3(
57 ctor);
58 GLM_FUNC_DECL explicit tmat2x3(
59 value_type const & s);
60 GLM_FUNC_DECL explicit tmat2x3(
61 value_type const & x0, value_type const & y0, value_type const & z0,
62 value_type const & x1, value_type const & y1, value_type const & z1);
63 GLM_FUNC_DECL explicit tmat2x3(
64 col_type const & v0,
65 col_type const & v1);
66
67
68 //////////////////////////////////////
69 // Conversions
70 template <typename U>
71 GLM_FUNC_DECL explicit tmat2x3(
72 U const & x);
73
74 template <typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2>
75 GLM_FUNC_DECL explicit tmat2x3(
76 X1 const & x1, Y1 const & y1, Z1 const & z1,
77 X2 const & x2, Y2 const & y2, Z2 const & z2);
78
79 template <typename U, typename V>
80 GLM_FUNC_DECL explicit tmat2x3(
81 tvec3<U> const & v1,
82 tvec3<V> const & v2);
83
84 //////////////////////////////////////
85 // Matrix conversion
86 template <typename U>
87 GLM_FUNC_DECL explicit tmat2x3(tmat2x3<U> const & m);
88
89 GLM_FUNC_DECL explicit tmat2x3(tmat2x2<T> const & x);
90 GLM_FUNC_DECL explicit tmat2x3(tmat3x3<T> const & x);
91 GLM_FUNC_DECL explicit tmat2x3(tmat4x4<T> const & x);
92 GLM_FUNC_DECL explicit tmat2x3(tmat2x4<T> const & x);
93 GLM_FUNC_DECL explicit tmat2x3(tmat3x2<T> const & x);
94 GLM_FUNC_DECL explicit tmat2x3(tmat3x4<T> const & x);
95 GLM_FUNC_DECL explicit tmat2x3(tmat4x2<T> const & x);
96 GLM_FUNC_DECL explicit tmat2x3(tmat4x3<T> const & x);
97
98 // Accesses
99 col_type & operator[](size_type i);
100 col_type const & operator[](size_type i) const;
101
102 // Unary updatable operators
103 GLM_FUNC_DECL tmat2x3<T> & operator= (tmat2x3<T> const & m);
104 template <typename U>
105 GLM_FUNC_DECL tmat2x3<T> & operator= (tmat2x3<U> const & m);
106 template <typename U>
107 GLM_FUNC_DECL tmat2x3<T> & operator+= (U const & s);
108 template <typename U>
109 GLM_FUNC_DECL tmat2x3<T> & operator+= (tmat2x3<U> const & m);
110 template <typename U>
111 GLM_FUNC_DECL tmat2x3<T> & operator-= (U const & s);
112 template <typename U>
113 GLM_FUNC_DECL tmat2x3<T> & operator-= (tmat2x3<U> const & m);
114 template <typename U>
115 GLM_FUNC_DECL tmat2x3<T> & operator*= (U const & s);
116 template <typename U>
117 GLM_FUNC_DECL tmat2x3<T> & operator*= (tmat2x3<U> const & m);
118 template <typename U>
119 GLM_FUNC_DECL tmat2x3<T> & operator/= (U const & s);
120
121 GLM_FUNC_DECL tmat2x3<T> & operator++ ();
122 GLM_FUNC_DECL tmat2x3<T> & operator-- ();
123 };
124
125 // Binary operators
126 template <typename T>
127 tmat2x3<T> operator+ (
128 tmat2x3<T> const & m,
129 typename tmat2x3<T>::value_type const & s);
118130
119 template <typename T>
120 tmat2x3<T> operator+ (
121 tmat2x3<T> const & m1,
122 tmat2x3<T> const & m2);
131 template <typename T>
132 tmat2x3<T> operator+ (
133 tmat2x3<T> const & m1,
134 tmat2x3<T> const & m2);
123135
124 template <typename T>
125 tmat2x3<T> operator- (
126 tmat2x3<T> const & m,
127 typename tmat2x3<T>::value_type const & s);
128
129 template <typename T>
130 tmat2x3<T> operator- (
131 tmat2x3<T> const & m1,
132 tmat2x3<T> const & m2);
133
134 template <typename T>
135 tmat2x3<T> operator* (
136 tmat2x3<T> const & m,
137 typename tmat2x3<T>::value_type const & s);
138
139 template <typename T>
140 tmat2x3<T> operator* (
141 typename tmat2x3<T>::value_type const & s,
142 tmat2x3<T> const & m);
143
144 template <typename T>
145 typename tmat2x3<T>::col_type operator* (
146 tmat2x3<T> const & m,
147 typename tmat2x3<T>::row_type const & v);
148
149 template <typename T>
150 typename tmat2x3<T>::row_type operator* (
151 typename tmat2x3<T>::col_type const & v,
152 tmat2x3<T> const & m);
153
154 template <typename T>
155 tmat3x3<T> operator* (
156 tmat2x3<T> const & m1,
157 tmat3x2<T> const & m2);
158
159 template <typename T>
160 tmat2x3<T> operator/ (
161 tmat2x3<T> const & m,
162 typename tmat2x3<T>::value_type const & s);
163
164 template <typename T>
165 tmat2x3<T> operator/ (
166 typename tmat2x3<T>::value_type const & s,
167 tmat2x3<T> const & m);
168
169 // Unary constant operators
170 template <typename T>
171 tmat2x3<T> const operator- (
172 tmat2x3<T> const & m);
173
174 template <typename T>
175 tmat2x3<T> const operator-- (
176 tmat2x3<T> const & m,
177 int);
178
179 template <typename T>
180 tmat2x3<T> const operator++ (
181 tmat2x3<T> const & m,
182 int);
183
184 } //namespace detail
185
186 namespace core{
187 namespace type{
188
189 namespace precision
190 {
191 //! 2 columns of 3 components matrix of low precision floating-point numbers.
192 //! There is no guarantee on the actual precision.
193 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
194 //! \ingroup core_precision
195 typedef detail::tmat2x3<lowp_float> lowp_mat2x3;
196 //! 2 columns of 3 components matrix of medium precision floating-point numbers.
197 //! There is no guarantee on the actual precision.
198 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
199 //! \ingroup core_precision
200 typedef detail::tmat2x3<mediump_float> mediump_mat2x3;
201 //! 2 columns of 3 components matrix of high precision floating-point numbers.
202 //! There is no guarantee on the actual precision.
203 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
204 //! \ingroup core_precision
205 typedef detail::tmat2x3<highp_float> highp_mat2x3;
206 }
207 //namespace precision
208
209 }//namespace type
210 }//namespace core
211 } //namespace glm
136 template <typename T>
137 tmat2x3<T> operator- (
138 tmat2x3<T> const & m,
139 typename tmat2x3<T>::value_type const & s);
140
141 template <typename T>
142 tmat2x3<T> operator- (
143 tmat2x3<T> const & m1,
144 tmat2x3<T> const & m2);
145
146 template <typename T>
147 tmat2x3<T> operator* (
148 tmat2x3<T> const & m,
149 typename tmat2x3<T>::value_type const & s);
150
151 template <typename T>
152 tmat2x3<T> operator* (
153 typename tmat2x3<T>::value_type const & s,
154 tmat2x3<T> const & m);
155
156 template <typename T>
157 typename tmat2x3<T>::col_type operator* (
158 tmat2x3<T> const & m,
159 typename tmat2x3<T>::row_type const & v);
160
161 template <typename T>
162 typename tmat2x3<T>::row_type operator* (
163 typename tmat2x3<T>::col_type const & v,
164 tmat2x3<T> const & m);
165
166 template <typename T>
167 tmat3x3<T> operator* (
168 tmat2x3<T> const & m1,
169 tmat3x2<T> const & m2);
170
171 template <typename T>
172 tmat2x3<T> operator/ (
173 tmat2x3<T> const & m,
174 typename tmat2x3<T>::value_type const & s);
175
176 template <typename T>
177 tmat2x3<T> operator/ (
178 typename tmat2x3<T>::value_type const & s,
179 tmat2x3<T> const & m);
180
181 // Unary constant operators
182 template <typename T>
183 tmat2x3<T> const operator- (
184 tmat2x3<T> const & m);
185
186 template <typename T>
187 tmat2x3<T> const operator-- (
188 tmat2x3<T> const & m,
189 int);
190
191 template <typename T>
192 tmat2x3<T> const operator++ (
193 tmat2x3<T> const & m,
194 int);
195
196 } //namespace detail
197
198 namespace core{
199 namespace type{
200 namespace precision
201 {
202 //! 2 columns of 3 components matrix of low precision floating-point numbers.
203 //! There is no guarantee on the actual precision.
204 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
205 //! \ingroup core_precision
206 typedef detail::tmat2x3<lowp_float> lowp_mat2x3;
207 //! 2 columns of 3 components matrix of medium precision floating-point numbers.
208 //! There is no guarantee on the actual precision.
209 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
210 //! \ingroup core_precision
211 typedef detail::tmat2x3<mediump_float> mediump_mat2x3;
212 //! 2 columns of 3 components matrix of high precision floating-point numbers.
213 //! There is no guarantee on the actual precision.
214 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
215 //! \ingroup core_precision
216 typedef detail::tmat2x3<highp_float> highp_mat2x3;
217 }//namespace precision
218 }//namespace type
219 }//namespace core
220 }//namespace glm
212221
213222 #ifndef GLM_EXTERNAL_TEMPLATE
214223 #include "type_mat2x3.inl"
105105 this->value[1] = v1;
106106 }
107107
108 // Conversion
108 //////////////////////////////////////
109 // Convertion constructors
110 template <typename T>
111 template <typename U>
112 GLM_FUNC_DECL tmat2x3<T>::tmat2x3
113 (
114 U const & s
115 )
116 {
117 value_type const Zero(0);
118 this->value[0] = tvec3<T>(value_type(s), Zero, Zero);
119 this->value[1] = tvec3<T>(Zero, value_type(s), Zero);
120 }
121
122 template <typename T>
123 template <
124 typename X1, typename Y1, typename Z1,
125 typename X2, typename Y2, typename Z2>
126 GLM_FUNC_DECL tmat2x3<T>::tmat2x3
127 (
128 X1 const & x1, Y1 const & y1, Z1 const & z1,
129 X2 const & x2, Y2 const & y2, Z2 const & z2
130 )
131 {
132 this->value[0] = col_type(value_type(x1), value_type(y1), value_type(z1));
133 this->value[1] = col_type(value_type(x2), value_type(y2), value_type(z2));
134 }
135
136 template <typename T>
137 template <typename V1, typename V2>
138 GLM_FUNC_DECL tmat2x3<T>::tmat2x3
139 (
140 tvec3<V1> const & v1,
141 tvec3<V2> const & v2
142 )
143 {
144 this->value[0] = col_type(v1);
145 this->value[1] = col_type(v2);
146 }
147
148 //////////////////////////////////////
149 // Matrix conversions
150
109151 template <typename T>
110152 template <typename U>
111153 GLM_FUNC_QUALIFIER tmat2x3<T>::tmat2x3
1111
1212 #include "type_mat.hpp"
1313
14 namespace glm
14 namespace glm{
15 namespace detail
1516 {
16 namespace test
17 template <typename T> struct tvec1;
18 template <typename T> struct tvec2;
19 template <typename T> struct tvec3;
20 template <typename T> struct tvec4;
21 template <typename T> struct tmat2x2;
22 template <typename T> struct tmat2x3;
23 template <typename T> struct tmat2x4;
24 template <typename T> struct tmat3x2;
25 template <typename T> struct tmat3x3;
26 template <typename T> struct tmat3x4;
27 template <typename T> struct tmat4x2;
28 template <typename T> struct tmat4x3;
29 template <typename T> struct tmat4x4;
30
31 //! Template for 2 columns and 4 rows matrix of floating-point numbers.
32 //! \ingroup core_template
33 template <typename T>
34 struct tmat2x4
1735 {
18 void main_mat2x4();
19 }//namespace test
20
21 namespace detail
22 {
23 template <typename T> struct tvec1;
24 template <typename T> struct tvec2;
25 template <typename T> struct tvec3;
26 template <typename T> struct tvec4;
27 template <typename T> struct tmat2x2;
28 template <typename T> struct tmat2x3;
29 template <typename T> struct tmat2x4;
30 template <typename T> struct tmat3x2;
31 template <typename T> struct tmat3x3;
32 template <typename T> struct tmat3x4;
33 template <typename T> struct tmat4x2;
34 template <typename T> struct tmat4x3;
35 template <typename T> struct tmat4x4;
36
37 //! Template for 2 columns and 4 rows matrix of floating-point numbers.
38 //! \ingroup core_template
39 template <typename T>
40 struct tmat2x4
41 {
42 enum ctor{null};
43 typedef T value_type;
44 typedef std::size_t size_type;
45 typedef tvec4<T> col_type;
46 typedef tvec2<T> row_type;
47 static GLM_FUNC_DECL size_type col_size();
48 static GLM_FUNC_DECL size_type row_size();
49
50 typedef tmat2x4<T> type;
51 typedef tmat4x2<T> transpose_type;
52
53 private:
54 // Data
55 col_type value[2];
56
57 public:
58 // Constructors
59 GLM_FUNC_DECL tmat2x4();
60 GLM_FUNC_DECL tmat2x4(tmat2x4 const & m);
61
62 GLM_FUNC_DECL explicit tmat2x4(
63 ctor);
64 GLM_FUNC_DECL explicit tmat2x4(
65 value_type const & s);
66 GLM_FUNC_DECL explicit tmat2x4(
67 value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0,
68 value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1);
69 GLM_FUNC_DECL explicit tmat2x4(
70 col_type const & v0,
71 col_type const & v1);
72
73 // Conversion
74 template <typename U>
75 GLM_FUNC_DECL explicit tmat2x4(tmat2x4<U> const & m);
76
77 GLM_FUNC_DECL explicit tmat2x4(tmat2x2<T> const & x);
78 GLM_FUNC_DECL explicit tmat2x4(tmat3x3<T> const & x);
79 GLM_FUNC_DECL explicit tmat2x4(tmat4x4<T> const & x);
80 GLM_FUNC_DECL explicit tmat2x4(tmat2x3<T> const & x);
81 GLM_FUNC_DECL explicit tmat2x4(tmat3x2<T> const & x);
82 GLM_FUNC_DECL explicit tmat2x4(tmat3x4<T> const & x);
83 GLM_FUNC_DECL explicit tmat2x4(tmat4x2<T> const & x);
84 GLM_FUNC_DECL explicit tmat2x4(tmat4x3<T> const & x);
85
86 // Accesses
87 GLM_FUNC_DECL col_type & operator[](size_type i);
88 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
89
90 // Unary updatable operators
91 GLM_FUNC_DECL tmat2x4<T>& operator= (tmat2x4<T> const & m);
92 template <typename U>
93 GLM_FUNC_DECL tmat2x4<T>& operator= (tmat2x4<U> const & m);
94 template <typename U>
95 GLM_FUNC_DECL tmat2x4<T>& operator+= (U const & s);
96 template <typename U>
97 GLM_FUNC_DECL tmat2x4<T>& operator+= (tmat2x4<U> const & m);
98 template <typename U>
99 GLM_FUNC_DECL tmat2x4<T>& operator-= (U const & s);
100 template <typename U>
101 GLM_FUNC_DECL tmat2x4<T>& operator-= (tmat2x4<U> const & m);
102 template <typename U>
103 GLM_FUNC_DECL tmat2x4<T>& operator*= (U const & s);
104 template <typename U>
105 GLM_FUNC_DECL tmat2x4<T>& operator*= (tmat2x4<U> const & m);
106 template <typename U>
107 GLM_FUNC_DECL tmat2x4<T>& operator/= (U const & s);
108
109 GLM_FUNC_DECL tmat2x4<T>& operator++ ();
110 GLM_FUNC_DECL tmat2x4<T>& operator-- ();
111 };
112
113 // Binary operators
114 template <typename T>
115 tmat2x4<T> operator+ (
116 tmat2x4<T> const & m,
117 typename tmat2x4<T>::value_type const & s);
36 enum ctor{null};
37 typedef T value_type;
38 typedef std::size_t size_type;
39 typedef tvec4<T> col_type;
40 typedef tvec2<T> row_type;
41 static GLM_FUNC_DECL size_type col_size();
42 static GLM_FUNC_DECL size_type row_size();
43
44 typedef tmat2x4<T> type;
45 typedef tmat4x2<T> transpose_type;
46
47 private:
48 // Data
49 col_type value[2];
50
51 public:
52 // Constructors
53 GLM_FUNC_DECL tmat2x4();
54 GLM_FUNC_DECL tmat2x4(tmat2x4 const & m);
55
56 GLM_FUNC_DECL explicit tmat2x4(
57 ctor);
58 GLM_FUNC_DECL explicit tmat2x4(
59 value_type const & s);
60 GLM_FUNC_DECL explicit tmat2x4(
61 value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0,
62 value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1);
63 GLM_FUNC_DECL explicit tmat2x4(
64 col_type const & v0,
65 col_type const & v1);
66
67 //////////////////////////////////////
68 // Conversions
69 template <typename U>
70 GLM_FUNC_DECL explicit tmat2x4(
71 U const & x);
72
73 template <
74 typename X1, typename Y1, typename Z1, typename W1,
75 typename X2, typename Y2, typename Z2, typename W2>
76 GLM_FUNC_DECL explicit tmat2x4(
77 X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
78 X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2);
79
80 template <typename U, typename V>
81 GLM_FUNC_DECL explicit tmat2x4(
82 tvec4<U> const & v1,
83 tvec4<V> const & v2);
84
85 //////////////////////////////////////
86 // Matrix conversions
87 template <typename U>
88 GLM_FUNC_DECL explicit tmat2x4(tmat2x4<U> const & m);
89
90 GLM_FUNC_DECL explicit tmat2x4(tmat2x2<T> const & x);
91 GLM_FUNC_DECL explicit tmat2x4(tmat3x3<T> const & x);
92 GLM_FUNC_DECL explicit tmat2x4(tmat4x4<T> const & x);
93 GLM_FUNC_DECL explicit tmat2x4(tmat2x3<T> const & x);
94 GLM_FUNC_DECL explicit tmat2x4(tmat3x2<T> const & x);
95 GLM_FUNC_DECL explicit tmat2x4(tmat3x4<T> const & x);
96 GLM_FUNC_DECL explicit tmat2x4(tmat4x2<T> const & x);
97 GLM_FUNC_DECL explicit tmat2x4(tmat4x3<T> const & x);
98
99 // Accesses
100 GLM_FUNC_DECL col_type & operator[](size_type i);
101 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
102
103 // Unary updatable operators
104 GLM_FUNC_DECL tmat2x4<T>& operator= (tmat2x4<T> const & m);
105 template <typename U>
106 GLM_FUNC_DECL tmat2x4<T>& operator= (tmat2x4<U> const & m);
107 template <typename U>
108 GLM_FUNC_DECL tmat2x4<T>& operator+= (U const & s);
109 template <typename U>
110 GLM_FUNC_DECL tmat2x4<T>& operator+= (tmat2x4<U> const & m);
111 template <typename U>
112 GLM_FUNC_DECL tmat2x4<T>& operator-= (U const & s);
113 template <typename U>
114 GLM_FUNC_DECL tmat2x4<T>& operator-= (tmat2x4<U> const & m);
115 template <typename U>
116 GLM_FUNC_DECL tmat2x4<T>& operator*= (U const & s);
117 template <typename U>
118 GLM_FUNC_DECL tmat2x4<T>& operator*= (tmat2x4<U> const & m);
119 template <typename U>
120 GLM_FUNC_DECL tmat2x4<T>& operator/= (U const & s);
121
122 GLM_FUNC_DECL tmat2x4<T>& operator++ ();
123 GLM_FUNC_DECL tmat2x4<T>& operator-- ();
124 };
125
126 // Binary operators
127 template <typename T>
128 tmat2x4<T> operator+ (
129 tmat2x4<T> const & m,
130 typename tmat2x4<T>::value_type const & s);
118131
119 template <typename T>
120 tmat2x4<T> operator+ (
121 tmat2x4<T> const & m1,
122 tmat2x4<T> const & m2);
132 template <typename T>
133 tmat2x4<T> operator+ (
134 tmat2x4<T> const & m1,
135 tmat2x4<T> const & m2);
123136
124 template <typename T>
125 tmat2x4<T> operator- (
126 tmat2x4<T> const & m,
127 typename tmat2x4<T>::value_type const & s);
128
129 template <typename T>
130 tmat2x4<T> operator- (
131 tmat2x4<T> const & m1,
132 tmat2x4<T> const & m2);
133
134 template <typename T>
135 tmat2x4<T> operator* (
136 tmat2x4<T> const & m,
137 typename tmat2x4<T>::value_type const & s);
138
139 template <typename T>
140 tmat2x4<T> operator* (
141 typename tmat2x4<T>::value_type const & s,
142 tmat2x4<T> const & m);
143
144 template <typename T>
145 typename tmat2x4<T>::col_type operator* (
146 tmat2x4<T> const & m,
147 typename tmat2x4<T>::row_type const & v);
148
149 template <typename T>
150 typename tmat2x4<T>::row_type operator* (
151 typename tmat2x4<T>::col_type const & v,
152 tmat2x4<T> const & m);
153
154 template <typename T>
155 tmat2x4<T> operator* (
156 tmat2x4<T> const & m1,
157 tmat2x4<T> const & m2);
158
159 template <typename T>
160 tmat2x4<T> operator/ (
161 tmat2x4<T> const & m,
162 typename tmat2x4<T>::value_type const & s);
163
164 template <typename T>
165 tmat2x4<T> operator/ (
166 typename tmat2x4<T>::value_type const & s,
167 tmat2x4<T> const & m);
168
169 // Unary constant operators
170 template <typename T>
171 tmat2x4<T> const operator- (
172 tmat2x4<T> const & m);
173
174 template <typename T>
175 tmat2x4<T> const operator-- (
176 tmat2x4<T> const & m,
177 int);
178
179 template <typename T>
180 tmat2x4<T> const operator++ (
181 tmat2x4<T> const & m,
182 int);
183
184 } //namespace detail
185
186 namespace core{
187 namespace type{
188
189 namespace precision
190 {
191 //! 2 columns of 4 components matrix of low precision floating-point numbers.
192 //! There is no guarantee on the actual precision.
193 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
194 typedef detail::tmat2x4<lowp_float> lowp_mat2x4;
195 //! 2 columns of 4 components matrix of medium precision floating-point numbers.
196 //! There is no guarantee on the actual precision.
197 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
198 typedef detail::tmat2x4<mediump_float> mediump_mat2x4;
199 //! 2 columns of 4 components matrix of high precision floating-point numbers.
200 //! There is no guarantee on the actual precision.
201 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
202 typedef detail::tmat2x4<highp_float> highp_mat2x4;
203 }
204 //namespace precision
205
206 }//namespace type
207 }//namespace core
208 } //namespace glm
137 template <typename T>
138 tmat2x4<T> operator- (
139 tmat2x4<T> const & m,
140 typename tmat2x4<T>::value_type const & s);
141
142 template <typename T>
143 tmat2x4<T> operator- (
144 tmat2x4<T> const & m1,
145 tmat2x4<T> const & m2);
146
147 template <typename T>
148 tmat2x4<T> operator* (
149 tmat2x4<T> const & m,
150 typename tmat2x4<T>::value_type const & s);
151
152 template <typename T>
153 tmat2x4<T> operator* (
154 typename tmat2x4<T>::value_type const & s,
155 tmat2x4<T> const & m);
156
157 template <typename T>
158 typename tmat2x4<T>::col_type operator* (
159 tmat2x4<T> const & m,
160 typename tmat2x4<T>::row_type const & v);
161
162 template <typename T>
163 typename tmat2x4<T>::row_type operator* (
164 typename tmat2x4<T>::col_type const & v,
165 tmat2x4<T> const & m);
166
167 template <typename T>
168 tmat2x4<T> operator* (
169 tmat2x4<T> const & m1,
170 tmat2x4<T> const & m2);
171
172 template <typename T>
173 tmat2x4<T> operator/ (
174 tmat2x4<T> const & m,
175 typename tmat2x4<T>::value_type const & s);
176
177 template <typename T>
178 tmat2x4<T> operator/ (
179 typename tmat2x4<T>::value_type const & s,
180 tmat2x4<T> const & m);
181
182 // Unary constant operators
183 template <typename T>
184 tmat2x4<T> const operator- (
185 tmat2x4<T> const & m);
186
187 template <typename T>
188 tmat2x4<T> const operator-- (
189 tmat2x4<T> const & m,
190 int);
191
192 template <typename T>
193 tmat2x4<T> const operator++ (
194 tmat2x4<T> const & m,
195 int);
196
197 } //namespace detail
198
199 namespace core{
200 namespace type{
201 namespace precision
202 {
203 //! 2 columns of 4 components matrix of low precision floating-point numbers.
204 //! There is no guarantee on the actual precision.
205 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
206 typedef detail::tmat2x4<lowp_float> lowp_mat2x4;
207 //! 2 columns of 4 components matrix of medium precision floating-point numbers.
208 //! There is no guarantee on the actual precision.
209 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
210 typedef detail::tmat2x4<mediump_float> mediump_mat2x4;
211 //! 2 columns of 4 components matrix of high precision floating-point numbers.
212 //! There is no guarantee on the actual precision.
213 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
214 typedef detail::tmat2x4<highp_float> highp_mat2x4;
215 }//namespace precision
216 }//namespace type
217 }//namespace core
218 }//namespace glm
209219
210220 #ifndef GLM_EXTERNAL_TEMPLATE
211221 #include "type_mat2x4.inl"
108108 this->value[1] = v1;
109109 }
110110
111 // Conversion
111 //////////////////////////////////////
112 // Convertion constructors
113 template <typename T>
114 template <typename U>
115 GLM_FUNC_DECL tmat2x4<T>::tmat2x4
116 (
117 U const & s
118 )
119 {
120 value_type const Zero(0);
121 this->value[0] = tvec4<T>(value_type(s), Zero, Zero, Zero);
122 this->value[1] = tvec4<T>(Zero, value_type(s), Zero, Zero);
123 }
124
125 template <typename T>
126 template <
127 typename X1, typename Y1, typename Z1, typename W1,
128 typename X2, typename Y2, typename Z2, typename W2>
129 GLM_FUNC_DECL tmat2x4<T>::tmat2x4
130 (
131 X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
132 X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2
133 )
134 {
135 this->value[0] = col_type(value_type(x1), value_type(y1), value_type(z1), value_type(w1));
136 this->value[1] = col_type(value_type(x2), value_type(y2), value_type(z2), value_type(w2));
137 }
138
139 template <typename T>
140 template <typename V1, typename V2>
141 GLM_FUNC_DECL tmat2x4<T>::tmat2x4
142 (
143 tvec4<V1> const & v1,
144 tvec4<V2> const & v2
145 )
146 {
147 this->value[0] = col_type(v1);
148 this->value[1] = col_type(v2);
149 }
150
151 //////////////////////////////////////
152 // Matrix conversions
153
112154 template <typename T>
113155 template <typename U>
114156 GLM_FUNC_QUALIFIER tmat2x4<T>::tmat2x4
1111
1212 #include "type_mat.hpp"
1313
14 namespace glm
14 namespace glm{
15 namespace detail
1516 {
16 namespace test
17 template <typename T> struct tvec1;
18 template <typename T> struct tvec2;
19 template <typename T> struct tvec3;
20 template <typename T> struct tvec4;
21 template <typename T> struct tmat2x2;
22 template <typename T> struct tmat2x3;
23 template <typename T> struct tmat2x4;
24 template <typename T> struct tmat3x2;
25 template <typename T> struct tmat3x3;
26 template <typename T> struct tmat3x4;
27 template <typename T> struct tmat4x2;
28 template <typename T> struct tmat4x3;
29 template <typename T> struct tmat4x4;
30
31 //! \brief Template for 3 columns and 2 rows matrix of floating-point numbers.
32 //! \ingroup core_template
33 template <typename T>
34 struct tmat3x2
1735 {
18 void main_mat3x2();
19 }//namespace test
20
21 namespace detail
22 {
23 template <typename T> struct tvec1;
24 template <typename T> struct tvec2;
25 template <typename T> struct tvec3;
26 template <typename T> struct tvec4;
27 template <typename T> struct tmat2x2;
28 template <typename T> struct tmat2x3;
29 template <typename T> struct tmat2x4;
30 template <typename T> struct tmat3x2;
31 template <typename T> struct tmat3x3;
32 template <typename T> struct tmat3x4;
33 template <typename T> struct tmat4x2;
34 template <typename T> struct tmat4x3;
35 template <typename T> struct tmat4x4;
36
37 //! \brief Template for 3 columns and 2 rows matrix of floating-point numbers.
38 //! \ingroup core_template
39 template <typename T>
40 struct tmat3x2
41 {
42 enum ctor{null};
43 typedef T value_type;
44 typedef std::size_t size_type;
45 typedef tvec2<T> col_type;
46 typedef tvec3<T> row_type;
47 static GLM_FUNC_DECL size_type col_size();
48 static GLM_FUNC_DECL size_type row_size();
49
50 typedef tmat3x2<T> type;
51 typedef tmat2x3<T> transpose_type;
52
53 private:
54 // Data
55 col_type value[3];
56
57 public:
58 // Constructors
59 GLM_FUNC_DECL tmat3x2();
60 GLM_FUNC_DECL tmat3x2(tmat3x2 const & m);
61
62 GLM_FUNC_DECL explicit tmat3x2(
63 ctor);
64 GLM_FUNC_DECL explicit tmat3x2(
65 value_type const & s);
66 GLM_FUNC_DECL explicit tmat3x2(
67 value_type const & x0, value_type const & y0,
68 value_type const & x1, value_type const & y1,
69 value_type const & x2, value_type const & y2);
70 GLM_FUNC_DECL explicit tmat3x2(
71 col_type const & v0,
72 col_type const & v1,
73 col_type const & v2);
74
75 // Conversion
76 template <typename U>
77 GLM_FUNC_DECL explicit tmat3x2(tmat3x2<U> const & m);
78
79 GLM_FUNC_DECL explicit tmat3x2(tmat2x2<T> const & x);
80 GLM_FUNC_DECL explicit tmat3x2(tmat3x3<T> const & x);
81 GLM_FUNC_DECL explicit tmat3x2(tmat4x4<T> const & x);
82 GLM_FUNC_DECL explicit tmat3x2(tmat2x3<T> const & x);
83 GLM_FUNC_DECL explicit tmat3x2(tmat2x4<T> const & x);
84 GLM_FUNC_DECL explicit tmat3x2(tmat3x4<T> const & x);
85 GLM_FUNC_DECL explicit tmat3x2(tmat4x2<T> const & x);
86 GLM_FUNC_DECL explicit tmat3x2(tmat4x3<T> const & x);
87
88 // Accesses
89 GLM_FUNC_DECL col_type & operator[](size_type i);
90 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
91
92 // Unary updatable operators
93 GLM_FUNC_DECL tmat3x2<T> & operator= (tmat3x2<T> const & m);
94 template <typename U>
95 GLM_FUNC_DECL tmat3x2<T> & operator= (tmat3x2<U> const & m);
96 template <typename U>
97 GLM_FUNC_DECL tmat3x2<T> & operator+= (U const & s);
98 template <typename U>
99 GLM_FUNC_DECL tmat3x2<T> & operator+= (tmat3x2<U> const & m);
100 template <typename U>
101 GLM_FUNC_DECL tmat3x2<T> & operator-= (U const & s);
102 template <typename U>
103 GLM_FUNC_DECL tmat3x2<T> & operator-= (tmat3x2<U> const & m);
104 template <typename U>
105 GLM_FUNC_DECL tmat3x2<T> & operator*= (U const & s);
106 template <typename U>
107 GLM_FUNC_DECL tmat3x2<T> & operator*= (tmat3x2<U> const & m);
108 template <typename U>
109 GLM_FUNC_DECL tmat3x2<T> & operator/= (U const & s);
110
111 GLM_FUNC_DECL tmat3x2<T> & operator++ ();
112 GLM_FUNC_DECL tmat3x2<T> & operator-- ();
113 };
114
115 // Binary operators
116 template <typename T>
117 tmat3x2<T> operator+ (
118 tmat3x2<T> const & m,
119 typename tmat3x2<T>::value_type const & s);
36 enum ctor{null};
37 typedef T value_type;
38 typedef std::size_t size_type;
39 typedef tvec2<T> col_type;
40 typedef tvec3<T> row_type;
41 static GLM_FUNC_DECL size_type col_size();
42 static GLM_FUNC_DECL size_type row_size();
43
44 typedef tmat3x2<T> type;
45 typedef tmat2x3<T> transpose_type;
46
47 private:
48 // Data
49 col_type value[3];
50
51 public:
52 // Constructors
53 GLM_FUNC_DECL tmat3x2();
54 GLM_FUNC_DECL tmat3x2(tmat3x2 const & m);
55
56 GLM_FUNC_DECL explicit tmat3x2(
57 ctor);
58 GLM_FUNC_DECL explicit tmat3x2(
59 value_type const & s);
60 GLM_FUNC_DECL explicit tmat3x2(
61 value_type const & x0, value_type const & y0,
62 value_type const & x1, value_type const & y1,
63 value_type const & x2, value_type const & y2);
64 GLM_FUNC_DECL explicit tmat3x2(
65 col_type const & v0,
66 col_type const & v1,
67 col_type const & v2);
68
69 //////////////////////////////////////
70 // Conversions
71 template <typename U>
72 GLM_FUNC_DECL explicit tmat3x2(
73 U const & x);
74
75 template
76 <
77 typename X1, typename Y1,
78 typename X2, typename Y2,
79 typename X3, typename Y3
80 >
81 GLM_FUNC_DECL explicit tmat3x2(
82 X1 const & x1, Y1 const & y1,
83 X2 const & x2, Y2 const & y2,
84 X3 const & x3, Y3 const & y3);
85
86 template <typename V1, typename V2, typename V3>
87 GLM_FUNC_DECL explicit tmat3x2(
88 tvec2<V1> const & v1,
89 tvec2<V2> const & v2,
90 tvec2<V3> const & v3);
91
92 // Matrix conversions
93 template <typename U>
94 GLM_FUNC_DECL explicit tmat3x2(tmat3x2<U> const & m);
95
96 GLM_FUNC_DECL explicit tmat3x2(tmat2x2<T> const & x);
97 GLM_FUNC_DECL explicit tmat3x2(tmat3x3<T> const & x);
98 GLM_FUNC_DECL explicit tmat3x2(tmat4x4<T> const & x);
99 GLM_FUNC_DECL explicit tmat3x2(tmat2x3<T> const & x);
100 GLM_FUNC_DECL explicit tmat3x2(tmat2x4<T> const & x);
101 GLM_FUNC_DECL explicit tmat3x2(tmat3x4<T> const & x);
102 GLM_FUNC_DECL explicit tmat3x2(tmat4x2<T> const & x);
103 GLM_FUNC_DECL explicit tmat3x2(tmat4x3<T> const & x);
104
105 // Accesses
106 GLM_FUNC_DECL col_type & operator[](size_type i);
107 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
108
109 // Unary updatable operators
110 GLM_FUNC_DECL tmat3x2<T> & operator= (tmat3x2<T> const & m);
111 template <typename U>
112 GLM_FUNC_DECL tmat3x2<T> & operator= (tmat3x2<U> const & m);
113 template <typename U>
114 GLM_FUNC_DECL tmat3x2<T> & operator+= (U const & s);
115 template <typename U>
116 GLM_FUNC_DECL tmat3x2<T> & operator+= (tmat3x2<U> const & m);
117 template <typename U>
118 GLM_FUNC_DECL tmat3x2<T> & operator-= (U const & s);
119 template <typename U>
120 GLM_FUNC_DECL tmat3x2<T> & operator-= (tmat3x2<U> const & m);
121 template <typename U>
122 GLM_FUNC_DECL tmat3x2<T> & operator*= (U const & s);
123 template <typename U>
124 GLM_FUNC_DECL tmat3x2<T> & operator*= (tmat3x2<U> const & m);
125 template <typename U>
126 GLM_FUNC_DECL tmat3x2<T> & operator/= (U const & s);
127
128 GLM_FUNC_DECL tmat3x2<T> & operator++ ();
129 GLM_FUNC_DECL tmat3x2<T> & operator-- ();
130 };
131
132 // Binary operators
133 template <typename T>
134 tmat3x2<T> operator+ (
135 tmat3x2<T> const & m,
136 typename tmat3x2<T>::value_type const & s);
120137
121 template <typename T>
122 tmat3x2<T> operator+ (
123 tmat3x2<T> const & m1,
124 tmat3x2<T> const & m2);
138 template <typename T>
139 tmat3x2<T> operator+ (
140 tmat3x2<T> const & m1,
141 tmat3x2<T> const & m2);
125142
126 template <typename T>
127 tmat3x2<T> operator- (
128 tmat3x2<T> const & m,
129 typename tmat3x2<T>::value_type const & s);
130
131 template <typename T>
132 tmat3x2<T> operator- (
133 tmat3x2<T> const & m1,
134 tmat3x2<T> const & m2);
135
136 template <typename T>
137 tmat3x2<T> operator* (
138 tmat3x2<T> const & m,
139 typename tmat3x2<T>::value_type const & s);
140
141 template <typename T>
142 tmat3x2<T> operator* (
143 typename tmat3x2<T>::value_type const & s,
144 tmat3x2<T> const & m);
145
146 template <typename T>
147 typename tmat3x2<T>::col_type operator* (
148 tmat3x2<T> const & m,
149 typename tmat3x2<T>::row_type const & v);
150
151 template <typename T>
152 typename tmat3x2<T>::row_type operator* (
153 typename tmat3x2<T>::col_type const & v,
154 tmat3x2<T> const & m);
155
156 template <typename T>
157 tmat2x2<T> operator* (
158 tmat3x2<T> const & m1,
159 tmat2x3<T> const & m2);
160
161 template <typename T>
162 tmat3x2<T> operator/ (
163 tmat3x2<T> const & m,
164 typename tmat3x2<T>::value_type const & s);
165
166 template <typename T>
167 tmat3x2<T> operator/ (
168 typename tmat3x2<T>::value_type const & s,
169 tmat3x2<T> const & m);
170
171 // Unary constant operators
172 template <typename T>
173 tmat3x2<T> const operator- (
174 tmat3x2<T> const & m);
175
176 template <typename T>
177 tmat3x2<T> const operator-- (
178 tmat3x2<T> const & m,
179 int);
180
181 template <typename T>
182 tmat3x2<T> const operator++ (
183 tmat3x2<T> const & m,
184 int);
185
186 } //namespace detail
187
188 namespace core{
189 namespace type{
190
191 namespace precision
192 {
193 //! 3 columns of 2 components matrix of low precision floating-point numbers.
194 //! There is no guarantee on the actual precision.
195 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
196 typedef detail::tmat3x2<lowp_float> lowp_mat3x2;
197 //! 3 columns of 2 components matrix of medium precision floating-point numbers.
198 //! There is no guarantee on the actual precision.
199 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
200 typedef detail::tmat3x2<mediump_float> mediump_mat3x2;
201 //! 3 columns of 2 components matrix of high precision floating-point numbers.
202 //! There is no guarantee on the actual precision.
203 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
204 typedef detail::tmat3x2<highp_float> highp_mat3x2;
205 }
206 //namespace precision
207
208 }//namespace type
209 }//namespace core
210 } //namespace glm
143 template <typename T>
144 tmat3x2<T> operator- (
145 tmat3x2<T> const & m,
146 typename tmat3x2<T>::value_type const & s);
147
148 template <typename T>
149 tmat3x2<T> operator- (
150 tmat3x2<T> const & m1,
151 tmat3x2<T> const & m2);
152
153 template <typename T>
154 tmat3x2<T> operator* (
155 tmat3x2<T> const & m,
156 typename tmat3x2<T>::value_type const & s);
157
158 template <typename T>
159 tmat3x2<T> operator* (
160 typename tmat3x2<T>::value_type const & s,
161 tmat3x2<T> const & m);
162
163 template <typename T>
164 typename tmat3x2<T>::col_type operator* (
165 tmat3x2<T> const & m,
166 typename tmat3x2<T>::row_type const & v);
167
168 template <typename T>
169 typename tmat3x2<T>::row_type operator* (
170 typename tmat3x2<T>::col_type const & v,
171 tmat3x2<T> const & m);
172
173 template <typename T>
174 tmat2x2<T> operator* (
175 tmat3x2<T> const & m1,
176 tmat2x3<T> const & m2);
177
178 template <typename T>
179 tmat3x2<T> operator/ (
180 tmat3x2<T> const & m,
181 typename tmat3x2<T>::value_type const & s);
182
183 template <typename T>
184 tmat3x2<T> operator/ (
185 typename tmat3x2<T>::value_type const & s,
186 tmat3x2<T> const & m);
187
188 // Unary constant operators
189 template <typename T>
190 tmat3x2<T> const operator- (
191 tmat3x2<T> const & m);
192
193 template <typename T>
194 tmat3x2<T> const operator-- (
195 tmat3x2<T> const & m,
196 int);
197
198 template <typename T>
199 tmat3x2<T> const operator++ (
200 tmat3x2<T> const & m,
201 int);
202
203 } //namespace detail
204
205 namespace core{
206 namespace type{
207 namespace precision
208 {
209 //! 3 columns of 2 components matrix of low precision floating-point numbers.
210 //! There is no guarantee on the actual precision.
211 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
212 typedef detail::tmat3x2<lowp_float> lowp_mat3x2;
213 //! 3 columns of 2 components matrix of medium precision floating-point numbers.
214 //! There is no guarantee on the actual precision.
215 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
216 typedef detail::tmat3x2<mediump_float> mediump_mat3x2;
217 //! 3 columns of 2 components matrix of high precision floating-point numbers.
218 //! There is no guarantee on the actual precision.
219 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
220 typedef detail::tmat3x2<highp_float> highp_mat3x2;
221 }//namespace precision
222 }//namespace type
223 }//namespace core
224 }//namespace glm
211225
212226 #ifndef GLM_EXTERNAL_TEMPLATE
213227 #include "type_mat3x2.inl"
112112 this->value[2] = v2;
113113 }
114114
115 // Conversion
115 //////////////////////////////////////
116 // Convertion constructors
117 template <typename T>
118 template <typename U>
119 GLM_FUNC_DECL tmat3x2<T>::tmat3x2
120 (
121 U const & s
122 )
123 {
124 value_type const Zero(0);
125 this->value[0] = tvec2<T>(value_type(s), Zero);
126 this->value[1] = tvec2<T>(Zero, value_type(s));
127 this->value[2] = tvec2<T>(Zero);
128 }
129
130 template <typename T>
131 template <
132 typename X1, typename Y1,
133 typename X2, typename Y2,
134 typename X3, typename Y3>
135 GLM_FUNC_DECL tmat3x2<T>::tmat3x2
136 (
137 X1 const & x1, Y1 const & y1,
138 X2 const & x2, Y2 const & y2,
139 X3 const & x3, Y3 const & y3
140 )
141 {
142 this->value[0] = col_type(value_type(x1), value_type(y1));
143 this->value[1] = col_type(value_type(x2), value_type(y2));
144 this->value[2] = col_type(value_type(x3), value_type(y3));
145 }
146
147 template <typename T>
148 template <typename V1, typename V2, typename V3>
149 GLM_FUNC_DECL tmat3x2<T>::tmat3x2
150 (
151 tvec2<V1> const & v1,
152 tvec2<V2> const & v2,
153 tvec2<V3> const & v3
154 )
155 {
156 this->value[0] = col_type(v1);
157 this->value[1] = col_type(v2);
158 this->value[2] = col_type(v3);
159 }
160
161 //////////////////////////////////////////////////////////////
162 // mat3x2 matrix conversions
163
116164 template <typename T>
117165 template <typename U>
118166 GLM_FUNC_QUALIFIER tmat3x2<T>::tmat3x2
1111
1212 #include "type_mat.hpp"
1313
14 namespace glm
14 namespace glm{
15 namespace detail
1516 {
16 namespace test
17 template <typename T> struct tvec1;
18 template <typename T> struct tvec2;
19 template <typename T> struct tvec3;
20 template <typename T> struct tvec4;
21 template <typename T> struct tmat2x2;
22 template <typename T> struct tmat2x3;
23 template <typename T> struct tmat2x4;
24 template <typename T> struct tmat3x2;
25 template <typename T> struct tmat3x3;
26 template <typename T> struct tmat3x4;
27 template <typename T> struct tmat4x2;
28 template <typename T> struct tmat4x3;
29 template <typename T> struct tmat4x4;
30
31 //! \brief Template for 3 * 3 matrix of floating-point numbers.
32 //! \ingroup core_template
33 template <typename T>
34 struct tmat3x3
1735 {
18 void main_mat3x3();
19 }//namespace test
20
21 namespace detail
22 {
23 template <typename T> struct tvec1;
24 template <typename T> struct tvec2;
25 template <typename T> struct tvec3;
26 template <typename T> struct tvec4;
27 template <typename T> struct tmat2x2;
28 template <typename T> struct tmat2x3;
29 template <typename T> struct tmat2x4;
30 template <typename T> struct tmat3x2;
31 template <typename T> struct tmat3x3;
32 template <typename T> struct tmat3x4;
33 template <typename T> struct tmat4x2;
34 template <typename T> struct tmat4x3;
35 template <typename T> struct tmat4x4;
36
37 //! \brief Template for 3 * 3 matrix of floating-point numbers.
38 //! \ingroup core_template
39 template <typename T>
40 struct tmat3x3
41 {
42 enum ctor{null};
43 typedef T value_type;
44 typedef std::size_t size_type;
45 typedef tvec3<T> col_type;
46 typedef tvec3<T> row_type;
47 static GLM_FUNC_DECL size_type col_size();
48 static GLM_FUNC_DECL size_type row_size();
49
50 typedef tmat3x3<T> type;
51 typedef tmat3x3<T> transpose_type;
52
53 public:
54 // Implementation detail
55 GLM_FUNC_DECL tmat3x3<T> _inverse() const;
56
57 private:
58 // Data
59 col_type value[3];
60
61 public:
62 // Constructors
63 GLM_FUNC_DECL tmat3x3();
64 GLM_FUNC_DECL tmat3x3(tmat3x3 const & m);
65
66 GLM_FUNC_DECL explicit tmat3x3(
67 ctor Null);
68 GLM_FUNC_DECL explicit tmat3x3(
69 value_type const & s);
70 GLM_FUNC_DECL explicit tmat3x3(
71 value_type const & x0, value_type const & y0, value_type const & z0,
72 value_type const & x1, value_type const & y1, value_type const & z1,
73 value_type const & x2, value_type const & y2, value_type const & z2);
74 GLM_FUNC_DECL explicit tmat3x3(
75 col_type const & v0,
76 col_type const & v1,
77 col_type const & v2);
78
79 // Conversions
80 template <typename U>
81 GLM_FUNC_DECL explicit tmat3x3(tmat3x3<U> const & m);
82
83 GLM_FUNC_DECL explicit tmat3x3(tmat2x2<T> const & x);
84 GLM_FUNC_DECL explicit tmat3x3(tmat4x4<T> const & x);
85 GLM_FUNC_DECL explicit tmat3x3(tmat2x3<T> const & x);
86 GLM_FUNC_DECL explicit tmat3x3(tmat3x2<T> const & x);
87 GLM_FUNC_DECL explicit tmat3x3(tmat2x4<T> const & x);
88 GLM_FUNC_DECL explicit tmat3x3(tmat4x2<T> const & x);
89 GLM_FUNC_DECL explicit tmat3x3(tmat3x4<T> const & x);
90 GLM_FUNC_DECL explicit tmat3x3(tmat4x3<T> const & x);
91
92 // Accesses
93 GLM_FUNC_DECL col_type & operator[](size_type i);
94 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
95
96 // Unary updatable operators
97 GLM_FUNC_DECL tmat3x3<T>& operator= (tmat3x3<T> const & m);
98 template <typename U>
99 GLM_FUNC_DECL tmat3x3<T>& operator= (tmat3x3<U> const & m);
100 template <typename U>
101 GLM_FUNC_DECL tmat3x3<T>& operator+= (U const & s);
102 template <typename U>
103 GLM_FUNC_DECL tmat3x3<T>& operator+= (tmat3x3<U> const & m);
104 template <typename U>
105 GLM_FUNC_DECL tmat3x3<T>& operator-= (U const & s);
106 template <typename U>
107 GLM_FUNC_DECL tmat3x3<T>& operator-= (tmat3x3<U> const & m);
108 template <typename U>
109 GLM_FUNC_DECL tmat3x3<T>& operator*= (U const & s);
110 template <typename U>
111 GLM_FUNC_DECL tmat3x3<T>& operator*= (tmat3x3<U> const & m);
112 template <typename U>
113 GLM_FUNC_DECL tmat3x3<T>& operator/= (U const & s);
114 template <typename U>
115 GLM_FUNC_DECL tmat3x3<T>& operator/= (tmat3x3<U> const & m);
116 GLM_FUNC_DECL tmat3x3<T>& operator++ ();
117 GLM_FUNC_DECL tmat3x3<T>& operator-- ();
118 };
119
120 // Binary operators
121 template <typename T>
122 tmat3x3<T> operator+ (
123 tmat3x3<T> const & m,
124 typename tmat3x3<T>::value_type const & s);
125
126 template <typename T>
127 tmat3x3<T> operator+ (
128 typename tmat3x3<T>::value_type const & s,
129 tmat3x3<T> const & m);
130
131 template <typename T>
132 tmat3x3<T> operator+ (
133 tmat3x3<T> const & m1,
134 tmat3x3<T> const & m2);
36 enum ctor{null};
37 typedef T value_type;
38 typedef std::size_t size_type;
39 typedef tvec3<T> col_type;
40 typedef tvec3<T> row_type;
41 static GLM_FUNC_DECL size_type col_size();
42 static GLM_FUNC_DECL size_type row_size();
43
44 typedef tmat3x3<T> type;
45 typedef tmat3x3<T> transpose_type;
46
47 public:
48 // Implementation detail
49 GLM_FUNC_DECL tmat3x3<T> _inverse() const;
50
51 private:
52 // Data
53 col_type value[3];
54
55 public:
56 // Constructors
57 GLM_FUNC_DECL tmat3x3();
58 GLM_FUNC_DECL tmat3x3(tmat3x3 const & m);
59
60 GLM_FUNC_DECL explicit tmat3x3(
61 ctor Null);
62 GLM_FUNC_DECL explicit tmat3x3(
63 value_type const & s);
64 GLM_FUNC_DECL explicit tmat3x3(
65 value_type const & x0, value_type const & y0, value_type const & z0,
66 value_type const & x1, value_type const & y1, value_type const & z1,
67 value_type const & x2, value_type const & y2, value_type const & z2);
68 GLM_FUNC_DECL explicit tmat3x3(
69 col_type const & v0,
70 col_type const & v1,
71 col_type const & v2);
72
73 //////////////////////////////////////
74 // Conversions
75 template <typename U>
76 GLM_FUNC_DECL explicit tmat3x3(
77 U const & x);
78
79 template
80 <
81 typename X1, typename Y1, typename Z1,
82 typename X2, typename Y2, typename Z2,
83 typename X3, typename Y3, typename Z3
84 >
85 GLM_FUNC_DECL explicit tmat3x3(
86 X1 const & x1, Y1 const & y1, Z1 const & z1,
87 X2 const & x2, Y2 const & y2, Z2 const & z2,
88 X3 const & x3, Y3 const & y3, Z3 const & z3);
89
90 template <typename V1, typename V2, typename V3>
91 GLM_FUNC_DECL explicit tmat3x3(
92 tvec3<V1> const & v1,
93 tvec3<V2> const & v2,
94 tvec3<V3> const & v3);
95
96 // Matrix conversions
97 template <typename U>
98 GLM_FUNC_DECL explicit tmat3x3(tmat3x3<U> const & m);
99
100 GLM_FUNC_DECL explicit tmat3x3(tmat2x2<T> const & x);
101 GLM_FUNC_DECL explicit tmat3x3(tmat4x4<T> const & x);
102 GLM_FUNC_DECL explicit tmat3x3(tmat2x3<T> const & x);
103 GLM_FUNC_DECL explicit tmat3x3(tmat3x2<T> const & x);
104 GLM_FUNC_DECL explicit tmat3x3(tmat2x4<T> const & x);
105 GLM_FUNC_DECL explicit tmat3x3(tmat4x2<T> const & x);
106 GLM_FUNC_DECL explicit tmat3x3(tmat3x4<T> const & x);
107 GLM_FUNC_DECL explicit tmat3x3(tmat4x3<T> const & x);
108
109 // Accesses
110 GLM_FUNC_DECL col_type & operator[](size_type i);
111 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
112
113 // Unary updatable operators
114 GLM_FUNC_DECL tmat3x3<T>& operator= (tmat3x3<T> const & m);
115 template <typename U>
116 GLM_FUNC_DECL tmat3x3<T>& operator= (tmat3x3<U> const & m);
117 template <typename U>
118 GLM_FUNC_DECL tmat3x3<T>& operator+= (U const & s);
119 template <typename U>
120 GLM_FUNC_DECL tmat3x3<T>& operator+= (tmat3x3<U> const & m);
121 template <typename U>
122 GLM_FUNC_DECL tmat3x3<T>& operator-= (U const & s);
123 template <typename U>
124 GLM_FUNC_DECL tmat3x3<T>& operator-= (tmat3x3<U> const & m);
125 template <typename U>
126 GLM_FUNC_DECL tmat3x3<T>& operator*= (U const & s);
127 template <typename U>
128 GLM_FUNC_DECL tmat3x3<T>& operator*= (tmat3x3<U> const & m);
129 template <typename U>
130 GLM_FUNC_DECL tmat3x3<T>& operator/= (U const & s);
131 template <typename U>
132 GLM_FUNC_DECL tmat3x3<T>& operator/= (tmat3x3<U> const & m);
133 GLM_FUNC_DECL tmat3x3<T>& operator++ ();
134 GLM_FUNC_DECL tmat3x3<T>& operator-- ();
135 };
136
137 // Binary operators
138 template <typename T>
139 tmat3x3<T> operator+ (
140 tmat3x3<T> const & m,
141 typename tmat3x3<T>::value_type const & s);
142
143 template <typename T>
144 tmat3x3<T> operator+ (
145 typename tmat3x3<T>::value_type const & s,
146 tmat3x3<T> const & m);
147
148 template <typename T>
149 tmat3x3<T> operator+ (
150 tmat3x3<T> const & m1,
151 tmat3x3<T> const & m2);
135152
136 template <typename T>
137 tmat3x3<T> operator- (
138 tmat3x3<T> const & m,
139 typename tmat3x3<T>::value_type const & s);
140
141 template <typename T>
142 tmat3x3<T> operator- (
143 typename tmat3x3<T>::value_type const & s,
144 tmat3x3<T> const & m);
145
146 template <typename T>
147 tmat3x3<T> operator- (
148 tmat3x3<T> const & m1,
149 tmat3x3<T> const & m2);
150
151 template <typename T>
152 tmat3x3<T> operator* (
153 tmat3x3<T> const & m,
154 typename tmat3x3<T>::value_type const & s);
155
156 template <typename T>
157 tmat3x3<T> operator* (
158 typename tmat3x3<T>::value_type const & s,
159 tmat3x3<T> const & m);
160
161 template <typename T>
162 typename tmat3x3<T>::col_type operator* (
163 tmat3x3<T> const & m,
164 typename tmat3x3<T>::row_type const & v);
165
166 template <typename T>
167 typename tmat3x3<T>::row_type operator* (
168 typename tmat3x3<T>::col_type const & v,
169 tmat3x3<T> const & m);
170
171 template <typename T>
172 tmat3x3<T> operator* (
173 tmat3x3<T> const & m1,
174 tmat3x3<T> const & m2);
175
176 template <typename T>
177 tmat3x3<T> operator/ (
178 tmat3x3<T> const & m,
179 typename tmat3x3<T>::value_type const & s);
180
181 template <typename T>
182 tmat3x3<T> operator/ (
183 typename tmat3x3<T>::value_type const & s,
184 tmat3x3<T> const & m);
185
186 template <typename T>
187 typename tmat3x3<T>::col_type operator/ (
188 tmat3x3<T> const & m,
189 typename tmat3x3<T>::row_type const & v);
190
191 template <typename T>
192 typename tmat3x3<T>::row_type operator/ (
193 typename tmat3x3<T>::col_type const & v,
194 tmat3x3<T> const & m);
195
196 template <typename T>
197 tmat3x3<T> operator/ (
198 tmat3x3<T> const & m1,
199 tmat3x3<T> const & m2);
200
201 // Unary constant operators
202 template <typename T>
203 tmat3x3<T> const operator- (
204 tmat3x3<T> const & m);
205
206 template <typename T>
207 tmat3x3<T> const operator-- (
208 tmat3x3<T> const & m,
209 int);
210
211 template <typename T>
212 tmat3x3<T> const operator++ (
213 tmat3x3<T> const & m,
214 int);
215
216 } //namespace detail
217
218 namespace core{
219 namespace type{
220
221 namespace precision
222 {
223 //! 3 columns of 3 components matrix of low precision floating-point numbers.
224 //! There is no guarantee on the actual precision.
225 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
226 //! \ingroup core_precision
227 typedef detail::tmat3x3<lowp_float> lowp_mat3x3;
228 //! 3 columns of 3 components matrix of medium precision floating-point numbers.
229 //! There is no guarantee on the actual precision.
230 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
231 //! \ingroup core_precision
232 typedef detail::tmat3x3<mediump_float> mediump_mat3x3;
233 //! 3 columns of 3 components matrix of high precision floating-point numbers.
234 //! There is no guarantee on the actual precision.
235 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
236 //! \ingroup core_precision
237 typedef detail::tmat3x3<highp_float> highp_mat3x3;
238 }
239 //namespace precision
240
241 }//namespace type
242 }//namespace core
243 } //namespace glm
153 template <typename T>
154 tmat3x3<T> operator- (
155 tmat3x3<T> const & m,
156 typename tmat3x3<T>::value_type const & s);
157
158 template <typename T>
159 tmat3x3<T> operator- (
160 typename tmat3x3<T>::value_type const & s,
161 tmat3x3<T> const & m);
162
163 template <typename T>
164 tmat3x3<T> operator- (
165 tmat3x3<T> const & m1,
166 tmat3x3<T> const & m2);
167
168 template <typename T>
169 tmat3x3<T> operator* (
170 tmat3x3<T> const & m,
171 typename tmat3x3<T>::value_type const & s);
172
173 template <typename T>
174 tmat3x3<T> operator* (
175 typename tmat3x3<T>::value_type const & s,
176 tmat3x3<T> const & m);
177
178 template <typename T>
179 typename tmat3x3<T>::col_type operator* (
180 tmat3x3<T> const & m,
181 typename tmat3x3<T>::row_type const & v);
182
183 template <typename T>
184 typename tmat3x3<T>::row_type operator* (
185 typename tmat3x3<T>::col_type const & v,
186 tmat3x3<T> const & m);
187
188 template <typename T>
189 tmat3x3<T> operator* (
190 tmat3x3<T> const & m1,
191 tmat3x3<T> const & m2);
192
193 template <typename T>
194 tmat3x3<T> operator/ (
195 tmat3x3<T> const & m,
196 typename tmat3x3<T>::value_type const & s);
197
198 template <typename T>
199 tmat3x3<T> operator/ (
200 typename tmat3x3<T>::value_type const & s,
201 tmat3x3<T> const & m);
202
203 template <typename T>
204 typename tmat3x3<T>::col_type operator/ (
205 tmat3x3<T> const & m,
206 typename tmat3x3<T>::row_type const & v);
207
208 template <typename T>
209 typename tmat3x3<T>::row_type operator/ (
210 typename tmat3x3<T>::col_type const & v,
211 tmat3x3<T> const & m);
212
213 template <typename T>
214 tmat3x3<T> operator/ (
215 tmat3x3<T> const & m1,
216 tmat3x3<T> const & m2);
217
218 // Unary constant operators
219 template <typename T>
220 tmat3x3<T> const operator- (
221 tmat3x3<T> const & m);
222
223 template <typename T>
224 tmat3x3<T> const operator-- (
225 tmat3x3<T> const & m,
226 int);
227
228 template <typename T>
229 tmat3x3<T> const operator++ (
230 tmat3x3<T> const & m,
231 int);
232
233 } //namespace detail
234
235 namespace core{
236 namespace type{
237 namespace precision
238 {
239 //! 3 columns of 3 components matrix of low precision floating-point numbers.
240 //! There is no guarantee on the actual precision.
241 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
242 //! \ingroup core_precision
243 typedef detail::tmat3x3<lowp_float> lowp_mat3;
244 //! 3 columns of 3 components matrix of medium precision floating-point numbers.
245 //! There is no guarantee on the actual precision.
246 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
247 //! \ingroup core_precision
248 typedef detail::tmat3x3<mediump_float> mediump_mat3;
249 //! 3 columns of 3 components matrix of high precision floating-point numbers.
250 //! There is no guarantee on the actual precision.
251 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
252 //! \ingroup core_precision
253 typedef detail::tmat3x3<highp_float> highp_mat3;
254
255 //! 3 columns of 3 components matrix of low precision floating-point numbers.
256 //! There is no guarantee on the actual precision.
257 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
258 //! \ingroup core_precision
259 typedef detail::tmat3x3<lowp_float> lowp_mat3x3;
260
261 //! 3 columns of 3 components matrix of medium precision floating-point numbers.
262 //! There is no guarantee on the actual precision.
263 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
264 //! \ingroup core_precision
265 typedef detail::tmat3x3<mediump_float> mediump_mat3x3;
266
267 //! 3 columns of 3 components matrix of high precision floating-point numbers.
268 //! There is no guarantee on the actual precision.
269 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
270 //! \ingroup core_precision
271 typedef detail::tmat3x3<highp_float> highp_mat3x3;
272
273 }//namespace precision
274 }//namespace type
275 }//namespace core
276 }//namespace glm
244277
245278 #ifndef GLM_EXTERNAL_TEMPLATE
246279 #include "type_mat3x3.inl"
114114 this->value[1] = v1;
115115 this->value[2] = v2;
116116 }
117
118 //////////////////////////////////////
119 // Convertion constructors
120 template <typename T>
121 template <typename U>
122 GLM_FUNC_DECL tmat3x3<T>::tmat3x3
123 (
124 U const & s
125 )
126 {
127 value_type const Zero(0);
128 this->value[0] = tvec3<T>(value_type(s), Zero, Zero);
129 this->value[1] = tvec3<T>(Zero, value_type(s), Zero);
130 this->value[2] = tvec3<T>(Zero, Zero, value_type(s));
131 }
132
133 template <typename T>
134 template <
135 typename X1, typename Y1, typename Z1,
136 typename X2, typename Y2, typename Z2,
137 typename X3, typename Y3, typename Z3>
138 GLM_FUNC_DECL tmat3x3<T>::tmat3x3
139 (
140 X1 const & x1, Y1 const & y1, Z1 const & z1,
141 X2 const & x2, Y2 const & y2, Z2 const & z2,
142 X3 const & x3, Y3 const & y3, Z3 const & z3
143 )
144 {
145 this->value[0] = col_type(value_type(x1), value_type(y1), value_type(z1));
146 this->value[1] = col_type(value_type(x2), value_type(y2), value_type(z2));
147 this->value[2] = col_type(value_type(x3), value_type(y3), value_type(z3));
148 }
149
150 template <typename T>
151 template <typename V1, typename V2, typename V3>
152 GLM_FUNC_DECL tmat3x3<T>::tmat3x3
153 (
154 tvec3<V1> const & v1,
155 tvec3<V2> const & v2,
156 tvec3<V3> const & v3
157 )
158 {
159 this->value[0] = col_type(v1);
160 this->value[1] = col_type(v2);
161 this->value[2] = col_type(v3);
162 }
117163
118164 //////////////////////////////////////////////////////////////
119165 // Conversions
1111
1212 #include "type_mat.hpp"
1313
14 namespace glm
14 namespace glm{
15 namespace detail
1516 {
16 namespace test
17 template <typename T> struct tvec1;
18 template <typename T> struct tvec2;
19 template <typename T> struct tvec3;
20 template <typename T> struct tvec4;
21 template <typename T> struct tmat2x2;
22 template <typename T> struct tmat2x3;
23 template <typename T> struct tmat2x4;
24 template <typename T> struct tmat3x2;
25 template <typename T> struct tmat3x3;
26 template <typename T> struct tmat3x4;
27 template <typename T> struct tmat4x2;
28 template <typename T> struct tmat4x3;
29 template <typename T> struct tmat4x4;
30
31 //! \brief Template for 3 columns and 4 rows matrix of floating-point numbers.
32 //! \ingroup core_template
33 template <typename T>
34 struct tmat3x4
1735 {
18 void main_mat3x4();
19 }//namespace test
20
21 namespace detail
22 {
23 template <typename T> struct tvec1;
24 template <typename T> struct tvec2;
25 template <typename T> struct tvec3;
26 template <typename T> struct tvec4;
27 template <typename T> struct tmat2x2;
28 template <typename T> struct tmat2x3;
29 template <typename T> struct tmat2x4;
30 template <typename T> struct tmat3x2;
31 template <typename T> struct tmat3x3;
32 template <typename T> struct tmat3x4;
33 template <typename T> struct tmat4x2;
34 template <typename T> struct tmat4x3;
35 template <typename T> struct tmat4x4;
36
37 //! \brief Template for 3 columns and 4 rows matrix of floating-point numbers.
38 //! \ingroup core_template
39 template <typename T>
40 struct tmat3x4
41 {
42 enum ctor{null};
43 typedef T value_type;
44 typedef std::size_t size_type;
45 typedef tvec4<T> col_type;
46 typedef tvec3<T> row_type;
47 static GLM_FUNC_DECL size_type col_size();
48 static GLM_FUNC_DECL size_type row_size();
49
50 typedef tmat3x4<T> type;
51 typedef tmat4x3<T> transpose_type;
52
53 private:
54 // Data
55 col_type value[3];
56
57 public:
58 // Constructors
59 GLM_FUNC_DECL tmat3x4();
60 GLM_FUNC_DECL tmat3x4(tmat3x4 const & m);
61
62 GLM_FUNC_DECL explicit tmat3x4(
63 ctor Null);
64 GLM_FUNC_DECL explicit tmat3x4(
65 value_type const & s);
66 GLM_FUNC_DECL explicit tmat3x4(
67 value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0,
68 value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1,
69 value_type const & x2, value_type const & y2, value_type const & z2, value_type const & w2);
70 GLM_FUNC_DECL explicit tmat3x4(
71 col_type const & v0,
72 col_type const & v1,
73 col_type const & v2);
74
75 // Conversion
76 template <typename U>
77 GLM_FUNC_DECL explicit tmat3x4(tmat3x4<U> const & m);
78
79 GLM_FUNC_DECL explicit tmat3x4(tmat2x2<T> const & x);
80 GLM_FUNC_DECL explicit tmat3x4(tmat3x3<T> const & x);
81 GLM_FUNC_DECL explicit tmat3x4(tmat4x4<T> const & x);
82 GLM_FUNC_DECL explicit tmat3x4(tmat2x3<T> const & x);
83 GLM_FUNC_DECL explicit tmat3x4(tmat3x2<T> const & x);
84 GLM_FUNC_DECL explicit tmat3x4(tmat2x4<T> const & x);
85 GLM_FUNC_DECL explicit tmat3x4(tmat4x2<T> const & x);
86 GLM_FUNC_DECL explicit tmat3x4(tmat4x3<T> const & x);
87
88 // Accesses
89 col_type & operator[](size_type i);
90 col_type const & operator[](size_type i) const;
91
92 // Unary updatable operators
93 GLM_FUNC_DECL tmat3x4<T> & operator= (tmat3x4<T> const & m);
94 template <typename U>
95 GLM_FUNC_DECL tmat3x4<T> & operator= (tmat3x4<U> const & m);
96 template <typename U>
97 GLM_FUNC_DECL tmat3x4<T> & operator+= (U const & s);
98 template <typename U>
99 GLM_FUNC_DECL tmat3x4<T> & operator+= (tmat3x4<U> const & m);
100 template <typename U>
101 GLM_FUNC_DECL tmat3x4<T> & operator-= (U const & s);
102 template <typename U>
103 GLM_FUNC_DECL tmat3x4<T> & operator-= (tmat3x4<U> const & m);
104 template <typename U>
105 GLM_FUNC_DECL tmat3x4<T> & operator*= (U const & s);
106 template <typename U>
107 GLM_FUNC_DECL tmat3x4<T> & operator*= (tmat3x4<U> const & m);
108 template <typename U>
109 GLM_FUNC_DECL tmat3x4<T> & operator/= (U const & s);
110
111 GLM_FUNC_DECL tmat3x4<T> & operator++ ();
112 GLM_FUNC_DECL tmat3x4<T> & operator-- ();
113 };
114
115 // Binary operators
116 template <typename T>
117 tmat3x4<T> operator+ (
118 tmat3x4<T> const & m,
119 typename tmat3x4<T>::value_type const & s);
36 enum ctor{null};
37 typedef T value_type;
38 typedef std::size_t size_type;
39 typedef tvec4<T> col_type;
40 typedef tvec3<T> row_type;
41 static GLM_FUNC_DECL size_type col_size();
42 static GLM_FUNC_DECL size_type row_size();
43
44 typedef tmat3x4<T> type;
45 typedef tmat4x3<T> transpose_type;
46
47 private:
48 // Data
49 col_type value[3];
50
51 public:
52 // Constructors
53 GLM_FUNC_DECL tmat3x4();
54 GLM_FUNC_DECL tmat3x4(tmat3x4 const & m);
55
56 GLM_FUNC_DECL explicit tmat3x4(
57 ctor Null);
58 GLM_FUNC_DECL explicit tmat3x4(
59 value_type const & s);
60 GLM_FUNC_DECL explicit tmat3x4(
61 value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0,
62 value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1,
63 value_type const & x2, value_type const & y2, value_type const & z2, value_type const & w2);
64 GLM_FUNC_DECL explicit tmat3x4(
65 col_type const & v0,
66 col_type const & v1,
67 col_type const & v2);
68
69 //////////////////////////////////////
70 // Conversions
71 template <typename U>
72 GLM_FUNC_DECL explicit tmat3x4(
73 U const & x);
74
75 template
76 <
77 typename X1, typename Y1, typename Z1, typename W1,
78 typename X2, typename Y2, typename Z2, typename W2,
79 typename X3, typename Y3, typename Z3, typename W3
80 >
81 GLM_FUNC_DECL explicit 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 explicit tmat3x4(
88 tvec4<V1> const & v1,
89 tvec4<V2> const & v2,
90 tvec4<V3> const & v3);
91
92 // Matrix conversion
93 template <typename U>
94 GLM_FUNC_DECL explicit tmat3x4(tmat3x4<U> const & m);
95
96 GLM_FUNC_DECL explicit tmat3x4(tmat2x2<T> const & x);
97 GLM_FUNC_DECL explicit tmat3x4(tmat3x3<T> const & x);
98 GLM_FUNC_DECL explicit tmat3x4(tmat4x4<T> const & x);
99 GLM_FUNC_DECL explicit tmat3x4(tmat2x3<T> const & x);
100 GLM_FUNC_DECL explicit tmat3x4(tmat3x2<T> const & x);
101 GLM_FUNC_DECL explicit tmat3x4(tmat2x4<T> const & x);
102 GLM_FUNC_DECL explicit tmat3x4(tmat4x2<T> const & x);
103 GLM_FUNC_DECL explicit tmat3x4(tmat4x3<T> const & x);
104
105 // Accesses
106 col_type & operator[](size_type i);
107 col_type const & operator[](size_type i) const;
108
109 // Unary updatable operators
110 GLM_FUNC_DECL tmat3x4<T> & operator= (tmat3x4<T> const & m);
111 template <typename U>
112 GLM_FUNC_DECL tmat3x4<T> & operator= (tmat3x4<U> const & m);
113 template <typename U>
114 GLM_FUNC_DECL tmat3x4<T> & operator+= (U const & s);
115 template <typename U>
116 GLM_FUNC_DECL tmat3x4<T> & operator+= (tmat3x4<U> const & m);
117 template <typename U>
118 GLM_FUNC_DECL tmat3x4<T> & operator-= (U const & s);
119 template <typename U>
120 GLM_FUNC_DECL tmat3x4<T> & operator-= (tmat3x4<U> const & m);
121 template <typename U>
122 GLM_FUNC_DECL tmat3x4<T> & operator*= (U const & s);
123 template <typename U>
124 GLM_FUNC_DECL tmat3x4<T> & operator*= (tmat3x4<U> const & m);
125 template <typename U>
126 GLM_FUNC_DECL tmat3x4<T> & operator/= (U const & s);
127
128 GLM_FUNC_DECL tmat3x4<T> & operator++ ();
129 GLM_FUNC_DECL tmat3x4<T> & operator-- ();
130 };
131
132 // Binary operators
133 template <typename T>
134 tmat3x4<T> operator+ (
135 tmat3x4<T> const & m,
136 typename tmat3x4<T>::value_type const & s);
120137
121 template <typename T>
122 tmat3x4<T> operator+ (
123 tmat3x4<T> const & m1,
124 tmat3x4<T> const & m2);
138 template <typename T>
139 tmat3x4<T> operator+ (
140 tmat3x4<T> const & m1,
141 tmat3x4<T> const & m2);
125142
126 template <typename T>
127 tmat3x4<T> operator- (
128 tmat3x4<T> const & m,
129 typename tmat3x4<T>::value_type const & s);
130
131 template <typename T>
132 tmat3x4<T> operator- (
133 tmat3x4<T> const & m1,
134 tmat3x4<T> const & m2);
135
136 template <typename T>
137 tmat3x4<T> operator* (
138 tmat3x4<T> const & m,
139 typename tmat3x4<T>::value_type const & s);
140
141 template <typename T>
142 tmat3x4<T> operator* (
143 typename tmat3x4<T>::value_type const & s,
144 tmat3x4<T> const & m);
145
146 template <typename T>
147 typename tmat3x4<T>::col_type operator* (
148 tmat3x4<T> const & m,
149 typename tmat3x4<T>::row_type const & v);
150
151 template <typename T>
152 typename tmat3x4<T>::row_type operator* (
153 typename tmat3x4<T>::col_type const & v,
154 tmat3x4<T> const & m);
155
156 template <typename T>
157 tmat4x4<T> operator* (
158 tmat3x4<T> const & m1,
159 tmat4x3<T> const & m2);
160
161 template <typename T>
162 tmat3x4<T> operator/ (
163 tmat3x4<T> const & m,
164 typename tmat3x4<T>::value_type const & s);
165
166 template <typename T>
167 tmat3x4<T> operator/ (
168 typename tmat3x4<T>::value_type const & s,
169 tmat3x4<T> const & m);
170
171 // Unary constant operators
172 template <typename T>
173 tmat3x4<T> const operator- (
174 tmat3x4<T> const & m);
175
176 template <typename T>
177 tmat3x4<T> const operator-- (
178 tmat3x4<T> const & m,
179 int);
180
181 template <typename T>
182 tmat3x4<T> const operator++ (
183 tmat3x4<T> const & m,
184 int);
185
186 } //namespace detail
187
188 namespace core{
189 namespace type{
190
191 namespace precision
192 {
193 //! 3 columns of 4 components matrix of low precision floating-point numbers.
194 //! There is no guarantee on the actual precision.
195 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
196 typedef detail::tmat3x4<lowp_float> lowp_mat3x4;
197 //! 3 columns of 4 components matrix of medium precision floating-point numbers.
198 //! There is no guarantee on the actual precision.
199 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
200 typedef detail::tmat3x4<mediump_float> mediump_mat3x4;
201 //! 3 columns of 4 components matrix of high precision floating-point numbers.
202 //! There is no guarantee on the actual precision.
203 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
204 typedef detail::tmat3x4<highp_float> highp_mat3x4;
205 }
206 //namespace precision
207
208 }//namespace type
209 }//namespace core
210 } //namespace glm
143 template <typename T>
144 tmat3x4<T> operator- (
145 tmat3x4<T> const & m,
146 typename tmat3x4<T>::value_type const & s);
147
148 template <typename T>
149 tmat3x4<T> operator- (
150 tmat3x4<T> const & m1,
151 tmat3x4<T> const & m2);
152
153 template <typename T>
154 tmat3x4<T> operator* (
155 tmat3x4<T> const & m,
156 typename tmat3x4<T>::value_type const & s);
157
158 template <typename T>
159 tmat3x4<T> operator* (
160 typename tmat3x4<T>::value_type const & s,
161 tmat3x4<T> const & m);
162
163 template <typename T>
164 typename tmat3x4<T>::col_type operator* (
165 tmat3x4<T> const & m,
166 typename tmat3x4<T>::row_type const & v);
167
168 template <typename T>
169 typename tmat3x4<T>::row_type operator* (
170 typename tmat3x4<T>::col_type const & v,
171 tmat3x4<T> const & m);
172
173 template <typename T>
174 tmat4x4<T> operator* (
175 tmat3x4<T> const & m1,
176 tmat4x3<T> const & m2);
177
178 template <typename T>
179 tmat3x4<T> operator/ (
180 tmat3x4<T> const & m,
181 typename tmat3x4<T>::value_type const & s);
182
183 template <typename T>
184 tmat3x4<T> operator/ (
185 typename tmat3x4<T>::value_type const & s,
186 tmat3x4<T> const & m);
187
188 // Unary constant operators
189 template <typename T>
190 tmat3x4<T> const operator- (
191 tmat3x4<T> const & m);
192
193 template <typename T>
194 tmat3x4<T> const operator-- (
195 tmat3x4<T> const & m,
196 int);
197
198 template <typename T>
199 tmat3x4<T> const operator++ (
200 tmat3x4<T> const & m,
201 int);
202
203 }//namespace detail
204
205 namespace core{
206 namespace type{
207 namespace precision
208 {
209 //! 3 columns of 4 components matrix of low precision floating-point numbers.
210 //! There is no guarantee on the actual precision.
211 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
212 typedef detail::tmat3x4<lowp_float> lowp_mat3x4;
213 //! 3 columns of 4 components matrix of medium precision floating-point numbers.
214 //! There is no guarantee on the actual precision.
215 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
216 typedef detail::tmat3x4<mediump_float> mediump_mat3x4;
217 //! 3 columns of 4 components matrix of high precision floating-point numbers.
218 //! There is no guarantee on the actual precision.
219 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
220 typedef detail::tmat3x4<highp_float> highp_mat3x4;
221
222 }//namespace precision
223 }//namespace type
224 }//namespace core
225 }//namespace glm
211226
212227 #ifndef GLM_EXTERNAL_TEMPLATE
213228 #include "type_mat3x4.inl"
5252 template <typename T>
5353 GLM_FUNC_QUALIFIER tmat3x4<T>::tmat3x4()
5454 {
55 value_type const Zero(0);
56 value_type const One(1);
5755 this->value[0] = col_type(1, 0, 0, 0);
5856 this->value[1] = col_type(0, 1, 0, 0);
5957 this->value[2] = col_type(0, 0, 1, 0);
114112 this->value[1] = v1;
115113 this->value[2] = v2;
116114 }
115
116 //////////////////////////////////////
117 // Convertion constructors
118 template <typename T>
119 template <typename U>
120 GLM_FUNC_DECL tmat3x4<T>::tmat3x4
121 (
122 U const & s
123 )
124 {
125 value_type const Zero(0);
126 this->value[0] = tvec4<T>(value_type(s), Zero, Zero, Zero);
127 this->value[1] = tvec4<T>(Zero, value_type(s), Zero, Zero);
128 this->value[2] = tvec4<T>(Zero, Zero, value_type(s), Zero);
129 }
130
131 template <typename T>
132 template <
133 typename X1, typename Y1, typename Z1, typename W1,
134 typename X2, typename Y2, typename Z2, typename W2,
135 typename X3, typename Y3, typename Z3, typename W3>
136 GLM_FUNC_DECL tmat3x4<T>::tmat3x4
137 (
138 X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
139 X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,
140 X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3
141 )
142 {
143 this->value[0] = col_type(value_type(x1), value_type(y1), value_type(z1), value_type(w1));
144 this->value[1] = col_type(value_type(x2), value_type(y2), value_type(z2), value_type(w2));
145 this->value[2] = col_type(value_type(x3), value_type(y3), value_type(z3), value_type(w3));
146 }
147
148 template <typename T>
149 template <typename V1, typename V2, typename V3>
150 GLM_FUNC_DECL tmat3x4<T>::tmat3x4
151 (
152 tvec4<V1> const & v1,
153 tvec4<V2> const & v2,
154 tvec4<V3> const & v3
155 )
156 {
157 this->value[0] = col_type(v1);
158 this->value[1] = col_type(v2);
159 this->value[2] = col_type(v3);
160 }
117161
118162 // Conversion
119163 template <typename T>
1111
1212 #include "type_mat.hpp"
1313
14 namespace glm
14 namespace glm{
15 namespace detail
1516 {
16 namespace test
17 template <typename T> struct tvec1;
18 template <typename T> struct tvec2;
19 template <typename T> struct tvec3;
20 template <typename T> struct tvec4;
21 template <typename T> struct tmat2x2;
22 template <typename T> struct tmat2x3;
23 template <typename T> struct tmat2x4;
24 template <typename T> struct tmat3x2;
25 template <typename T> struct tmat3x3;
26 template <typename T> struct tmat3x4;
27 template <typename T> struct tmat4x2;
28 template <typename T> struct tmat4x3;
29 template <typename T> struct tmat4x4;
30
31 //! \brief Template for 4 columns and 2 rows matrix of floating-point numbers.
32 //! \ingroup core_template
33 template <typename T>
34 struct tmat4x2
1735 {
18 void main_mat4x2();
19 }//namespace test
20
21 namespace detail
22 {
23 template <typename T> struct tvec1;
24 template <typename T> struct tvec2;
25 template <typename T> struct tvec3;
26 template <typename T> struct tvec4;
27 template <typename T> struct tmat2x2;
28 template <typename T> struct tmat2x3;
29 template <typename T> struct tmat2x4;
30 template <typename T> struct tmat3x2;
31 template <typename T> struct tmat3x3;
32 template <typename T> struct tmat3x4;
33 template <typename T> struct tmat4x2;
34 template <typename T> struct tmat4x3;
35 template <typename T> struct tmat4x4;
36
37 //! \brief Template for 4 columns and 2 rows matrix of floating-point numbers.
38 //! \ingroup core_template
39 template <typename T>
40 struct tmat4x2
41 {
42 enum ctor{null};
43 typedef T value_type;
44 typedef std::size_t size_type;
45 typedef tvec2<T> col_type;
46 typedef tvec4<T> row_type;
47 static GLM_FUNC_DECL size_type col_size();
48 static GLM_FUNC_DECL size_type row_size();
49
50 typedef tmat4x2<T> type;
51 typedef tmat2x4<T> transpose_type;
52
53 private:
54 // Data
55 col_type value[4];
56
57 public:
58 // Constructors
59 GLM_FUNC_DECL tmat4x2();
60 GLM_FUNC_DECL tmat4x2(tmat4x2 const & m);
61
62 GLM_FUNC_DECL explicit tmat4x2(
63 ctor Null);
64 GLM_FUNC_DECL explicit tmat4x2(
65 value_type const & x);
66 GLM_FUNC_DECL explicit tmat4x2(
67 value_type const & x0, value_type const & y0,
68 value_type const & x1, value_type const & y1,
69 value_type const & x2, value_type const & y2,
70 value_type const & x3, value_type const & y3);
71 GLM_FUNC_DECL explicit tmat4x2(
72 col_type const & v0,
73 col_type const & v1,
74 col_type const & v2,
75 col_type const & v3);
76
77 // Conversions
78 template <typename U>
79 GLM_FUNC_DECL explicit tmat4x2(tmat4x2<U> const & m);
36 enum ctor{null};
37 typedef T value_type;
38 typedef std::size_t size_type;
39 typedef tvec2<T> col_type;
40 typedef tvec4<T> row_type;
41 static GLM_FUNC_DECL size_type col_size();
42 static GLM_FUNC_DECL size_type row_size();
43
44 typedef tmat4x2<T> type;
45 typedef tmat2x4<T> transpose_type;
46
47 private:
48 // Data
49 col_type value[4];
50
51 public:
52 // Constructors
53 GLM_FUNC_DECL tmat4x2();
54 GLM_FUNC_DECL tmat4x2(tmat4x2 const & m);
55
56 GLM_FUNC_DECL explicit tmat4x2(
57 ctor Null);
58 GLM_FUNC_DECL explicit tmat4x2(
59 value_type const & x);
60 GLM_FUNC_DECL explicit tmat4x2(
61 value_type const & x0, value_type const & y0,
62 value_type const & x1, value_type const & y1,
63 value_type const & x2, value_type const & y2,
64 value_type const & x3, value_type const & y3);
65 GLM_FUNC_DECL explicit tmat4x2(
66 col_type const & v0,
67 col_type const & v1,
68 col_type const & v2,
69 col_type const & v3);
70
71 //////////////////////////////////////
72 // Conversions
73 template <typename U>
74 GLM_FUNC_DECL explicit tmat4x2(
75 U const & x);
8076
81 GLM_FUNC_DECL explicit tmat4x2(tmat2x2<T> const & x);
82 GLM_FUNC_DECL explicit tmat4x2(tmat3x3<T> const & x);
83 GLM_FUNC_DECL explicit tmat4x2(tmat4x4<T> const & x);
84 GLM_FUNC_DECL explicit tmat4x2(tmat2x3<T> const & x);
85 GLM_FUNC_DECL explicit tmat4x2(tmat3x2<T> const & x);
86 GLM_FUNC_DECL explicit tmat4x2(tmat2x4<T> const & x);
87 GLM_FUNC_DECL explicit tmat4x2(tmat4x3<T> const & x);
88 GLM_FUNC_DECL explicit tmat4x2(tmat3x4<T> const & x);
89
90 // Accesses
91 GLM_FUNC_DECL col_type & operator[](size_type i);
92 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
93
94 // Unary updatable operators
95 GLM_FUNC_DECL tmat4x2<T>& operator= (tmat4x2<T> const & m);
96 template <typename U>
97 GLM_FUNC_DECL tmat4x2<T>& operator= (tmat4x2<U> const & m);
98 template <typename U>
99 GLM_FUNC_DECL tmat4x2<T>& operator+= (U const & s);
100 template <typename U>
101 GLM_FUNC_DECL tmat4x2<T>& operator+= (tmat4x2<U> const & m);
102 template <typename U>
103 GLM_FUNC_DECL tmat4x2<T>& operator-= (U const & s);
104 template <typename U>
105 GLM_FUNC_DECL tmat4x2<T>& operator-= (tmat4x2<U> const & m);
106 template <typename U>
107 GLM_FUNC_DECL tmat4x2<T>& operator*= (U const & s);
108 template <typename U>
109 GLM_FUNC_DECL tmat4x2<T>& operator*= (tmat4x2<U> const & m);
110 template <typename U>
111 GLM_FUNC_DECL tmat4x2<T>& operator/= (U const & s);
112
113 GLM_FUNC_DECL tmat4x2<T>& operator++ ();
114 GLM_FUNC_DECL tmat4x2<T>& operator-- ();
115 };
116
117 // Binary operators
118 template <typename T>
119 tmat4x2<T> operator+ (
120 tmat4x2<T> const & m,
121 typename tmat4x2<T>::value_type const & s);
77 template
78 <
79 typename X1, typename Y1,
80 typename X2, typename Y2,
81 typename X3, typename Y3,
82 typename X4, typename Y4
83 >
84 GLM_FUNC_DECL explicit tmat4x2(
85 X1 const & x1, Y1 const & y1,
86 X2 const & x2, Y2 const & y2,
87 X3 const & x3, Y3 const & y3,
88 X4 const & x4, Y4 const & y4);
89
90 template <typename V1, typename V2, typename V3, typename V4>
91 GLM_FUNC_DECL explicit tmat4x2(
92 tvec2<V1> const & v1,
93 tvec2<V2> const & v2,
94 tvec2<V3> const & v3,
95 tvec2<V4> const & v4);
96
97 // Matrix conversions
98 template <typename U>
99 GLM_FUNC_DECL explicit tmat4x2(tmat4x2<U> const & m);
100
101 GLM_FUNC_DECL explicit tmat4x2(tmat2x2<T> const & x);
102 GLM_FUNC_DECL explicit tmat4x2(tmat3x3<T> const & x);
103 GLM_FUNC_DECL explicit tmat4x2(tmat4x4<T> const & x);
104 GLM_FUNC_DECL explicit tmat4x2(tmat2x3<T> const & x);
105 GLM_FUNC_DECL explicit tmat4x2(tmat3x2<T> const & x);
106 GLM_FUNC_DECL explicit tmat4x2(tmat2x4<T> const & x);
107 GLM_FUNC_DECL explicit tmat4x2(tmat4x3<T> const & x);
108 GLM_FUNC_DECL explicit tmat4x2(tmat3x4<T> const & x);
109
110 // Accesses
111 GLM_FUNC_DECL col_type & operator[](size_type i);
112 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
113
114 // Unary updatable operators
115 GLM_FUNC_DECL tmat4x2<T>& operator= (tmat4x2<T> const & m);
116 template <typename U>
117 GLM_FUNC_DECL tmat4x2<T>& operator= (tmat4x2<U> const & m);
118 template <typename U>
119 GLM_FUNC_DECL tmat4x2<T>& operator+= (U const & s);
120 template <typename U>
121 GLM_FUNC_DECL tmat4x2<T>& operator+= (tmat4x2<U> const & m);
122 template <typename U>
123 GLM_FUNC_DECL tmat4x2<T>& operator-= (U const & s);
124 template <typename U>
125 GLM_FUNC_DECL tmat4x2<T>& operator-= (tmat4x2<U> const & m);
126 template <typename U>
127 GLM_FUNC_DECL tmat4x2<T>& operator*= (U const & s);
128 template <typename U>
129 GLM_FUNC_DECL tmat4x2<T>& operator*= (tmat4x2<U> const & m);
130 template <typename U>
131 GLM_FUNC_DECL tmat4x2<T>& operator/= (U const & s);
132
133 GLM_FUNC_DECL tmat4x2<T>& operator++ ();
134 GLM_FUNC_DECL tmat4x2<T>& operator-- ();
135 };
136
137 // Binary operators
138 template <typename T>
139 tmat4x2<T> operator+ (
140 tmat4x2<T> const & m,
141 typename tmat4x2<T>::value_type const & s);
122142
123 template <typename T>
124 tmat4x2<T> operator+ (
125 tmat4x2<T> const & m1,
126 tmat4x2<T> const & m2);
143 template <typename T>
144 tmat4x2<T> operator+ (
145 tmat4x2<T> const & m1,
146 tmat4x2<T> const & m2);
127147
128 template <typename T>
129 tmat4x2<T> operator- (
130 tmat4x2<T> const & m,
131 typename tmat4x2<T>::value_type const & s);
132
133 template <typename T>
134 tmat4x2<T> operator- (
135 tmat4x2<T> const & m1,
136 tmat4x2<T> const & m2);
137
138 template <typename T>
139 tmat4x2<T> operator* (
140 tmat4x2<T> const & m,
141 typename tmat4x2<T>::value_type const & s);
142
143 template <typename T>
144 tmat4x2<T> operator* (
145 typename tmat4x2<T>::value_type const & s,
146 tmat4x2<T> const & m);
147
148 template <typename T>
149 typename tmat4x2<T>::col_type operator* (
150 tmat4x2<T> const & m,
151 typename tmat4x2<T>::row_type const & v);
152
153 template <typename T>
154 typename tmat4x2<T>::row_type operator* (
155 typename tmat4x2<T>::col_type const & v,
156 tmat4x2<T> const & m);
157
158 template <typename T>
159 tmat2x2<T> operator* (
160 tmat4x2<T> const & m1,
161 tmat2x4<T> const & m2);
162
163 template <typename T>
164 tmat4x2<T> operator/ (
165 tmat4x2<T> const & m,
166 typename tmat4x2<T>::value_type const & s);
167
168 template <typename T>
169 tmat4x2<T> operator/ (
170 typename tmat4x2<T>::value_type const & s,
171 tmat4x2<T> const & m);
172
173 // Unary constant operators
174 template <typename T>
175 tmat4x2<T> const operator- (
176 tmat4x2<T> const & m);
177
178 template <typename T>
179 tmat4x2<T> const operator-- (
180 tmat4x2<T> const & m,
181 int);
182
183 template <typename T>
184 tmat4x2<T> const operator++ (
185 tmat4x2<T> const & m,
186 int);
187
188 } //namespace detail
189
190 namespace core{
191 namespace type{
192
193 namespace precision
194 {
195 //! 4 columns of 2 components matrix of low precision floating-point numbers.
196 //! There is no guarantee on the actual precision.
197 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
198 //! \ingroup core_precision
199 typedef detail::tmat4x2<lowp_float> lowp_mat4x2;
200 //! 4 columns of 2 components matrix of medium precision floating-point numbers.
201 //! There is no guarantee on the actual precision.
202 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
203 //! \ingroup core_precision
204 typedef detail::tmat4x2<mediump_float> mediump_mat4x2;
205 //! 4 columns of 2 components matrix of high precision floating-point numbers.
206 //! There is no guarantee on the actual precision.
207 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
208 //! \ingroup core_precision
209 typedef detail::tmat4x2<highp_float> highp_mat4x2;
210 }
211 //namespace precision
212
213 }//namespace type
214 }//namespace core
215 } //namespace glm
148 template <typename T>
149 tmat4x2<T> operator- (
150 tmat4x2<T> const & m,
151 typename tmat4x2<T>::value_type const & s);
152
153 template <typename T>
154 tmat4x2<T> operator- (
155 tmat4x2<T> const & m1,
156 tmat4x2<T> const & m2);
157
158 template <typename T>
159 tmat4x2<T> operator* (
160 tmat4x2<T> const & m,
161 typename tmat4x2<T>::value_type const & s);
162
163 template <typename T>
164 tmat4x2<T> operator* (
165 typename tmat4x2<T>::value_type const & s,
166 tmat4x2<T> const & m);
167
168 template <typename T>
169 typename tmat4x2<T>::col_type operator* (
170 tmat4x2<T> const & m,
171 typename tmat4x2<T>::row_type const & v);
172
173 template <typename T>
174 typename tmat4x2<T>::row_type operator* (
175 typename tmat4x2<T>::col_type const & v,
176 tmat4x2<T> const & m);
177
178 template <typename T>
179 tmat2x2<T> operator* (
180 tmat4x2<T> const & m1,
181 tmat2x4<T> const & m2);
182
183 template <typename T>
184 tmat4x2<T> operator/ (
185 tmat4x2<T> const & m,
186 typename tmat4x2<T>::value_type const & s);
187
188 template <typename T>
189 tmat4x2<T> operator/ (
190 typename tmat4x2<T>::value_type const & s,
191 tmat4x2<T> const & m);
192
193 // Unary constant operators
194 template <typename T>
195 tmat4x2<T> const operator- (
196 tmat4x2<T> const & m);
197
198 template <typename T>
199 tmat4x2<T> const operator-- (
200 tmat4x2<T> const & m,
201 int);
202
203 template <typename T>
204 tmat4x2<T> const operator++ (
205 tmat4x2<T> const & m,
206 int);
207
208 } //namespace detail
209
210 namespace core{
211 namespace type{
212 namespace precision
213 {
214 //! 4 columns of 2 components matrix of low precision floating-point numbers.
215 //! There is no guarantee on the actual precision.
216 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
217 //! \ingroup core_precision
218 typedef detail::tmat4x2<lowp_float> lowp_mat4x2;
219
220 //! 4 columns of 2 components matrix of medium precision floating-point numbers.
221 //! There is no guarantee on the actual precision.
222 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
223 //! \ingroup core_precision
224 typedef detail::tmat4x2<mediump_float> mediump_mat4x2;
225
226 //! 4 columns of 2 components matrix of high precision floating-point numbers.
227 //! There is no guarantee on the actual precision.
228 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
229 //! \ingroup core_precision
230 typedef detail::tmat4x2<highp_float> highp_mat4x2;
231
232 }//namespace precision
233 }//namespace type
234 }//namespace core
235 }//namespace glm
216236
217237 #ifndef GLM_EXTERNAL_TEMPLATE
218238 #include "type_mat4x2.inl"
122122 this->value[3] = v3;
123123 }
124124
125 //////////////////////////////////////
126 // Convertion constructors
127 template <typename T>
128 template <typename U>
129 GLM_FUNC_DECL tmat4x2<T>::tmat4x2
130 (
131 U const & s
132 )
133 {
134 value_type const Zero(0);
135 this->value[0] = tvec2<T>(value_type(s), Zero);
136 this->value[1] = tvec2<T>(Zero, value_type(s));
137 this->value[2] = tvec2<T>(Zero, Zero);
138 this->value[3] = tvec2<T>(Zero, Zero);
139 }
140
141 template <typename T>
142 template <
143 typename X1, typename Y1,
144 typename X2, typename Y2,
145 typename X3, typename Y3,
146 typename X4, typename Y4>
147 GLM_FUNC_DECL tmat4x2<T>::tmat4x2
148 (
149 X1 const & x1, Y1 const & y1,
150 X2 const & x2, Y2 const & y2,
151 X3 const & x3, Y3 const & y3,
152 X4 const & x4, Y4 const & y4
153 )
154 {
155 this->value[0] = col_type(value_type(x1), value_type(y1));
156 this->value[1] = col_type(value_type(x2), value_type(y2));
157 this->value[2] = col_type(value_type(x3), value_type(y3));
158 this->value[3] = col_type(value_type(x4), value_type(y4));
159 }
160
161 template <typename T>
162 template <typename V1, typename V2, typename V3, typename V4>
163 GLM_FUNC_DECL tmat4x2<T>::tmat4x2
164 (
165 tvec2<V1> const & v1,
166 tvec2<V2> const & v2,
167 tvec2<V3> const & v3,
168 tvec2<V4> const & v4
169 )
170 {
171 this->value[0] = col_type(v1);
172 this->value[1] = col_type(v2);
173 this->value[2] = col_type(v3);
174 this->value[3] = col_type(v4);
175 }
176
125177 // Conversion
126178 template <typename T>
127179 template <typename U>
1111
1212 #include "type_mat.hpp"
1313
14 namespace glm
14 namespace glm{
15 namespace detail
1516 {
16 namespace test
17 template <typename T> struct tvec1;
18 template <typename T> struct tvec2;
19 template <typename T> struct tvec3;
20 template <typename T> struct tvec4;
21 template <typename T> struct tmat2x2;
22 template <typename T> struct tmat2x3;
23 template <typename T> struct tmat2x4;
24 template <typename T> struct tmat3x2;
25 template <typename T> struct tmat3x3;
26 template <typename T> struct tmat3x4;
27 template <typename T> struct tmat4x2;
28 template <typename T> struct tmat4x3;
29 template <typename T> struct tmat4x4;
30
31 //! \brief Template for 4 columns and 3 rows matrix of floating-point numbers.
32 //! \ingroup core_template
33 template <typename T>
34 struct tmat4x3
1735 {
18 void main_mat4x3();
19 }//namespace test
20
21 namespace detail
22 {
23 template <typename T> struct tvec1;
24 template <typename T> struct tvec2;
25 template <typename T> struct tvec3;
26 template <typename T> struct tvec4;
27 template <typename T> struct tmat2x2;
28 template <typename T> struct tmat2x3;
29 template <typename T> struct tmat2x4;
30 template <typename T> struct tmat3x2;
31 template <typename T> struct tmat3x3;
32 template <typename T> struct tmat3x4;
33 template <typename T> struct tmat4x2;
34 template <typename T> struct tmat4x3;
35 template <typename T> struct tmat4x4;
36
37 //! \brief Template for 4 columns and 3 rows matrix of floating-point numbers.
38 //! \ingroup core_template
39 template <typename T>
40 struct tmat4x3
41 {
42 enum ctor{null};
43 typedef T value_type;
44 typedef std::size_t size_type;
45 typedef tvec3<T> col_type;
46 typedef tvec4<T> row_type;
47 static GLM_FUNC_DECL size_type col_size();
48 static GLM_FUNC_DECL size_type row_size();
49
50 typedef tmat4x3<T> type;
51 typedef tmat3x4<T> transpose_type;
52
53 private:
54 // Data
55 col_type value[4];
56
57 public:
58 // Constructors
59 GLM_FUNC_DECL tmat4x3();
60 GLM_FUNC_DECL tmat4x3(tmat4x3 const & m);
61
62 GLM_FUNC_DECL explicit tmat4x3(
63 ctor Null);
64 GLM_FUNC_DECL explicit tmat4x3(
65 value_type const & x);
66 GLM_FUNC_DECL explicit tmat4x3(
67 value_type const & x0, value_type const & y0, value_type const & z0,
68 value_type const & x1, value_type const & y1, value_type const & z1,
69 value_type const & x2, value_type const & y2, value_type const & z2,
70 value_type const & x3, value_type const & y3, value_type const & z3);
71 GLM_FUNC_DECL explicit tmat4x3(
72 col_type const & v0,
73 col_type const & v1,
74 col_type const & v2,
75 col_type const & v3);
76
77 // Conversion
78 template <typename U>
79 GLM_FUNC_DECL explicit tmat4x3(tmat4x3<U> const & m);
36 enum ctor{null};
37 typedef T value_type;
38 typedef std::size_t size_type;
39 typedef tvec3<T> col_type;
40 typedef tvec4<T> row_type;
41 static GLM_FUNC_DECL size_type col_size();
42 static GLM_FUNC_DECL size_type row_size();
43
44 typedef tmat4x3<T> type;
45 typedef tmat3x4<T> transpose_type;
46
47 private:
48 // Data
49 col_type value[4];
50
51 public:
52 // Constructors
53 GLM_FUNC_DECL tmat4x3();
54 GLM_FUNC_DECL tmat4x3(tmat4x3 const & m);
55
56 GLM_FUNC_DECL explicit tmat4x3(
57 ctor Null);
58 GLM_FUNC_DECL explicit tmat4x3(
59 value_type const & x);
60 GLM_FUNC_DECL explicit tmat4x3(
61 value_type const & x0, value_type const & y0, value_type const & z0,
62 value_type const & x1, value_type const & y1, value_type const & z1,
63 value_type const & x2, value_type const & y2, value_type const & z2,
64 value_type const & x3, value_type const & y3, value_type const & z3);
65 GLM_FUNC_DECL explicit tmat4x3(
66 col_type const & v0,
67 col_type const & v1,
68 col_type const & v2,
69 col_type const & v3);
70
71 //////////////////////////////////////
72 // Conversions
73 template <typename U>
74 GLM_FUNC_DECL explicit tmat4x3(
75 U const & x);
8076
81 GLM_FUNC_DECL explicit tmat4x3(tmat2x2<T> const & x);
82 GLM_FUNC_DECL explicit tmat4x3(tmat3x3<T> const & x);
83 GLM_FUNC_DECL explicit tmat4x3(tmat4x4<T> const & x);
84 GLM_FUNC_DECL explicit tmat4x3(tmat2x3<T> const & x);
85 GLM_FUNC_DECL explicit tmat4x3(tmat3x2<T> const & x);
86 GLM_FUNC_DECL explicit tmat4x3(tmat2x4<T> const & x);
87 GLM_FUNC_DECL explicit tmat4x3(tmat4x2<T> const & x);
88 GLM_FUNC_DECL explicit tmat4x3(tmat3x4<T> const & x);
89
90 // Accesses
91 col_type & operator[](size_type i);
92 col_type const & operator[](size_type i) const;
93
94 // Unary updatable operators
95 GLM_FUNC_DECL tmat4x3<T> & operator= (tmat4x3<T> const & m);
96 template <typename U>
97 GLM_FUNC_DECL tmat4x3<T> & operator= (tmat4x3<U> const & m);
98 template <typename U>
99 GLM_FUNC_DECL tmat4x3<T> & operator+= (U const & s);
100 template <typename U>
101 GLM_FUNC_DECL tmat4x3<T> & operator+= (tmat4x3<U> const & m);
102 template <typename U>
103 GLM_FUNC_DECL tmat4x3<T> & operator-= (U const & s);
104 template <typename U>
105 GLM_FUNC_DECL tmat4x3<T> & operator-= (tmat4x3<U> const & m);
106 template <typename U>
107 GLM_FUNC_DECL tmat4x3<T> & operator*= (U const & s);
108 template <typename U>
109 GLM_FUNC_DECL tmat4x3<T> & operator*= (tmat4x3<U> const & m);
110 template <typename U>
111 GLM_FUNC_DECL tmat4x3<T> & operator/= (U const & s);
112
113 GLM_FUNC_DECL tmat4x3<T> & operator++ ();
114 GLM_FUNC_DECL tmat4x3<T> & operator-- ();
115 };
116
117 // Binary operators
118 template <typename T>
119 tmat4x3<T> operator+ (
120 tmat4x3<T> const & m,
121 typename tmat4x3<T>::value_type const & s);
77 template <
78 typename X1, typename Y1, typename Z1,
79 typename X2, typename Y2, typename Z2,
80 typename X3, typename Y3, typename Z3,
81 typename X4, typename Y4, typename Z4>
82 GLM_FUNC_DECL explicit tmat4x3(
83 X1 const & x1, Y1 const & y1, Z1 const & z1,
84 X2 const & x2, Y2 const & y2, Z2 const & z2,
85 X3 const & x3, Y3 const & y3, Z3 const & z3,
86 X4 const & x4, Y4 const & y4, Z4 const & z4);
87
88 template <typename V1, typename V2, typename V3, typename V4>
89 GLM_FUNC_DECL explicit tmat4x3(
90 tvec3<V1> const & v1,
91 tvec3<V2> const & v2,
92 tvec3<V3> const & v3,
93 tvec3<V4> const & v4);
94
95 // Matrix conversions
96 template <typename U>
97 GLM_FUNC_DECL explicit tmat4x3(tmat4x3<U> const & m);
98
99 GLM_FUNC_DECL explicit tmat4x3(tmat2x2<T> const & x);
100 GLM_FUNC_DECL explicit tmat4x3(tmat3x3<T> const & x);
101 GLM_FUNC_DECL explicit tmat4x3(tmat4x4<T> const & x);
102 GLM_FUNC_DECL explicit tmat4x3(tmat2x3<T> const & x);
103 GLM_FUNC_DECL explicit tmat4x3(tmat3x2<T> const & x);
104 GLM_FUNC_DECL explicit tmat4x3(tmat2x4<T> const & x);
105 GLM_FUNC_DECL explicit tmat4x3(tmat4x2<T> const & x);
106 GLM_FUNC_DECL explicit tmat4x3(tmat3x4<T> const & x);
107
108 // Accesses
109 col_type & operator[](size_type i);
110 col_type const & operator[](size_type i) const;
111
112 // Unary updatable operators
113 GLM_FUNC_DECL tmat4x3<T> & operator= (tmat4x3<T> const & m);
114 template <typename U>
115 GLM_FUNC_DECL tmat4x3<T> & operator= (tmat4x3<U> const & m);
116 template <typename U>
117 GLM_FUNC_DECL tmat4x3<T> & operator+= (U const & s);
118 template <typename U>
119 GLM_FUNC_DECL tmat4x3<T> & operator+= (tmat4x3<U> const & m);
120 template <typename U>
121 GLM_FUNC_DECL tmat4x3<T> & operator-= (U const & s);
122 template <typename U>
123 GLM_FUNC_DECL tmat4x3<T> & operator-= (tmat4x3<U> const & m);
124 template <typename U>
125 GLM_FUNC_DECL tmat4x3<T> & operator*= (U const & s);
126 template <typename U>
127 GLM_FUNC_DECL tmat4x3<T> & operator*= (tmat4x3<U> const & m);
128 template <typename U>
129 GLM_FUNC_DECL tmat4x3<T> & operator/= (U const & s);
130
131 GLM_FUNC_DECL tmat4x3<T> & operator++ ();
132 GLM_FUNC_DECL tmat4x3<T> & operator-- ();
133 };
134
135 // Binary operators
136 template <typename T>
137 tmat4x3<T> operator+ (
138 tmat4x3<T> const & m,
139 typename tmat4x3<T>::value_type const & s);
122140
123 template <typename T>
124 tmat4x3<T> operator+ (
125 tmat4x3<T> const & m1,
126 tmat4x3<T> const & m2);
141 template <typename T>
142 tmat4x3<T> operator+ (
143 tmat4x3<T> const & m1,
144 tmat4x3<T> const & m2);
127145
128 template <typename T>
129 tmat4x3<T> operator- (
130 tmat4x3<T> const & m,
131 typename tmat4x3<T>::value_type const & s);
132
133 template <typename T>
134 tmat4x3<T> operator- (
135 tmat4x3<T> const & m1,
136 tmat4x3<T> const & m2);
137
138 template <typename T>
139 tmat4x3<T> operator* (
140 tmat4x3<T> const & m,
141 typename tmat4x3<T>::value_type const & s);
142
143 template <typename T>
144 tmat4x3<T> operator* (
145 typename tmat4x3<T>::value_type const & s,
146 tmat4x3<T> const & m);
147
148 template <typename T>
149 typename tmat4x3<T>::col_type operator* (
150 tmat4x3<T> const & m,
151 typename tmat4x3<T>::row_type const & v);
152
153 template <typename T>
154 typename tmat4x3<T>::row_type operator* (
155 typename tmat4x3<T>::col_type const & v,
156 tmat4x3<T> const & m);
157
158 template <typename T>
159 tmat3x3<T> operator* (
160 tmat4x3<T> const & m1,
161 tmat3x4<T> const & m2);
162
163 template <typename T>
164 tmat4x3<T> operator/ (
165 tmat4x3<T> const & m,
166 typename tmat4x3<T>::value_type const & s);
167
168 template <typename T>
169 tmat4x3<T> operator/ (
170 typename tmat4x3<T>::value_type const & s,
171 tmat4x3<T> const & m);
172
173 // Unary constant operators
174 template <typename T>
175 tmat4x3<T> const operator- (
176 tmat4x3<T> const & m);
177
178 template <typename T>
179 tmat4x3<T> const operator-- (
180 tmat4x3<T> const & m,
181 int);
182
183 template <typename T>
184 tmat4x3<T> const operator++ (
185 tmat4x3<T> const & m,
186 int);
187
188 } //namespace detail
189
190 namespace core{
191 namespace type{
192
193 namespace precision
194 {
195 //! 4 columns of 3 components matrix of low precision floating-point numbers.
196 //! There is no guarantee on the actual precision.
197 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
198 //! \ingroup core_precision
199 typedef detail::tmat4x3<lowp_float> lowp_mat4x3;
200 //! 4 columns of 3 components matrix of medium precision floating-point numbers.
201 //! There is no guarantee on the actual precision.
202 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
203 //! \ingroup core_precision
204 typedef detail::tmat4x3<mediump_float> mediump_mat4x3;
205 //! 4 columns of 3 components matrix of high precision floating-point numbers.
206 //! There is no guarantee on the actual precision.
207 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
208 //! \ingroup core_precision
209 typedef detail::tmat4x3<highp_float> highp_mat4x3;
210 }
211 //namespace precision
212
213 }//namespace type
214 }//namespace core
215 } //namespace glm
146 template <typename T>
147 tmat4x3<T> operator- (
148 tmat4x3<T> const & m,
149 typename tmat4x3<T>::value_type const & s);
150
151 template <typename T>
152 tmat4x3<T> operator- (
153 tmat4x3<T> const & m1,
154 tmat4x3<T> const & m2);
155
156 template <typename T>
157 tmat4x3<T> operator* (
158 tmat4x3<T> const & m,
159 typename tmat4x3<T>::value_type const & s);
160
161 template <typename T>
162 tmat4x3<T> operator* (
163 typename tmat4x3<T>::value_type const & s,
164 tmat4x3<T> const & m);
165
166 template <typename T>
167 typename tmat4x3<T>::col_type operator* (
168 tmat4x3<T> const & m,
169 typename tmat4x3<T>::row_type const & v);
170
171 template <typename T>
172 typename tmat4x3<T>::row_type operator* (
173 typename tmat4x3<T>::col_type const & v,
174 tmat4x3<T> const & m);
175
176 template <typename T>
177 tmat3x3<T> operator* (
178 tmat4x3<T> const & m1,
179 tmat3x4<T> const & m2);
180
181 template <typename T>
182 tmat4x3<T> operator/ (
183 tmat4x3<T> const & m,
184 typename tmat4x3<T>::value_type const & s);
185
186 template <typename T>
187 tmat4x3<T> operator/ (
188 typename tmat4x3<T>::value_type const & s,
189 tmat4x3<T> const & m);
190
191 // Unary constant operators
192 template <typename T>
193 tmat4x3<T> const operator- (
194 tmat4x3<T> const & m);
195
196 template <typename T>
197 tmat4x3<T> const operator-- (
198 tmat4x3<T> const & m,
199 int);
200
201 template <typename T>
202 tmat4x3<T> const operator++ (
203 tmat4x3<T> const & m,
204 int);
205
206 }//namespace detail
207
208 namespace core{
209 namespace type{
210 namespace precision
211 {
212 //! 4 columns of 3 components matrix of low precision floating-point numbers.
213 //! There is no guarantee on the actual precision.
214 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
215 //! \ingroup core_precision
216 typedef detail::tmat4x3<lowp_float> lowp_mat4x3;
217
218 //! 4 columns of 3 components matrix of medium precision floating-point numbers.
219 //! There is no guarantee on the actual precision.
220 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
221 //! \ingroup core_precision
222 typedef detail::tmat4x3<mediump_float> mediump_mat4x3;
223
224 //! 4 columns of 3 components matrix of high precision floating-point numbers.
225 //! There is no guarantee on the actual precision.
226 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
227 //! \ingroup core_precision
228 typedef detail::tmat4x3<highp_float> highp_mat4x3;
229
230 }//namespace precision
231 }//namespace type
232 }//namespace core
233 }//namespace glm
216234
217235 #ifndef GLM_EXTERNAL_TEMPLATE
218236 #include "type_mat4x3.inl"
219 #endif
237 #endif //GLM_EXTERNAL_TEMPLATE
220238
221239 #endif//glm_core_type_mat4x3
122122 this->value[3] = v3;
123123 }
124124
125 //////////////////////////////////////
126 // Convertion constructors
127 template <typename T>
128 template <typename U>
129 GLM_FUNC_DECL tmat4x3<T>::tmat4x3
130 (
131 U const & s
132 )
133 {
134 value_type const Zero(0);
135 this->value[0] = tvec3<T>(value_type(s), Zero, Zero);
136 this->value[1] = tvec3<T>(Zero, value_type(s), Zero);
137 this->value[2] = tvec3<T>(Zero, Zero, value_type(s));
138 this->value[3] = tvec3<T>(Zero, Zero, Zero);
139 }
140
141 template <typename T>
142 template <
143 typename X1, typename Y1, typename Z1,
144 typename X2, typename Y2, typename Z2,
145 typename X3, typename Y3, typename Z3,
146 typename X4, typename Y4, typename Z4>
147 GLM_FUNC_DECL tmat4x3<T>::tmat4x3
148 (
149 X1 const & x1, Y1 const & y1, Z1 const & z1,
150 X2 const & x2, Y2 const & y2, Z2 const & z2,
151 X3 const & x3, Y3 const & y3, Z3 const & z3,
152 X4 const & x4, Y4 const & y4, Z4 const & z4
153 )
154 {
155 this->value[0] = col_type(value_type(x1), value_type(y1), value_type(z1));
156 this->value[1] = col_type(value_type(x2), value_type(y2), value_type(z2));
157 this->value[2] = col_type(value_type(x3), value_type(y3), value_type(z3));
158 this->value[3] = col_type(value_type(x4), value_type(y4), value_type(z4));
159 }
160
161 template <typename T>
162 template <typename V1, typename V2, typename V3, typename V4>
163 GLM_FUNC_DECL tmat4x3<T>::tmat4x3
164 (
165 tvec3<V1> const & v1,
166 tvec3<V2> const & v2,
167 tvec3<V3> const & v3,
168 tvec3<V4> const & v4
169 )
170 {
171 this->value[0] = col_type(v1);
172 this->value[1] = col_type(v2);
173 this->value[2] = col_type(v3);
174 this->value[3] = col_type(v4);
175 }
176
125177 //////////////////////////////////////////////////////////////
126 // Conversions
178 // Matrix conversions
127179
128180 template <typename T>
129181 template <typename U>
11 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
22 ///////////////////////////////////////////////////////////////////////////////////////////////////
33 // Created : 2005-01-27
4 // Updated : 2008-08-30
4 // Updated : 2011-06-02
55 // Licence : This source is under MIT License
66 // File : glm/core/type_mat4x4.hpp
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
1111
1212 #include "type_mat.hpp"
1313
14 namespace glm
14 namespace glm{
15 namespace detail
1516 {
16 namespace test
17 template <typename T> struct tvec1;
18 template <typename T> struct tvec2;
19 template <typename T> struct tvec3;
20 template <typename T> struct tvec4;
21 template <typename T> struct tmat2x2;
22 template <typename T> struct tmat2x3;
23 template <typename T> struct tmat2x4;
24 template <typename T> struct tmat3x2;
25 template <typename T> struct tmat3x3;
26 template <typename T> struct tmat3x4;
27 template <typename T> struct tmat4x2;
28 template <typename T> struct tmat4x3;
29 template <typename T> struct tmat4x4;
30
31 //! \brief Template for 4 * 4 matrix of floating-point numbers.
32 //! \ingroup core_template
33 template <typename T>
34 struct tmat4x4
1735 {
18 void main_mat4x4();
19 }//namespace test
20
21 namespace detail
22 {
23 template <typename T> struct tvec1;
24 template <typename T> struct tvec2;
25 template <typename T> struct tvec3;
26 template <typename T> struct tvec4;
27 template <typename T> struct tmat2x2;
28 template <typename T> struct tmat2x3;
29 template <typename T> struct tmat2x4;
30 template <typename T> struct tmat3x2;
31 template <typename T> struct tmat3x3;
32 template <typename T> struct tmat3x4;
33 template <typename T> struct tmat4x2;
34 template <typename T> struct tmat4x3;
35 template <typename T> struct tmat4x4;
36
37 //! \brief Template for 4 * 4 matrix of floating-point numbers.
38 //! \ingroup core_template
39 template <typename T>
40 struct tmat4x4
41 {
42 enum ctor{null};
43 typedef T value_type;
44 typedef std::size_t size_type;
45 typedef tvec4<T> col_type;
46 typedef tvec4<T> row_type;
47 static GLM_FUNC_DECL size_type col_size();
48 static GLM_FUNC_DECL size_type row_size();
49
50 typedef tmat4x4<T> type;
51 typedef tmat4x4<T> transpose_type;
52
53 public:
54 // Implementation detail
55 GLM_FUNC_DECL tmat4x4<T> _inverse() const;
56
57 private:
58 // Data
59 col_type value[4];
60
61 public:
62 // Constructors
63 GLM_FUNC_DECL tmat4x4();
64 GLM_FUNC_DECL tmat4x4(tmat4x4 const & m);
65
66 GLM_FUNC_DECL explicit tmat4x4(
67 ctor Null);
68 GLM_FUNC_DECL explicit tmat4x4(
69 value_type const & x);
70 GLM_FUNC_DECL explicit tmat4x4(
71 value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0,
72 value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1,
73 value_type const & x2, value_type const & y2, value_type const & z2, value_type const & w2,
74 value_type const & x3, value_type const & y3, value_type const & z3, value_type const & w3);
75 GLM_FUNC_DECL explicit tmat4x4(
76 col_type const & v0,
77 col_type const & v1,
78 col_type const & v2,
79 col_type const & v3);
80
81 // Conversions
82 template <typename U>
83 GLM_FUNC_DECL explicit tmat4x4(tmat4x4<U> const & m);
84
85 GLM_FUNC_DECL explicit tmat4x4(tmat2x2<T> const & x);
86 GLM_FUNC_DECL explicit tmat4x4(tmat3x3<T> const & x);
87 GLM_FUNC_DECL explicit tmat4x4(tmat2x3<T> const & x);
88 GLM_FUNC_DECL explicit tmat4x4(tmat3x2<T> const & x);
89 GLM_FUNC_DECL explicit tmat4x4(tmat2x4<T> const & x);
90 GLM_FUNC_DECL explicit tmat4x4(tmat4x2<T> const & x);
91 GLM_FUNC_DECL explicit tmat4x4(tmat3x4<T> const & x);
92 GLM_FUNC_DECL explicit tmat4x4(tmat4x3<T> const & x);
93
94 // Accesses
95 GLM_FUNC_DECL col_type & operator[](size_type i);
96 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
97
98 // Unary updatable operators
99 GLM_FUNC_DECL tmat4x4<T> & operator= (tmat4x4<T> const & m);
100 template <typename U>
101 GLM_FUNC_DECL tmat4x4<T> & operator= (tmat4x4<U> const & m);
102 template <typename U>
103 GLM_FUNC_DECL tmat4x4<T> & operator+= (U const & s);
104 template <typename U>
105 GLM_FUNC_DECL tmat4x4<T> & operator+= (tmat4x4<U> const & m);
106 template <typename U>
107 GLM_FUNC_DECL tmat4x4<T> & operator-= (U const & s);
108 template <typename U>
109 GLM_FUNC_DECL tmat4x4<T> & operator-= (tmat4x4<U> const & m);
110 template <typename U>
111 GLM_FUNC_DECL tmat4x4<T> & operator*= (U const & s);
112 template <typename U>
113 GLM_FUNC_DECL tmat4x4<T> & operator*= (tmat4x4<U> const & m);
114 template <typename U>
115 GLM_FUNC_DECL tmat4x4<T> & operator/= (U const & s);
116 template <typename U>
117 GLM_FUNC_DECL tmat4x4<T> & operator/= (tmat4x4<U> const & m);
118 GLM_FUNC_DECL tmat4x4<T> & operator++ ();
119 GLM_FUNC_DECL tmat4x4<T> & operator-- ();
120 };
121
122 // Binary operators
123 template <typename T>
124 tmat4x4<T> operator+ (
125 tmat4x4<T> const & m,
126 typename tmat4x4<T>::value_type const & s);
127
128 template <typename T>
129 tmat4x4<T> operator+ (
130 typename tmat4x4<T>::value_type const & s,
131 tmat4x4<T> const & m);
132
133 template <typename T>
134 tmat4x4<T> operator+ (
135 tmat4x4<T> const & m1,
136 tmat4x4<T> const & m2);
36 enum ctor{null};
37 typedef T value_type;
38 typedef std::size_t size_type;
39 typedef tvec4<T> col_type;
40 typedef tvec4<T> row_type;
41 static GLM_FUNC_DECL size_type col_size();
42 static GLM_FUNC_DECL size_type row_size();
43
44 typedef tmat4x4<T> type;
45 typedef tmat4x4<T> transpose_type;
46
47 public:
48 // Implementation detail
49 GLM_FUNC_DECL tmat4x4<T> _inverse() const;
50
51 private:
52 // Data
53 col_type value[4];
54
55 public:
56 // Constructors
57 GLM_FUNC_DECL tmat4x4();
58 GLM_FUNC_DECL tmat4x4(tmat4x4 const & m);
59
60 GLM_FUNC_DECL explicit tmat4x4(
61 ctor Null);
62 GLM_FUNC_DECL explicit tmat4x4(
63 value_type const & x);
64 GLM_FUNC_DECL explicit tmat4x4(
65 value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0,
66 value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1,
67 value_type const & x2, value_type const & y2, value_type const & z2, value_type const & w2,
68 value_type const & x3, value_type const & y3, value_type const & z3, value_type const & w3);
69 GLM_FUNC_DECL explicit tmat4x4(
70 col_type const & v0,
71 col_type const & v1,
72 col_type const & v2,
73 col_type const & v3);
74
75 //////////////////////////////////////
76 // Conversions
77 template <typename U>
78 GLM_FUNC_DECL explicit tmat4x4(
79 U const & x);
80
81 template <
82 typename X1, typename Y1, typename Z1, typename W1,
83 typename X2, typename Y2, typename Z2, typename W2,
84 typename X3, typename Y3, typename Z3, typename W3,
85 typename X4, typename Y4, typename Z4, typename W4>
86 GLM_FUNC_DECL explicit tmat4x4(
87 X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
88 X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,
89 X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3,
90 X4 const & x4, Y4 const & y4, Z4 const & z4, W4 const & w4);
91
92 template <typename V1, typename V2, typename V3, typename V4>
93 GLM_FUNC_DECL explicit tmat4x4(
94 tvec4<V1> const & v1,
95 tvec4<V2> const & v2,
96 tvec4<V3> const & v3,
97 tvec4<V4> const & v4);
98
99 // Matrix conversions
100 template <typename U>
101 GLM_FUNC_DECL explicit tmat4x4(tmat4x4<U> const & m);
102
103 GLM_FUNC_DECL explicit tmat4x4(tmat2x2<T> const & x);
104 GLM_FUNC_DECL explicit tmat4x4(tmat3x3<T> const & x);
105 GLM_FUNC_DECL explicit tmat4x4(tmat2x3<T> const & x);
106 GLM_FUNC_DECL explicit tmat4x4(tmat3x2<T> const & x);
107 GLM_FUNC_DECL explicit tmat4x4(tmat2x4<T> const & x);
108 GLM_FUNC_DECL explicit tmat4x4(tmat4x2<T> const & x);
109 GLM_FUNC_DECL explicit tmat4x4(tmat3x4<T> const & x);
110 GLM_FUNC_DECL explicit tmat4x4(tmat4x3<T> const & x);
111
112 // Accesses
113 GLM_FUNC_DECL col_type & operator[](size_type i);
114 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
115
116 // Unary updatable operators
117 GLM_FUNC_DECL tmat4x4<T> & operator= (tmat4x4<T> const & m);
118 template <typename U>
119 GLM_FUNC_DECL tmat4x4<T> & operator= (tmat4x4<U> const & m);
120 template <typename U>
121 GLM_FUNC_DECL tmat4x4<T> & operator+= (U const & s);
122 template <typename U>
123 GLM_FUNC_DECL tmat4x4<T> & operator+= (tmat4x4<U> const & m);
124 template <typename U>
125 GLM_FUNC_DECL tmat4x4<T> & operator-= (U const & s);
126 template <typename U>
127 GLM_FUNC_DECL tmat4x4<T> & operator-= (tmat4x4<U> const & m);
128 template <typename U>
129 GLM_FUNC_DECL tmat4x4<T> & operator*= (U const & s);
130 template <typename U>
131 GLM_FUNC_DECL tmat4x4<T> & operator*= (tmat4x4<U> const & m);
132 template <typename U>
133 GLM_FUNC_DECL tmat4x4<T> & operator/= (U const & s);
134 template <typename U>
135 GLM_FUNC_DECL tmat4x4<T> & operator/= (tmat4x4<U> const & m);
136 GLM_FUNC_DECL tmat4x4<T> & operator++ ();
137 GLM_FUNC_DECL tmat4x4<T> & operator-- ();
138 };
139
140 // Binary operators
141 template <typename T>
142 tmat4x4<T> operator+ (
143 tmat4x4<T> const & m,
144 typename tmat4x4<T>::value_type const & s);
145
146 template <typename T>
147 tmat4x4<T> operator+ (
148 typename tmat4x4<T>::value_type const & s,
149 tmat4x4<T> const & m);
150
151 template <typename T>
152 tmat4x4<T> operator+ (
153 tmat4x4<T> const & m1,
154 tmat4x4<T> const & m2);
137155
138 template <typename T>
139 tmat4x4<T> operator- (
140 tmat4x4<T> const & m,
141 typename tmat4x4<T>::value_type const & s);
142
143 template <typename T>
144 tmat4x4<T> operator- (
145 typename tmat4x4<T>::value_type const & s,
146 tmat4x4<T> const & m);
147
148 template <typename T>
149 tmat4x4<T> operator- (
150 tmat4x4<T> const & m1,
151 tmat4x4<T> const & m2);
152
153 template <typename T>
154 tmat4x4<T> operator* (
155 tmat4x4<T> const & m,
156 typename tmat4x4<T>::value_type const & s);
157
158 template <typename T>
159 tmat4x4<T> operator* (
160 typename tmat4x4<T>::value_type const & s,
161 tmat4x4<T> const & m);
162
163 template <typename T>
164 typename tmat4x4<T>::col_type operator* (
165 tmat4x4<T> const & m,
166 typename tmat4x4<T>::row_type const & v);
167
168 template <typename T>
169 typename tmat4x4<T>::row_type operator* (
170 typename tmat4x4<T>::col_type const & v,
171 tmat4x4<T> const & m);
172
173 template <typename T>
174 tmat4x4<T> operator* (
175 tmat4x4<T> const & m1,
176 tmat4x4<T> const & m2);
177
178 template <typename T>
179 tmat4x4<T> operator/ (
180 tmat4x4<T> const & m,
181 typename tmat4x4<T>::value_type const & s);
182
183 template <typename T>
184 tmat4x4<T> operator/ (
185 typename tmat4x4<T>::value_type const & s,
186 tmat4x4<T> const & m);
187
188 template <typename T>
189 typename tmat4x4<T>::col_type operator/ (
190 tmat4x4<T> const & m,
191 typename tmat4x4<T>::row_type const & v);
192
193 template <typename T>
194 typename tmat4x4<T>::row_type operator/ (
195 typename tmat4x4<T>::col_type & v,
196 tmat4x4<T> const & m);
197
198 template <typename T>
199 tmat4x4<T> operator/ (
200 tmat4x4<T> const & m1,
201 tmat4x4<T> const & m2);
202
203 // Unary constant operators
204 template <typename T>
205 tmat4x4<T> const operator- (
206 tmat4x4<T> const & m);
207
208 template <typename T>
209 tmat4x4<T> const operator-- (
210 tmat4x4<T> const & m, int);
211
212 template <typename T>
213 tmat4x4<T> const operator++ (
214 tmat4x4<T> const & m, int);
215
216 } //namespace detail
217
218 namespace core{
219 namespace type{
220
221 namespace precision
222 {
223 //! 4 columns of 4 components matrix of low precision floating-point numbers.
224 //! There is no guarantee on the actual precision.
225 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
226 //! \ingroup core_precision
227 typedef detail::tmat4x4<lowp_float> lowp_mat4x4;
228 //! 4 columns of 4 components matrix of medium precision floating-point numbers.
229 //! There is no guarantee on the actual precision.
230 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
231 //! \ingroup core_precision
232 typedef detail::tmat4x4<mediump_float> mediump_mat4x4;
233 //! 4 columns of 4 components matrix of high precision floating-point numbers.
234 //! There is no guarantee on the actual precision.
235 //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
236 //! \ingroup core_precision
237 typedef detail::tmat4x4<highp_float> highp_mat4x4;
238 }
239 //namespace precision
240
241 }//namespace type
242 }//namespace core
243 } //namespace glm
156 template <typename T>
157 tmat4x4<T> operator- (
158 tmat4x4<T> const & m,
159 typename tmat4x4<T>::value_type const & s);
160
161 template <typename T>
162 tmat4x4<T> operator- (
163 typename tmat4x4<T>::value_type const & s,
164 tmat4x4<T> const & m);
165
166 template <typename T>
167 tmat4x4<T> operator- (
168 tmat4x4<T> const & m1,
169 tmat4x4<T> const & m2);
170
171 template <typename T>
172 tmat4x4<T> operator* (
173 tmat4x4<T> const & m,
174 typename tmat4x4<T>::value_type const & s);
175
176 template <typename T>
177 tmat4x4<T> operator* (
178 typename tmat4x4<T>::value_type const & s,
179 tmat4x4<T> const & m);
180
181 template <typename T>
182 typename tmat4x4<T>::col_type operator* (
183 tmat4x4<T> const & m,
184 typename tmat4x4<T>::row_type const & v);
185
186 template <typename T>
187 typename tmat4x4<T>::row_type operator* (
188 typename tmat4x4<T>::col_type const & v,
189 tmat4x4<T> const & m);
190
191 template <typename T>
192 tmat4x4<T> operator* (
193 tmat4x4<T> const & m1,
194 tmat4x4<T> const & m2);
195
196 template <typename T>
197 tmat4x4<T> operator/ (
198 tmat4x4<T> const & m,
199 typename tmat4x4<T>::value_type const & s);
200
201 template <typename T>
202 tmat4x4<T> operator/ (
203 typename tmat4x4<T>::value_type const & s,
204 tmat4x4<T> const & m);
205
206 template <typename T>
207 typename tmat4x4<T>::col_type operator/ (
208 tmat4x4<T> const & m,
209 typename tmat4x4<T>::row_type const & v);
210
211 template <typename T>
212 typename tmat4x4<T>::row_type operator/ (
213 typename tmat4x4<T>::col_type & v,
214 tmat4x4<T> const & m);
215
216 template <typename T>
217 tmat4x4<T> operator/ (
218 tmat4x4<T> const & m1,
219 tmat4x4<T> const & m2);
220
221 // Unary constant operators
222 template <typename T>
223 tmat4x4<T> const operator- (
224 tmat4x4<T> const & m);
225
226 template <typename T>
227 tmat4x4<T> const operator-- (
228 tmat4x4<T> const & m, int);
229
230 template <typename T>
231 tmat4x4<T> const operator++ (
232 tmat4x4<T> const & m, int);
233
234 } //namespace detail
235
236 namespace core{
237 namespace type{
238 namespace precision
239 {
240 //! 4 columns of 4 components matrix of low precision floating-point numbers.
241 //! There is no guarantee on the actual precision.
242 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
243 //! \ingroup core_precision
244 typedef detail::tmat4x4<lowp_float> lowp_mat4;
245
246 //! 4 columns of 4 components matrix of medium precision floating-point numbers.
247 //! There is no guarantee on the actual precision.
248 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
249 //! \ingroup core_precision
250 typedef detail::tmat4x4<mediump_float> mediump_mat4;
251
252 //! 4 columns of 4 components matrix of high precision floating-point numbers.
253 //! There is no guarantee on the actual precision.
254 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
255 //! \ingroup core_precision
256 typedef detail::tmat4x4<highp_float> highp_mat4;
257
258 //! 4 columns of 4 components matrix of low precision floating-point numbers.
259 //! There is no guarantee on the actual precision.
260 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
261 //! \ingroup core_precision
262 typedef detail::tmat4x4<lowp_float> lowp_mat4x4;
263
264 //! 4 columns of 4 components matrix of medium precision floating-point numbers.
265 //! There is no guarantee on the actual precision.
266 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
267 //! \ingroup core_precision
268 typedef detail::tmat4x4<mediump_float> mediump_mat4x4;
269
270 //! 4 columns of 4 components matrix of high precision floating-point numbers.
271 //! There is no guarantee on the actual precision.
272 //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers
273 //! \ingroup core_precision
274 typedef detail::tmat4x4<highp_float> highp_mat4x4;
275
276 }//namespace precision
277 }//namespace type
278 }//namespace core
279 }//namespace glm
244280
245281 #ifndef GLM_EXTERNAL_TEMPLATE
246282 #include "type_mat4x4.inl"
247 #endif
248
249 #endif //glm_core_type_mat4x4
283 #endif//GLM_EXTERNAL_TEMPLATE
284
285 #endif//glm_core_type_mat4x4
135135 this->value[3] = col_type(m[3]);
136136 }
137137
138 //////////////////////////////////////
139 // Convertion constructors
140 template <typename T>
141 template <typename U>
142 GLM_FUNC_DECL tmat4x4<T>::tmat4x4
143 (
144 U const & s
145 )
146 {
147 GLM_STATIC_ASSERT(detail::type<U>::is_float || std::numeric_limits<U>::is_integer, "*mat4x4 constructor only takes float and integer types");
148
149 value_type const Zero(0);
150 this->value[0] = tvec4<T>(value_type(s), Zero, Zero, Zero);
151 this->value[1] = tvec4<T>(Zero, value_type(s), Zero, Zero);
152 this->value[2] = tvec4<T>(Zero, Zero, value_type(s), Zero);
153 this->value[3] = tvec4<T>(Zero, Zero, Zero, value_type(s));
154 }
155
156 template <typename T>
157 template <
158 typename X1, typename Y1, typename Z1, typename W1,
159 typename X2, typename Y2, typename Z2, typename W2,
160 typename X3, typename Y3, typename Z3, typename W3,
161 typename X4, typename Y4, typename Z4, typename W4>
162 GLM_FUNC_DECL tmat4x4<T>::tmat4x4
163 (
164 X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
165 X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,
166 X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3,
167 X4 const & x4, Y4 const & y4, Z4 const & z4, W4 const & w4
168 )
169 {
170 GLM_STATIC_ASSERT(detail::type<X1>::is_float || std::numeric_limits<X1>::is_integer, "*mat4x4 constructor only takes float and integer types, 1st parameter type invalid.");
171 GLM_STATIC_ASSERT(detail::type<Y1>::is_float || std::numeric_limits<Y1>::is_integer, "*mat4x4 constructor only takes float and integer types, 2nd parameter type invalid.");
172 GLM_STATIC_ASSERT(detail::type<Z1>::is_float || std::numeric_limits<Z1>::is_integer, "*mat4x4 constructor only takes float and integer types, 3rd parameter type invalid.");
173 GLM_STATIC_ASSERT(detail::type<W1>::is_float || std::numeric_limits<W1>::is_integer, "*mat4x4 constructor only takes float and integer types, 4th parameter type invalid.");
174
175 GLM_STATIC_ASSERT(detail::type<X2>::is_float || std::numeric_limits<X2>::is_integer, "*mat4x4 constructor only takes float and integer types, 5th parameter type invalid.");
176 GLM_STATIC_ASSERT(detail::type<Y2>::is_float || std::numeric_limits<Y2>::is_integer, "*mat4x4 constructor only takes float and integer types, 6th parameter type invalid.");
177 GLM_STATIC_ASSERT(detail::type<Z2>::is_float || std::numeric_limits<Z2>::is_integer, "*mat4x4 constructor only takes float and integer types, 7th parameter type invalid.");
178 GLM_STATIC_ASSERT(detail::type<W2>::is_float || std::numeric_limits<W2>::is_integer, "*mat4x4 constructor only takes float and integer types, 8th parameter type invalid.");
179
180 GLM_STATIC_ASSERT(detail::type<X3>::is_float || std::numeric_limits<X3>::is_integer, "*mat4x4 constructor only takes float and integer types, 9th parameter type invalid.");
181 GLM_STATIC_ASSERT(detail::type<Y3>::is_float || std::numeric_limits<Y3>::is_integer, "*mat4x4 constructor only takes float and integer types, 10th parameter type invalid.");
182 GLM_STATIC_ASSERT(detail::type<Z3>::is_float || std::numeric_limits<Z3>::is_integer, "*mat4x4 constructor only takes float and integer types, 11th parameter type invalid.");
183 GLM_STATIC_ASSERT(detail::type<W3>::is_float || std::numeric_limits<W3>::is_integer, "*mat4x4 constructor only takes float and integer types, 12th parameter type invalid.");
184
185 GLM_STATIC_ASSERT(detail::type<X4>::is_float || std::numeric_limits<X4>::is_integer, "*mat4x4 constructor only takes float and integer types, 13th parameter type invalid.");
186 GLM_STATIC_ASSERT(detail::type<Y4>::is_float || std::numeric_limits<Y4>::is_integer, "*mat4x4 constructor only takes float and integer types, 14th parameter type invalid.");
187 GLM_STATIC_ASSERT(detail::type<Z4>::is_float || std::numeric_limits<Z4>::is_integer, "*mat4x4 constructor only takes float and integer types, 15th parameter type invalid.");
188 GLM_STATIC_ASSERT(detail::type<W4>::is_float || std::numeric_limits<W4>::is_integer, "*mat4x4 constructor only takes float and integer types, 16th parameter type invalid.");
189
190 this->value[0] = col_type(value_type(x1), value_type(y1), value_type(z1), value_type(w1));
191 this->value[1] = col_type(value_type(x2), value_type(y2), value_type(z2), value_type(w2));
192 this->value[2] = col_type(value_type(x3), value_type(y3), value_type(z3), value_type(w3));
193 this->value[3] = col_type(value_type(x4), value_type(y4), value_type(z4), value_type(w4));
194 }
195
196 template <typename T>
197 template <typename V1, typename V2, typename V3, typename V4>
198 GLM_FUNC_DECL tmat4x4<T>::tmat4x4
199 (
200 tvec4<V1> const & v1,
201 tvec4<V2> const & v2,
202 tvec4<V3> const & v3,
203 tvec4<V4> const & v4
204 )
205 {
206 GLM_STATIC_ASSERT(detail::type<V1>::is_float || std::numeric_limits<V1>::is_integer, "*mat4x4 constructor only takes float and integer types, 1st parameter type invalid.");
207 GLM_STATIC_ASSERT(detail::type<V2>::is_float || std::numeric_limits<V2>::is_integer, "*mat4x4 constructor only takes float and integer types, 2nd parameter type invalid.");
208 GLM_STATIC_ASSERT(detail::type<V3>::is_float || std::numeric_limits<V3>::is_integer, "*mat4x4 constructor only takes float and integer types, 3rd parameter type invalid.");
209 GLM_STATIC_ASSERT(detail::type<V4>::is_float || std::numeric_limits<V4>::is_integer, "*mat4x4 constructor only takes float and integer types, 4th parameter type invalid.");
210
211 this->value[0] = col_type(v1);
212 this->value[1] = col_type(v2);
213 this->value[2] = col_type(v3);
214 this->value[3] = col_type(v4);
215 }
216
217 //////////////////////////////////////
218 // Matrix convertion constructors
138219 template <typename T>
139220 GLM_FUNC_QUALIFIER tmat4x4<T>::tmat4x4
140221 (
1515 #include "type_size.hpp"
1616 #include "_swizzle.hpp"
1717
18 namespace glm
18 namespace glm{
19 namespace detail
1920 {
20 namespace test
21 template <typename T> struct tref1;
22 template <typename T> struct tref2;
23 template <typename T> struct tref3;
24 template <typename T> struct tref4;
25 template <typename T> struct tvec1;
26 template <typename T> struct tvec2;
27 template <typename T> struct tvec3;
28 template <typename T> struct tvec4;
29
30 template <typename T>
31 struct tvec1
2132 {
22 void main_vec1();
23 }//namespace test
33 enum ctor{null};
2434
25 namespace detail
26 {
27 template <typename T> struct tref1;
28 template <typename T> struct tref2;
29 template <typename T> struct tref3;
30 template <typename T> struct tref4;
31 template <typename T> struct tvec1;
32 template <typename T> struct tvec2;
33 template <typename T> struct tvec3;
34 template <typename T> struct tvec4;
35 typedef T value_type;
36 typedef std::size_t size_type;
37 GLM_FUNC_DECL size_type length() const;
38 static GLM_FUNC_DECL size_type value_size();
3539
36 template <typename T>
37 struct tvec1
38 {
39 enum ctor{null};
40 typedef tvec1<T> type;
41 typedef tvec1<bool> bool_type;
4042
41 typedef T value_type;
42 typedef std::size_t size_type;
43 GLM_FUNC_DECL size_type length() const;
44 static GLM_FUNC_DECL size_type value_size();
45
46 typedef tvec1<T> type;
47 typedef tvec1<bool> bool_type;
48
49 //////////////////////////////////////
50 // Data
43 //////////////////////////////////////
44 // Data
5145
5246 # if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
5347 value_type x;
5549 union {value_type x, r, s;};
5650 # endif//GLM_COMPONENT
5751
58 //////////////////////////////////////
59 // Accesses
52 //////////////////////////////////////
53 // Accesses
6054
61 GLM_FUNC_DECL value_type & operator[](size_type i);
62 GLM_FUNC_DECL value_type const & operator[](size_type i) const;
55 GLM_FUNC_DECL value_type & operator[](size_type i);
56 GLM_FUNC_DECL value_type const & operator[](size_type i) const;
6357
64 //////////////////////////////////////
65 // Implicit basic constructors
58 //////////////////////////////////////
59 // Implicit basic constructors
6660
67 GLM_FUNC_DECL tvec1();
68 GLM_FUNC_DECL tvec1(tvec1<T> const & v);
61 GLM_FUNC_DECL tvec1();
62 GLM_FUNC_DECL tvec1(tvec1<T> const & v);
6963
70 //////////////////////////////////////
71 // Explicit basic constructors
64 //////////////////////////////////////
65 // Explicit basic constructors
7266
73 GLM_FUNC_DECL explicit tvec1(
74 ctor);
75 GLM_FUNC_DECL explicit tvec1(
76 value_type const & s);
67 GLM_FUNC_DECL explicit tvec1(
68 ctor);
69 GLM_FUNC_DECL explicit tvec1(
70 value_type const & s);
7771
78 //////////////////////////////////////
79 // Swizzle constructors
72 //////////////////////////////////////
73 // Swizzle constructors
8074
81 GLM_FUNC_DECL tvec1(tref1<T> const & r);
75 GLM_FUNC_DECL tvec1(tref1<T> const & r);
8276
83 //////////////////////////////////////
84 // Convertion scalar constructors
77 //////////////////////////////////////
78 // Convertion scalar constructors
8579
86 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
87 template <typename U>
88 GLM_FUNC_DECL explicit tvec1(U const & s);
80 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
81 template <typename U>
82 GLM_FUNC_DECL explicit tvec1(U const & s);
8983
90 //////////////////////////////////////
91 // Convertion vector constructors
84 //////////////////////////////////////
85 // Convertion vector constructors
9286
93 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
94 template <typename U>
95 GLM_FUNC_DECL explicit tvec1(tvec2<U> const & v);
96 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
97 template <typename U>
98 GLM_FUNC_DECL explicit tvec1(tvec3<U> const & v);
99 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
100 template <typename U>
101 GLM_FUNC_DECL explicit tvec1(tvec4<U> const & v);
87 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
88 template <typename U>
89 GLM_FUNC_DECL explicit tvec1(tvec2<U> const & v);
90 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
91 template <typename U>
92 GLM_FUNC_DECL explicit tvec1(tvec3<U> const & v);
93 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
94 template <typename U>
95 GLM_FUNC_DECL explicit tvec1(tvec4<U> const & v);
10296
103 //////////////////////////////////////
104 // Unary arithmetic operators
97 //////////////////////////////////////
98 // Unary arithmetic operators
10599
106 GLM_FUNC_DECL tvec1<T> & operator= (tvec1<T> const & v);
100 GLM_FUNC_DECL tvec1<T> & operator= (tvec1<T> const & v);
107101
108 GLM_FUNC_DECL tvec1<T> & operator+=(value_type const & s);
109 GLM_FUNC_DECL tvec1<T> & operator+=(tvec1<T> const & v);
110 GLM_FUNC_DECL tvec1<T> & operator-=(value_type const & s);
111 GLM_FUNC_DECL tvec1<T> & operator-=(tvec1<T> const & v);
112 GLM_FUNC_DECL tvec1<T> & operator*=(value_type const & s);
113 GLM_FUNC_DECL tvec1<T> & operator*=(tvec1<T> const & v);
114 GLM_FUNC_DECL tvec1<T> & operator/=(value_type const & s);
115 GLM_FUNC_DECL tvec1<T> & operator/=(tvec1<T> const & v);
116 GLM_FUNC_DECL tvec1<T> & operator++();
117 GLM_FUNC_DECL tvec1<T> & operator--();
102 GLM_FUNC_DECL tvec1<T> & operator+=(value_type const & s);
103 GLM_FUNC_DECL tvec1<T> & operator+=(tvec1<T> const & v);
104 GLM_FUNC_DECL tvec1<T> & operator-=(value_type const & s);
105 GLM_FUNC_DECL tvec1<T> & operator-=(tvec1<T> const & v);
106 GLM_FUNC_DECL tvec1<T> & operator*=(value_type const & s);
107 GLM_FUNC_DECL tvec1<T> & operator*=(tvec1<T> const & v);
108 GLM_FUNC_DECL tvec1<T> & operator/=(value_type const & s);
109 GLM_FUNC_DECL tvec1<T> & operator/=(tvec1<T> const & v);
110 GLM_FUNC_DECL tvec1<T> & operator++();
111 GLM_FUNC_DECL tvec1<T> & operator--();
118112
119 //////////////////////////////////////
120 // Unary bit operators
113 //////////////////////////////////////
114 // Unary bit operators
121115
122 GLM_FUNC_DECL tvec1<T> & operator%=(value_type const & s);
123 GLM_FUNC_DECL tvec1<T> & operator%=(tvec1<T> const & v);
124 GLM_FUNC_DECL tvec1<T> & operator&=(value_type const & s);
125 GLM_FUNC_DECL tvec1<T> & operator&=(tvec1<T> const & v);
126 GLM_FUNC_DECL tvec1<T> & operator|=(value_type const & s);
127 GLM_FUNC_DECL tvec1<T> & operator|=(tvec1<T> const & v);
128 GLM_FUNC_DECL tvec1<T> & operator^=(value_type const & s);
129 GLM_FUNC_DECL tvec1<T> & operator^=(tvec1<T> const & v);
130 GLM_FUNC_DECL tvec1<T> & operator<<=(value_type const & s);
131 GLM_FUNC_DECL tvec1<T> & operator<<=(tvec1<T> const & v);
132 GLM_FUNC_DECL tvec1<T> & operator>>=(value_type const & s);
133 GLM_FUNC_DECL tvec1<T> & operator>>=(tvec1<T> const & v);
116 GLM_FUNC_DECL tvec1<T> & operator%=(value_type const & s);
117 GLM_FUNC_DECL tvec1<T> & operator%=(tvec1<T> const & v);
118 GLM_FUNC_DECL tvec1<T> & operator&=(value_type const & s);
119 GLM_FUNC_DECL tvec1<T> & operator&=(tvec1<T> const & v);
120 GLM_FUNC_DECL tvec1<T> & operator|=(value_type const & s);
121 GLM_FUNC_DECL tvec1<T> & operator|=(tvec1<T> const & v);
122 GLM_FUNC_DECL tvec1<T> & operator^=(value_type const & s);
123 GLM_FUNC_DECL tvec1<T> & operator^=(tvec1<T> const & v);
124 GLM_FUNC_DECL tvec1<T> & operator<<=(value_type const & s);
125 GLM_FUNC_DECL tvec1<T> & operator<<=(tvec1<T> const & v);
126 GLM_FUNC_DECL tvec1<T> & operator>>=(value_type const & s);
127 GLM_FUNC_DECL tvec1<T> & operator>>=(tvec1<T> const & v);
134128
135 //////////////////////////////////////
136 // Swizzle operators
129 //////////////////////////////////////
130 // Swizzle operators
137131
138 GLM_FUNC_DECL value_type swizzle(comp X) const;
139 GLM_FUNC_DECL tvec2<T> swizzle(comp X, comp Y) const;
140 GLM_FUNC_DECL tvec3<T> swizzle(comp X, comp Y, comp Z) const;
141 GLM_FUNC_DECL tvec4<T> swizzle(comp X, comp Y, comp Z, comp W) const;
142 GLM_FUNC_DECL tref1<T> swizzle(comp X);
143 };
132 GLM_FUNC_DECL value_type swizzle(comp X) const;
133 GLM_FUNC_DECL tvec2<T> swizzle(comp X, comp Y) const;
134 GLM_FUNC_DECL tvec3<T> swizzle(comp X, comp Y, comp Z) const;
135 GLM_FUNC_DECL tvec4<T> swizzle(comp X, comp Y, comp Z, comp W) const;
136 GLM_FUNC_DECL tref1<T> swizzle(comp X);
137 };
144138
145 template <typename T>
146 struct tref1
147 {
148 GLM_FUNC_DECL tref1(T & x);
149 GLM_FUNC_DECL tref1(tref1<T> const & r);
150 GLM_FUNC_DECL tref1(tvec1<T> const & v);
139 template <typename T>
140 struct tref1
141 {
142 GLM_FUNC_DECL tref1(T & x);
143 GLM_FUNC_DECL tref1(tref1<T> const & r);
144 GLM_FUNC_DECL tref1(tvec1<T> const & v);
151145
152 GLM_FUNC_DECL tref1<T> & operator= (tref1<T> const & r);
153 GLM_FUNC_DECL tref1<T> & operator= (tvec1<T> const & v);
146 GLM_FUNC_DECL tref1<T> & operator= (tref1<T> const & r);
147 GLM_FUNC_DECL tref1<T> & operator= (tvec1<T> const & v);
154148
155 T& x;
156 };
149 T& x;
150 };
157151
158 GLM_DETAIL_IS_VECTOR(tvec1);
152 GLM_DETAIL_IS_VECTOR(tvec1);
159153
160 typedef detail::tvec1<core::type::precision::highp_float> highp_vec1_t;
161 typedef detail::tvec1<core::type::precision::mediump_float> mediump_vec1_t;
162 typedef detail::tvec1<core::type::precision::lowp_float> lowp_vec1_t;
163 typedef detail::tvec1<core::type::precision::highp_int> highp_ivec1_t;
164 typedef detail::tvec1<core::type::precision::mediump_int> mediump_ivec1_t;
165 typedef detail::tvec1<core::type::precision::lowp_int> lowp_ivec1_t;
166 typedef detail::tvec1<core::type::precision::highp_uint> highp_uvec1_t;
167 typedef detail::tvec1<core::type::precision::mediump_uint> mediump_uvec1_t;
168 typedef detail::tvec1<core::type::precision::lowp_uint> lowp_uvec1_t;
154 typedef detail::tvec1<core::type::precision::highp_float> highp_vec1_t;
155 typedef detail::tvec1<core::type::precision::mediump_float> mediump_vec1_t;
156 typedef detail::tvec1<core::type::precision::lowp_float> lowp_vec1_t;
157 typedef detail::tvec1<core::type::precision::highp_int> highp_ivec1_t;
158 typedef detail::tvec1<core::type::precision::mediump_int> mediump_ivec1_t;
159 typedef detail::tvec1<core::type::precision::lowp_int> lowp_ivec1_t;
160 typedef detail::tvec1<core::type::precision::highp_uint> highp_uvec1_t;
161 typedef detail::tvec1<core::type::precision::mediump_uint> mediump_uvec1_t;
162 typedef detail::tvec1<core::type::precision::lowp_uint> lowp_uvec1_t;
169163
170 } //namespace detail
164 }//namespace detail
171165 }//namespace glm
172166
173167 #ifndef GLM_EXTERNAL_TEMPLATE
174168 #include "type_vec1.inl"
175 #endif
169 #endif//GLM_EXTERNAL_TEMPLATE
176170
177171 #endif//glm_core_type_gentype1
66 // File : glm/core/type_vec1.inl
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
88
9 namespace glm
9 namespace glm{
10 namespace detail
1011 {
11 namespace detail
12 {
13 template <typename T>
14 GLM_FUNC_QUALIFIER typename tvec1<T>::size_type tvec1<T>::length() const
15 {
16 return 1;
17 }
18
19 template <typename T>
20 GLM_FUNC_QUALIFIER typename tvec1<T>::size_type tvec1<T>::value_size()
21 {
22 return 1;
23 }
24
25 //////////////////////////////////////
26 // Accesses
27
28 template <typename T>
29 GLM_FUNC_QUALIFIER typename tvec1<T>::value_type & tvec1<T>::operator[]
30 (
31 size_type i
32 )
33 {
34 assert(i < value_size());
35 return (&x)[i];
36 }
37
38 template <typename T>
39 GLM_FUNC_QUALIFIER typename tvec1<T>::value_type const & tvec1<T>::operator[]
40 (
41 size_type i
42 ) const
43 {
44 assert(i < value_size());
45 return (&x)[i];
46 }
47
48 //////////////////////////////////////
49 // Implicit basic constructors
50
51 template <typename T>
52 GLM_FUNC_QUALIFIER tvec1<T>::tvec1() :
53 x(value_type(0))
54 {}
55
56 template <typename T>
57 GLM_FUNC_QUALIFIER tvec1<T>::tvec1
58 (
59 ctor
60 )
61 {}
62
63 template <typename T>
64 GLM_FUNC_QUALIFIER tvec1<T>::tvec1
65 (
66 tvec1<T> const & v
67 ) :
68 x(v.x)
69 {}
70
71 //////////////////////////////////////
72 // Explicit basic constructors
73
74 template <typename T>
75 GLM_FUNC_QUALIFIER tvec1<T>::tvec1
76 (
77 value_type const & s
78 ) :
79 x(s)
80 {}
81
82 //////////////////////////////////////
83 // Swizzle constructors
84
85 template <typename T>
86 GLM_FUNC_QUALIFIER tvec1<T>::tvec1
87 (
88 tref1<T> const & r
89 ) :
90 x(r.x)
91 {}
92
93 //////////////////////////////////////
94 // Convertion scalar constructors
12 template <typename T>
13 GLM_FUNC_QUALIFIER typename tvec1<T>::size_type tvec1<T>::length() const
14 {
15 return 1;
16 }
17
18 template <typename T>
19 GLM_FUNC_QUALIFIER typename tvec1<T>::size_type tvec1<T>::value_size()
20 {
21 return 1;
22 }
23
24 //////////////////////////////////////
25 // Accesses
26
27 template <typename T>
28 GLM_FUNC_QUALIFIER typename tvec1<T>::value_type & tvec1<T>::operator[]
29 (
30 size_type i
31 )
32 {
33 assert(i < value_size());
34 return (&x)[i];
35 }
36
37 template <typename T>
38 GLM_FUNC_QUALIFIER typename tvec1<T>::value_type const & tvec1<T>::operator[]
39 (
40 size_type i
41 ) const
42 {
43 assert(i < value_size());
44 return (&x)[i];
45 }
46
47 //////////////////////////////////////
48 // Implicit basic constructors
49
50 template <typename T>
51 GLM_FUNC_QUALIFIER tvec1<T>::tvec1() :
52 x(value_type(0))
53 {}
54
55 template <typename T>
56 GLM_FUNC_QUALIFIER tvec1<T>::tvec1
57 (
58 ctor
59 )
60 {}
61
62 template <typename T>
63 GLM_FUNC_QUALIFIER tvec1<T>::tvec1
64 (
65 tvec1<T> const & v
66 ) :
67 x(v.x)
68 {}
69
70 //////////////////////////////////////
71 // Explicit basic constructors
72
73 template <typename T>
74 GLM_FUNC_QUALIFIER tvec1<T>::tvec1
75 (
76 value_type const & s
77 ) :
78 x(s)
79 {}
80
81 //////////////////////////////////////
82 // Swizzle constructors
83
84 template <typename T>
85 GLM_FUNC_QUALIFIER tvec1<T>::tvec1
86 (
87 tref1<T> const & r
88 ) :
89 x(r.x)
90 {}
91
92 //////////////////////////////////////
93 // Convertion scalar constructors
9594
96 template <typename T>
97 template <typename U>
98 GLM_FUNC_QUALIFIER tvec1<T>::tvec1
99 (
100 U const & s
101 ) :
102 x(value_type(s))
103 {}
104
105 //////////////////////////////////////
106 // Convertion vector constructors
107
108 template <typename T>
109 template <typename U>
110 GLM_FUNC_QUALIFIER tvec1<T>::tvec1
111 (
112 tvec2<U> const & v
113 ) :
114 x(value_type(v.x))
115 {}
116
117 template <typename T>
118 template <typename U>
119 GLM_FUNC_QUALIFIER tvec1<T>::tvec1
120 (
121 tvec3<U> const & v
122 ) :
123 x(value_type(v.x))
124 {}
125
126 template <typename T>
127 template <typename U>
128 GLM_FUNC_QUALIFIER tvec1<T>::tvec1
129 (
130 tvec4<U> const & v
131 ) :
132 x(value_type(v.x))
133 {}
134
135 //////////////////////////////////////
136 // Unary arithmetic operators
137
138 template <typename T>
139 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator=
140 (
141 tvec1<T> const & v
142 )
143 {
144 this->x = v.x;
145 return *this;
146 }
147
148 template <typename T>
149 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator+=
150 (
151 value_type const & s
152 )
153 {
154 this->x += s;
155 return *this;
156 }
157
158 template <typename T>
159 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator+=
160 (
161 tvec1<T> const & v
162 )
163 {
164 this->x += v.x;
165 return *this;
166 }
167
168 template <typename T>
169 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator-=
170 (
171 value_type const & s
172 )
173 {
174 this->x -= s;
175 return *this;
176 }
177
178 template <typename T>
179 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator-=
180 (
181 tvec1<T> const & v
182 )
183 {
184 this->x -= v.x;
185 return *this;
186 }
187
188 template <typename T>
189 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator*=
190 (
191 value_type const & s
192 )
193 {
194 this->x *= s;
195 return *this;
196 }
197
198 template <typename T>
199 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator*=
200 (
201 tvec1<T> const & v
202 )
203 {
204 this->x *= v.x;
205 return *this;
206 }
207
208 template <typename T>
209 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator/=
210 (
211 value_type const & s
212 )
213 {
214 this->x /= s;
215 return *this;
216 }
217
218 template <typename T>
219 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator/=
220 (
221 tvec1<T> const & v
222 )
223 {
224 this->x /= v.x;
225 return *this;
226 }
227
228 template <typename T>
229 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator++()
230 {
231 ++this->x;
232 return *this;
233 }
234
235 template <typename T>
236 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator--()
237 {
238 --this->x;
239 return *this;
240 }
241
242 //////////////////////////////////////
243 // Boolean operators
244
245 template <typename T>
246 GLM_FUNC_QUALIFIER bool operator==
247 (
248 tvec1<T> const & v1,
249 tvec1<T> const & v2
250 )
251 {
252 return (v1.x == v2.x);
253 }
254
255 template <typename T>
256 GLM_FUNC_QUALIFIER bool operator!=
257 (
258 tvec1<T> const & v1,
259 tvec1<T> const & v2
260 )
261 {
262 return (v1.x != v2.x);
263 }
264
265 //////////////////////////////////////
266 // Unary bit operators
267
268 template <typename T>
269 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator%=
270 (
271 value_type const & s
272 )
273 {
274 this->x %= s;
275 return *this;
276 }
277
278 template <typename T>
279 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator%=
280 (
281 tvec1<T> const & v
282 )
283 {
284 this->x %= v.x;
285 return *this;
286 }
287
288 template <typename T>
289 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator&=
290 (
291 value_type const & s
292 )
293 {
294 this->x &= s;
295 return *this;
296 }
297
298 template <typename T>
299 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator&=
300 (
301 tvec1<T> const & v
302 )
303 {
304 this->x &= v.x;
305 return *this;
306 }
307
308 template <typename T>
309 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator|=
310 (
311 value_type const & s
312 )
313 {
314 this->x |= s;
315 return *this;
316 }
317
318 template <typename T>
319 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator|=
320 (
321 tvec1<T> const & v
322 )
323 {
324 this->x |= v.x;
325 return *this;
326 }
327
328 template <typename T>
329 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator^=
330 (
331 value_type const & s
332 )
333 {
334 this->x ^= s;
335 return *this;
336 }
337
338 template <typename T>
339 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator^=
340 (
341 tvec1<T> const & v
342 )
343 {
344 this->x ^= v.x;
345 return *this;
346 }
347
348 template <typename T>
349 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator<<=
350 (
351 value_type const & s
352 )
353 {
354 this->x <<= s;
355 return *this;
356 }
357
358 template <typename T>
359 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator<<=
360 (
361 tvec1<T> const & v
362 )
363 {
364 this->x <<= v.x;
365 return *this;
366 }
367
368 template <typename T>
369 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator>>=
370 (
371 value_type const & s
372 )
373 {
374 this->x >>= s;
375 return *this;
376 }
377
378 template <typename T>
379 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator>>=
380 (
381 tvec1<T> const & v
382 )
383 {
384 this->x >>= v.x;
385 return *this;
386 }
387
388 //////////////////////////////////////
389 // Swizzle operators
390
391 template <typename T>
392 GLM_FUNC_QUALIFIER T
393 tvec1<T>::swizzle(comp x) const
394 {
395 return (*this)[x];
396 }
397
398 template <typename T>
399 GLM_FUNC_QUALIFIER tvec2<T>
400 tvec1<T>::swizzle
401 (
402 comp x,
403 comp y
404 ) const
405 {
406 return tvec2<T>(
407 (*this)[x],
408 (*this)[y]);
409 }
410
411 template <typename T>
412 GLM_FUNC_QUALIFIER tvec3<T>
413 tvec1<T>::swizzle
414 (
415 comp x,
416 comp y,
417 comp z
418 ) const
419 {
420 return tvec3<T>(
421 (*this)[x],
422 (*this)[y],
423 (*this)[z]);
424 }
425
426 template <typename T>
427 GLM_FUNC_QUALIFIER tvec4<T>
428 tvec1<T>::swizzle
429 (
430 comp x,
431 comp y,
432 comp z,
433 comp w
434 ) const
435 {
436 return tvec4<T>(
437 (*this)[x],
438 (*this)[y],
439 (*this)[z],
440 (*this)[w]);
441 }
442
443 template <typename T>
444 GLM_FUNC_QUALIFIER tref1<T>
445 tvec1<T>::swizzle
446 (
447 comp x
448 )
449 {
450 return tref1<T>(
451 (*this)[x]);
452 }
453
454 //////////////////////////////////////
455 // Binary arithmetic operators
456
457 template <typename T>
458 GLM_FUNC_QUALIFIER tvec1<T> operator+
459 (
460 tvec1<T> const & v,
461 typename tvec1<T>::value_type const & s
462 )
463 {
464 return tvec1<T>(
465 v.x + s);
466 }
467
468 template <typename T>
469 GLM_FUNC_QUALIFIER tvec1<T> operator+
470 (
471 typename tvec1<T>::value_type const & s,
472 tvec1<T> const & v
473 )
474 {
475 return tvec1<T>(
476 s + v.x);
477 }
478
479 template <typename T>
480 GLM_FUNC_QUALIFIER tvec1<T> operator+
481 (
482 tvec1<T> const & v1,
483 tvec1<T> const & v2
484 )
485 {
486 return tvec1<T>(
487 v1.x + v2.x);
488 }
489
490 //operator-
491 template <typename T>
492 GLM_FUNC_QUALIFIER tvec1<T> operator-
493 (
494 tvec1<T> const & v,
495 typename tvec1<T>::value_type const & s
496 )
497 {
498 return tvec1<T>(
499 v.x - s);
500 }
501
502 template <typename T>
503 GLM_FUNC_QUALIFIER tvec1<T> operator-
504 (
505 typename tvec1<T>::value_type const & s,
506 tvec1<T> const & v
507 )
508 {
509 return tvec1<T>(
510 s - v.x);
511 }
512
513 template <typename T>
514 GLM_FUNC_QUALIFIER tvec1<T> operator-
515 (
516 tvec1<T> const & v1,
517 tvec1<T> const & v2
518 )
519 {
520 return tvec1<T>(
521 v1.x - v2.x);
522 }
523
524 //operator*
525 template <typename T>
526 GLM_FUNC_QUALIFIER tvec1<T> operator*
527 (
528 tvec1<T> const & v,
529 typename tvec1<T>::value_type const & s
530 )
531 {
532 return tvec1<T>(
533 v.x * s);
534 }
535
536 template <typename T>
537 GLM_FUNC_QUALIFIER tvec1<T> operator*
538 (
539 typename tvec1<T>::value_type const & s,
540 tvec1<T> const & v
541 )
542 {
543 return tvec1<T>(
544 s * v.x);
545 }
546
547 template <typename T>
548 GLM_FUNC_QUALIFIER tvec1<T> operator*
549 (
550 tvec1<T> const & v1,
551 tvec1<T> const & v2
552 )
553 {
554 return tvec1<T>(
555 v1.x * v2.x);
556 }
557
558 //operator/
559 template <typename T>
560 GLM_FUNC_QUALIFIER tvec1<T> operator/
561 (
562 tvec1<T> const & v,
563 typename tvec1<T>::value_type const & s
564 )
565 {
566 return tvec1<T>(
567 v.x / s);
568 }
569
570 template <typename T>
571 GLM_FUNC_QUALIFIER tvec1<T> operator/
572 (
573 typename tvec1<T>::value_type const & s,
574 tvec1<T> const & v
575 )
576 {
577 return tvec1<T>(
578 s / v.x);
579 }
580
581 template <typename T>
582 GLM_FUNC_QUALIFIER tvec1<T> operator/
583 (
584 tvec1<T> const & v1,
585 tvec1<T> const & v2
586 )
587 {
588 return tvec1<T>(
589 v1.x / v2.x);
590 }
591
592 // Unary constant operators
593 template <typename T>
594 GLM_FUNC_QUALIFIER tvec1<T> operator-
595 (
596 tvec1<T> const & v
597 )
598 {
599 return tvec1<T>(
600 -v.x);
601 }
602
603 template <typename T>
604 GLM_FUNC_QUALIFIER tvec1<T> operator++
605 (
606 tvec1<T> const & v,
607 int
608 )
609 {
610 return tvec1<T>(
611 v.x + T(1));
612 }
613
614 template <typename T>
615 GLM_FUNC_QUALIFIER tvec1<T> operator--
616 (
617 tvec1<T> const & v,
618 int
619 )
620 {
621 return tvec1<T>(
622 v.x - T(1));
623 }
624
625 //////////////////////////////////////
626 // Binary bit operators
627
628 template <typename T>
629 GLM_FUNC_QUALIFIER tvec1<T> operator%
630 (
631 tvec1<T> const & v,
632 typename tvec1<T>::value_type const & s
633 )
634 {
635 return tvec1<T>(
636 v.x % s);
637 }
638
639 template <typename T>
640 GLM_FUNC_QUALIFIER tvec1<T> operator%
641 (
642 typename tvec1<T>::value_type const & s,
643 tvec1<T> const & v
644 )
645 {
646 return tvec1<T>(
647 s % v.x);
648 }
649
650 template <typename T>
651 GLM_FUNC_QUALIFIER tvec1<T> operator%
652 (
653 tvec1<T> const & v1,
654 tvec1<T> const & v2
655 )
656 {
657 return tvec1<T>(
658 v1.x % v2.x);
659 }
660
661 template <typename T>
662 GLM_FUNC_QUALIFIER tvec1<T> operator&
663 (
664 tvec1<T> const & v,
665 typename tvec1<T>::value_type const & s
666 )
667 {
668 return tvec1<T>(
669 v.x & s);
670 }
671
672 template <typename T>
673 GLM_FUNC_QUALIFIER tvec1<T> operator&
674 (
675 typename tvec1<T>::value_type const & s,
676 tvec1<T> const & v
677 )
678 {
679 return tvec1<T>(
680 s & v.x);
681 }
682
683 template <typename T>
684 GLM_FUNC_QUALIFIER tvec1<T> operator&
685 (
686 tvec1<T> const & v1,
687 tvec1<T> const & v2
688 )
689 {
690 return tvec1<T>(
691 v1.x & v2.x);
692 }
693
694 template <typename T>
695 GLM_FUNC_QUALIFIER tvec1<T> operator|
696 (
697 tvec1<T> const & v,
698 typename tvec1<T>::value_type const & s
699 )
700 {
701 return tvec1<T>(
702 v.x | s);
703 }
704
705 template <typename T>
706 GLM_FUNC_QUALIFIER tvec1<T> operator|
707 (
708 typename tvec1<T>::value_type const & s,
709 tvec1<T> const & v
710 )
711 {
712 return tvec1<T>(
713 s | v.x);
714 }
715
716 template <typename T>
717 GLM_FUNC_QUALIFIER tvec1<T> operator|
718 (
719 tvec1<T> const & v1,
720 tvec1<T> const & v2
721 )
722 {
723 return tvec1<T>(
724 v1.x | v2.x);
725 }
95 template <typename T>
96 template <typename U>
97 GLM_FUNC_QUALIFIER tvec1<T>::tvec1
98 (
99 U const & s
100 ) :
101 x(value_type(s))
102 {}
103
104 //////////////////////////////////////
105 // Convertion vector constructors
106
107 template <typename T>
108 template <typename U>
109 GLM_FUNC_QUALIFIER tvec1<T>::tvec1
110 (
111 tvec2<U> const & v
112 ) :
113 x(value_type(v.x))
114 {}
115
116 template <typename T>
117 template <typename U>
118 GLM_FUNC_QUALIFIER tvec1<T>::tvec1
119 (
120 tvec3<U> const & v
121 ) :
122 x(value_type(v.x))
123 {}
124
125 template <typename T>
126 template <typename U>
127 GLM_FUNC_QUALIFIER tvec1<T>::tvec1
128 (
129 tvec4<U> const & v
130 ) :
131 x(value_type(v.x))
132 {}
133
134 //////////////////////////////////////
135 // Unary arithmetic operators
136
137 template <typename T>
138 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator=
139 (
140 tvec1<T> const & v
141 )
142 {
143 this->x = v.x;
144 return *this;
145 }
146
147 template <typename T>
148 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator+=
149 (
150 value_type const & s
151 )
152 {
153 this->x += s;
154 return *this;
155 }
156
157 template <typename T>
158 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator+=
159 (
160 tvec1<T> const & v
161 )
162 {
163 this->x += v.x;
164 return *this;
165 }
166
167 template <typename T>
168 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator-=
169 (
170 value_type const & s
171 )
172 {
173 this->x -= s;
174 return *this;
175 }
176
177 template <typename T>
178 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator-=
179 (
180 tvec1<T> const & v
181 )
182 {
183 this->x -= v.x;
184 return *this;
185 }
186
187 template <typename T>
188 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator*=
189 (
190 value_type const & s
191 )
192 {
193 this->x *= s;
194 return *this;
195 }
196
197 template <typename T>
198 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator*=
199 (
200 tvec1<T> const & v
201 )
202 {
203 this->x *= v.x;
204 return *this;
205 }
206
207 template <typename T>
208 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator/=
209 (
210 value_type const & s
211 )
212 {
213 this->x /= s;
214 return *this;
215 }
216
217 template <typename T>
218 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator/=
219 (
220 tvec1<T> const & v
221 )
222 {
223 this->x /= v.x;
224 return *this;
225 }
226
227 template <typename T>
228 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator++()
229 {
230 ++this->x;
231 return *this;
232 }
233
234 template <typename T>
235 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator--()
236 {
237 --this->x;
238 return *this;
239 }
240
241 //////////////////////////////////////
242 // Boolean operators
243
244 template <typename T>
245 GLM_FUNC_QUALIFIER bool operator==
246 (
247 tvec1<T> const & v1,
248 tvec1<T> const & v2
249 )
250 {
251 return (v1.x == v2.x);
252 }
253
254 template <typename T>
255 GLM_FUNC_QUALIFIER bool operator!=
256 (
257 tvec1<T> const & v1,
258 tvec1<T> const & v2
259 )
260 {
261 return (v1.x != v2.x);
262 }
263
264 //////////////////////////////////////
265 // Unary bit operators
266
267 template <typename T>
268 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator%=
269 (
270 value_type const & s
271 )
272 {
273 this->x %= s;
274 return *this;
275 }
276
277 template <typename T>
278 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator%=
279 (
280 tvec1<T> const & v
281 )
282 {
283 this->x %= v.x;
284 return *this;
285 }
286
287 template <typename T>
288 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator&=
289 (
290 value_type const & s
291 )
292 {
293 this->x &= s;
294 return *this;
295 }
296
297 template <typename T>
298 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator&=
299 (
300 tvec1<T> const & v
301 )
302 {
303 this->x &= v.x;
304 return *this;
305 }
306
307 template <typename T>
308 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator|=
309 (
310 value_type const & s
311 )
312 {
313 this->x |= s;
314 return *this;
315 }
316
317 template <typename T>
318 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator|=
319 (
320 tvec1<T> const & v
321 )
322 {
323 this->x |= v.x;
324 return *this;
325 }
326
327 template <typename T>
328 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator^=
329 (
330 value_type const & s
331 )
332 {
333 this->x ^= s;
334 return *this;
335 }
336
337 template <typename T>
338 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator^=
339 (
340 tvec1<T> const & v
341 )
342 {
343 this->x ^= v.x;
344 return *this;
345 }
346
347 template <typename T>
348 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator<<=
349 (
350 value_type const & s
351 )
352 {
353 this->x <<= s;
354 return *this;
355 }
356
357 template <typename T>
358 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator<<=
359 (
360 tvec1<T> const & v
361 )
362 {
363 this->x <<= v.x;
364 return *this;
365 }
366
367 template <typename T>
368 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator>>=
369 (
370 value_type const & s
371 )
372 {
373 this->x >>= s;
374 return *this;
375 }
376
377 template <typename T>
378 GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator>>=
379 (
380 tvec1<T> const & v
381 )
382 {
383 this->x >>= v.x;
384 return *this;
385 }
386
387 //////////////////////////////////////
388 // Swizzle operators
389
390 template <typename T>
391 GLM_FUNC_QUALIFIER T
392 tvec1<T>::swizzle(comp x) const
393 {
394 return (*this)[x];
395 }
396
397 template <typename T>
398 GLM_FUNC_QUALIFIER tvec2<T>
399 tvec1<T>::swizzle
400 (
401 comp x,
402 comp y
403 ) const
404 {
405 return tvec2<T>(
406 (*this)[x],
407 (*this)[y]);
408 }
409
410 template <typename T>
411 GLM_FUNC_QUALIFIER tvec3<T>
412 tvec1<T>::swizzle
413 (
414 comp x,
415 comp y,
416 comp z
417 ) const
418 {
419 return tvec3<T>(
420 (*this)[x],
421 (*this)[y],
422 (*this)[z]);
423 }
424
425 template <typename T>
426 GLM_FUNC_QUALIFIER tvec4<T>
427 tvec1<T>::swizzle
428 (
429 comp x,
430 comp y,
431 comp z,
432 comp w
433 ) const
434 {
435 return tvec4<T>(
436 (*this)[x],
437 (*this)[y],
438 (*this)[z],
439 (*this)[w]);
440 }
441
442 template <typename T>
443 GLM_FUNC_QUALIFIER tref1<T>
444 tvec1<T>::swizzle
445 (
446 comp x
447 )
448 {
449 return tref1<T>(
450 (*this)[x]);
451 }
452
453 //////////////////////////////////////
454 // Binary arithmetic operators
455
456 template <typename T>
457 GLM_FUNC_QUALIFIER tvec1<T> operator+
458 (
459 tvec1<T> const & v,
460 typename tvec1<T>::value_type const & s
461 )
462 {
463 return tvec1<T>(
464 v.x + s);
465 }
466
467 template <typename T>
468 GLM_FUNC_QUALIFIER tvec1<T> operator+
469 (
470 typename tvec1<T>::value_type const & s,
471 tvec1<T> const & v
472 )
473 {
474 return tvec1<T>(
475 s + v.x);
476 }
477
478 template <typename T>
479 GLM_FUNC_QUALIFIER tvec1<T> operator+
480 (
481 tvec1<T> const & v1,
482 tvec1<T> const & v2
483 )
484 {
485 return tvec1<T>(
486 v1.x + v2.x);
487 }
488
489 //operator-
490 template <typename T>
491 GLM_FUNC_QUALIFIER tvec1<T> operator-
492 (
493 tvec1<T> const & v,
494 typename tvec1<T>::value_type const & s
495 )
496 {
497 return tvec1<T>(
498 v.x - s);
499 }
500
501 template <typename T>
502 GLM_FUNC_QUALIFIER tvec1<T> operator-
503 (
504 typename tvec1<T>::value_type const & s,
505 tvec1<T> const & v
506 )
507 {
508 return tvec1<T>(
509 s - v.x);
510 }
511
512 template <typename T>
513 GLM_FUNC_QUALIFIER tvec1<T> operator-
514 (
515 tvec1<T> const & v1,
516 tvec1<T> const & v2
517 )
518 {
519 return tvec1<T>(
520 v1.x - v2.x);
521 }
522
523 //operator*
524 template <typename T>
525 GLM_FUNC_QUALIFIER tvec1<T> operator*
526 (
527 tvec1<T> const & v,
528 typename tvec1<T>::value_type const & s
529 )
530 {
531 return tvec1<T>(
532 v.x * s);
533 }
534
535 template <typename T>
536 GLM_FUNC_QUALIFIER tvec1<T> operator*
537 (
538 typename tvec1<T>::value_type const & s,
539 tvec1<T> const & v
540 )
541 {
542 return tvec1<T>(
543 s * v.x);
544 }
545
546 template <typename T>
547 GLM_FUNC_QUALIFIER tvec1<T> operator*
548 (
549 tvec1<T> const & v1,
550 tvec1<T> const & v2
551 )
552 {
553 return tvec1<T>(
554 v1.x * v2.x);
555 }
556
557 //operator/
558 template <typename T>
559 GLM_FUNC_QUALIFIER tvec1<T> operator/
560 (
561 tvec1<T> const & v,
562 typename tvec1<T>::value_type const & s
563 )
564 {
565 return tvec1<T>(
566 v.x / s);
567 }
568
569 template <typename T>
570 GLM_FUNC_QUALIFIER tvec1<T> operator/
571 (
572 typename tvec1<T>::value_type const & s,
573 tvec1<T> const & v
574 )
575 {
576 return tvec1<T>(
577 s / v.x);
578 }
579
580 template <typename T>
581 GLM_FUNC_QUALIFIER tvec1<T> operator/
582 (
583 tvec1<T> const & v1,
584 tvec1<T> const & v2
585 )
586 {
587 return tvec1<T>(
588 v1.x / v2.x);
589 }
590
591 // Unary constant operators
592 template <typename T>
593 GLM_FUNC_QUALIFIER tvec1<T> operator-
594 (
595 tvec1<T> const & v
596 )
597 {
598 return tvec1<T>(
599 -v.x);
600 }
601
602 template <typename T>
603 GLM_FUNC_QUALIFIER tvec1<T> operator++
604 (
605 tvec1<T> const & v,
606 int
607 )
608 {
609 return tvec1<T>(
610 v.x + T(1));
611 }
612
613 template <typename T>
614 GLM_FUNC_QUALIFIER tvec1<T> operator--
615 (
616 tvec1<T> const & v,
617 int
618 )
619 {
620 return tvec1<T>(
621 v.x - T(1));
622 }
623
624 //////////////////////////////////////
625 // Binary bit operators
626
627 template <typename T>
628 GLM_FUNC_QUALIFIER tvec1<T> operator%
629 (
630 tvec1<T> const & v,
631 typename tvec1<T>::value_type const & s
632 )
633 {
634 return tvec1<T>(
635 v.x % s);
636 }
637
638 template <typename T>
639 GLM_FUNC_QUALIFIER tvec1<T> operator%
640 (
641 typename tvec1<T>::value_type const & s,
642 tvec1<T> const & v
643 )
644 {
645 return tvec1<T>(
646 s % v.x);
647 }
648
649 template <typename T>
650 GLM_FUNC_QUALIFIER tvec1<T> operator%
651 (
652 tvec1<T> const & v1,
653 tvec1<T> const & v2
654 )
655 {
656 return tvec1<T>(
657 v1.x % v2.x);
658 }
659
660 template <typename T>
661 GLM_FUNC_QUALIFIER tvec1<T> operator&
662 (
663 tvec1<T> const & v,
664 typename tvec1<T>::value_type const & s
665 )
666 {
667 return tvec1<T>(
668 v.x & s);
669 }
670
671 template <typename T>
672 GLM_FUNC_QUALIFIER tvec1<T> operator&
673 (
674 typename tvec1<T>::value_type const & s,
675 tvec1<T> const & v
676 )
677 {
678 return tvec1<T>(
679 s & v.x);
680 }
681
682 template <typename T>
683 GLM_FUNC_QUALIFIER tvec1<T> operator&
684 (
685 tvec1<T> const & v1,
686 tvec1<T> const & v2
687 )
688 {
689 return tvec1<T>(
690 v1.x & v2.x);
691 }
692
693 template <typename T>
694 GLM_FUNC_QUALIFIER tvec1<T> operator|
695 (
696 tvec1<T> const & v,
697 typename tvec1<T>::value_type const & s
698 )
699 {
700 return tvec1<T>(
701 v.x | s);
702 }
703
704 template <typename T>
705 GLM_FUNC_QUALIFIER tvec1<T> operator|
706 (
707 typename tvec1<T>::value_type const & s,
708 tvec1<T> const & v
709 )
710 {
711 return tvec1<T>(
712 s | v.x);
713 }
714
715 template <typename T>
716 GLM_FUNC_QUALIFIER tvec1<T> operator|
717 (
718 tvec1<T> const & v1,
719 tvec1<T> const & v2
720 )
721 {
722 return tvec1<T>(
723 v1.x | v2.x);
724 }
726725
727 template <typename T>
728 GLM_FUNC_QUALIFIER tvec1<T> operator^
729 (
730 tvec1<T> const & v,
731 typename tvec1<T>::value_type const & s
732 )
733 {
734 return tvec1<T>(
735 v.x ^ s);
736 }
737
738 template <typename T>
739 GLM_FUNC_QUALIFIER tvec1<T> operator^
740 (
741 typename tvec1<T>::value_type const & s,
742 tvec1<T> const & v
743 )
744 {
745 return tvec1<T>(
746 s ^ v.x);
747 }
748
749 template <typename T>
750 GLM_FUNC_QUALIFIER tvec1<T> operator^
751 (
752 tvec1<T> const & v1,
753 tvec1<T> const & v2
754 )
755 {
756 return tvec1<T>(
757 v1.x ^ v2.x);
758 }
759
760 template <typename T>
761 GLM_FUNC_QUALIFIER tvec1<T> operator<<
762 (
763 tvec1<T> const & v,
764 typename tvec1<T>::value_type const & s
765 )
766 {
767 return tvec1<T>(
768 v.x << s);
769 }
770
771 template <typename T>
772 GLM_FUNC_QUALIFIER tvec1<T> operator<<
773 (
774 typename tvec1<T>::value_type const & s,
775 tvec1<T> const & v
776 )
777 {
778 return tvec1<T>(
779 s << v.x);
780 }
781
782 template <typename T>
783 GLM_FUNC_QUALIFIER tvec1<T> operator<<
784 (
785 tvec1<T> const & v1,
786 tvec1<T> const & v2
787 )
788 {
789 return tvec1<T>(
790 v1.x << v2.x);
791 }
792
793 template <typename T>
794 GLM_FUNC_QUALIFIER tvec1<T> operator>>
795 (
796 tvec1<T> const & v,
797 typename tvec1<T>::value_type const & s
798 )
799 {
800 return tvec1<T>(
801 v.x >> s);
802 }
803
804 template <typename T>
805 GLM_FUNC_QUALIFIER tvec1<T> operator>>
806 (
807 typename tvec1<T>::value_type const & s,
808 tvec1<T> const & v
809 )
810 {
811 return tvec1<T>(
812 s >> v.x);
813 }
814
815 template <typename T>
816 GLM_FUNC_QUALIFIER tvec1<T> operator>>
817 (
818 tvec1<T> const & v1,
819 tvec1<T> const & v2
820 )
821 {
822 return tvec1<T>(
823 v1.x >> v2.x);
824 }
825
826 template <typename T>
827 GLM_FUNC_QUALIFIER tvec1<T> operator~
828 (
829 tvec1<T> const & v
830 )
831 {
832 return tvec1<T>(
833 ~v.x);
834 }
835
836 //////////////////////////////////////
837 // tref definition
838
839 template <typename T>
840 GLM_FUNC_QUALIFIER tref1<T>::tref1
841 (
842 T & x
843 ) :
844 x(x)
845 {}
846
847 template <typename T>
848 GLM_FUNC_QUALIFIER tref1<T>::tref1
849 (
850 tref1<T> const & r
851 ) :
852 x(r.x)
853 {}
854
855 template <typename T>
856 GLM_FUNC_QUALIFIER tref1<T>::tref1
857 (
858 tvec1<T> const & v
859 ) :
860 x(v.x)
861 {}
862
863 template <typename T>
864 GLM_FUNC_QUALIFIER tref1<T> & tref1<T>::operator=
865 (
866 tref1<T> const & r
867 )
868 {
869 x = r.x;
870 return *this;
871 }
872
873 template <typename T>
874 GLM_FUNC_QUALIFIER tref1<T> & tref1<T>::operator=
875 (
876 tvec1<T> const & v
877 )
878 {
879 x = v.x;
880 return *this;
881 }
882
883 }//namespace detail
726 template <typename T>
727 GLM_FUNC_QUALIFIER tvec1<T> operator^
728 (
729 tvec1<T> const & v,
730 typename tvec1<T>::value_type const & s
731 )
732 {
733 return tvec1<T>(
734 v.x ^ s);
735 }
736
737 template <typename T>
738 GLM_FUNC_QUALIFIER tvec1<T> operator^
739 (
740 typename tvec1<T>::value_type const & s,
741 tvec1<T> const & v
742 )
743 {
744 return tvec1<T>(
745 s ^ v.x);
746 }
747
748 template <typename T>
749 GLM_FUNC_QUALIFIER tvec1<T> operator^
750 (
751 tvec1<T> const & v1,
752 tvec1<T> const & v2
753 )
754 {
755 return tvec1<T>(
756 v1.x ^ v2.x);
757 }
758
759 template <typename T>
760 GLM_FUNC_QUALIFIER tvec1<T> operator<<
761 (
762 tvec1<T> const & v,
763 typename tvec1<T>::value_type const & s
764 )
765 {
766 return tvec1<T>(
767 v.x << s);
768 }
769
770 template <typename T>
771 GLM_FUNC_QUALIFIER tvec1<T> operator<<
772 (
773 typename tvec1<T>::value_type const & s,
774 tvec1<T> const & v
775 )
776 {
777 return tvec1<T>(
778 s << v.x);
779 }
780
781 template <typename T>
782 GLM_FUNC_QUALIFIER tvec1<T> operator<<
783 (
784 tvec1<T> const & v1,
785 tvec1<T> const & v2
786 )
787 {
788 return tvec1<T>(
789 v1.x << v2.x);
790 }
791
792 template <typename T>
793 GLM_FUNC_QUALIFIER tvec1<T> operator>>
794 (
795 tvec1<T> const & v,
796 typename tvec1<T>::value_type const & s
797 )
798 {
799 return tvec1<T>(
800 v.x >> s);
801 }
802
803 template <typename T>
804 GLM_FUNC_QUALIFIER tvec1<T> operator>>
805 (
806 typename tvec1<T>::value_type const & s,
807 tvec1<T> const & v
808 )
809 {
810 return tvec1<T>(
811 s >> v.x);
812 }
813
814 template <typename T>
815 GLM_FUNC_QUALIFIER tvec1<T> operator>>
816 (
817 tvec1<T> const & v1,
818 tvec1<T> const & v2
819 )
820 {
821 return tvec1<T>(
822 v1.x >> v2.x);
823 }
824
825 template <typename T>
826 GLM_FUNC_QUALIFIER tvec1<T> operator~
827 (
828 tvec1<T> const & v
829 )
830 {
831 return tvec1<T>(
832 ~v.x);
833 }
834
835 //////////////////////////////////////
836 // tref definition
837
838 template <typename T>
839 GLM_FUNC_QUALIFIER tref1<T>::tref1
840 (
841 T & x
842 ) :
843 x(x)
844 {}
845
846 template <typename T>
847 GLM_FUNC_QUALIFIER tref1<T>::tref1
848 (
849 tref1<T> const & r
850 ) :
851 x(r.x)
852 {}
853
854 template <typename T>
855 GLM_FUNC_QUALIFIER tref1<T>::tref1
856 (
857 tvec1<T> const & v
858 ) :
859 x(v.x)
860 {}
861
862 template <typename T>
863 GLM_FUNC_QUALIFIER tref1<T> & tref1<T>::operator=
864 (
865 tref1<T> const & r
866 )
867 {
868 x = r.x;
869 return *this;
870 }
871
872 template <typename T>
873 GLM_FUNC_QUALIFIER tref1<T> & tref1<T>::operator=
874 (
875 tvec1<T> const & v
876 )
877 {
878 x = v.x;
879 return *this;
880 }
881
882 }//namespace detail
884883 }//namespace glm
1515 #include "type_size.hpp"
1616 #include "_swizzle.hpp"
1717
18 namespace glm
18 namespace glm{
19 namespace detail
1920 {
20 namespace test
21 template <typename T> struct tref2;
22 template <typename T> struct tref3;
23 template <typename T> struct tref4;
24 template <typename T> struct tvec3;
25 template <typename T> struct tvec4;
26
27 //! The basic 2D vector type.
28 //! \ingroup core_template
29 template <typename T>
30 struct tvec2
2131 {
22 void main_vec2();
23 }
24 //namespace test
25
26 namespace detail
32 enum ctor{null};
33
34 typedef T value_type;
35 typedef std::size_t size_type;
36 GLM_FUNC_DECL size_type length() const;
37 static GLM_FUNC_DECL size_type value_size();
38
39 typedef tvec2<T> type;
40 typedef tvec2<bool> bool_type;
41
42 //////////////////////////////////////
43 // Data
44
45 # if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
46 value_type x, y;
47 # elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)
48 union
49 {
50 struct{value_type r, g;};
51 struct{value_type s, t;};
52 struct{value_type x, y;};
53 };
54 # else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)
55 union {value_type x, r, s;};
56 union {value_type y, g, t;};
57 # endif//GLM_COMPONENT
58
59 //////////////////////////////////////
60 // Accesses
61
62 GLM_FUNC_DECL value_type & operator[](size_type i);
63 GLM_FUNC_DECL value_type const & operator[](size_type i) const;
64
65 //////////////////////////////////////
66 // Implicit basic constructors
67
68 GLM_FUNC_DECL tvec2();
69 GLM_FUNC_DECL tvec2(tvec2<T> const & v);
70
71 //////////////////////////////////////
72 // Explicit basic constructors
73
74 GLM_FUNC_DECL explicit tvec2(
75 ctor);
76 GLM_FUNC_DECL explicit tvec2(
77 value_type const & s);
78 GLM_FUNC_DECL explicit tvec2(
79 value_type const & s1,
80 value_type const & s2);
81
82 //////////////////////////////////////
83 // Swizzle constructors
84
85 tvec2(tref2<T> const & r);
86
87 //////////////////////////////////////
88 // Convertion constructors
89
90 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
91 template <typename U>
92 GLM_FUNC_DECL explicit tvec2(
93 U const & x);
94 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
95 template <typename U, typename V>
96 GLM_FUNC_DECL explicit tvec2(
97 U const & x,
98 V const & y);
99
100 //////////////////////////////////////
101 // Convertion vector constructors
102
103 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
104 template <typename U>
105 GLM_FUNC_DECL explicit tvec2(tvec2<U> const & v);
106 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
107 template <typename U>
108 GLM_FUNC_DECL explicit tvec2(tvec3<U> const & v);
109 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
110 template <typename U>
111 GLM_FUNC_DECL explicit tvec2(tvec4<U> const & v);
112
113 //////////////////////////////////////
114 // Unary arithmetic operators
115
116 GLM_FUNC_DECL tvec2<T> & operator= (tvec2<T> const & v);
117 template <typename U>
118 GLM_FUNC_DECL tvec2<T> & operator= (tvec2<U> const & v);
119
120 template <typename U>
121 GLM_FUNC_DECL tvec2<T> & operator+=(U const & s);
122 template <typename U>
123 GLM_FUNC_DECL tvec2<T> & operator+=(tvec2<U> const & v);
124 template <typename U>
125 GLM_FUNC_DECL tvec2<T> & operator-=(U const & s);
126 template <typename U>
127 GLM_FUNC_DECL tvec2<T> & operator-=(tvec2<U> const & v);
128 template <typename U>
129 GLM_FUNC_DECL tvec2<T> & operator*=(U const & s);
130 template <typename U>
131 GLM_FUNC_DECL tvec2<T> & operator*=(tvec2<U> const & v);
132 template <typename U>
133 GLM_FUNC_DECL tvec2<T> & operator/=(U const & s);
134 template <typename U>
135 GLM_FUNC_DECL tvec2<T> & operator/=(tvec2<U> const & v);
136 GLM_FUNC_DECL tvec2<T> & operator++();
137 GLM_FUNC_DECL tvec2<T> & operator--();
138
139 //////////////////////////////////////
140 // Unary bit operators
141
142 template <typename U>
143 GLM_FUNC_DECL tvec2<T> & operator%= (U const & s);
144 template <typename U>
145 GLM_FUNC_DECL tvec2<T> & operator%= (tvec2<U> const & v);
146 template <typename U>
147 GLM_FUNC_DECL tvec2<T> & operator&= (U const & s);
148 template <typename U>
149 GLM_FUNC_DECL tvec2<T> & operator&= (tvec2<U> const & v);
150 template <typename U>
151 GLM_FUNC_DECL tvec2<T> & operator|= (U const & s);
152 template <typename U>
153 GLM_FUNC_DECL tvec2<T> & operator|= (tvec2<U> const & v);
154 template <typename U>
155 GLM_FUNC_DECL tvec2<T> & operator^= (U const & s);
156 template <typename U>
157 GLM_FUNC_DECL tvec2<T> & operator^= (tvec2<U> const & v);
158 template <typename U>
159 GLM_FUNC_DECL tvec2<T> & operator<<=(U const & s);
160 template <typename U>
161 GLM_FUNC_DECL tvec2<T> & operator<<=(tvec2<U> const & v);
162 template <typename U>
163 GLM_FUNC_DECL tvec2<T> & operator>>=(U const & s);
164 template <typename U>
165 GLM_FUNC_DECL tvec2<T> & operator>>=(tvec2<U> const & v);
166
167 //////////////////////////////////////
168 // Swizzle operators
169
170 GLM_FUNC_DECL value_type swizzle(comp X) const;
171 GLM_FUNC_DECL tvec2<T> swizzle(comp X, comp Y) const;
172 GLM_FUNC_DECL tvec3<T> swizzle(comp X, comp Y, comp Z) const;
173 GLM_FUNC_DECL tvec4<T> swizzle(comp X, comp Y, comp Z, comp W) const;
174 GLM_FUNC_DECL tref2<T> swizzle(comp X, comp Y);
175 };
176
177 template <typename T>
178 struct tref2
27179 {
28 template <typename T> struct tref2;
29 template <typename T> struct tref3;
30 template <typename T> struct tref4;
31 template <typename T> struct tvec3;
32 template <typename T> struct tvec4;
33
34 //! The basic 2D vector type.
35 //! \ingroup core_template
36 template <typename T>
37 struct tvec2
38 {
39 enum ctor{null};
40
41 typedef T value_type;
42 typedef std::size_t size_type;
43 GLM_FUNC_DECL size_type length() const;
44 static GLM_FUNC_DECL size_type value_size();
45
46 typedef tvec2<T> type;
47 typedef tvec2<bool> bool_type;
48
49 //////////////////////////////////////
50 // Data
51
52 # if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
53 value_type x, y;
54 # elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)
55 union
56 {
57 struct{value_type x, y;};
58 struct{value_type r, g;};
59 struct{value_type s, t;};
60 };
61 # else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)
62 union {value_type x, r, s;};
63 union {value_type y, g, t;};
64 # endif//GLM_COMPONENT
65
66 //////////////////////////////////////
67 // Accesses
68
69 GLM_FUNC_DECL value_type & operator[](size_type i);
70 GLM_FUNC_DECL value_type const & operator[](size_type i) const;
71
72 //////////////////////////////////////
73 // Implicit basic constructors
74
75 GLM_FUNC_DECL tvec2();
76 GLM_FUNC_DECL tvec2(tvec2<T> const & v);
77
78 //////////////////////////////////////
79 // Explicit basic constructors
80
81 GLM_FUNC_DECL explicit tvec2(
82 ctor);
83 GLM_FUNC_DECL explicit tvec2(
84 value_type const & s);
85 GLM_FUNC_DECL explicit tvec2(
86 value_type const & s1,
87 value_type const & s2);
88
89 //////////////////////////////////////
90 // Swizzle constructors
91
92 tvec2(tref2<T> const & r);
93
94 //////////////////////////////////////
95 // Convertion scalar constructors
96
97 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
98 template <typename U>
99 GLM_FUNC_DECL explicit tvec2(
100 U const & x);
101 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
102 template <typename U, typename V>
103 GLM_FUNC_DECL explicit tvec2(
104 U const & x,
105 V const & y);
106
107 //////////////////////////////////////
108 // Convertion vector constructors
109
110 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
111 template <typename U>
112 GLM_FUNC_DECL explicit tvec2(tvec2<U> const & v);
113 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
114 template <typename U>
115 GLM_FUNC_DECL explicit tvec2(tvec3<U> const & v);
116 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
117 template <typename U>
118 GLM_FUNC_DECL explicit tvec2(tvec4<U> const & v);
119
120 //////////////////////////////////////
121 // Unary arithmetic operators
122
123 GLM_FUNC_DECL tvec2<T> & operator= (tvec2<T> const & v);
124 template <typename U>
125 GLM_FUNC_DECL tvec2<T> & operator= (tvec2<U> const & v);
126
127 template <typename U>
128 GLM_FUNC_DECL tvec2<T> & operator+=(U const & s);
129 template <typename U>
130 GLM_FUNC_DECL tvec2<T> & operator+=(tvec2<U> const & v);
131 template <typename U>
132 GLM_FUNC_DECL tvec2<T> & operator-=(U const & s);
133 template <typename U>
134 GLM_FUNC_DECL tvec2<T> & operator-=(tvec2<U> const & v);
135 template <typename U>
136 GLM_FUNC_DECL tvec2<T> & operator*=(U const & s);
137 template <typename U>
138 GLM_FUNC_DECL tvec2<T> & operator*=(tvec2<U> const & v);
139 template <typename U>
140 GLM_FUNC_DECL tvec2<T> & operator/=(U const & s);
141 template <typename U>
142 GLM_FUNC_DECL tvec2<T> & operator/=(tvec2<U> const & v);
143 GLM_FUNC_DECL tvec2<T> & operator++();
144 GLM_FUNC_DECL tvec2<T> & operator--();
145
146 //////////////////////////////////////
147 // Unary bit operators
148
149 template <typename U>
150 GLM_FUNC_DECL tvec2<T> & operator%= (U const & s);
151 template <typename U>
152 GLM_FUNC_DECL tvec2<T> & operator%= (tvec2<U> const & v);
153 template <typename U>
154 GLM_FUNC_DECL tvec2<T> & operator&= (U const & s);
155 template <typename U>
156 GLM_FUNC_DECL tvec2<T> & operator&= (tvec2<U> const & v);
157 template <typename U>
158 GLM_FUNC_DECL tvec2<T> & operator|= (U const & s);
159 template <typename U>
160 GLM_FUNC_DECL tvec2<T> & operator|= (tvec2<U> const & v);
161 template <typename U>
162 GLM_FUNC_DECL tvec2<T> & operator^= (U const & s);
163 template <typename U>
164 GLM_FUNC_DECL tvec2<T> & operator^= (tvec2<U> const & v);
165 template <typename U>
166 GLM_FUNC_DECL tvec2<T> & operator<<=(U const & s);
167 template <typename U>
168 GLM_FUNC_DECL tvec2<T> & operator<<=(tvec2<U> const & v);
169 template <typename U>
170 GLM_FUNC_DECL tvec2<T> & operator>>=(U const & s);
171 template <typename U>
172 GLM_FUNC_DECL tvec2<T> & operator>>=(tvec2<U> const & v);
173
174 //////////////////////////////////////
175 // Swizzle operators
176
177 GLM_FUNC_DECL value_type swizzle(comp X) const;
178 GLM_FUNC_DECL tvec2<T> swizzle(comp X, comp Y) const;
179 GLM_FUNC_DECL tvec3<T> swizzle(comp X, comp Y, comp Z) const;
180 GLM_FUNC_DECL tvec4<T> swizzle(comp X, comp Y, comp Z, comp W) const;
181 GLM_FUNC_DECL tref2<T> swizzle(comp X, comp Y);
182 };
183
184 template <typename T>
185 struct tref2
186 {
187 GLM_FUNC_DECL tref2(T & x, T & y);
188 GLM_FUNC_DECL tref2(tref2<T> const & r);
189 GLM_FUNC_DECL tref2(tvec2<T> const & v);
190
191 GLM_FUNC_DECL tref2<T> & operator= (tref2<T> const & r);
192 GLM_FUNC_DECL tref2<T> & operator= (tvec2<T> const & v);
193
194 T& x;
195 T& y;
196 };
197
198 GLM_DETAIL_IS_VECTOR(tvec2);
199
200 } //namespace detail
201
202 namespace core{
203 namespace type{
204
205 namespace precision
206 {
207 //! 2 components vector of high precision floating-point numbers.
208 //! There is no guarantee on the actual precision.
209 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
210 //! \ingroup core_precision
211 typedef detail::tvec2<highp_float> highp_vec2;
212 //! 2 components vector of medium precision floating-point numbers.
213 //! There is no guarantee on the actual precision.
214 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
215 //! \ingroup core_precision
216 typedef detail::tvec2<mediump_float> mediump_vec2;
217 //! 2 components vector of low precision floating-point numbers.
218 //! There is no guarantee on the actual precision.
219 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
220 //! \ingroup core_precision
221 typedef detail::tvec2<lowp_float> lowp_vec2;
222
223 //! 2 components vector of high precision signed integer numbers.
224 //! There is no guarantee on the actual precision.
225 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
226 //! \ingroup core_precision
227 typedef detail::tvec2<highp_int> highp_ivec2;
228 //! 2 components vector of medium precision signed integer numbers.
229 //! There is no guarantee on the actual precision.
230 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
231 //! \ingroup core_precision
232 typedef detail::tvec2<mediump_int> mediump_ivec2;
233 //! 2 components vector of low precision signed integer numbers.
234 //! There is no guarantee on the actual precision.
235 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
236 //! \ingroup core_precision
237 typedef detail::tvec2<lowp_int> lowp_ivec2;
180 GLM_FUNC_DECL tref2(T & x, T & y);
181 GLM_FUNC_DECL tref2(tref2<T> const & r);
182 GLM_FUNC_DECL tref2(tvec2<T> const & v);
183
184 GLM_FUNC_DECL tref2<T> & operator= (tref2<T> const & r);
185 GLM_FUNC_DECL tref2<T> & operator= (tvec2<T> const & v);
186
187 T& x;
188 T& y;
189 };
190
191 GLM_DETAIL_IS_VECTOR(tvec2);
192
193 } //namespace detail
194
195 namespace core{
196 namespace type{
197 namespace precision
198 {
199 //! 2 components vector of high precision floating-point numbers.
200 //! There is no guarantee on the actual precision.
201 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
202 //! \ingroup core_precision
203 typedef detail::tvec2<highp_float> highp_vec2;
204
205 //! 2 components vector of medium precision floating-point numbers.
206 //! There is no guarantee on the actual precision.
207 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
208 //! \ingroup core_precision
209 typedef detail::tvec2<mediump_float> mediump_vec2;
210
211 //! 2 components vector of low precision floating-point numbers.
212 //! There is no guarantee on the actual precision.
213 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
214 //! \ingroup core_precision
215 typedef detail::tvec2<lowp_float> lowp_vec2;
216
217 //! 2 components vector of high precision signed integer numbers.
218 //! There is no guarantee on the actual precision.
219 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
220 //! \ingroup core_precision
221 typedef detail::tvec2<highp_int> highp_ivec2;
222
223 //! 2 components vector of medium precision signed integer numbers.
224 //! There is no guarantee on the actual precision.
225 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
226 //! \ingroup core_precision
227 typedef detail::tvec2<mediump_int> mediump_ivec2;
228
229 //! 2 components vector of low precision signed integer numbers.
230 //! There is no guarantee on the actual precision.
231 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
232 //! \ingroup core_precision
233 typedef detail::tvec2<lowp_int> lowp_ivec2;
238234
239 //! 2 components vector of high precision unsigned integer numbers.
240 //! There is no guarantee on the actual precision.
241 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
242 //! \ingroup core_precision
243 typedef detail::tvec2<highp_uint> highp_uvec2;
244 //! 2 components vector of medium precision unsigned integer numbers.
245 //! There is no guarantee on the actual precision.
246 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
247 //! \ingroup core_precision
248 typedef detail::tvec2<mediump_uint> mediump_uvec2;
249 //! 2 components vector of low precision unsigned integer numbers.
250 //! There is no guarantee on the actual precision.
251 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
252 //! \ingroup core_precision
253 typedef detail::tvec2<lowp_uint> lowp_uvec2;
254 }
255 //namespace precision
256
257 }//namespace type
258 }//namespace core
235 //! 2 components vector of high precision unsigned integer numbers.
236 //! There is no guarantee on the actual precision.
237 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
238 //! \ingroup core_precision
239 typedef detail::tvec2<highp_uint> highp_uvec2;
240
241 //! 2 components vector of medium precision unsigned integer numbers.
242 //! There is no guarantee on the actual precision.
243 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
244 //! \ingroup core_precision
245 typedef detail::tvec2<mediump_uint> mediump_uvec2;
246
247 //! 2 components vector of low precision unsigned integer numbers.
248 //! There is no guarantee on the actual precision.
249 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
250 //! \ingroup core_precision
251 typedef detail::tvec2<lowp_uint> lowp_uvec2;
252
253 }//namespace precision
254 }//namespace type
255 }//namespace core
259256 }//namespace glm
260257
261258 #ifndef GLM_EXTERNAL_TEMPLATE
262259 #include "type_vec2.inl"
263 #endif
260 #endif//GLM_EXTERNAL_TEMPLATE
264261
265262 #endif//glm_core_type_gentype2
66 // File : glm/core/type_tvec2.inl
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
88
9 namespace glm
9 namespace glm{
10 namespace detail
1011 {
11 namespace detail
12 {
13 template <typename T>
14 GLM_FUNC_QUALIFIER typename tvec2<T>::size_type tvec2<T>::length() const
15 {
16 return 2;
17 }
18
19 template <typename T>
20 GLM_FUNC_QUALIFIER typename tvec2<T>::size_type tvec2<T>::value_size()
21 {
22 return 2;
23 }
24
25 //////////////////////////////////////
26 // Accesses
27
28 template <typename T>
29 GLM_FUNC_QUALIFIER typename tvec2<T>::value_type &
30 tvec2<T>::operator[]
31 (
32 size_type i
33 )
34 {
35 assert(i < value_size());
36 return (&x)[i];
37 }
38
39 template <typename T>
40 GLM_FUNC_QUALIFIER typename tvec2<T>::value_type const &
41 tvec2<T>::operator[]
42 (
43 size_type i
44 ) const
45 {
46 assert(i < value_size());
47 return (&x)[i];
48 }
49
50 //////////////////////////////////////
51 // Implicit basic constructors
52
53 template <typename T>
54 GLM_FUNC_QUALIFIER tvec2<T>::tvec2() :
55 x(value_type(0)),
56 y(value_type(0))
57 {}
58
59 template <typename T>
60 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
61 (
62 ctor
63 )
64 {}
65
66 template <typename T>
67 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
68 (
69 tvec2<T> const & v
70 ) :
71 x(v.x),
72 y(v.y)
73 {}
74
75 //////////////////////////////////////
76 // Explicit basic constructors
77
78 template <typename T>
79 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
80 (
81 value_type const & s
82 ) :
83 x(s),
84 y(s)
85 {}
86
87 template <typename T>
88 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
89 (
90 value_type const & s1,
91 value_type const & s2
92 ) :
93 x(s1),
94 y(s2)
95 {}
96
97 //////////////////////////////////////
98 // Swizzle constructors
99
100 template <typename T>
101 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
102 (
103 tref2<T> const & r
104 ) :
105 x(r.x),
106 y(r.y)
107 {}
108
109 //////////////////////////////////////
110 // Convertion scalar constructors
12 template <typename T>
13 GLM_FUNC_QUALIFIER typename tvec2<T>::size_type tvec2<T>::length() const
14 {
15 return 2;
16 }
17
18 template <typename T>
19 GLM_FUNC_QUALIFIER typename tvec2<T>::size_type tvec2<T>::value_size()
20 {
21 return 2;
22 }
23
24 //////////////////////////////////////
25 // Accesses
26
27 template <typename T>
28 GLM_FUNC_QUALIFIER typename tvec2<T>::value_type &
29 tvec2<T>::operator[]
30 (
31 size_type i
32 )
33 {
34 assert(i < value_size());
35 return (&x)[i];
36 }
37
38 template <typename T>
39 GLM_FUNC_QUALIFIER typename tvec2<T>::value_type const &
40 tvec2<T>::operator[]
41 (
42 size_type i
43 ) const
44 {
45 assert(i < value_size());
46 return (&x)[i];
47 }
48
49 //////////////////////////////////////
50 // Implicit basic constructors
51
52 template <typename T>
53 GLM_FUNC_QUALIFIER tvec2<T>::tvec2() :
54 x(value_type(0)),
55 y(value_type(0))
56 {}
57
58 template <typename T>
59 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
60 (
61 ctor
62 )
63 {}
64
65 template <typename T>
66 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
67 (
68 tvec2<T> const & v
69 ) :
70 x(v.x),
71 y(v.y)
72 {}
73
74 //////////////////////////////////////
75 // Explicit basic constructors
76
77 template <typename T>
78 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
79 (
80 value_type const & s
81 ) :
82 x(s),
83 y(s)
84 {}
85
86 template <typename T>
87 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
88 (
89 value_type const & s1,
90 value_type const & s2
91 ) :
92 x(s1),
93 y(s2)
94 {}
95
96 //////////////////////////////////////
97 // Swizzle constructors
98
99 template <typename T>
100 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
101 (
102 tref2<T> const & r
103 ) :
104 x(r.x),
105 y(r.y)
106 {}
107
108 //////////////////////////////////////
109 // Convertion scalar constructors
111110
112 template <typename T>
113 template <typename U>
114 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
115 (
116 U const & x
117 ) :
118 x(value_type(x)),
119 y(value_type(x))
120 {}
121
122 template <typename T>
123 template <typename U, typename V>
124 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
125 (
126 U const & x,
127 V const & y
128 ) :
129 x(value_type(x)),
130 y(value_type(y))
131 {}
132
133 //////////////////////////////////////
134 // Convertion vector constructors
135
136 template <typename T>
137 template <typename U>
138 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
139 (
140 tvec2<U> const & v
141 ) :
142 x(value_type(v.x)),
143 y(value_type(v.y))
144 {}
145
146 template <typename T>
147 template <typename U>
148 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
149 (
150 tvec3<U> const & v
151 ) :
152 x(value_type(v.x)),
153 y(value_type(v.y))
154 {}
155
156 template <typename T>
157 template <typename U>
158 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
159 (
160 tvec4<U> const & v
161 ) :
162 x(value_type(v.x)),
163 y(value_type(v.y))
164 {}
165
166 //////////////////////////////////////
167 // Unary arithmetic operators
168
169 template <typename T>
170 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator=
171 (
172 tvec2<T> const & v
173 )
174 {
175 this->x = v.x;
176 this->y = v.y;
177 return *this;
178 }
179
180 template <typename T>
181 template <typename U>
182 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator=
183 (
184 tvec2<U> const & v
185 )
186 {
187 this->x = T(v.x);
188 this->y = T(v.y);
189 return *this;
190 }
191
192 template <typename T>
193 template <typename U>
194 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator+=
195 (
196 U const & s
197 )
198 {
199 this->x += T(s);
200 this->y += T(s);
201 return *this;
202 }
203
204 template <typename T>
205 template <typename U>
206 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator+=
207 (
208 tvec2<U> const & v
209 )
210 {
211 this->x += T(v.x);
212 this->y += T(v.y);
213 return *this;
214 }
215
216 template <typename T>
217 template <typename U>
218 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator-=
219 (
220 U const & s
221 )
222 {
223 this->x -= T(s);
224 this->y -= T(s);
225 return *this;
226 }
227
228 template <typename T>
229 template <typename U>
230 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator-=
231 (
232 tvec2<U> const & v
233 )
234 {
235 this->x -= T(v.x);
236 this->y -= T(v.y);
237 return *this;
238 }
239
240 template <typename T>
241 template <typename U>
242 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator*=
243 (
244 U const & s
245 )
246 {
247 this->x *= T(s);
248 this->y *= T(s);
249 return *this;
250 }
251
252 template <typename T>
253 template <typename U>
254 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator*=
255 (
256 tvec2<U> const & v
257 )
258 {
259 this->x *= T(v.x);
260 this->y *= T(v.y);
261 return *this;
262 }
263
264 template <typename T>
265 template <typename U>
266 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator/=
267 (
268 U const & s
269 )
270 {
271 this->x /= T(s);
272 this->y /= T(s);
273 return *this;
274 }
275
276 template <typename T>
277 template <typename U>
278 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator/=
279 (
280 tvec2<U> const & v
281 )
282 {
283 this->x /= T(v.x);
284 this->y /= T(v.y);
285 return *this;
286 }
287
288 template <typename T>
289 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator++()
290 {
291 ++this->x;
292 ++this->y;
293 return *this;
294 }
295
296 template <typename T>
297 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator--()
298 {
299 --this->x;
300 --this->y;
301 return *this;
302 }
303
304 //////////////////////////////////////
305 // Boolean operators
306
307 template <typename T>
308 GLM_FUNC_QUALIFIER bool operator==
309 (
310 tvec2<T> const & v1,
311 tvec2<T> const & v2
312 )
313 {
314 return (v1.x == v2.x) && (v1.y == v2.y);
315 }
316
317 template <typename T>
318 GLM_FUNC_QUALIFIER bool operator!=
319 (
320 tvec2<T> const & v1,
321 tvec2<T> const & v2
322 )
323 {
324 return (v1.x != v2.x) || (v1.y != v2.y);
325 }
326
327 //////////////////////////////////////
328 // Unary bit operators
329
330 template <typename T>
331 template <typename U>
332 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator%=
333 (
334 U const & s
335 )
336 {
337 this->x %= T(s);
338 this->y %= T(s);
339 return *this;
340 }
341
342 template <typename T>
343 template <typename U>
344 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator%=
345 (
346 tvec2<U> const & v
347 )
348 {
349 this->x %= T(v.x);
350 this->y %= T(v.y);
351 return *this;
352 }
353
354 template <typename T>
355 template <typename U>
356 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator&=
357 (
358 U const & s
359 )
360 {
361 this->x &= T(s);
362 this->y &= T(s);
363 return *this;
364 }
365
366 template <typename T>
367 template <typename U>
368 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator&=
369 (
370 tvec2<U> const & v
371 )
372 {
373 this->x &= T(v.x);
374 this->y &= T(v.y);
375 return *this;
376 }
377
378 template <typename T>
379 template <typename U>
380 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator|=
381 (
382 U const & s
383 )
384 {
385 this->x |= T(s);
386 this->y |= T(s);
387 return *this;
388 }
389
390 template <typename T>
391 template <typename U>
392 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator|=
393 (
394 tvec2<U> const & v
395 )
396 {
397 this->x |= T(v.x);
398 this->y |= T(v.y);
399 return *this;
400 }
401
402 template <typename T>
403 template <typename U>
404 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator^=
405 (
406 U const & s
407 )
408 {
409 this->x ^= T(s);
410 this->y ^= T(s);
411 return *this;
412 }
413
414 template <typename T>
415 template <typename U>
416 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator^=
417 (
418 tvec2<U> const & v
419 )
420 {
421 this->x ^= T(v.x);
422 this->y ^= T(v.y);
423 return *this;
424 }
425
426 template <typename T>
427 template <typename U>
428 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator<<=
429 (
430 U const & s
431 )
432 {
433 this->x <<= T(s);
434 this->y <<= T(s);
435 return *this;
436 }
437
438 template <typename T>
439 template <typename U>
440 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator<<=
441 (
442 tvec2<U> const & v
443 )
444 {
445 this->x <<= T(v.x);
446 this->y <<= T(v.y);
447 return *this;
448 }
449
450 template <typename T>
451 template <typename U>
452 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator>>=
453 (
454 U const & s
455 )
456 {
457 this->x >>= T(s);
458 this->y >>= T(s);
459 return *this;
460 }
461
462 template <typename T>
463 template <typename U>
464 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator>>=
465 (
466 tvec2<U> const & v
467 )
468 {
469 this->x >>= T(v.x);
470 this->y >>= T(v.y);
471 return *this;
472 }
473
474 //////////////////////////////////////
475 // Swizzle operators
476
477 template <typename T>
478 GLM_FUNC_QUALIFIER typename tvec2<T>::value_type tvec2<T>::swizzle
479 (
480 comp x
481 ) const
482 {
483 return (*this)[x];
484 }
485
486 template <typename T>
487 GLM_FUNC_QUALIFIER tvec2<T> tvec2<T>::swizzle
488 (
489 comp x,
490 comp y
491 ) const
492 {
493 return tvec2<T>(
494 (*this)[x],
495 (*this)[y]);
496 }
497
498 template <typename T>
499 GLM_FUNC_QUALIFIER tvec3<T> tvec2<T>::swizzle
500 (
501 comp x,
502 comp y,
503 comp z
504 ) const
505 {
506 return tvec3<T>(
507 (*this)[x],
508 (*this)[y],
509 (*this)[z]);
510 }
511
512 template <typename T>
513 GLM_FUNC_QUALIFIER tvec4<T> tvec2<T>::swizzle
514 (
515 comp x,
516 comp y,
517 comp z,
518 comp w
519 ) const
520 {
521 return tvec4<T>(
522 (*this)[x],
523 (*this)[y],
524 (*this)[z],
525 (*this)[w]);
526 }
527
528 template <typename T>
529 GLM_FUNC_QUALIFIER tref2<T> tvec2<T>::swizzle
530 (
531 comp x,
532 comp y
533 )
534 {
535 return tref2<T>(
536 (*this)[x],
537 (*this)[y]);
538 }
539
540 //////////////////////////////////////
541 // Binary arithmetic operators
542
543 template <typename T>
544 GLM_FUNC_QUALIFIER tvec2<T> operator+
545 (
546 tvec2<T> const & v,
547 T const & s
548 )
549 {
550 return tvec2<T>(
551 v.x + T(s),
552 v.y + T(s));
553 }
554
555 template <typename T>
556 GLM_FUNC_QUALIFIER tvec2<T> operator+
557 (
558 T const & s,
559 tvec2<T> const & v
560 )
561 {
562 return tvec2<T>(
563 T(s) + v.x,
564 T(s) + v.y);
565 }
566
567 template <typename T>
568 GLM_FUNC_QUALIFIER tvec2<T> operator+
569 (
570 tvec2<T> const & v1,
571 tvec2<T> const & v2
572 )
573 {
574 return tvec2<T>(
575 v1.x + T(v2.x),
576 v1.y + T(v2.y));
577 }
578
579 //operator-
580 template <typename T>
581 GLM_FUNC_QUALIFIER tvec2<T> operator-
582 (
583 tvec2<T> const & v,
584 T const & s
585 )
586 {
587 return tvec2<T>(
588 v.x - T(s),
589 v.y - T(s));
590 }
591
592 template <typename T>
593 GLM_FUNC_QUALIFIER tvec2<T> operator-
594 (
595 T const & s,
596 tvec2<T> const & v
597 )
598 {
599 return tvec2<T>(
600 T(s) - v.x,
601 T(s) - v.y);
602 }
603
604 template <typename T>
605 GLM_FUNC_QUALIFIER tvec2<T> operator-
606 (
607 tvec2<T> const & v1,
608 tvec2<T> const & v2
609 )
610 {
611 return tvec2<T>(
612 v1.x - T(v2.x),
613 v1.y - T(v2.y));
614 }
615
616 //operator*
617 template <typename T>
618 GLM_FUNC_QUALIFIER tvec2<T> operator*
619 (
620 tvec2<T> const & v,
621 T const & s
622 )
623 {
624 return tvec2<T>(
625 v.x * T(s),
626 v.y * T(s));
627 }
628
629 template <typename T>
630 GLM_FUNC_QUALIFIER tvec2<T> operator*
631 (
632 T const & s,
633 tvec2<T> const & v
634 )
635 {
636 return tvec2<T>(
637 T(s) * v.x,
638 T(s) * v.y);
639 }
640
641 template <typename T>
642 GLM_FUNC_QUALIFIER tvec2<T> operator*
643 (
644 tvec2<T> const & v1,
645 tvec2<T> const & v2
646 )
647 {
648 return tvec2<T>(
649 v1.x * T(v2.x),
650 v1.y * T(v2.y));
651 }
652
653 //operator/
654 template <typename T>
655 GLM_FUNC_QUALIFIER tvec2<T> operator/
656 (
657 tvec2<T> const & v,
658 T const & s
659 )
660 {
661 return tvec2<T>(
662 v.x / T(s),
663 v.y / T(s));
664 }
665
666 template <typename T>
667 GLM_FUNC_QUALIFIER tvec2<T> operator/
668 (
669 T const & s,
670 tvec2<T> const & v
671 )
672 {
673 return tvec2<T>(
674 T(s) / v.x,
675 T(s) / v.y);
676 }
677
678 template <typename T>
679 GLM_FUNC_QUALIFIER tvec2<T> operator/
680 (
681 tvec2<T> const & v1,
682 tvec2<T> const & v2
683 )
684 {
685 return tvec2<T>(
686 v1.x / T(v2.x),
687 v1.y / T(v2.y));
688 }
689
690 // Unary constant operators
691 template <typename T>
692 GLM_FUNC_QUALIFIER tvec2<T> operator-
693 (
694 tvec2<T> const & v
695 )
696 {
697 return tvec2<T>(
698 -v.x,
699 -v.y);
700 }
701
702 template <typename T>
703 GLM_FUNC_QUALIFIER tvec2<T> operator++
704 (
705 tvec2<T> const & v,
706 int
707 )
708 {
709 return tvec2<T>(
710 v.x + T(1),
711 v.y + T(1));
712 }
713
714 template <typename T>
715 GLM_FUNC_QUALIFIER tvec2<T> operator--
716 (
717 tvec2<T> const & v,
718 int
719 )
720 {
721 return tvec2<T>(
722 v.x - T(1),
723 v.y - T(1));
724 }
725
726 //////////////////////////////////////
727 // Binary bit operators
728
729 template <typename T>
730 GLM_FUNC_QUALIFIER tvec2<T> operator%
731 (
732 tvec2<T> const & v,
733 T const & s
734 )
735 {
736 return tvec2<T>(
737 v.x % T(s),
738 v.y % T(s));
739 }
740
741 template <typename T>
742 GLM_FUNC_QUALIFIER tvec2<T> operator%
743 (
744 T const & s,
745 tvec2<T> const & v
746 )
747 {
748 return tvec2<T>(
749 T(s) % v.x,
750 T(s) % v.y);
751 }
752
753 template <typename T>
754 GLM_FUNC_QUALIFIER tvec2<T> operator%
755 (
756 tvec2<T> const & v1,
757 tvec2<T> const & v2
758 )
759 {
760 return tvec2<T>(
761 v1.x % T(v2.x),
762 v1.y % T(v2.y));
763 }
764
765 template <typename T>
766 GLM_FUNC_QUALIFIER tvec2<T> operator&
767 (
768 tvec2<T> const & v,
769 T const & s
770 )
771 {
772 return tvec2<T>(
773 v.x & T(s),
774 v.y & T(s));
775 }
776
777 template <typename T>
778 GLM_FUNC_QUALIFIER tvec2<T> operator&
779 (
780 T const & s,
781 tvec2<T> const & v
782 )
783 {
784 return tvec2<T>(
785 T(s) & v.x,
786 T(s) & v.y);
787 }
788
789 template <typename T>
790 GLM_FUNC_QUALIFIER tvec2<T> operator&
791 (
792 tvec2<T> const & v1,
793 tvec2<T> const & v2
794 )
795 {
796 return tvec2<T>(
797 v1.x & T(v2.x),
798 v1.y & T(v2.y));
799 }
800
801 template <typename T>
802 GLM_FUNC_QUALIFIER tvec2<T> operator|
803 (
804 tvec2<T> const & v,
805 T const & s
806 )
807 {
808 return tvec2<T>(
809 v.x | T(s),
810 v.y | T(s));
811 }
812
813 template <typename T>
814 GLM_FUNC_QUALIFIER tvec2<T> operator|
815 (
816 T const & s,
817 tvec2<T> const & v
818 )
819 {
820 return tvec2<T>(
821 T(s) | v.x,
822 T(s) | v.y);
823 }
824
825 template <typename T>
826 GLM_FUNC_QUALIFIER tvec2<T> operator|
827 (
828 tvec2<T> const & v1,
829 tvec2<T> const & v2
830 )
831 {
832 return tvec2<T>(
833 v1.x | T(v2.x),
834 v1.y | T(v2.y));
835 }
111 template <typename T>
112 template <typename U>
113 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
114 (
115 U const & x
116 ) :
117 x(value_type(x)),
118 y(value_type(x))
119 {}
120
121 template <typename T>
122 template <typename U, typename V>
123 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
124 (
125 U const & x,
126 V const & y
127 ) :
128 x(value_type(x)),
129 y(value_type(y))
130 {}
131
132 //////////////////////////////////////
133 // Convertion vector constructors
134
135 template <typename T>
136 template <typename U>
137 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
138 (
139 tvec2<U> const & v
140 ) :
141 x(value_type(v.x)),
142 y(value_type(v.y))
143 {}
144
145 template <typename T>
146 template <typename U>
147 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
148 (
149 tvec3<U> const & v
150 ) :
151 x(value_type(v.x)),
152 y(value_type(v.y))
153 {}
154
155 template <typename T>
156 template <typename U>
157 GLM_FUNC_QUALIFIER tvec2<T>::tvec2
158 (
159 tvec4<U> const & v
160 ) :
161 x(value_type(v.x)),
162 y(value_type(v.y))
163 {}
164
165 //////////////////////////////////////
166 // Unary arithmetic operators
167
168 template <typename T>
169 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator=
170 (
171 tvec2<T> const & v
172 )
173 {
174 this->x = v.x;
175 this->y = v.y;
176 return *this;
177 }
178
179 template <typename T>
180 template <typename U>
181 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator=
182 (
183 tvec2<U> const & v
184 )
185 {
186 this->x = T(v.x);
187 this->y = T(v.y);
188 return *this;
189 }
190
191 template <typename T>
192 template <typename U>
193 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator+=
194 (
195 U const & s
196 )
197 {
198 this->x += T(s);
199 this->y += T(s);
200 return *this;
201 }
202
203 template <typename T>
204 template <typename U>
205 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator+=
206 (
207 tvec2<U> const & v
208 )
209 {
210 this->x += T(v.x);
211 this->y += T(v.y);
212 return *this;
213 }
214
215 template <typename T>
216 template <typename U>
217 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator-=
218 (
219 U const & s
220 )
221 {
222 this->x -= T(s);
223 this->y -= T(s);
224 return *this;
225 }
226
227 template <typename T>
228 template <typename U>
229 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator-=
230 (
231 tvec2<U> const & v
232 )
233 {
234 this->x -= T(v.x);
235 this->y -= T(v.y);
236 return *this;
237 }
238
239 template <typename T>
240 template <typename U>
241 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator*=
242 (
243 U const & s
244 )
245 {
246 this->x *= T(s);
247 this->y *= T(s);
248 return *this;
249 }
250
251 template <typename T>
252 template <typename U>
253 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator*=
254 (
255 tvec2<U> const & v
256 )
257 {
258 this->x *= T(v.x);
259 this->y *= T(v.y);
260 return *this;
261 }
262
263 template <typename T>
264 template <typename U>
265 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator/=
266 (
267 U const & s
268 )
269 {
270 this->x /= T(s);
271 this->y /= T(s);
272 return *this;
273 }
274
275 template <typename T>
276 template <typename U>
277 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator/=
278 (
279 tvec2<U> const & v
280 )
281 {
282 this->x /= T(v.x);
283 this->y /= T(v.y);
284 return *this;
285 }
286
287 template <typename T>
288 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator++()
289 {
290 ++this->x;
291 ++this->y;
292 return *this;
293 }
294
295 template <typename T>
296 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator--()
297 {
298 --this->x;
299 --this->y;
300 return *this;
301 }
302
303 //////////////////////////////////////
304 // Boolean operators
305
306 template <typename T>
307 GLM_FUNC_QUALIFIER bool operator==
308 (
309 tvec2<T> const & v1,
310 tvec2<T> const & v2
311 )
312 {
313 return (v1.x == v2.x) && (v1.y == v2.y);
314 }
315
316 template <typename T>
317 GLM_FUNC_QUALIFIER bool operator!=
318 (
319 tvec2<T> const & v1,
320 tvec2<T> const & v2
321 )
322 {
323 return (v1.x != v2.x) || (v1.y != v2.y);
324 }
325
326 //////////////////////////////////////
327 // Unary bit operators
328
329 template <typename T>
330 template <typename U>
331 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator%=
332 (
333 U const & s
334 )
335 {
336 this->x %= T(s);
337 this->y %= T(s);
338 return *this;
339 }
340
341 template <typename T>
342 template <typename U>
343 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator%=
344 (
345 tvec2<U> const & v
346 )
347 {
348 this->x %= T(v.x);
349 this->y %= T(v.y);
350 return *this;
351 }
352
353 template <typename T>
354 template <typename U>
355 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator&=
356 (
357 U const & s
358 )
359 {
360 this->x &= T(s);
361 this->y &= T(s);
362 return *this;
363 }
364
365 template <typename T>
366 template <typename U>
367 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator&=
368 (
369 tvec2<U> const & v
370 )
371 {
372 this->x &= T(v.x);
373 this->y &= T(v.y);
374 return *this;
375 }
376
377 template <typename T>
378 template <typename U>
379 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator|=
380 (
381 U const & s
382 )
383 {
384 this->x |= T(s);
385 this->y |= T(s);
386 return *this;
387 }
388
389 template <typename T>
390 template <typename U>
391 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator|=
392 (
393 tvec2<U> const & v
394 )
395 {
396 this->x |= T(v.x);
397 this->y |= T(v.y);
398 return *this;
399 }
400
401 template <typename T>
402 template <typename U>
403 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator^=
404 (
405 U const & s
406 )
407 {
408 this->x ^= T(s);
409 this->y ^= T(s);
410 return *this;
411 }
412
413 template <typename T>
414 template <typename U>
415 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator^=
416 (
417 tvec2<U> const & v
418 )
419 {
420 this->x ^= T(v.x);
421 this->y ^= T(v.y);
422 return *this;
423 }
424
425 template <typename T>
426 template <typename U>
427 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator<<=
428 (
429 U const & s
430 )
431 {
432 this->x <<= T(s);
433 this->y <<= T(s);
434 return *this;
435 }
436
437 template <typename T>
438 template <typename U>
439 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator<<=
440 (
441 tvec2<U> const & v
442 )
443 {
444 this->x <<= T(v.x);
445 this->y <<= T(v.y);
446 return *this;
447 }
448
449 template <typename T>
450 template <typename U>
451 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator>>=
452 (
453 U const & s
454 )
455 {
456 this->x >>= T(s);
457 this->y >>= T(s);
458 return *this;
459 }
460
461 template <typename T>
462 template <typename U>
463 GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator>>=
464 (
465 tvec2<U> const & v
466 )
467 {
468 this->x >>= T(v.x);
469 this->y >>= T(v.y);
470 return *this;
471 }
472
473 //////////////////////////////////////
474 // Swizzle operators
475
476 template <typename T>
477 GLM_FUNC_QUALIFIER typename tvec2<T>::value_type tvec2<T>::swizzle
478 (
479 comp x
480 ) const
481 {
482 return (*this)[x];
483 }
484
485 template <typename T>
486 GLM_FUNC_QUALIFIER tvec2<T> tvec2<T>::swizzle
487 (
488 comp x,
489 comp y
490 ) const
491 {
492 return tvec2<T>(
493 (*this)[x],
494 (*this)[y]);
495 }
496
497 template <typename T>
498 GLM_FUNC_QUALIFIER tvec3<T> tvec2<T>::swizzle
499 (
500 comp x,
501 comp y,
502 comp z
503 ) const
504 {
505 return tvec3<T>(
506 (*this)[x],
507 (*this)[y],
508 (*this)[z]);
509 }
510
511 template <typename T>
512 GLM_FUNC_QUALIFIER tvec4<T> tvec2<T>::swizzle
513 (
514 comp x,
515 comp y,
516 comp z,
517 comp w
518 ) const
519 {
520 return tvec4<T>(
521 (*this)[x],
522 (*this)[y],
523 (*this)[z],
524 (*this)[w]);
525 }
526
527 template <typename T>
528 GLM_FUNC_QUALIFIER tref2<T> tvec2<T>::swizzle
529 (
530 comp x,
531 comp y
532 )
533 {
534 return tref2<T>(
535 (*this)[x],
536 (*this)[y]);
537 }
538
539 //////////////////////////////////////
540 // Binary arithmetic operators
541
542 template <typename T>
543 GLM_FUNC_QUALIFIER tvec2<T> operator+
544 (
545 tvec2<T> const & v,
546 T const & s
547 )
548 {
549 return tvec2<T>(
550 v.x + T(s),
551 v.y + T(s));
552 }
553
554 template <typename T>
555 GLM_FUNC_QUALIFIER tvec2<T> operator+
556 (
557 T const & s,
558 tvec2<T> const & v
559 )
560 {
561 return tvec2<T>(
562 T(s) + v.x,
563 T(s) + v.y);
564 }
565
566 template <typename T>
567 GLM_FUNC_QUALIFIER tvec2<T> operator+
568 (
569 tvec2<T> const & v1,
570 tvec2<T> const & v2
571 )
572 {
573 return tvec2<T>(
574 v1.x + T(v2.x),
575 v1.y + T(v2.y));
576 }
577
578 //operator-
579 template <typename T>
580 GLM_FUNC_QUALIFIER tvec2<T> operator-
581 (
582 tvec2<T> const & v,
583 T const & s
584 )
585 {
586 return tvec2<T>(
587 v.x - T(s),
588 v.y - T(s));
589 }
590
591 template <typename T>
592 GLM_FUNC_QUALIFIER tvec2<T> operator-
593 (
594 T const & s,
595 tvec2<T> const & v
596 )
597 {
598 return tvec2<T>(
599 T(s) - v.x,
600 T(s) - v.y);
601 }
602
603 template <typename T>
604 GLM_FUNC_QUALIFIER tvec2<T> operator-
605 (
606 tvec2<T> const & v1,
607 tvec2<T> const & v2
608 )
609 {
610 return tvec2<T>(
611 v1.x - T(v2.x),
612 v1.y - T(v2.y));
613 }
614
615 //operator*
616 template <typename T>
617 GLM_FUNC_QUALIFIER tvec2<T> operator*
618 (
619 tvec2<T> const & v,
620 T const & s
621 )
622 {
623 return tvec2<T>(
624 v.x * T(s),
625 v.y * T(s));
626 }
627
628 template <typename T>
629 GLM_FUNC_QUALIFIER tvec2<T> operator*
630 (
631 T const & s,
632 tvec2<T> const & v
633 )
634 {
635 return tvec2<T>(
636 T(s) * v.x,
637 T(s) * v.y);
638 }
639
640 template <typename T>
641 GLM_FUNC_QUALIFIER tvec2<T> operator*
642 (
643 tvec2<T> const & v1,
644 tvec2<T> const & v2
645 )
646 {
647 return tvec2<T>(
648 v1.x * T(v2.x),
649 v1.y * T(v2.y));
650 }
651
652 //operator/
653 template <typename T>
654 GLM_FUNC_QUALIFIER tvec2<T> operator/
655 (
656 tvec2<T> const & v,
657 T const & s
658 )
659 {
660 return tvec2<T>(
661 v.x / T(s),
662 v.y / T(s));
663 }
664
665 template <typename T>
666 GLM_FUNC_QUALIFIER tvec2<T> operator/
667 (
668 T const & s,
669 tvec2<T> const & v
670 )
671 {
672 return tvec2<T>(
673 T(s) / v.x,
674 T(s) / v.y);
675 }
676
677 template <typename T>
678 GLM_FUNC_QUALIFIER tvec2<T> operator/
679 (
680 tvec2<T> const & v1,
681 tvec2<T> const & v2
682 )
683 {
684 return tvec2<T>(
685 v1.x / T(v2.x),
686 v1.y / T(v2.y));
687 }
688
689 // Unary constant operators
690 template <typename T>
691 GLM_FUNC_QUALIFIER tvec2<T> operator-
692 (
693 tvec2<T> const & v
694 )
695 {
696 return tvec2<T>(
697 -v.x,
698 -v.y);
699 }
700
701 template <typename T>
702 GLM_FUNC_QUALIFIER tvec2<T> operator++
703 (
704 tvec2<T> const & v,
705 int
706 )
707 {
708 return tvec2<T>(
709 v.x + T(1),
710 v.y + T(1));
711 }
712
713 template <typename T>
714 GLM_FUNC_QUALIFIER tvec2<T> operator--
715 (
716 tvec2<T> const & v,
717 int
718 )
719 {
720 return tvec2<T>(
721 v.x - T(1),
722 v.y - T(1));
723 }
724
725 //////////////////////////////////////
726 // Binary bit operators
727
728 template <typename T>
729 GLM_FUNC_QUALIFIER tvec2<T> operator%
730 (
731 tvec2<T> const & v,
732 T const & s
733 )
734 {
735 return tvec2<T>(
736 v.x % T(s),
737 v.y % T(s));
738 }
739
740 template <typename T>
741 GLM_FUNC_QUALIFIER tvec2<T> operator%
742 (
743 T const & s,
744 tvec2<T> const & v
745 )
746 {
747 return tvec2<T>(
748 T(s) % v.x,
749 T(s) % v.y);
750 }
751
752 template <typename T>
753 GLM_FUNC_QUALIFIER tvec2<T> operator%
754 (
755 tvec2<T> const & v1,
756 tvec2<T> const & v2
757 )
758 {
759 return tvec2<T>(
760 v1.x % T(v2.x),
761 v1.y % T(v2.y));
762 }
763
764 template <typename T>
765 GLM_FUNC_QUALIFIER tvec2<T> operator&
766 (
767 tvec2<T> const & v,
768 T const & s
769 )
770 {
771 return tvec2<T>(
772 v.x & T(s),
773 v.y & T(s));
774 }
775
776 template <typename T>
777 GLM_FUNC_QUALIFIER tvec2<T> operator&
778 (
779 T const & s,
780 tvec2<T> const & v
781 )
782 {
783 return tvec2<T>(
784 T(s) & v.x,
785 T(s) & v.y);
786 }
787
788 template <typename T>
789 GLM_FUNC_QUALIFIER tvec2<T> operator&
790 (
791 tvec2<T> const & v1,
792 tvec2<T> const & v2
793 )
794 {
795 return tvec2<T>(
796 v1.x & T(v2.x),
797 v1.y & T(v2.y));
798 }
799
800 template <typename T>
801 GLM_FUNC_QUALIFIER tvec2<T> operator|
802 (
803 tvec2<T> const & v,
804 T const & s
805 )
806 {
807 return tvec2<T>(
808 v.x | T(s),
809 v.y | T(s));
810 }
811
812 template <typename T>
813 GLM_FUNC_QUALIFIER tvec2<T> operator|
814 (
815 T const & s,
816 tvec2<T> const & v
817 )
818 {
819 return tvec2<T>(
820 T(s) | v.x,
821 T(s) | v.y);
822 }
823
824 template <typename T>
825 GLM_FUNC_QUALIFIER tvec2<T> operator|
826 (
827 tvec2<T> const & v1,
828 tvec2<T> const & v2
829 )
830 {
831 return tvec2<T>(
832 v1.x | T(v2.x),
833 v1.y | T(v2.y));
834 }
836835
837 template <typename T>
838 GLM_FUNC_QUALIFIER tvec2<T> operator^
839 (
840 tvec2<T> const & v,
841 T const & s
842 )
843 {
844 return tvec2<T>(
845 v.x ^ T(s),
846 v.y ^ T(s));
847 }
848
849 template <typename T>
850 GLM_FUNC_QUALIFIER tvec2<T> operator^
851 (
852 T const & s,
853 tvec2<T> const & v
854 )
855 {
856 return tvec2<T>(
857 T(s) ^ v.x,
858 T(s) ^ v.y);
859 }
860
861 template <typename T>
862 GLM_FUNC_QUALIFIER tvec2<T> operator^
863 (
864 tvec2<T> const & v1,
865 tvec2<T> const & v2
866 )
867 {
868 return tvec2<T>(
869 v1.x ^ T(v2.x),
870 v1.y ^ T(v2.y));
871 }
872
873 template <typename T>
874 GLM_FUNC_QUALIFIER tvec2<T> operator<<
875 (
876 tvec2<T> const & v,
877 T const & s
878 )
879 {
880 return tvec2<T>(
881 v.x << T(s),
882 v.y << T(s));
883 }
884
885 template <typename T>
886 GLM_FUNC_QUALIFIER tvec2<T> operator<<
887 (
888 T const & s,
889 tvec2<T> const & v
890 )
891 {
892 return tvec2<T>(
893 s << T(v.x),
894 s << T(v.y));
895 }
896
897 template <typename T>
898 GLM_FUNC_QUALIFIER tvec2<T> operator<<
899 (
900 tvec2<T> const & v1,
901 tvec2<T> const & v2
902 )
903 {
904 return tvec2<T>(
905 v1.x << T(v2.x),
906 v1.y << T(v2.y));
907 }
908
909 template <typename T>
910 GLM_FUNC_QUALIFIER tvec2<T> operator>>
911 (
912 tvec2<T> const & v,
913 T const & s
914 )
915 {
916 return tvec2<T>(
917 v.x >> T(s),
918 v.y >> T(s));
919 }
920
921 template <typename T>
922 GLM_FUNC_QUALIFIER tvec2<T> operator>>
923 (
924 T const & s,
925 tvec2<T> const & v
926 )
927 {
928 return tvec2<T>(
929 T(s) >> v.x,
930 T(s) >> v.y);
931 }
932
933 template <typename T>
934 GLM_FUNC_QUALIFIER tvec2<T> operator>>
935 (
936 tvec2<T> const & v1,
937 tvec2<T> const & v2
938 )
939 {
940 return tvec2<T>(
941 v1.x >> T(v2.x),
942 v1.y >> T(v2.y));
943 }
944
945 template <typename T>
946 GLM_FUNC_QUALIFIER tvec2<T> operator~
947 (
948 tvec2<T> const & v
949 )
950 {
951 return tvec2<T>(
952 ~v.x,
953 ~v.y);
954 }
955
956 //////////////////////////////////////
957 // tref definition
958
959 template <typename T>
960 tref2<T>::tref2
961 (
962 T & x,
963 T & y
964 ) :
965 x(x),
966 y(y)
967 {}
968
969 template <typename T>
970 tref2<T>::tref2
971 (
972 tref2<T> const & r
973 ) :
974 x(r.x),
975 y(r.y)
976 {}
977
978 template <typename T>
979 tref2<T>::tref2
980 (
981 tvec2<T> const & v
982 ) :
983 x(v.x),
984 y(v.y)
985 {}
986
987 template <typename T>
988 tref2<T>& tref2<T>::operator=
989 (
990 tref2<T> const & r
991 )
992 {
993 x = r.x;
994 y = r.y;
995 return *this;
996 }
997
998 template <typename T>
999 tref2<T>& tref2<T>::operator=
1000 (
1001 tvec2<T> const & v
1002 )
1003 {
1004 x = v.x;
1005 y = v.y;
1006 return *this;
1007 }
1008
1009 }//namespace detail
836 template <typename T>
837 GLM_FUNC_QUALIFIER tvec2<T> operator^
838 (
839 tvec2<T> const & v,
840 T const & s
841 )
842 {
843 return tvec2<T>(
844 v.x ^ T(s),
845 v.y ^ T(s));
846 }
847
848 template <typename T>
849 GLM_FUNC_QUALIFIER tvec2<T> operator^
850 (
851 T const & s,
852 tvec2<T> const & v
853 )
854 {
855 return tvec2<T>(
856 T(s) ^ v.x,
857 T(s) ^ v.y);
858 }
859
860 template <typename T>
861 GLM_FUNC_QUALIFIER tvec2<T> operator^
862 (
863 tvec2<T> const & v1,
864 tvec2<T> const & v2
865 )
866 {
867 return tvec2<T>(
868 v1.x ^ T(v2.x),
869 v1.y ^ T(v2.y));
870 }
871
872 template <typename T>
873 GLM_FUNC_QUALIFIER tvec2<T> operator<<
874 (
875 tvec2<T> const & v,
876 T const & s
877 )
878 {
879 return tvec2<T>(
880 v.x << T(s),
881 v.y << T(s));
882 }
883
884 template <typename T>
885 GLM_FUNC_QUALIFIER tvec2<T> operator<<
886 (
887 T const & s,
888 tvec2<T> const & v
889 )
890 {
891 return tvec2<T>(
892 s << T(v.x),
893 s << T(v.y));
894 }
895
896 template <typename T>
897 GLM_FUNC_QUALIFIER tvec2<T> operator<<
898 (
899 tvec2<T> const & v1,
900 tvec2<T> const & v2
901 )
902 {
903 return tvec2<T>(
904 v1.x << T(v2.x),
905 v1.y << T(v2.y));
906 }
907
908 template <typename T>
909 GLM_FUNC_QUALIFIER tvec2<T> operator>>
910 (
911 tvec2<T> const & v,
912 T const & s
913 )
914 {
915 return tvec2<T>(
916 v.x >> T(s),
917 v.y >> T(s));
918 }
919
920 template <typename T>
921 GLM_FUNC_QUALIFIER tvec2<T> operator>>
922 (
923 T const & s,
924 tvec2<T> const & v
925 )
926 {
927 return tvec2<T>(
928 T(s) >> v.x,
929 T(s) >> v.y);
930 }
931
932 template <typename T>
933 GLM_FUNC_QUALIFIER tvec2<T> operator>>
934 (
935 tvec2<T> const & v1,
936 tvec2<T> const & v2
937 )
938 {
939 return tvec2<T>(
940 v1.x >> T(v2.x),
941 v1.y >> T(v2.y));
942 }
943
944 template <typename T>
945 GLM_FUNC_QUALIFIER tvec2<T> operator~
946 (
947 tvec2<T> const & v
948 )
949 {
950 return tvec2<T>(
951 ~v.x,
952 ~v.y);
953 }
954
955 //////////////////////////////////////
956 // tref definition
957
958 template <typename T>
959 tref2<T>::tref2
960 (
961 T & x,
962 T & y
963 ) :
964 x(x),
965 y(y)
966 {}
967
968 template <typename T>
969 tref2<T>::tref2
970 (
971 tref2<T> const & r
972 ) :
973 x(r.x),
974 y(r.y)
975 {}
976
977 template <typename T>
978 tref2<T>::tref2
979 (
980 tvec2<T> const & v
981 ) :
982 x(v.x),
983 y(v.y)
984 {}
985
986 template <typename T>
987 tref2<T>& tref2<T>::operator=
988 (
989 tref2<T> const & r
990 )
991 {
992 x = r.x;
993 y = r.y;
994 return *this;
995 }
996
997 template <typename T>
998 tref2<T>& tref2<T>::operator=
999 (
1000 tvec2<T> const & v
1001 )
1002 {
1003 x = v.x;
1004 y = v.y;
1005 return *this;
1006 }
1007
1008 }//namespace detail
10101009 }//namespace glm
1515 #include "type_size.hpp"
1616 #include "_swizzle.hpp"
1717
18 namespace glm
18 namespace glm{
19 namespace detail
1920 {
20 namespace test
21 template <typename T> struct tref2;
22 template <typename T> struct tref3;
23 template <typename T> struct tref4;
24 template <typename T> struct tvec2;
25 template <typename T> struct tvec4;
26
27 //! Basic 3D vector type.
28 //! \ingroup core_template
29 template <typename T>
30 struct tvec3
31 {
32 enum ctor{null};
33
34 typedef T value_type;
35 typedef std::size_t size_type;
36 GLM_FUNC_DECL size_type length() const;
37 static GLM_FUNC_DECL size_type value_size();
38
39 typedef tvec3<T> type;
40 typedef tvec3<bool> bool_type;
41
42 //////////////////////////////////////
43 // Data
44
45 # if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
46 value_type x, y, z;
47 # elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)
48 union
49 {
50 struct{value_type r, g, b;};
51 struct{value_type s, t, p;};
52 struct{value_type x, y, z;};
53 };
54 # else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)
55 union {value_type x, r, s;};
56 union {value_type y, g, t;};
57 union {value_type z, b, p;};
58 # endif//GLM_COMPONENT
59
60 //////////////////////////////////////
61 // Accesses
62
63 GLM_FUNC_DECL value_type & operator[](size_type i);
64 GLM_FUNC_DECL value_type const & operator[](size_type i) const;
65
66 //////////////////////////////////////
67 // Implicit basic constructors
68
69 GLM_FUNC_DECL tvec3();
70 GLM_FUNC_DECL tvec3(tvec3<T> const & v);
71
72 //////////////////////////////////////
73 // Explicit basic constructors
74
75 GLM_FUNC_DECL explicit tvec3(
76 ctor);
77 GLM_FUNC_DECL explicit tvec3(
78 value_type const & s);
79 GLM_FUNC_DECL explicit tvec3(
80 value_type const & s1,
81 value_type const & s2,
82 value_type const & s3);
83
84 //////////////////////////////////////
85 // Swizzle constructors
86
87 GLM_FUNC_DECL tvec3(tref3<T> const & r);
88
89 //////////////////////////////////////
90 // Convertion scalar constructors
91
92 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
93 template <typename U>
94 GLM_FUNC_DECL explicit tvec3(
95 U const & x);
96 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
97 template <typename U, typename V, typename W>
98 GLM_FUNC_DECL explicit tvec3(
99 U const & x,
100 V const & y,
101 W const & z);
102
103 //////////////////////////////////////
104 // Convertion vector constructors
105
106 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
107 template <typename A, typename B>
108 GLM_FUNC_DECL explicit tvec3(tvec2<A> const & v, B const & s);
109 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
110 template <typename A, typename B>
111 GLM_FUNC_DECL explicit tvec3(A const & s, tvec2<B> const & v);
112 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
113 template <typename U>
114 GLM_FUNC_DECL explicit tvec3(tvec3<U> const & v);
115 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
116 template <typename U>
117 GLM_FUNC_DECL explicit tvec3(tvec4<U> const & v);
118
119 //////////////////////////////////////
120 // Unary arithmetic operators
121
122 GLM_FUNC_DECL tvec3<T> & operator= (tvec3<T> const & v);
123 template <typename U>
124 GLM_FUNC_DECL tvec3<T> & operator= (tvec3<U> const & v);
125
126 template <typename U>
127 GLM_FUNC_DECL tvec3<T> & operator+=(U const & s);
128 template <typename U>
129 GLM_FUNC_DECL tvec3<T> & operator+=(tvec3<U> const & v);
130 template <typename U>
131 GLM_FUNC_DECL tvec3<T> & operator-=(U const & s);
132 template <typename U>
133 GLM_FUNC_DECL tvec3<T> & operator-=(tvec3<U> const & v);
134 template <typename U>
135 GLM_FUNC_DECL tvec3<T> & operator*=(U const & s);
136 template <typename U>
137 GLM_FUNC_DECL tvec3<T> & operator*=(tvec3<U> const & v);
138 template <typename U>
139 GLM_FUNC_DECL tvec3<T> & operator/=(U const & s);
140 template <typename U>
141 GLM_FUNC_DECL tvec3<T> & operator/=(tvec3<U> const & v);
142 GLM_FUNC_DECL tvec3<T> & operator++();
143 GLM_FUNC_DECL tvec3<T> & operator--();
144
145 //////////////////////////////////////
146 // Unary bit operators
147
148 template <typename U>
149 GLM_FUNC_DECL tvec3<T> & operator%= (U const & s);
150 template <typename U>
151 GLM_FUNC_DECL tvec3<T> & operator%= (tvec3<U> const & v);
152 template <typename U>
153 GLM_FUNC_DECL tvec3<T> & operator&= (U const & s);
154 template <typename U>
155 GLM_FUNC_DECL tvec3<T> & operator&= (tvec3<U> const & v);
156 template <typename U>
157 GLM_FUNC_DECL tvec3<T> & operator|= (U const & s);
158 template <typename U>
159 GLM_FUNC_DECL tvec3<T> & operator|= (tvec3<U> const & v);
160 template <typename U>
161 GLM_FUNC_DECL tvec3<T> & operator^= (U const & s);
162 template <typename U>
163 GLM_FUNC_DECL tvec3<T> & operator^= (tvec3<U> const & v);
164 template <typename U>
165 GLM_FUNC_DECL tvec3<T> & operator<<=(U const & s);
166 template <typename U>
167 GLM_FUNC_DECL tvec3<T> & operator<<=(tvec3<U> const & v);
168 template <typename U>
169 GLM_FUNC_DECL tvec3<T> & operator>>=(U const & s);
170 template <typename U>
171 GLM_FUNC_DECL tvec3<T> & operator>>=(tvec3<U> const & v);
172
173 //////////////////////////////////////
174 // Swizzle operators
175
176 GLM_FUNC_DECL value_type swizzle(comp X) const;
177 GLM_FUNC_DECL tvec2<T> swizzle(comp X, comp Y) const;
178 GLM_FUNC_DECL tvec3<T> swizzle(comp X, comp Y, comp Z) const;
179 GLM_FUNC_DECL tvec4<T> swizzle(comp X, comp Y, comp Z, comp W) const;
180 GLM_FUNC_DECL tref2<T> swizzle(comp X, comp Y);
181 GLM_FUNC_DECL tref3<T> swizzle(comp X, comp Y, comp Z);
182 };
183
184 template <typename T>
185 struct tref3
21186 {
22 void main_vec3();
23 }//namespace test
24
25 namespace detail
26 {
27 template <typename T> struct tref2;
28 template <typename T> struct tref3;
29 template <typename T> struct tref4;
30 template <typename T> struct tvec2;
31 template <typename T> struct tvec4;
32
33 //! Basic 3D vector type.
34 //! \ingroup core_template
35 template <typename T>
36 struct tvec3
37 {
38 enum ctor{null};
39
40 typedef T value_type;
41 typedef std::size_t size_type;
42 GLM_FUNC_DECL size_type length() const;
43 static GLM_FUNC_DECL size_type value_size();
44
45 typedef tvec3<T> type;
46 typedef tvec3<bool> bool_type;
47
48 //////////////////////////////////////
49 // Data
50
51 # if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
52 value_type x, y, z;
53 # elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)
54 union
55 {
56 struct{value_type x, y, z;};
57 struct{value_type r, g, b;};
58 struct{value_type s, t, p;};
59 };
60 # else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)
61 union {value_type x, r, s;};
62 union {value_type y, g, t;};
63 union {value_type z, b, p;};
64 # endif//GLM_COMPONENT
65
66 //////////////////////////////////////
67 // Accesses
68
69 GLM_FUNC_DECL value_type & operator[](size_type i);
70 GLM_FUNC_DECL value_type const & operator[](size_type i) const;
71
72 //////////////////////////////////////
73 // Implicit basic constructors
74
75 GLM_FUNC_DECL tvec3();
76 GLM_FUNC_DECL tvec3(tvec3<T> const & v);
77
78 //////////////////////////////////////
79 // Explicit basic constructors
80
81 GLM_FUNC_DECL explicit tvec3(
82 ctor);
83 GLM_FUNC_DECL explicit tvec3(
84 value_type const & s);
85 GLM_FUNC_DECL explicit tvec3(
86 value_type const & s1,
87 value_type const & s2,
88 value_type const & s3);
89
90 //////////////////////////////////////
91 // Swizzle constructors
92
93 GLM_FUNC_DECL tvec3(tref3<T> const & r);
94
95 //////////////////////////////////////
96 // Convertion scalar constructors
97
98 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
99 template <typename U>
100 GLM_FUNC_DECL explicit tvec3(
101 U const & x);
102 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
103 template <typename U, typename V, typename W>
104 GLM_FUNC_DECL explicit tvec3(
105 U const & x,
106 V const & y,
107 W const & z);
108
109 //////////////////////////////////////
110 // Convertion vector constructors
111
112 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
113 template <typename A, typename B>
114 GLM_FUNC_DECL explicit tvec3(tvec2<A> const & v, B const & s);
115 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
116 template <typename A, typename B>
117 GLM_FUNC_DECL explicit tvec3(A const & s, tvec2<B> const & v);
118 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
119 template <typename U>
120 GLM_FUNC_DECL explicit tvec3(tvec3<U> const & v);
121 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
122 template <typename U>
123 GLM_FUNC_DECL explicit tvec3(tvec4<U> const & v);
124
125 //////////////////////////////////////
126 // Unary arithmetic operators
127
128 GLM_FUNC_DECL tvec3<T> & operator= (tvec3<T> const & v);
129 template <typename U>
130 GLM_FUNC_DECL tvec3<T> & operator= (tvec3<U> const & v);
131
132 template <typename U>
133 GLM_FUNC_DECL tvec3<T> & operator+=(U const & s);
134 template <typename U>
135 GLM_FUNC_DECL tvec3<T> & operator+=(tvec3<U> const & v);
136 template <typename U>
137 GLM_FUNC_DECL tvec3<T> & operator-=(U const & s);
138 template <typename U>
139 GLM_FUNC_DECL tvec3<T> & operator-=(tvec3<U> const & v);
140 template <typename U>
141 GLM_FUNC_DECL tvec3<T> & operator*=(U const & s);
142 template <typename U>
143 GLM_FUNC_DECL tvec3<T> & operator*=(tvec3<U> const & v);
144 template <typename U>
145 GLM_FUNC_DECL tvec3<T> & operator/=(U const & s);
146 template <typename U>
147 GLM_FUNC_DECL tvec3<T> & operator/=(tvec3<U> const & v);
148 GLM_FUNC_DECL tvec3<T> & operator++();
149 GLM_FUNC_DECL tvec3<T> & operator--();
150
151 //////////////////////////////////////
152 // Unary bit operators
153
154 template <typename U>
155 GLM_FUNC_DECL tvec3<T> & operator%= (U const & s);
156 template <typename U>
157 GLM_FUNC_DECL tvec3<T> & operator%= (tvec3<U> const & v);
158 template <typename U>
159 GLM_FUNC_DECL tvec3<T> & operator&= (U const & s);
160 template <typename U>
161 GLM_FUNC_DECL tvec3<T> & operator&= (tvec3<U> const & v);
162 template <typename U>
163 GLM_FUNC_DECL tvec3<T> & operator|= (U const & s);
164 template <typename U>
165 GLM_FUNC_DECL tvec3<T> & operator|= (tvec3<U> const & v);
166 template <typename U>
167 GLM_FUNC_DECL tvec3<T> & operator^= (U const & s);
168 template <typename U>
169 GLM_FUNC_DECL tvec3<T> & operator^= (tvec3<U> const & v);
170 template <typename U>
171 GLM_FUNC_DECL tvec3<T> & operator<<=(U const & s);
172 template <typename U>
173 GLM_FUNC_DECL tvec3<T> & operator<<=(tvec3<U> const & v);
174 template <typename U>
175 GLM_FUNC_DECL tvec3<T> & operator>>=(U const & s);
176 template <typename U>
177 GLM_FUNC_DECL tvec3<T> & operator>>=(tvec3<U> const & v);
178
179 //////////////////////////////////////
180 // Swizzle operators
181
182 GLM_FUNC_DECL value_type swizzle(comp X) const;
183 GLM_FUNC_DECL tvec2<T> swizzle(comp X, comp Y) const;
184 GLM_FUNC_DECL tvec3<T> swizzle(comp X, comp Y, comp Z) const;
185 GLM_FUNC_DECL tvec4<T> swizzle(comp X, comp Y, comp Z, comp W) const;
186 GLM_FUNC_DECL tref3<T> swizzle(comp X, comp Y, comp Z);
187 };
188
189 template <typename T>
190 struct tref3
191 {
192 GLM_FUNC_DECL tref3(T & x, T & y, T & z);
193 GLM_FUNC_DECL tref3(tref3<T> const & r);
194 GLM_FUNC_DECL tref3(tvec3<T> const & v);
195
196 GLM_FUNC_DECL tref3<T> & operator= (tref3<T> const & r);
197 GLM_FUNC_DECL tref3<T> & operator= (tvec3<T> const & v);
198
199 T & x;
200 T & y;
201 T & z;
202 };
203
204 GLM_DETAIL_IS_VECTOR(tvec3);
205 } //namespace detail
206
207 namespace core{
208 namespace type{
209
210 namespace precision
211 {
212 //! 3 components vector of high precision floating-point numbers.
213 //! There is no guarantee on the actual precision.
214 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
215 //! \ingroup core_precision
216 typedef detail::tvec3<highp_float> highp_vec3;
217 //! 3 components vector of medium precision floating-point numbers.
218 //! There is no guarantee on the actual precision.
219 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
220 //! \ingroup core_precision
221 typedef detail::tvec3<mediump_float> mediump_vec3;
222 //! 3 components vector of low precision floating-point numbers.
223 //! There is no guarantee on the actual precision.
224 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
225 //! \ingroup core_precision
226 typedef detail::tvec3<lowp_float> lowp_vec3;
227
228 //! 3 components vector of high precision signed integer numbers.
229 //! There is no guarantee on the actual precision.
230 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
231 //! \ingroup core_precision
232 typedef detail::tvec3<highp_int> highp_ivec3;
233 //! 3 components vector of medium precision signed integer numbers.
234 //! There is no guarantee on the actual precision.
235 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
236 //! \ingroup core_precision
237 typedef detail::tvec3<mediump_int> mediump_ivec3;
238 //! 3 components vector of low precision signed integer numbers.
239 //! There is no guarantee on the actual precision.
240 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
241 //! \ingroup core_precision
242 typedef detail::tvec3<lowp_int> lowp_ivec3;
243
244 //! 3 components vector of high precision unsigned integer numbers.
245 //! There is no guarantee on the actual precision.
246 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
247 //! \ingroup core_precision
248 typedef detail::tvec3<highp_uint> highp_uvec3;
249 //! 3 components vector of medium precision unsigned integer numbers.
250 //! There is no guarantee on the actual precision.
251 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
252 //! \ingroup core_precision
253 typedef detail::tvec3<mediump_uint> mediump_uvec3;
254 //! 3 components vector of low precision unsigned integer numbers.
255 //! There is no guarantee on the actual precision.
256 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
257 //! \ingroup core_precision
258 typedef detail::tvec3<lowp_uint> lowp_uvec3;
259 }
260 //namespace precision
261
262 }//namespace type
263 }//namespace core
187 GLM_FUNC_DECL tref3(T & x, T & y, T & z);
188 GLM_FUNC_DECL tref3(tref3<T> const & r);
189 GLM_FUNC_DECL tref3(tvec3<T> const & v);
190
191 GLM_FUNC_DECL tref3<T> & operator= (tref3<T> const & r);
192 GLM_FUNC_DECL tref3<T> & operator= (tvec3<T> const & v);
193
194 T & x;
195 T & y;
196 T & z;
197 };
198
199 GLM_DETAIL_IS_VECTOR(tvec3);
200 } //namespace detail
201
202 namespace core{
203 namespace type{
204 namespace precision
205 {
206 //! 3 components vector of high precision floating-point numbers.
207 //! There is no guarantee on the actual precision.
208 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
209 //! \ingroup core_precision
210 typedef detail::tvec3<highp_float> highp_vec3;
211
212 //! 3 components vector of medium precision floating-point numbers.
213 //! There is no guarantee on the actual precision.
214 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
215 //! \ingroup core_precision
216 typedef detail::tvec3<mediump_float> mediump_vec3;
217
218 //! 3 components vector of low precision floating-point numbers.
219 //! There is no guarantee on the actual precision.
220 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
221 //! \ingroup core_precision
222 typedef detail::tvec3<lowp_float> lowp_vec3;
223
224 //! 3 components vector of high precision signed integer numbers.
225 //! There is no guarantee on the actual precision.
226 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
227 //! \ingroup core_precision
228 typedef detail::tvec3<highp_int> highp_ivec3;
229
230 //! 3 components vector of medium precision signed integer numbers.
231 //! There is no guarantee on the actual precision.
232 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
233 //! \ingroup core_precision
234 typedef detail::tvec3<mediump_int> mediump_ivec3;
235
236 //! 3 components vector of low precision signed integer numbers.
237 //! There is no guarantee on the actual precision.
238 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
239 //! \ingroup core_precision
240 typedef detail::tvec3<lowp_int> lowp_ivec3;
241
242 //! 3 components vector of high precision unsigned integer numbers.
243 //! There is no guarantee on the actual precision.
244 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
245 //! \ingroup core_precision
246 typedef detail::tvec3<highp_uint> highp_uvec3;
247
248 //! 3 components vector of medium precision unsigned integer numbers.
249 //! There is no guarantee on the actual precision.
250 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
251 //! \ingroup core_precision
252 typedef detail::tvec3<mediump_uint> mediump_uvec3;
253
254 //! 3 components vector of low precision unsigned integer numbers.
255 //! There is no guarantee on the actual precision.
256 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
257 //! \ingroup core_precision
258 typedef detail::tvec3<lowp_uint> lowp_uvec3;
259
260 }//namespace precision
261 }//namespace type
262 }//namespace core
264263 }//namespace glm
265264
266265 #ifndef GLM_EXTERNAL_TEMPLATE
267266 #include "type_vec3.inl"
268 #endif
267 #endif//GLM_EXTERNAL_TEMPLATE
269268
270269 #endif//glm_core_type_gentype3
66 // File : glm/core/type_tvec3.inl
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
88
9 namespace glm
9 namespace glm{
10 namespace detail
1011 {
11 namespace detail
12 {
13 template <typename T>
14 GLM_FUNC_QUALIFIER typename tvec3<T>::size_type tvec3<T>::length() const
15 {
16 return 3;
17 }
18
19 template <typename T>
20 GLM_FUNC_QUALIFIER typename tvec3<T>::size_type tvec3<T>::value_size()
21 {
22 return 3;
23 }
24
25 //////////////////////////////////////
26 // Accesses
27
28 template <typename T>
29 GLM_FUNC_QUALIFIER typename tvec3<T>::value_type &
30 tvec3<T>::operator[]
31 (
32 size_type i
33 )
34 {
35 assert(i < value_size());
36 return (&x)[i];
37 }
38
39 template <typename T>
40 GLM_FUNC_QUALIFIER typename tvec3<T>::value_type const &
41 tvec3<T>::operator[]
42 (
43 size_type i
44 ) const
45 {
46 assert(i < value_size());
47 return (&x)[i];
48 }
49
50 //////////////////////////////////////
51 // Implicit basic constructors
52
53 template <typename T>
54 GLM_FUNC_QUALIFIER tvec3<T>::tvec3() :
55 x(value_type(0)),
56 y(value_type(0)),
57 z(value_type(0))
58 {}
59
60 template <typename T>
61 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
62 (
63 ctor
64 )
65 {}
66
67 template <typename T>
68 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
69 (
70 tvec3<T> const & v
71 ) :
72 x(v.x),
73 y(v.y),
74 z(v.z)
75 {}
76
77 //////////////////////////////////////
78 // Explicit basic constructors
79
80 template <typename T>
81 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
82 (
83 value_type const & s
84 ) :
85 x(s),
86 y(s),
87 z(s)
88 {}
89
90 template <typename T>
91 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
92 (
93 value_type const & s0,
94 value_type const & s1,
95 value_type const & s2
96 ) :
97 x(s0),
98 y(s1),
99 z(s2)
100 {}
101
102 //////////////////////////////////////
103 // Swizzle constructors
104
105 template <typename T>
106 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
107 (
108 tref3<T> const & r
109 ) :
110 x(r.x),
111 y(r.y),
112 z(r.z)
113 {}
114
115 //////////////////////////////////////
116 // Convertion scalar constructors
12 template <typename T>
13 GLM_FUNC_QUALIFIER typename tvec3<T>::size_type tvec3<T>::length() const
14 {
15 return 3;
16 }
17
18 template <typename T>
19 GLM_FUNC_QUALIFIER typename tvec3<T>::size_type tvec3<T>::value_size()
20 {
21 return 3;
22 }
23
24 //////////////////////////////////////
25 // Accesses
26
27 template <typename T>
28 GLM_FUNC_QUALIFIER typename tvec3<T>::value_type &
29 tvec3<T>::operator[]
30 (
31 size_type i
32 )
33 {
34 assert(i < value_size());
35 return (&x)[i];
36 }
37
38 template <typename T>
39 GLM_FUNC_QUALIFIER typename tvec3<T>::value_type const &
40 tvec3<T>::operator[]
41 (
42 size_type i
43 ) const
44 {
45 assert(i < value_size());
46 return (&x)[i];
47 }
48
49 //////////////////////////////////////
50 // Implicit basic constructors
51
52 template <typename T>
53 GLM_FUNC_QUALIFIER tvec3<T>::tvec3() :
54 x(value_type(0)),
55 y(value_type(0)),
56 z(value_type(0))
57 {}
58
59 template <typename T>
60 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
61 (
62 ctor
63 )
64 {}
65
66 template <typename T>
67 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
68 (
69 tvec3<T> const & v
70 ) :
71 x(v.x),
72 y(v.y),
73 z(v.z)
74 {}
75
76 //////////////////////////////////////
77 // Explicit basic constructors
78
79 template <typename T>
80 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
81 (
82 value_type const & s
83 ) :
84 x(s),
85 y(s),
86 z(s)
87 {}
88
89 template <typename T>
90 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
91 (
92 value_type const & s0,
93 value_type const & s1,
94 value_type const & s2
95 ) :
96 x(s0),
97 y(s1),
98 z(s2)
99 {}
100
101 //////////////////////////////////////
102 // Swizzle constructors
103
104 template <typename T>
105 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
106 (
107 tref3<T> const & r
108 ) :
109 x(r.x),
110 y(r.y),
111 z(r.z)
112 {}
113
114 //////////////////////////////////////
115 // Convertion scalar constructors
117116
118 template <typename T>
119 template <typename U>
120 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
121 (
122 U const & s
123 ) :
124 x(value_type(s)),
125 y(value_type(s)),
126 z(value_type(s))
127 {}
128
129 template <typename T>
130 template <typename A, typename B, typename C>
131 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
132 (
133 A const & x,
134 B const & y,
135 C const & z
136 ) :
137 x(value_type(x)),
138 y(value_type(y)),
139 z(value_type(z))
140 {}
141
142 //////////////////////////////////////
143 // Convertion vector constructors
144
145 template <typename T>
146 template <typename A, typename B>
147 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
148 (
149 tvec2<A> const & v,
150 B const & s
151 ) :
152 x(value_type(v.x)),
153 y(value_type(v.y)),
154 z(value_type(s))
155 {}
156
157 template <typename T>
158 template <typename A, typename B>
159 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
160 (
161 A const & s,
162 tvec2<B> const & v
163 ) :
164 x(value_type(s)),
165 y(value_type(v.x)),
166 z(value_type(v.y))
167 {}
168
169 template <typename T>
170 template <typename U>
171 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
172 (
173 tvec3<U> const & v
174 ) :
175 x(value_type(v.x)),
176 y(value_type(v.y)),
177 z(value_type(v.z))
178 {}
179
180 template <typename T>
181 template <typename U>
182 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
183 (
184 tvec4<U> const & v
185 ) :
186 x(value_type(v.x)),
187 y(value_type(v.y)),
188 z(value_type(v.z))
189 {}
190
191 //////////////////////////////////////
192 // Unary arithmetic operators
193
194 template <typename T>
195 GLM_FUNC_QUALIFIER tvec3<T>& tvec3<T>::operator=
196 (
197 tvec3<T> const & v
198 )
199 {
200 this->x = v.x;
201 this->y = v.y;
202 this->z = v.z;
203 return *this;
204 }
205
206 template <typename T>
207 template <typename U>
208 GLM_FUNC_QUALIFIER tvec3<T>& tvec3<T>::operator=
209 (
210 tvec3<U> const & v
211 )
212 {
213 this->x = T(v.x);
214 this->y = T(v.y);
215 this->z = T(v.z);
216 return *this;
217 }
218
219 template <typename T>
220 template <typename U>
221 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator+=
222 (
223 U const & s
224 )
225 {
226 this->x += T(s);
227 this->y += T(s);
228 this->z += T(s);
229 return *this;
230 }
231
232 template <typename T>
233 template <typename U>
234 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator+=
235 (
236 tvec3<U> const & v
237 )
238 {
239 this->x += T(v.x);
240 this->y += T(v.y);
241 this->z += T(v.z);
242 return *this;
243 }
244
245 template <typename T>
246 template <typename U>
247 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator-=
248 (
249 U const & s
250 )
251 {
252 this->x -= T(s);
253 this->y -= T(s);
254 this->z -= T(s);
255 return *this;
256 }
257
258 template <typename T>
259 template <typename U>
260 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator-=
261 (
262 tvec3<U> const & v
263 )
264 {
265 this->x -= T(v.x);
266 this->y -= T(v.y);
267 this->z -= T(v.z);
268 return *this;
269 }
270
271 template <typename T>
272 template <typename U>
273 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator*=
274 (
275 U const & s
276 )
277 {
278 this->x *= T(s);
279 this->y *= T(s);
280 this->z *= T(s);
281 return *this;
282 }
283
284 template <typename T>
285 template <typename U>
286 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator*=
287 (
288 tvec3<U> const & v
289 )
290 {
291 this->x *= T(v.x);
292 this->y *= T(v.y);
293 this->z *= T(v.z);
294 return *this;
295 }
296
297 template <typename T>
298 template <typename U>
299 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator/=
300 (
301 U const & s
302 )
303 {
304 this->x /= T(s);
305 this->y /= T(s);
306 this->z /= T(s);
307 return *this;
308 }
309
310 template <typename T>
311 template <typename U>
312 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator/=
313 (
314 tvec3<U> const & v
315 )
316 {
317 this->x /= T(v.x);
318 this->y /= T(v.y);
319 this->z /= T(v.z);
320 return *this;
321 }
322
323 template <typename T>
324 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator++()
325 {
326 ++this->x;
327 ++this->y;
328 ++this->z;
329 return *this;
330 }
331
332 template <typename T>
333 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator--()
334 {
335 --this->x;
336 --this->y;
337 --this->z;
338 return *this;
339 }
340
341 //////////////////////////////////////
342 // Boolean operators
343
344 template <typename T>
345 GLM_FUNC_QUALIFIER bool operator==
346 (
347 tvec3<T> const & v1,
348 tvec3<T> const & v2
349 )
350 {
351 return (v1.x == v2.x) && (v1.y == v2.y) && (v1.z == v2.z);
352 }
353
354 template <typename T>
355 GLM_FUNC_QUALIFIER bool operator!=
356 (
357 tvec3<T> const & v1,
358 tvec3<T> const & v2
359 )
360 {
361 return (v1.x != v2.x) || (v1.y != v2.y) || (v1.z != v2.z);
362 }
363
364 //////////////////////////////////////
365 // Unary bit operators
366
367 template <typename T>
368 template <typename U>
369 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator%=
370 (
371 U const & s
372 )
373 {
374 this->x %= s;
375 this->y %= s;
376 this->z %= s;
377 return *this;
378 }
379
380 template <typename T>
381 template <typename U>
382 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator%=
383 (
384 tvec3<U> const & v
385 )
386 {
387 this->x %= v.x;
388 this->y %= v.y;
389 this->z %= v.z;
390 return *this;
391 }
392
393 template <typename T>
394 template <typename U>
395 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator&=
396 (
397 U const & s
398 )
399 {
400 this->x &= s;
401 this->y &= s;
402 this->z &= s;
403 return *this;
404 }
405
406 template <typename T>
407 template <typename U>
408 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator&=
409 (
410 tvec3<U> const & v
411 )
412 {
413 this->x &= v.x;
414 this->y &= v.y;
415 this->z &= v.z;
416 return *this;
417 }
418
419 template <typename T>
420 template <typename U>
421 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator|=
422 (
423 U const & s
424 )
425 {
426 this->x |= s;
427 this->y |= s;
428 this->z |= s;
429 return *this;
430 }
431
432 template <typename T>
433 template <typename U>
434 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator|=
435 (
436 tvec3<U> const & v
437 )
438 {
439 this->x |= v.x;
440 this->y |= v.y;
441 this->z |= v.z;
442 return *this;
443 }
444
445 template <typename T>
446 template <typename U>
447 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator^=
448 (
449 U const & s
450 )
451 {
452 this->x ^= s;
453 this->y ^= s;
454 this->z ^= s;
455 return *this;
456 }
457
458 template <typename T>
459 template <typename U>
460 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator^=
461 (
462 tvec3<U> const & v
463 )
464 {
465 this->x ^= v.x;
466 this->y ^= v.y;
467 this->z ^= v.z;
468 return *this;
469 }
470
471 template <typename T>
472 template <typename U>
473 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator<<=
474 (
475 U const & s
476 )
477 {
478 this->x <<= s;
479 this->y <<= s;
480 this->z <<= s;
481 return *this;
482 }
483
484 template <typename T>
485 template <typename U>
486 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator<<=
487 (
488 tvec3<U> const & v
489 )
490 {
491 this->x <<= T(v.x);
492 this->y <<= T(v.y);
493 this->z <<= T(v.z);
494 return *this;
495 }
496
497 template <typename T>
498 template <typename U>
499 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator>>=
500 (
501 U const & s
502 )
503 {
504 this->x >>= T(s);
505 this->y >>= T(s);
506 this->z >>= T(s);
507 return *this;
508 }
509
510 template <typename T>
511 template <typename U>
512 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator>>=
513 (
514 tvec3<U> const & v
515 )
516 {
517 this->x >>= T(v.x);
518 this->y >>= T(v.y);
519 this->z >>= T(v.z);
520 return *this;
521 }
522
523 //////////////////////////////////////
524 // Swizzle operators
525
526 template <typename T>
527 GLM_FUNC_QUALIFIER typename tvec3<T>::value_type
528 tvec3<T>::swizzle
529 (
530 comp x
531 ) const
532 {
533 return (*this)[x];
534 }
535
536 template <typename T>
537 GLM_FUNC_QUALIFIER tvec2<T> tvec3<T>::swizzle
538 (
539 comp x,
540 comp y
541 ) const
542 {
543 return tvec2<T>(
544 (*this)[x],
545 (*this)[y]);
546 }
547
548 template <typename T>
549 GLM_FUNC_QUALIFIER tvec3<T> tvec3<T>::swizzle
550 (
551 comp x,
552 comp y,
553 comp z
554 ) const
555 {
556 return tvec3<T>(
557 (*this)[x],
558 (*this)[y],
559 (*this)[z]);
560 }
561
562 template <typename T>
563 GLM_FUNC_QUALIFIER tvec4<T> tvec3<T>::swizzle
564 (
565 comp x,
566 comp y,
567 comp z,
568 comp w
569 ) const
570 {
571 return tvec4<T>(
572 (*this)[x],
573 (*this)[y],
574 (*this)[z],
575 (*this)[w]);
576 }
577
578 template <typename T>
579 GLM_FUNC_QUALIFIER tref3<T> tvec3<T>::swizzle
580 (
581 comp x,
582 comp y,
583 comp z
584 )
585 {
586 return tref3<T>(
587 (*this)[x],
588 (*this)[y],
589 (*this)[z]);
590 }
591
592 //////////////////////////////////////
593 // Binary arithmetic operators
594
595 template <typename T>
596 GLM_FUNC_QUALIFIER tvec3<T> operator+
597 (
598 tvec3<T> const & v,
599 T const & s
600 )
601 {
602 return tvec3<T>(
603 v.x + T(s),
604 v.y + T(s),
605 v.z + T(s));
606 }
607
608 template <typename T>
609 GLM_FUNC_QUALIFIER tvec3<T> operator+
610 (
611 T const & s,
612 tvec3<T> const & v
613 )
614 {
615 return tvec3<T>(
616 T(s) + v.x,
617 T(s) + v.y,
618 T(s) + v.z);
619 }
620
621 template <typename T>
622 GLM_FUNC_QUALIFIER tvec3<T> operator+
623 (
624 tvec3<T> const & v1,
625 tvec3<T> const & v2
626 )
627 {
628 return tvec3<T>(
629 v1.x + T(v2.x),
630 v1.y + T(v2.y),
631 v1.z + T(v2.z));
632 }
633
634 //operator-
635 template <typename T>
636 GLM_FUNC_QUALIFIER tvec3<T> operator-
637 (
638 tvec3<T> const & v,
639 T const & s
640 )
641 {
642 return tvec3<T>(
643 v.x - T(s),
644 v.y - T(s),
645 v.z - T(s));
646 }
647
648 template <typename T>
649 GLM_FUNC_QUALIFIER tvec3<T> operator-
650 (
651 T const & s,
652 tvec3<T> const & v
653 )
654 {
655 return tvec3<T>(
656 T(s) - v.x,
657 T(s) - v.y,
658 T(s) - v.z);
659 }
660
661 template <typename T>
662 GLM_FUNC_QUALIFIER tvec3<T> operator-
663 (
664 tvec3<T> const & v1,
665 tvec3<T> const & v2
666 )
667 {
668 return tvec3<T>(
669 v1.x - T(v2.x),
670 v1.y - T(v2.y),
671 v1.z - T(v2.z));
672 }
673
674 //operator*
675 template <typename T>
676 GLM_FUNC_QUALIFIER tvec3<T> operator*
677 (
678 tvec3<T> const & v,
679 T const & s
680 )
681 {
682 return tvec3<T>(
683 v.x * T(s),
684 v.y * T(s),
685 v.z * T(s));
686 }
687
688 template <typename T>
689 GLM_FUNC_QUALIFIER tvec3<T> operator*
690 (
691 T const & s,
692 tvec3<T> const & v
693 )
694 {
695 return tvec3<T>(
696 T(s) * v.x,
697 T(s) * v.y,
698 T(s) * v.z);
699 }
700
701 template <typename T>
702 GLM_FUNC_QUALIFIER tvec3<T> operator*
703 (
704 tvec3<T> const & v1,
705 tvec3<T> const & v2
706 )
707 {
708 return tvec3<T>(
709 v1.x * T(v2.x),
710 v1.y * T(v2.y),
711 v1.z * T(v2.z));
712 }
713
714 //operator/
715 template <typename T>
716 GLM_FUNC_QUALIFIER tvec3<T> operator/
717 (
718 tvec3<T> const & v,
719 T const & s
720 )
721 {
722 return tvec3<T>(
723 v.x / T(s),
724 v.y / T(s),
725 v.z / T(s));
726 }
727
728 template <typename T>
729 GLM_FUNC_QUALIFIER tvec3<T> operator/
730 (
731 T const & s,
732 tvec3<T> const & v
733 )
734 {
735 return tvec3<T>(
736 T(s) / v.x,
737 T(s) / v.y,
738 T(s) / v.z);
739 }
740
741 template <typename T>
742 GLM_FUNC_QUALIFIER tvec3<T> operator/
743 (
744 tvec3<T> const & v1,
745 tvec3<T> const & v2
746 )
747 {
748 return tvec3<T>(
749 v1.x / T(v2.x),
750 v1.y / T(v2.y),
751 v1.z / T(v2.z));
752 }
753
754 // Unary constant operators
755 template <typename T>
756 GLM_FUNC_QUALIFIER tvec3<T> operator-
757 (
758 tvec3<T> const & v
759 )
760 {
761 return tvec3<T>(
762 -v.x,
763 -v.y,
764 -v.z);
765 }
766
767 template <typename T>
768 GLM_FUNC_QUALIFIER tvec3<T> operator++
769 (
770 tvec3<T> const & v,
771 int
772 )
773 {
774 return tvec3<T>(
775 v.x + T(1),
776 v.y + T(1),
777 v.z + T(1));
778 }
779
780 template <typename T>
781 GLM_FUNC_QUALIFIER tvec3<T> operator--
782 (
783 tvec3<T> const & v,
784 int
785 )
786 {
787 return tvec3<T>(
788 v.x - T(1),
789 v.y - T(1),
790 v.z - T(1));
791 }
792
793 //////////////////////////////////////
794 // Binary bit operators
795
796 template <typename T>
797 GLM_FUNC_QUALIFIER tvec3<T> operator%
798 (
799 tvec3<T> const & v,
800 T const & s
801 )
802 {
803 return tvec3<T>(
804 v.x % T(s),
805 v.y % T(s),
806 v.z % T(s));
807 }
808
809 template <typename T>
810 GLM_FUNC_QUALIFIER tvec3<T> operator%
811 (
812 T const & s,
813 tvec3<T> const & v
814 )
815 {
816 return tvec3<T>(
817 T(s) % v.x,
818 T(s) % v.y,
819 T(s) % v.z);
820 }
821
822 template <typename T>
823 GLM_FUNC_QUALIFIER tvec3<T> operator%
824 (
825 tvec3<T> const & v1,
826 tvec3<T> const & v2
827 )
828 {
829 return tvec3<T>(
830 v1.x % T(v2.x),
831 v1.y % T(v2.y),
832 v1.z % T(v2.z));
833 }
834
835 template <typename T>
836 GLM_FUNC_QUALIFIER tvec3<T> operator&
837 (
838 tvec3<T> const & v,
839 T const & s
840 )
841 {
842 return tvec3<T>(
843 v.x & T(s),
844 v.y & T(s),
845 v.z & T(s));
846 }
847
848 template <typename T>
849 GLM_FUNC_QUALIFIER tvec3<T> operator&
850 (
851 T const & s,
852 tvec3<T> const & v
853 )
854 {
855 return tvec3<T>(
856 T(s) & v.x,
857 T(s) & v.y,
858 T(s) & v.z);
859 }
860
861 template <typename T>
862 GLM_FUNC_QUALIFIER tvec3<T> operator&
863 (
864 tvec3<T> const & v1,
865 tvec3<T> const & v2
866 )
867 {
868 return tvec3<T>(
869 v1.x & T(v2.x),
870 v1.y & T(v2.y),
871 v1.z & T(v2.z));
872 }
873
874 template <typename T>
875 GLM_FUNC_QUALIFIER tvec3<T> operator|
876 (
877 tvec3<T> const & v,
878 T const & s
879 )
880 {
881 return tvec3<T>(
882 v.x | T(s),
883 v.y | T(s),
884 v.z | T(s));
885 }
886
887 template <typename T>
888 GLM_FUNC_QUALIFIER tvec3<T> operator|
889 (
890 T const & s,
891 tvec3<T> const & v
892 )
893 {
894 return tvec3<T>(
895 T(s) | v.x,
896 T(s) | v.y,
897 T(s) | v.z);
898 }
899
900 template <typename T>
901 GLM_FUNC_QUALIFIER tvec3<T> operator|
902 (
903 tvec3<T> const & v1,
904 tvec3<T> const & v2
905 )
906 {
907 return tvec3<T>(
908 v1.x | T(v2.x),
909 v1.y | T(v2.y),
910 v1.z | T(v2.z));
911 }
117 template <typename T>
118 template <typename U>
119 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
120 (
121 U const & s
122 ) :
123 x(value_type(s)),
124 y(value_type(s)),
125 z(value_type(s))
126 {}
127
128 template <typename T>
129 template <typename A, typename B, typename C>
130 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
131 (
132 A const & x,
133 B const & y,
134 C const & z
135 ) :
136 x(value_type(x)),
137 y(value_type(y)),
138 z(value_type(z))
139 {}
140
141 //////////////////////////////////////
142 // Convertion vector constructors
143
144 template <typename T>
145 template <typename A, typename B>
146 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
147 (
148 tvec2<A> const & v,
149 B const & s
150 ) :
151 x(value_type(v.x)),
152 y(value_type(v.y)),
153 z(value_type(s))
154 {}
155
156 template <typename T>
157 template <typename A, typename B>
158 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
159 (
160 A const & s,
161 tvec2<B> const & v
162 ) :
163 x(value_type(s)),
164 y(value_type(v.x)),
165 z(value_type(v.y))
166 {}
167
168 template <typename T>
169 template <typename U>
170 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
171 (
172 tvec3<U> const & v
173 ) :
174 x(value_type(v.x)),
175 y(value_type(v.y)),
176 z(value_type(v.z))
177 {}
178
179 template <typename T>
180 template <typename U>
181 GLM_FUNC_QUALIFIER tvec3<T>::tvec3
182 (
183 tvec4<U> const & v
184 ) :
185 x(value_type(v.x)),
186 y(value_type(v.y)),
187 z(value_type(v.z))
188 {}
189
190 //////////////////////////////////////
191 // Unary arithmetic operators
192
193 template <typename T>
194 GLM_FUNC_QUALIFIER tvec3<T>& tvec3<T>::operator=
195 (
196 tvec3<T> const & v
197 )
198 {
199 this->x = v.x;
200 this->y = v.y;
201 this->z = v.z;
202 return *this;
203 }
204
205 template <typename T>
206 template <typename U>
207 GLM_FUNC_QUALIFIER tvec3<T>& tvec3<T>::operator=
208 (
209 tvec3<U> const & v
210 )
211 {
212 this->x = T(v.x);
213 this->y = T(v.y);
214 this->z = T(v.z);
215 return *this;
216 }
217
218 template <typename T>
219 template <typename U>
220 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator+=
221 (
222 U const & s
223 )
224 {
225 this->x += T(s);
226 this->y += T(s);
227 this->z += T(s);
228 return *this;
229 }
230
231 template <typename T>
232 template <typename U>
233 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator+=
234 (
235 tvec3<U> const & v
236 )
237 {
238 this->x += T(v.x);
239 this->y += T(v.y);
240 this->z += T(v.z);
241 return *this;
242 }
243
244 template <typename T>
245 template <typename U>
246 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator-=
247 (
248 U const & s
249 )
250 {
251 this->x -= T(s);
252 this->y -= T(s);
253 this->z -= T(s);
254 return *this;
255 }
256
257 template <typename T>
258 template <typename U>
259 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator-=
260 (
261 tvec3<U> const & v
262 )
263 {
264 this->x -= T(v.x);
265 this->y -= T(v.y);
266 this->z -= T(v.z);
267 return *this;
268 }
269
270 template <typename T>
271 template <typename U>
272 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator*=
273 (
274 U const & s
275 )
276 {
277 this->x *= T(s);
278 this->y *= T(s);
279 this->z *= T(s);
280 return *this;
281 }
282
283 template <typename T>
284 template <typename U>
285 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator*=
286 (
287 tvec3<U> const & v
288 )
289 {
290 this->x *= T(v.x);
291 this->y *= T(v.y);
292 this->z *= T(v.z);
293 return *this;
294 }
295
296 template <typename T>
297 template <typename U>
298 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator/=
299 (
300 U const & s
301 )
302 {
303 this->x /= T(s);
304 this->y /= T(s);
305 this->z /= T(s);
306 return *this;
307 }
308
309 template <typename T>
310 template <typename U>
311 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator/=
312 (
313 tvec3<U> const & v
314 )
315 {
316 this->x /= T(v.x);
317 this->y /= T(v.y);
318 this->z /= T(v.z);
319 return *this;
320 }
321
322 template <typename T>
323 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator++()
324 {
325 ++this->x;
326 ++this->y;
327 ++this->z;
328 return *this;
329 }
330
331 template <typename T>
332 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator--()
333 {
334 --this->x;
335 --this->y;
336 --this->z;
337 return *this;
338 }
339
340 //////////////////////////////////////
341 // Boolean operators
342
343 template <typename T>
344 GLM_FUNC_QUALIFIER bool operator==
345 (
346 tvec3<T> const & v1,
347 tvec3<T> const & v2
348 )
349 {
350 return (v1.x == v2.x) && (v1.y == v2.y) && (v1.z == v2.z);
351 }
352
353 template <typename T>
354 GLM_FUNC_QUALIFIER bool operator!=
355 (
356 tvec3<T> const & v1,
357 tvec3<T> const & v2
358 )
359 {
360 return (v1.x != v2.x) || (v1.y != v2.y) || (v1.z != v2.z);
361 }
362
363 //////////////////////////////////////
364 // Unary bit operators
365
366 template <typename T>
367 template <typename U>
368 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator%=
369 (
370 U const & s
371 )
372 {
373 this->x %= s;
374 this->y %= s;
375 this->z %= s;
376 return *this;
377 }
378
379 template <typename T>
380 template <typename U>
381 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator%=
382 (
383 tvec3<U> const & v
384 )
385 {
386 this->x %= v.x;
387 this->y %= v.y;
388 this->z %= v.z;
389 return *this;
390 }
391
392 template <typename T>
393 template <typename U>
394 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator&=
395 (
396 U const & s
397 )
398 {
399 this->x &= s;
400 this->y &= s;
401 this->z &= s;
402 return *this;
403 }
404
405 template <typename T>
406 template <typename U>
407 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator&=
408 (
409 tvec3<U> const & v
410 )
411 {
412 this->x &= v.x;
413 this->y &= v.y;
414 this->z &= v.z;
415 return *this;
416 }
417
418 template <typename T>
419 template <typename U>
420 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator|=
421 (
422 U const & s
423 )
424 {
425 this->x |= s;
426 this->y |= s;
427 this->z |= s;
428 return *this;
429 }
430
431 template <typename T>
432 template <typename U>
433 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator|=
434 (
435 tvec3<U> const & v
436 )
437 {
438 this->x |= v.x;
439 this->y |= v.y;
440 this->z |= v.z;
441 return *this;
442 }
443
444 template <typename T>
445 template <typename U>
446 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator^=
447 (
448 U const & s
449 )
450 {
451 this->x ^= s;
452 this->y ^= s;
453 this->z ^= s;
454 return *this;
455 }
456
457 template <typename T>
458 template <typename U>
459 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator^=
460 (
461 tvec3<U> const & v
462 )
463 {
464 this->x ^= v.x;
465 this->y ^= v.y;
466 this->z ^= v.z;
467 return *this;
468 }
469
470 template <typename T>
471 template <typename U>
472 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator<<=
473 (
474 U const & s
475 )
476 {
477 this->x <<= s;
478 this->y <<= s;
479 this->z <<= s;
480 return *this;
481 }
482
483 template <typename T>
484 template <typename U>
485 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator<<=
486 (
487 tvec3<U> const & v
488 )
489 {
490 this->x <<= T(v.x);
491 this->y <<= T(v.y);
492 this->z <<= T(v.z);
493 return *this;
494 }
495
496 template <typename T>
497 template <typename U>
498 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator>>=
499 (
500 U const & s
501 )
502 {
503 this->x >>= T(s);
504 this->y >>= T(s);
505 this->z >>= T(s);
506 return *this;
507 }
508
509 template <typename T>
510 template <typename U>
511 GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator>>=
512 (
513 tvec3<U> const & v
514 )
515 {
516 this->x >>= T(v.x);
517 this->y >>= T(v.y);
518 this->z >>= T(v.z);
519 return *this;
520 }
521
522 //////////////////////////////////////
523 // Swizzle operators
524
525 template <typename T>
526 GLM_FUNC_QUALIFIER typename tvec3<T>::value_type
527 tvec3<T>::swizzle
528 (
529 comp x
530 ) const
531 {
532 return (*this)[x];
533 }
534
535 template <typename T>
536 GLM_FUNC_QUALIFIER tvec2<T> tvec3<T>::swizzle
537 (
538 comp x,
539 comp y
540 ) const
541 {
542 return tvec2<T>(
543 (*this)[x],
544 (*this)[y]);
545 }
546
547 template <typename T>
548 GLM_FUNC_QUALIFIER tvec3<T> tvec3<T>::swizzle
549 (
550 comp x,
551 comp y,
552 comp z
553 ) const
554 {
555 return tvec3<T>(
556 (*this)[x],
557 (*this)[y],
558 (*this)[z]);
559 }
560
561 template <typename T>
562 GLM_FUNC_QUALIFIER tvec4<T> tvec3<T>::swizzle
563 (
564 comp x,
565 comp y,
566 comp z,
567 comp w
568 ) const
569 {
570 return tvec4<T>(
571 (*this)[x],
572 (*this)[y],
573 (*this)[z],
574 (*this)[w]);
575 }
576
577 template <typename T>
578 GLM_FUNC_QUALIFIER tref2<T> tvec3<T>::swizzle
579 (
580 comp x,
581 comp y
582 )
583 {
584 return tref2<T>(
585 (*this)[x],
586 (*this)[y]);
587 }
588
589 template <typename T>
590 GLM_FUNC_QUALIFIER tref3<T> tvec3<T>::swizzle
591 (
592 comp x,
593 comp y,
594 comp z
595 )
596 {
597 return tref3<T>(
598 (*this)[x],
599 (*this)[y],
600 (*this)[z]);
601 }
602
603 //////////////////////////////////////
604 // Binary arithmetic operators
605
606 template <typename T>
607 GLM_FUNC_QUALIFIER tvec3<T> operator+
608 (
609 tvec3<T> const & v,
610 T const & s
611 )
612 {
613 return tvec3<T>(
614 v.x + T(s),
615 v.y + T(s),
616 v.z + T(s));
617 }
618
619 template <typename T>
620 GLM_FUNC_QUALIFIER tvec3<T> operator+
621 (
622 T const & s,
623 tvec3<T> const & v
624 )
625 {
626 return tvec3<T>(
627 T(s) + v.x,
628 T(s) + v.y,
629 T(s) + v.z);
630 }
631
632 template <typename T>
633 GLM_FUNC_QUALIFIER tvec3<T> operator+
634 (
635 tvec3<T> const & v1,
636 tvec3<T> const & v2
637 )
638 {
639 return tvec3<T>(
640 v1.x + T(v2.x),
641 v1.y + T(v2.y),
642 v1.z + T(v2.z));
643 }
644
645 //operator-
646 template <typename T>
647 GLM_FUNC_QUALIFIER tvec3<T> operator-
648 (
649 tvec3<T> const & v,
650 T const & s
651 )
652 {
653 return tvec3<T>(
654 v.x - T(s),
655 v.y - T(s),
656 v.z - T(s));
657 }
658
659 template <typename T>
660 GLM_FUNC_QUALIFIER tvec3<T> operator-
661 (
662 T const & s,
663 tvec3<T> const & v
664 )
665 {
666 return tvec3<T>(
667 T(s) - v.x,
668 T(s) - v.y,
669 T(s) - v.z);
670 }
671
672 template <typename T>
673 GLM_FUNC_QUALIFIER tvec3<T> operator-
674 (
675 tvec3<T> const & v1,
676 tvec3<T> const & v2
677 )
678 {
679 return tvec3<T>(
680 v1.x - T(v2.x),
681 v1.y - T(v2.y),
682 v1.z - T(v2.z));
683 }
684
685 //operator*
686 template <typename T>
687 GLM_FUNC_QUALIFIER tvec3<T> operator*
688 (
689 tvec3<T> const & v,
690 T const & s
691 )
692 {
693 return tvec3<T>(
694 v.x * T(s),
695 v.y * T(s),
696 v.z * T(s));
697 }
698
699 template <typename T>
700 GLM_FUNC_QUALIFIER tvec3<T> operator*
701 (
702 T const & s,
703 tvec3<T> const & v
704 )
705 {
706 return tvec3<T>(
707 T(s) * v.x,
708 T(s) * v.y,
709 T(s) * v.z);
710 }
711
712 template <typename T>
713 GLM_FUNC_QUALIFIER tvec3<T> operator*
714 (
715 tvec3<T> const & v1,
716 tvec3<T> const & v2
717 )
718 {
719 return tvec3<T>(
720 v1.x * T(v2.x),
721 v1.y * T(v2.y),
722 v1.z * T(v2.z));
723 }
724
725 //operator/
726 template <typename T>
727 GLM_FUNC_QUALIFIER tvec3<T> operator/
728 (
729 tvec3<T> const & v,
730 T const & s
731 )
732 {
733 return tvec3<T>(
734 v.x / T(s),
735 v.y / T(s),
736 v.z / T(s));
737 }
738
739 template <typename T>
740 GLM_FUNC_QUALIFIER tvec3<T> operator/
741 (
742 T const & s,
743 tvec3<T> const & v
744 )
745 {
746 return tvec3<T>(
747 T(s) / v.x,
748 T(s) / v.y,
749 T(s) / v.z);
750 }
751
752 template <typename T>
753 GLM_FUNC_QUALIFIER tvec3<T> operator/
754 (
755 tvec3<T> const & v1,
756 tvec3<T> const & v2
757 )
758 {
759 return tvec3<T>(
760 v1.x / T(v2.x),
761 v1.y / T(v2.y),
762 v1.z / T(v2.z));
763 }
764
765 // Unary constant operators
766 template <typename T>
767 GLM_FUNC_QUALIFIER tvec3<T> operator-
768 (
769 tvec3<T> const & v
770 )
771 {
772 return tvec3<T>(
773 -v.x,
774 -v.y,
775 -v.z);
776 }
777
778 template <typename T>
779 GLM_FUNC_QUALIFIER tvec3<T> operator++
780 (
781 tvec3<T> const & v,
782 int
783 )
784 {
785 return tvec3<T>(
786 v.x + T(1),
787 v.y + T(1),
788 v.z + T(1));
789 }
790
791 template <typename T>
792 GLM_FUNC_QUALIFIER tvec3<T> operator--
793 (
794 tvec3<T> const & v,
795 int
796 )
797 {
798 return tvec3<T>(
799 v.x - T(1),
800 v.y - T(1),
801 v.z - T(1));
802 }
803
804 //////////////////////////////////////
805 // Binary bit operators
806
807 template <typename T>
808 GLM_FUNC_QUALIFIER tvec3<T> operator%
809 (
810 tvec3<T> const & v,
811 T const & s
812 )
813 {
814 return tvec3<T>(
815 v.x % T(s),
816 v.y % T(s),
817 v.z % T(s));
818 }
819
820 template <typename T>
821 GLM_FUNC_QUALIFIER tvec3<T> operator%
822 (
823 T const & s,
824 tvec3<T> const & v
825 )
826 {
827 return tvec3<T>(
828 T(s) % v.x,
829 T(s) % v.y,
830 T(s) % v.z);
831 }
832
833 template <typename T>
834 GLM_FUNC_QUALIFIER tvec3<T> operator%
835 (
836 tvec3<T> const & v1,
837 tvec3<T> const & v2
838 )
839 {
840 return tvec3<T>(
841 v1.x % T(v2.x),
842 v1.y % T(v2.y),
843 v1.z % T(v2.z));
844 }
845
846 template <typename T>
847 GLM_FUNC_QUALIFIER tvec3<T> operator&
848 (
849 tvec3<T> const & v,
850 T const & s
851 )
852 {
853 return tvec3<T>(
854 v.x & T(s),
855 v.y & T(s),
856 v.z & T(s));
857 }
858
859 template <typename T>
860 GLM_FUNC_QUALIFIER tvec3<T> operator&
861 (
862 T const & s,
863 tvec3<T> const & v
864 )
865 {
866 return tvec3<T>(
867 T(s) & v.x,
868 T(s) & v.y,
869 T(s) & v.z);
870 }
871
872 template <typename T>
873 GLM_FUNC_QUALIFIER tvec3<T> operator&
874 (
875 tvec3<T> const & v1,
876 tvec3<T> const & v2
877 )
878 {
879 return tvec3<T>(
880 v1.x & T(v2.x),
881 v1.y & T(v2.y),
882 v1.z & T(v2.z));
883 }
884
885 template <typename T>
886 GLM_FUNC_QUALIFIER tvec3<T> operator|
887 (
888 tvec3<T> const & v,
889 T const & s
890 )
891 {
892 return tvec3<T>(
893 v.x | T(s),
894 v.y | T(s),
895 v.z | T(s));
896 }
897
898 template <typename T>
899 GLM_FUNC_QUALIFIER tvec3<T> operator|
900 (
901 T const & s,
902 tvec3<T> const & v
903 )
904 {
905 return tvec3<T>(
906 T(s) | v.x,
907 T(s) | v.y,
908 T(s) | v.z);
909 }
910
911 template <typename T>
912 GLM_FUNC_QUALIFIER tvec3<T> operator|
913 (
914 tvec3<T> const & v1,
915 tvec3<T> const & v2
916 )
917 {
918 return tvec3<T>(
919 v1.x | T(v2.x),
920 v1.y | T(v2.y),
921 v1.z | T(v2.z));
922 }
912923
913 template <typename T>
914 GLM_FUNC_QUALIFIER tvec3<T> operator^
915 (
916 tvec3<T> const & v,
917 T const & s
918 )
919 {
920 return tvec3<T>(
921 v.x ^ T(s),
922 v.y ^ T(s),
923 v.z ^ T(s));
924 }
925
926 template <typename T>
927 GLM_FUNC_QUALIFIER tvec3<T> operator^
928 (
929 T const & s,
930 tvec3<T> const & v
931 )
932 {
933 return tvec3<T>(
934 T(s) ^ v.x,
935 T(s) ^ v.y,
936 T(s) ^ v.z);
937 }
938
939 template <typename T>
940 GLM_FUNC_QUALIFIER tvec3<T> operator^
941 (
942 tvec3<T> const & v1,
943 tvec3<T> const & v2
944 )
945 {
946 return tvec3<T>(
947 v1.x ^ T(v2.x),
948 v1.y ^ T(v2.y),
949 v1.z ^ T(v2.z));
950 }
951
952 template <typename T>
953 GLM_FUNC_QUALIFIER tvec3<T> operator<<
954 (
955 tvec3<T> const & v,
956 T const & s
957 )
958 {
959 return tvec3<T>(
960 v.x << T(s),
961 v.y << T(s),
962 v.z << T(s));
963 }
964
965 template <typename T>
966 GLM_FUNC_QUALIFIER tvec3<T> operator<<
967 (
968 T const & s,
969 tvec3<T> const & v
970 )
971 {
972 return tvec3<T>(
973 T(s) << v.x,
974 T(s) << v.y,
975 T(s) << v.z);
976 }
977
978 template <typename T>
979 GLM_FUNC_QUALIFIER tvec3<T> operator<<
980 (
981 tvec3<T> const & v1,
982 tvec3<T> const & v2
983 )
984 {
985 return tvec3<T>(
986 v1.x << T(v2.x),
987 v1.y << T(v2.y),
988 v1.z << T(v2.z));
989 }
990
991 template <typename T>
992 GLM_FUNC_QUALIFIER tvec3<T> operator>>
993 (
994 tvec3<T> const & v,
995 T const & s
996 )
997 {
998 return tvec3<T>(
999 v.x >> T(s),
1000 v.y >> T(s),
1001 v.z >> T(s));
1002 }
1003
1004 template <typename T>
1005 GLM_FUNC_QUALIFIER tvec3<T> operator>>
1006 (
1007 T const & s,
1008 tvec3<T> const & v
1009 )
1010 {
1011 return tvec3<T>(
1012 s >> T(v.x),
1013 s >> T(v.y),
1014 s >> T(v.z));
1015 }
1016
1017 template <typename T>
1018 GLM_FUNC_QUALIFIER tvec3<T> operator>>
1019 (
1020 tvec3<T> const & v1,
1021 tvec3<T> const & v2
1022 )
1023 {
1024 return tvec3<T>(
1025 v1.x >> T(v2.x),
1026 v1.y >> T(v2.y),
1027 v1.z >> T(v2.z));
1028 }
1029
1030 template <typename T>
1031 GLM_FUNC_QUALIFIER tvec3<T> operator~
1032 (
1033 tvec3<T> const & v
1034 )
1035 {
1036 return tvec3<T>(
1037 ~v.x,
1038 ~v.y,
1039 ~v.z);
1040 }
1041
1042 //////////////////////////////////////
1043 // tref definition
1044
1045 template <typename T>
1046 GLM_FUNC_QUALIFIER tref3<T>::tref3(T & x, T & y, T & z) :
1047 x(x),
1048 y(y),
1049 z(z)
1050 {}
1051
1052 template <typename T>
1053 GLM_FUNC_QUALIFIER tref3<T>::tref3
1054 (
1055 tref3<T> const & r
1056 ) :
1057 x(r.x),
1058 y(r.y),
1059 z(r.z)
1060 {}
1061
1062 template <typename T>
1063 GLM_FUNC_QUALIFIER tref3<T>::tref3
1064 (
1065 tvec3<T> const & v
1066 ) :
1067 x(v.x),
1068 y(v.y),
1069 z(v.z)
1070 {}
1071
1072 template <typename T>
1073 GLM_FUNC_QUALIFIER tref3<T> & tref3<T>::operator=
1074 (
1075 tref3<T> const & r
1076 )
1077 {
1078 x = r.x;
1079 y = r.y;
1080 z = r.z;
1081 return *this;
1082 }
1083
1084 template <typename T>
1085 GLM_FUNC_QUALIFIER tref3<T> & tref3<T>::operator=
1086 (
1087 tvec3<T> const & v
1088 )
1089 {
1090 x = v.x;
1091 y = v.y;
1092 z = v.z;
1093 return *this;
1094 }
1095
1096 }//namespace detail
924 template <typename T>
925 GLM_FUNC_QUALIFIER tvec3<T> operator^
926 (
927 tvec3<T> const & v,
928 T const & s
929 )
930 {
931 return tvec3<T>(
932 v.x ^ T(s),
933 v.y ^ T(s),
934 v.z ^ T(s));
935 }
936
937 template <typename T>
938 GLM_FUNC_QUALIFIER tvec3<T> operator^
939 (
940 T const & s,
941 tvec3<T> const & v
942 )
943 {
944 return tvec3<T>(
945 T(s) ^ v.x,
946 T(s) ^ v.y,
947 T(s) ^ v.z);
948 }
949
950 template <typename T>
951 GLM_FUNC_QUALIFIER tvec3<T> operator^
952 (
953 tvec3<T> const & v1,
954 tvec3<T> const & v2
955 )
956 {
957 return tvec3<T>(
958 v1.x ^ T(v2.x),
959 v1.y ^ T(v2.y),
960 v1.z ^ T(v2.z));
961 }
962
963 template <typename T>
964 GLM_FUNC_QUALIFIER tvec3<T> operator<<
965 (
966 tvec3<T> const & v,
967 T const & s
968 )
969 {
970 return tvec3<T>(
971 v.x << T(s),
972 v.y << T(s),
973 v.z << T(s));
974 }
975
976 template <typename T>
977 GLM_FUNC_QUALIFIER tvec3<T> operator<<
978 (
979 T const & s,
980 tvec3<T> const & v
981 )
982 {
983 return tvec3<T>(
984 T(s) << v.x,
985 T(s) << v.y,
986 T(s) << v.z);
987 }
988
989 template <typename T>
990 GLM_FUNC_QUALIFIER tvec3<T> operator<<
991 (
992 tvec3<T> const & v1,
993 tvec3<T> const & v2
994 )
995 {
996 return tvec3<T>(
997 v1.x << T(v2.x),
998 v1.y << T(v2.y),
999 v1.z << T(v2.z));
1000 }
1001
1002 template <typename T>
1003 GLM_FUNC_QUALIFIER tvec3<T> operator>>
1004 (
1005 tvec3<T> const & v,
1006 T const & s
1007 )
1008 {
1009 return tvec3<T>(
1010 v.x >> T(s),
1011 v.y >> T(s),
1012 v.z >> T(s));
1013 }
1014
1015 template <typename T>
1016 GLM_FUNC_QUALIFIER tvec3<T> operator>>
1017 (
1018 T const & s,
1019 tvec3<T> const & v
1020 )
1021 {
1022 return tvec3<T>(
1023 s >> T(v.x),
1024 s >> T(v.y),
1025 s >> T(v.z));
1026 }
1027
1028 template <typename T>
1029 GLM_FUNC_QUALIFIER tvec3<T> operator>>
1030 (
1031 tvec3<T> const & v1,
1032 tvec3<T> const & v2
1033 )
1034 {
1035 return tvec3<T>(
1036 v1.x >> T(v2.x),
1037 v1.y >> T(v2.y),
1038 v1.z >> T(v2.z));
1039 }
1040
1041 template <typename T>
1042 GLM_FUNC_QUALIFIER tvec3<T> operator~
1043 (
1044 tvec3<T> const & v
1045 )
1046 {
1047 return tvec3<T>(
1048 ~v.x,
1049 ~v.y,
1050 ~v.z);
1051 }
1052
1053 //////////////////////////////////////
1054 // tref definition
1055
1056 template <typename T>
1057 GLM_FUNC_QUALIFIER tref3<T>::tref3(T & x, T & y, T & z) :
1058 x(x),
1059 y(y),
1060 z(z)
1061 {}
1062
1063 template <typename T>
1064 GLM_FUNC_QUALIFIER tref3<T>::tref3
1065 (
1066 tref3<T> const & r
1067 ) :
1068 x(r.x),
1069 y(r.y),
1070 z(r.z)
1071 {}
1072
1073 template <typename T>
1074 GLM_FUNC_QUALIFIER tref3<T>::tref3
1075 (
1076 tvec3<T> const & v
1077 ) :
1078 x(v.x),
1079 y(v.y),
1080 z(v.z)
1081 {}
1082
1083 template <typename T>
1084 GLM_FUNC_QUALIFIER tref3<T> & tref3<T>::operator=
1085 (
1086 tref3<T> const & r
1087 )
1088 {
1089 x = r.x;
1090 y = r.y;
1091 z = r.z;
1092 return *this;
1093 }
1094
1095 template <typename T>
1096 GLM_FUNC_QUALIFIER tref3<T> & tref3<T>::operator=
1097 (
1098 tvec3<T> const & v
1099 )
1100 {
1101 x = v.x;
1102 y = v.y;
1103 z = v.z;
1104 return *this;
1105 }
1106
1107 }//namespace detail
10971108 }//namespace glm
1515 #include "type_size.hpp"
1616 #include "_swizzle.hpp"
1717
18 namespace glm
18 namespace glm{
19 namespace detail
1920 {
20 namespace test
21 template <typename T> struct tref2;
22 template <typename T> struct tref3;
23 template <typename T> struct tref4;
24 template <typename T> struct tvec2;
25 template <typename T> struct tvec3;
26
27 ///Basic 4D vector type.
28 //! \ingroup core_template
29 template <typename T>
30 struct tvec4
2131 {
22 void main_vec4();
23 }//namespace test
24
25 namespace detail
32 enum ctor{null};
33
34 typedef T value_type;
35 typedef std::size_t size_type;
36 GLM_FUNC_DECL size_type length() const;
37 static GLM_FUNC_DECL size_type value_size();
38
39 typedef tvec4<T> type;
40 typedef tvec4<bool> bool_type;
41
42 //////////////////////////////////////
43 // Data
44
45 # if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
46 value_type x, y, z, w;
47 # elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)
48 union
49 {
50 struct{value_type r, g, b, a;};
51 struct{value_type s, t, p, q;};
52 struct{value_type x, y, z, w;};
53 };
54 # else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)
55 union {value_type x, r, s;};
56 union {value_type y, g, t;};
57 union {value_type z, b, p;};
58 union {value_type w, a, q;};
59 # endif//GLM_COMPONENT
60
61 //////////////////////////////////////
62 // Accesses
63
64 GLM_FUNC_DECL value_type & operator[](size_type i);
65 GLM_FUNC_DECL value_type const & operator[](size_type i) const;
66
67 //////////////////////////////////////
68 // Implicit basic constructors
69
70 GLM_FUNC_DECL tvec4();
71 GLM_FUNC_DECL tvec4(type const & v);
72
73 //////////////////////////////////////
74 // Explicit basic constructors
75
76 GLM_FUNC_DECL explicit tvec4(
77 ctor);
78 GLM_FUNC_DECL explicit tvec4(
79 value_type const & s);
80 GLM_FUNC_DECL explicit tvec4(
81 value_type const & s0,
82 value_type const & s1,
83 value_type const & s2,
84 value_type const & s3);
85
86 //////////////////////////////////////
87 // Swizzle constructors
88
89 GLM_FUNC_DECL tvec4(tref4<T> const & r);
90
91 //////////////////////////////////////
92 // Convertion scalar constructors
93
94 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
95 template <typename U>
96 GLM_FUNC_DECL explicit tvec4(
97 U const & x);
98 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
99 template <typename A, typename B, typename C, typename D>
100 GLM_FUNC_DECL explicit tvec4(
101 A const & x,
102 B const & y,
103 C const & z,
104 D const & w);
105
106 //////////////////////////////////////
107 // Convertion vector constructors
108
109 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
110 template <typename A, typename B, typename C>
111 GLM_FUNC_DECL explicit tvec4(tvec2<A> const & v, B const & s1, C const & s2);
112 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
113 template <typename A, typename B, typename C>
114 GLM_FUNC_DECL explicit tvec4(A const & s1, tvec2<B> const & v, C const & s2);
115 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
116 template <typename A, typename B, typename C>
117 GLM_FUNC_DECL explicit tvec4(A const & s1, B const & s2, tvec2<C> const & v);
118 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
119 template <typename A, typename B>
120 GLM_FUNC_DECL explicit tvec4(tvec3<A> const & v, B const & s);
121 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
122 template <typename A, typename B>
123 GLM_FUNC_DECL explicit tvec4(A const & s, tvec3<B> const & v);
124 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
125 template <typename A, typename B>
126 GLM_FUNC_DECL explicit tvec4(tvec2<A> const & v1, tvec2<B> const & v2);
127 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
128 template <typename U>
129 GLM_FUNC_DECL explicit tvec4(tvec4<U> const & v);
130
131 //////////////////////////////////////
132 // Unary arithmetic operators
133
134 GLM_FUNC_DECL tvec4<T> & operator= (tvec4<T> const & v);
135 template <typename U>
136 GLM_FUNC_DECL tvec4<T> & operator= (tvec4<U> const & v);
137
138 template <typename U>
139 GLM_FUNC_DECL tvec4<T> & operator+=(U const & s);
140 template <typename U>
141 GLM_FUNC_DECL tvec4<T> & operator+=(tvec4<U> const & v);
142 template <typename U>
143 GLM_FUNC_DECL tvec4<T> & operator-=(U const & s);
144 template <typename U>
145 GLM_FUNC_DECL tvec4<T> & operator-=(tvec4<U> const & v);
146 template <typename U>
147 GLM_FUNC_DECL tvec4<T> & operator*=(U const & s);
148 template <typename U>
149 GLM_FUNC_DECL tvec4<T> & operator*=(tvec4<U> const & v);
150 template <typename U>
151 GLM_FUNC_DECL tvec4<T> & operator/=(U const & s);
152 template <typename U>
153 GLM_FUNC_DECL tvec4<T> & operator/=(tvec4<U> const & v);
154 GLM_FUNC_DECL tvec4<T> & operator++();
155 GLM_FUNC_DECL tvec4<T> & operator--();
156
157 //////////////////////////////////////
158 // Unary bit operators
159
160 template <typename U>
161 GLM_FUNC_DECL tvec4<T> & operator%= (U const & s);
162 template <typename U>
163 GLM_FUNC_DECL tvec4<T> & operator%= (tvec4<U> const & v);
164 template <typename U>
165 GLM_FUNC_DECL tvec4<T> & operator&= (U const & s);
166 template <typename U>
167 GLM_FUNC_DECL tvec4<T> & operator&= (tvec4<U> const & v);
168 template <typename U>
169 GLM_FUNC_DECL tvec4<T> & operator|= (U const & s);
170 template <typename U>
171 GLM_FUNC_DECL tvec4<T> & operator|= (tvec4<U> const & v);
172 template <typename U>
173 GLM_FUNC_DECL tvec4<T> & operator^= (U const & s);
174 template <typename U>
175 GLM_FUNC_DECL tvec4<T> & operator^= (tvec4<U> const & v);
176 template <typename U>
177 GLM_FUNC_DECL tvec4<T> & operator<<=(U const & s);
178 template <typename U>
179 GLM_FUNC_DECL tvec4<T> & operator<<=(tvec4<U> const & v);
180 template <typename U>
181 GLM_FUNC_DECL tvec4<T> & operator>>=(U const & s);
182 template <typename U>
183 GLM_FUNC_DECL tvec4<T> & operator>>=(tvec4<U> const & v);
184
185 //////////////////////////////////////
186 // Swizzle operators
187
188 GLM_FUNC_DECL value_type swizzle(comp X) const;
189 GLM_FUNC_DECL tvec2<T> swizzle(comp X, comp Y) const;
190 GLM_FUNC_DECL tvec3<T> swizzle(comp X, comp Y, comp Z) const;
191 GLM_FUNC_DECL tvec4<T> swizzle(comp X, comp Y, comp Z, comp W) const;
192 GLM_FUNC_DECL tref2<T> swizzle(comp X, comp Y);
193 GLM_FUNC_DECL tref3<T> swizzle(comp X, comp Y, comp Z);
194 GLM_FUNC_DECL tref4<T> swizzle(comp X, comp Y, comp Z, comp W);
195 };
196
197 template <typename T>
198 struct tref4
26199 {
27 template <typename T> struct tref2;
28 template <typename T> struct tref3;
29 template <typename T> struct tref4;
30 template <typename T> struct tvec2;
31 template <typename T> struct tvec3;
32
33 ///Basic 4D vector type.
34 //! \ingroup core_template
35 template <typename T>
36 struct tvec4
37 {
38 enum ctor{null};
39
40 typedef T value_type;
41 typedef std::size_t size_type;
42 GLM_FUNC_DECL size_type length() const;
43 static GLM_FUNC_DECL size_type value_size();
44
45 typedef tvec4<T> type;
46 typedef tvec4<bool> bool_type;
47
48 //////////////////////////////////////
49 // Data
50
51 # if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
52 value_type x, y, z, w;
53 # elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)
54 union
55 {
56 struct{value_type x, y, z, w;};
57 struct{value_type r, g, b, a;};
58 struct{value_type s, t, p, q;};
59 };
60 # else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)
61 union {value_type x, r, s;};
62 union {value_type y, g, t;};
63 union {value_type z, b, p;};
64 union {value_type w, a, q;};
65 # endif//GLM_COMPONENT
66
67 //////////////////////////////////////
68 // Accesses
69
70 GLM_FUNC_DECL value_type & operator[](size_type i);
71 GLM_FUNC_DECL value_type const & operator[](size_type i) const;
72
73 //////////////////////////////////////
74 // Implicit basic constructors
75
76 GLM_FUNC_DECL tvec4();
77 GLM_FUNC_DECL tvec4(type const & v);
78
79 //////////////////////////////////////
80 // Explicit basic constructors
81
82 GLM_FUNC_DECL explicit tvec4(
83 ctor);
84 GLM_FUNC_DECL explicit tvec4(
85 value_type const & s);
86 GLM_FUNC_DECL explicit tvec4(
87 value_type const & s0,
88 value_type const & s1,
89 value_type const & s2,
90 value_type const & s3);
91
92 //////////////////////////////////////
93 // Swizzle constructors
94
95 GLM_FUNC_DECL tvec4(tref4<T> const & r);
96
97 //////////////////////////////////////
98 // Convertion scalar constructors
99
100 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
101 template <typename U>
102 GLM_FUNC_DECL explicit tvec4(
103 U const & x);
104 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
105 template <typename A, typename B, typename C, typename D>
106 GLM_FUNC_DECL explicit tvec4(
107 A const & x,
108 B const & y,
109 C const & z,
110 D const & w);
111
112 //////////////////////////////////////
113 // Convertion vector constructors
114
115 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
116 template <typename A, typename B, typename C>
117 GLM_FUNC_DECL explicit tvec4(tvec2<A> const & v, B const & s1, C const & s2);
118 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
119 template <typename A, typename B, typename C>
120 GLM_FUNC_DECL explicit tvec4(A const & s1, tvec2<B> const & v, C const & s2);
121 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
122 template <typename A, typename B, typename C>
123 GLM_FUNC_DECL explicit tvec4(A const & s1, B const & s2, tvec2<C> const & v);
124 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
125 template <typename A, typename B>
126 GLM_FUNC_DECL explicit tvec4(tvec3<A> const & v, B const & s);
127 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
128 template <typename A, typename B>
129 GLM_FUNC_DECL explicit tvec4(A const & s, tvec3<B> const & v);
130 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
131 template <typename A, typename B>
132 GLM_FUNC_DECL explicit tvec4(tvec2<A> const & v1, tvec2<B> const & v2);
133 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
134 template <typename U>
135 GLM_FUNC_DECL explicit tvec4(tvec4<U> const & v);
136
137 //////////////////////////////////////
138 // Unary arithmetic operators
139
140 GLM_FUNC_DECL tvec4<T> & operator= (tvec4<T> const & v);
141 template <typename U>
142 GLM_FUNC_DECL tvec4<T> & operator= (tvec4<U> const & v);
143
144 template <typename U>
145 GLM_FUNC_DECL tvec4<T> & operator+=(U const & s);
146 template <typename U>
147 GLM_FUNC_DECL tvec4<T> & operator+=(tvec4<U> const & v);
148 template <typename U>
149 GLM_FUNC_DECL tvec4<T> & operator-=(U const & s);
150 template <typename U>
151 GLM_FUNC_DECL tvec4<T> & operator-=(tvec4<U> const & v);
152 template <typename U>
153 GLM_FUNC_DECL tvec4<T> & operator*=(U const & s);
154 template <typename U>
155 GLM_FUNC_DECL tvec4<T> & operator*=(tvec4<U> const & v);
156 template <typename U>
157 GLM_FUNC_DECL tvec4<T> & operator/=(U const & s);
158 template <typename U>
159 GLM_FUNC_DECL tvec4<T> & operator/=(tvec4<U> const & v);
160 GLM_FUNC_DECL tvec4<T> & operator++();
161 GLM_FUNC_DECL tvec4<T> & operator--();
162
163 //////////////////////////////////////
164 // Unary bit operators
165
166 template <typename U>
167 GLM_FUNC_DECL tvec4<T> & operator%= (U const & s);
168 template <typename U>
169 GLM_FUNC_DECL tvec4<T> & operator%= (tvec4<U> const & v);
170 template <typename U>
171 GLM_FUNC_DECL tvec4<T> & operator&= (U const & s);
172 template <typename U>
173 GLM_FUNC_DECL tvec4<T> & operator&= (tvec4<U> const & v);
174 template <typename U>
175 GLM_FUNC_DECL tvec4<T> & operator|= (U const & s);
176 template <typename U>
177 GLM_FUNC_DECL tvec4<T> & operator|= (tvec4<U> const & v);
178 template <typename U>
179 GLM_FUNC_DECL tvec4<T> & operator^= (U const & s);
180 template <typename U>
181 GLM_FUNC_DECL tvec4<T> & operator^= (tvec4<U> const & v);
182 template <typename U>
183 GLM_FUNC_DECL tvec4<T> & operator<<=(U const & s);
184 template <typename U>
185 GLM_FUNC_DECL tvec4<T> & operator<<=(tvec4<U> const & v);
186 template <typename U>
187 GLM_FUNC_DECL tvec4<T> & operator>>=(U const & s);
188 template <typename U>
189 GLM_FUNC_DECL tvec4<T> & operator>>=(tvec4<U> const & v);
190
191 //////////////////////////////////////
192 // Swizzle operators
193
194 GLM_FUNC_DECL value_type swizzle(comp X) const;
195 GLM_FUNC_DECL tvec2<T> swizzle(comp X, comp Y) const;
196 GLM_FUNC_DECL tvec3<T> swizzle(comp X, comp Y, comp Z) const;
197 GLM_FUNC_DECL tvec4<T> swizzle(comp X, comp Y, comp Z, comp W) const;
198 GLM_FUNC_DECL tref4<T> swizzle(comp X, comp Y, comp Z, comp W);
199 };
200
201 template <typename T>
202 struct tref4
203 {
204 GLM_FUNC_DECL tref4(T & x, T & y, T & z, T & w);
205 GLM_FUNC_DECL tref4(tref4<T> const & r);
206 GLM_FUNC_DECL tref4(tvec4<T> const & v);
207
208 GLM_FUNC_DECL tref4<T> & operator= (tref4<T> const & r);
209 GLM_FUNC_DECL tref4<T> & operator= (tvec4<T> const & v);
210
211 T & x;
212 T & y;
213 T & z;
214 T & w;
215 };
216
217 GLM_DETAIL_IS_VECTOR(tvec4);
218 } //namespace detail
219
220 namespace core{
221 namespace type{
222
223 //////////////////////////
224 // Float definition
225
226 namespace precision
227 {
228 //! 4 components vector of high precision floating-point numbers.
229 //! There is no guarantee on the actual precision.
230 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
231 //! \ingroup core_precision
232 typedef detail::tvec4<highp_float> highp_vec4;
233 //! 4 components vector of medium precision floating-point numbers.
234 //! There is no guarantee on the actual precision.
235 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
236 //! \ingroup core_precision
237 typedef detail::tvec4<mediump_float> mediump_vec4;
238 //! 4 components vector of low precision floating-point numbers.
239 //! There is no guarantee on the actual precision.
240 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
241 //! \ingroup core_precision
242 typedef detail::tvec4<lowp_float> lowp_vec4;
243
244 //! 4 components vector of high precision signed integer numbers.
245 //! There is no guarantee on the actual precision.
246 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
247 //! \ingroup core_precision
248 typedef detail::tvec4<highp_int> highp_ivec4;
249 //! 4 components vector of medium precision signed integer numbers.
250 //! There is no guarantee on the actual precision.
251 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
252 //! \ingroup core_precision
253 typedef detail::tvec4<mediump_int> mediump_ivec4;
254 //! 4 components vector of low precision signed integer numbers.
255 //! There is no guarantee on the actual precision.
256 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
257 //! \ingroup core_precision
258 typedef detail::tvec4<lowp_int> lowp_ivec4;
259
260 //! 4 components vector of high precision unsigned integer numbers.
261 //! There is no guarantee on the actual precision.
262 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
263 //! \ingroup core_precision
264 typedef detail::tvec4<highp_uint> highp_uvec4;
265 //! 4 components vector of medium precision unsigned integer numbers.
266 //! There is no guarantee on the actual precision.
267 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
268 //! \ingroup core_precision
269 typedef detail::tvec4<mediump_uint> mediump_uvec4;
270 //! 4 components vector of low precision unsigned integer numbers.
271 //! There is no guarantee on the actual precision.
272 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
273 //! \ingroup core_precision
274 typedef detail::tvec4<lowp_uint> lowp_uvec4;
275 }
276 //namespace precision
277
278 }//namespace type
279 }//namespace core
280
281 using namespace core::type;
282
200 GLM_FUNC_DECL tref4(T & x, T & y, T & z, T & w);
201 GLM_FUNC_DECL tref4(tref4<T> const & r);
202 GLM_FUNC_DECL tref4(tvec4<T> const & v);
203
204 GLM_FUNC_DECL tref4<T> & operator= (tref4<T> const & r);
205 GLM_FUNC_DECL tref4<T> & operator= (tvec4<T> const & v);
206
207 T & x;
208 T & y;
209 T & z;
210 T & w;
211 };
212
213 GLM_DETAIL_IS_VECTOR(tvec4);
214 }//namespace detail
215
216 namespace core{
217 namespace type{
218 namespace precision
219 {
220 //! 4 components vector of high precision floating-point numbers.
221 //! There is no guarantee on the actual precision.
222 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
223 //! \ingroup core_precision
224 typedef detail::tvec4<highp_float> highp_vec4;
225
226 //! 4 components vector of medium precision floating-point numbers.
227 //! There is no guarantee on the actual precision.
228 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
229 //! \ingroup core_precision
230 typedef detail::tvec4<mediump_float> mediump_vec4;
231
232 //! 4 components vector of low precision floating-point numbers.
233 //! There is no guarantee on the actual precision.
234 //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
235 //! \ingroup core_precision
236 typedef detail::tvec4<lowp_float> lowp_vec4;
237
238 //! 4 components vector of high precision signed integer numbers.
239 //! There is no guarantee on the actual precision.
240 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
241 //! \ingroup core_precision
242 typedef detail::tvec4<highp_int> highp_ivec4;
243
244 //! 4 components vector of medium precision signed integer numbers.
245 //! There is no guarantee on the actual precision.
246 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
247 //! \ingroup core_precision
248 typedef detail::tvec4<mediump_int> mediump_ivec4;
249
250 //! 4 components vector of low precision signed integer numbers.
251 //! There is no guarantee on the actual precision.
252 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
253 //! \ingroup core_precision
254 typedef detail::tvec4<lowp_int> lowp_ivec4;
255
256 //! 4 components vector of high precision unsigned integer numbers.
257 //! There is no guarantee on the actual precision.
258 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
259 //! \ingroup core_precision
260 typedef detail::tvec4<highp_uint> highp_uvec4;
261
262 //! 4 components vector of medium precision unsigned integer numbers.
263 //! There is no guarantee on the actual precision.
264 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
265 //! \ingroup core_precision
266 typedef detail::tvec4<mediump_uint> mediump_uvec4;
267
268 //! 4 components vector of low precision unsigned integer numbers.
269 //! There is no guarantee on the actual precision.
270 //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
271 //! \ingroup core_precision
272 typedef detail::tvec4<lowp_uint> lowp_uvec4;
273
274 }//namespace precision
275 }//namespace type
276 }//namespace core
283277 }//namespace glm
284278
285279 #ifndef GLM_EXTERNAL_TEMPLATE
286280 #include "type_vec4.inl"
287 #endif
281 #endif//GLM_EXTERNAL_TEMPLATE
288282
289283 #endif//glm_core_type_gentype4
66 // File : glm/core/type_tvec4.inl
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
88
9 namespace glm
9 namespace glm{
10 namespace detail
1011 {
11 namespace detail
12 {
13 template <typename T>
14 GLM_FUNC_QUALIFIER typename tvec4<T>::size_type tvec4<T>::length() const
15 {
16 return 4;
17 }
18
19 template <typename T>
20 GLM_FUNC_QUALIFIER typename tvec4<T>::size_type tvec4<T>::value_size()
21 {
22 return 4;
23 }
24
25 //////////////////////////////////////
26 // Accesses
27
28 template <typename T>
29 GLM_FUNC_QUALIFIER typename tvec4<T>::value_type &
30 tvec4<T>::operator[]
31 (
32 size_type i
33 )
34 {
35 assert(i < value_size());
36 return (&x)[i];
37 }
38
39 template <typename T>
40 GLM_FUNC_QUALIFIER typename tvec4<T>::value_type const &
41 tvec4<T>::operator[]
42 (
43 size_type i
44 ) const
45 {
46 assert(i < value_size());
47 return (&x)[i];
48 }
49
50 //////////////////////////////////////
51 // Implicit basic constructors
52
53 template <typename T>
54 GLM_FUNC_QUALIFIER tvec4<T>::tvec4() :
55 x(value_type(0)),
56 y(value_type(0)),
57 z(value_type(0)),
58 w(value_type(0))
59 {}
60
61 template <typename T>
62 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
63 (
64 ctor
65 )
66 {}
67
68 template <typename T>
69 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
70 (
71 type const & v
72 ) :
73 x(v.x),
74 y(v.y),
75 z(v.z),
76 w(v.w)
77 {}
78
79 //////////////////////////////////////
80 // Explicit basic constructors
81
82 template <typename T>
83 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
84 (
85 value_type const & s
86 ) :
87 x(s),
88 y(s),
89 z(s),
90 w(s)
91 {}
92
93 template <typename T>
94 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
95 (
96 value_type const & s1,
97 value_type const & s2,
98 value_type const & s3,
99 value_type const & s4
100 ) :
101 x(s1),
102 y(s2),
103 z(s3),
104 w(s4)
105 {}
106
107 //////////////////////////////////////
108 // Swizzle constructors
109
110 template <typename T>
111 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
112 (
113 tref4<T> const & r
114 ) :
115 x(r.x),
116 y(r.y),
117 z(r.z),
118 w(r.w)
119 {}
120
121 //////////////////////////////////////
122 // Convertion scalar constructors
12 template <typename T>
13 GLM_FUNC_QUALIFIER typename tvec4<T>::size_type tvec4<T>::length() const
14 {
15 return 4;
16 }
17
18 template <typename T>
19 GLM_FUNC_QUALIFIER typename tvec4<T>::size_type tvec4<T>::value_size()
20 {
21 return 4;
22 }
23
24 //////////////////////////////////////
25 // Accesses
26
27 template <typename T>
28 GLM_FUNC_QUALIFIER typename tvec4<T>::value_type &
29 tvec4<T>::operator[]
30 (
31 size_type i
32 )
33 {
34 assert(i < value_size());
35 return (&x)[i];
36 }
37
38 template <typename T>
39 GLM_FUNC_QUALIFIER typename tvec4<T>::value_type const &
40 tvec4<T>::operator[]
41 (
42 size_type i
43 ) const
44 {
45 assert(i < value_size());
46 return (&x)[i];
47 }
48
49 //////////////////////////////////////
50 // Implicit basic constructors
51
52 template <typename T>
53 GLM_FUNC_QUALIFIER tvec4<T>::tvec4() :
54 x(value_type(0)),
55 y(value_type(0)),
56 z(value_type(0)),
57 w(value_type(0))
58 {}
59
60 template <typename T>
61 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
62 (
63 ctor
64 )
65 {}
66
67 template <typename T>
68 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
69 (
70 type const & v
71 ) :
72 x(v.x),
73 y(v.y),
74 z(v.z),
75 w(v.w)
76 {}
77
78 //////////////////////////////////////
79 // Explicit basic constructors
80
81 template <typename T>
82 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
83 (
84 value_type const & s
85 ) :
86 x(s),
87 y(s),
88 z(s),
89 w(s)
90 {}
91
92 template <typename T>
93 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
94 (
95 value_type const & s1,
96 value_type const & s2,
97 value_type const & s3,
98 value_type const & s4
99 ) :
100 x(s1),
101 y(s2),
102 z(s3),
103 w(s4)
104 {}
105
106 //////////////////////////////////////
107 // Swizzle constructors
108
109 template <typename T>
110 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
111 (
112 tref4<T> const & r
113 ) :
114 x(r.x),
115 y(r.y),
116 z(r.z),
117 w(r.w)
118 {}
119
120 //////////////////////////////////////
121 // Convertion scalar constructors
123122
124 template <typename T>
125 template <typename U>
126 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
127 (
128 U const & x
129 ) :
130 x(value_type(x)),
131 y(value_type(x)),
132 z(value_type(x)),
133 w(value_type(x))
134 {}
135
136 template <typename T>
137 template <typename A, typename B, typename C, typename D>
138 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
139 (
140 A const & x,
141 B const & y,
142 C const & z,
143 D const & w
144 ) :
145 x(value_type(x)),
146 y(value_type(y)),
147 z(value_type(z)),
148 w(value_type(w))
149 {}
150
151 //////////////////////////////////////
152 // Convertion vector constructors
153
154 template <typename T>
155 template <typename A, typename B, typename C>
156 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
157 (
158 tvec2<A> const & v,
159 B const & s1,
160 C const & s2
161 ) :
162 x(value_type(v.x)),
163 y(value_type(v.y)),
164 z(value_type(s1)),
165 w(value_type(s2))
166 {}
167
168 template <typename T>
169 template <typename A, typename B, typename C>
170 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
171 (
172 A const & s1,
173 tvec2<B> const & v,
174 C const & s2
175 ) :
176 x(value_type(s1)),
177 y(value_type(v.x)),
178 z(value_type(v.y)),
179 w(value_type(s2))
180 {}
181
182 template <typename T>
183 template <typename A, typename B, typename C>
184 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
185 (
186 A const & s1,
187 B const & s2,
188 tvec2<C> const & v
189 ) :
190 x(value_type(s1)),
191 y(value_type(s2)),
192 z(value_type(v.x)),
193 w(value_type(v.y))
194 {}
195
196 template <typename T>
197 template <typename A, typename B>
198 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
199 (
200 tvec3<A> const & v,
201 B const & s
202 ) :
203 x(value_type(v.x)),
204 y(value_type(v.y)),
205 z(value_type(v.z)),
206 w(value_type(s))
207 {}
208
209 template <typename T>
210 template <typename A, typename B>
211 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
212 (
213 A const & s,
214 tvec3<B> const & v
215 ) :
216 x(value_type(s)),
217 y(value_type(v.x)),
218 z(value_type(v.y)),
219 w(value_type(v.z))
220 {}
221
222 template <typename T>
223 template <typename A, typename B>
224 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
225 (
226 tvec2<A> const & v1,
227 tvec2<B> const & v2
228 ) :
229 x(value_type(v1.x)),
230 y(value_type(v1.y)),
231 z(value_type(v2.x)),
232 w(value_type(v2.y))
233 {}
234
235 template <typename T>
236 template <typename U>
237 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
238 (
239 tvec4<U> const & v
240 ) :
241 x(value_type(v.x)),
242 y(value_type(v.y)),
243 z(value_type(v.z)),
244 w(value_type(v.w))
245 {}
246
247 //////////////////////////////////////
248 // Unary arithmetic operators
249
250 template <typename T>
251 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator=
252 (
253 tvec4<T> const & v
254 )
255 {
256 this->x = v.x;
257 this->y = v.y;
258 this->z = v.z;
259 this->w = v.w;
260 return *this;
261 }
262
263 template <typename T>
264 template <typename U>
265 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator=
266 (
267 tvec4<U> const & v
268 )
269 {
270 this->x = T(v.x);
271 this->y = T(v.y);
272 this->z = T(v.z);
273 this->w = T(v.w);
274 return *this;
275 }
276
277 template <typename T>
278 template <typename U>
279 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator+=
280 (
281 U const & s
282 )
283 {
284 this->x += T(s);
285 this->y += T(s);
286 this->z += T(s);
287 this->w += T(s);
288 return *this;
289 }
290
291 template <typename T>
292 template <typename U>
293 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator+=
294 (
295 tvec4<U> const & v
296 )
297 {
298 this->x += T(v.x);
299 this->y += T(v.y);
300 this->z += T(v.z);
301 this->w += T(v.w);
302 return *this;
303 }
304
305 template <typename T>
306 template <typename U>
307 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator-=
308 (
309 U const & s
310 )
311 {
312 this->x -= T(s);
313 this->y -= T(s);
314 this->z -= T(s);
315 this->w -= T(s);
316 return *this;
317 }
318
319 template <typename T>
320 template <typename U>
321 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator-=
322 (
323 tvec4<U> const & v
324 )
325 {
326 this->x -= T(v.x);
327 this->y -= T(v.y);
328 this->z -= T(v.z);
329 this->w -= T(v.w);
330 return *this;
331 }
332
333 template <typename T>
334 template <typename U>
335 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator*=
336 (
337 U const & s
338 )
339 {
340 this->x *= T(s);
341 this->y *= T(s);
342 this->z *= T(s);
343 this->w *= T(s);
344 return *this;
345 }
346
347 template <typename T>
348 template <typename U>
349 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator*=
350 (
351 tvec4<U> const & v
352 )
353 {
354 this->x *= T(v.x);
355 this->y *= T(v.y);
356 this->z *= T(v.z);
357 this->w *= T(v.w);
358 return *this;
359 }
360
361 template <typename T>
362 template <typename U>
363 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator/=
364 (
365 U const & s
366 )
367 {
368 this->x /= T(s);
369 this->y /= T(s);
370 this->z /= T(s);
371 this->w /= T(s);
372 return *this;
373 }
374
375 template <typename T>
376 template <typename U>
377 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator/=
378 (
379 tvec4<U> const & v
380 )
381 {
382 this->x /= T(v.x);
383 this->y /= T(v.y);
384 this->z /= T(v.z);
385 this->w /= T(v.w);
386 return *this;
387 }
388
389 template <typename T>
390 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator++()
391 {
392 ++this->x;
393 ++this->y;
394 ++this->z;
395 ++this->w;
396 return *this;
397 }
398
399 template <typename T>
400 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator--()
401 {
402 --this->x;
403 --this->y;
404 --this->z;
405 --this->w;
406 return *this;
407 }
408
409 //////////////////////////////////////
410 // Unary bit operators
411
412 template <typename T>
413 template <typename U>
414 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator%=
415 (
416 U const & s
417 )
418 {
419 this->x %= T(s);
420 this->y %= T(s);
421 this->z %= T(s);
422 this->w %= T(s);
423 return *this;
424 }
425
426 template <typename T>
427 template <typename U>
428 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator%=
429 (
430 tvec4<U> const & v
431 )
432 {
433 this->x %= T(v.x);
434 this->y %= T(v.y);
435 this->z %= T(v.z);
436 this->w %= T(v.w);
437 return *this;
438 }
439
440 template <typename T>
441 template <typename U>
442 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator&=
443 (
444 U const & s
445 )
446 {
447 this->x &= T(s);
448 this->y &= T(s);
449 this->z &= T(s);
450 this->w &= T(s);
451 return *this;
452 }
453
454 template <typename T>
455 template <typename U>
456 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator&=
457 (
458 tvec4<U> const & v
459 )
460 {
461 this->x &= T(v.x);
462 this->y &= T(v.y);
463 this->z &= T(v.z);
464 this->w &= T(v.w);
465 return *this;
466 }
467
468 template <typename T>
469 template <typename U>
470 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator|=
471 (
472 U const & s
473 )
474 {
475 this->x |= T(s);
476 this->y |= T(s);
477 this->z |= T(s);
478 this->w |= T(s);
479 return *this;
480 }
481
482 template <typename T>
483 template <typename U>
484 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator|=
485 (
486 tvec4<U> const & v
487 )
488 {
489 this->x |= T(v.x);
490 this->y |= T(v.y);
491 this->z |= T(v.z);
492 this->w |= T(v.w);
493 return *this;
494 }
495
496 template <typename T>
497 template <typename U>
498 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator^=
499 (
500 U const & s
501 )
502 {
503 this->x ^= T(s);
504 this->y ^= T(s);
505 this->z ^= T(s);
506 this->w ^= T(s);
507 return *this;
508 }
509
510 template <typename T>
511 template <typename U>
512 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator^=
513 (
514 tvec4<U> const & v
515 )
516 {
517 this->x ^= T(v.x);
518 this->y ^= T(v.y);
519 this->z ^= T(v.z);
520 this->w ^= T(v.w);
521 return *this;
522 }
523
524 template <typename T>
525 template <typename U>
526 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator<<=
527 (
528 U const & s
529 )
530 {
531 this->x <<= T(s);
532 this->y <<= T(s);
533 this->z <<= T(s);
534 this->w <<= T(s);
535 return *this;
536 }
537
538 template <typename T>
539 template <typename U>
540 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator<<=
541 (
542 tvec4<U> const & v
543 )
544 {
545 this->x <<= T(v.x);
546 this->y <<= T(v.y);
547 this->z <<= T(v.z);
548 this->w <<= T(v.w);
549 return *this;
550 }
551
552 template <typename T>
553 template <typename U>
554 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator>>=
555 (
556 U const & s
557 )
558 {
559 this->x >>= T(s);
560 this->y >>= T(s);
561 this->z >>= T(s);
562 this->w >>= T(s);
563 return *this;
564 }
565
566 template <typename T>
567 template <typename U>
568 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator>>=
569 (
570 tvec4<U> const & v
571 )
572 {
573 this->x >>= T(v.x);
574 this->y >>= T(v.y);
575 this->z >>= T(v.z);
576 this->w >>= T(v.w);
577 return *this;
578 }
579
580 //////////////////////////////////////
581 // Swizzle operators
582
583 template <typename T>
584 GLM_FUNC_QUALIFIER typename tvec4<T>::value_type
585 tvec4<T>::swizzle
586 (
587 comp x
588 ) const
589 {
590 return (*this)[x];
591 }
592
593 template <typename T>
594 GLM_FUNC_QUALIFIER tvec2<T> tvec4<T>::swizzle
595 (
596 comp x,
597 comp y
598 ) const
599 {
600 return tvec2<T>(
601 (*this)[x],
602 (*this)[y]);
603 }
604
605 template <typename T>
606 GLM_FUNC_QUALIFIER tvec3<T> tvec4<T>::swizzle
607 (
608 comp x,
609 comp y,
610 comp z
611 ) const
612 {
613 return tvec3<T>(
614 (*this)[x],
615 (*this)[y],
616 (*this)[z]);
617 }
618
619 template <typename T>
620 GLM_FUNC_QUALIFIER tvec4<T> tvec4<T>::swizzle
621 (
622 comp x,
623 comp y,
624 comp z,
625 comp w
626 ) const
627 {
628 return tvec4<T>(
629 (*this)[x],
630 (*this)[y],
631 (*this)[z],
632 (*this)[w]);
633 }
634
635 template <typename T>
636 GLM_FUNC_QUALIFIER tref4<T> tvec4<T>::swizzle
637 (
638 comp x,
639 comp y,
640 comp z,
641 comp w
642 )
643 {
644 return tref4<T>(
645 (*this)[x],
646 (*this)[y],
647 (*this)[z],
648 (*this)[w]);
649 }
650
651 //////////////////////////////////////
652 // Binary arithmetic operators
653
654 template <typename T>
655 GLM_FUNC_QUALIFIER tvec4<T> operator+
656 (
657 tvec4<T> const & v,
658 typename tvec4<T>::value_type const & s
659 )
660 {
661 return tvec4<T>(
662 v.x + s,
663 v.y + s,
664 v.z + s,
665 v.w + s);
666 }
667
668 template <typename T>
669 GLM_FUNC_QUALIFIER tvec4<T> operator+
670 (
671 typename tvec4<T>::value_type const & s,
672 tvec4<T> const & v
673 )
674 {
675 return tvec4<T>(
676 s + v.x,
677 s + v.y,
678 s + v.z,
679 s + v.w);
680 }
681
682 template <typename T>
683 GLM_FUNC_QUALIFIER tvec4<T> operator+
684 (
685 tvec4<T> const & v1,
686 tvec4<T> const & v2
687 )
688 {
689 return tvec4<T>(
690 v1.x + v2.x,
691 v1.y + v2.y,
692 v1.z + v2.z,
693 v1.w + v2.w);
694 }
695
696 //operator-
697 template <typename T>
698 GLM_FUNC_QUALIFIER tvec4<T> operator-
699 (
700 tvec4<T> const & v,
701 typename tvec4<T>::value_type const & s
702 )
703 {
704 return tvec4<T>(
705 v.x - s,
706 v.y - s,
707 v.z - s,
708 v.w - s);
709 }
710
711 template <typename T>
712 GLM_FUNC_QUALIFIER tvec4<T> operator-
713 (
714 typename tvec4<T>::value_type const & s,
715 tvec4<T> const & v
716 )
717 {
718 return tvec4<T>(
719 s - v.x,
720 s - v.y,
721 s - v.z,
722 s - v.w);
723 }
724
725 template <typename T>
726 GLM_FUNC_QUALIFIER tvec4<T> operator-
727 (
728 tvec4<T> const & v1,
729 tvec4<T> const & v2
730 )
731 {
732 return tvec4<T>(
733 v1.x - v2.x,
734 v1.y - v2.y,
735 v1.z - v2.z,
736 v1.w - v2.w);
737 }
738
739 //operator*
740 template <typename T>
741 GLM_FUNC_QUALIFIER tvec4<T> operator*
742 (
743 tvec4<T> const & v,
744 typename tvec4<T>::value_type const & s
745 )
746 {
747 return tvec4<T>(
748 v.x * s,
749 v.y * s,
750 v.z * s,
751 v.w * s);
752 }
753
754 template <typename T>
755 GLM_FUNC_QUALIFIER tvec4<T> operator*
756 (
757 typename tvec4<T>::value_type const & s,
758 tvec4<T> const & v
759 )
760 {
761 return tvec4<T>(
762 s * v.x,
763 s * v.y,
764 s * v.z,
765 s * v.w);
766 }
767
768 template <typename T>
769 GLM_FUNC_QUALIFIER tvec4<T> operator*
770 (
771 tvec4<T> const & v1,
772 tvec4<T> const & v2
773 )
774 {
775 return tvec4<T>(
776 v1.x * v2.x,
777 v1.y * v2.y,
778 v1.z * v2.z,
779 v1.w * v2.w);
780 }
781
782 //operator/
783 template <typename T>
784 GLM_FUNC_QUALIFIER tvec4<T> operator/
785 (
786 tvec4<T> const & v,
787 typename tvec4<T>::value_type const & s
788 )
789 {
790 return tvec4<T>(
791 v.x / s,
792 v.y / s,
793 v.z / s,
794 v.w / s);
795 }
796
797 template <typename T>
798 GLM_FUNC_QUALIFIER tvec4<T> operator/
799 (
800 typename tvec4<T>::value_type const & s,
801 tvec4<T> const & v
802 )
803 {
804 return tvec4<T>(
805 s / v.x,
806 s / v.y,
807 s / v.z,
808 s / v.w);
809 }
810
811 template <typename T>
812 GLM_FUNC_QUALIFIER tvec4<T> operator/
813 (
814 tvec4<T> const & v1,
815 tvec4<T> const & v2
816 )
817 {
818 return tvec4<T>(
819 v1.x / v2.x,
820 v1.y / v2.y,
821 v1.z / v2.z,
822 v1.w / v2.w);
823 }
824
825 // Unary constant operators
826 template <typename T>
827 GLM_FUNC_QUALIFIER tvec4<T> operator-
828 (
829 tvec4<T> const & v
830 )
831 {
832 return tvec4<T>(
833 -v.x,
834 -v.y,
835 -v.z,
836 -v.w);
837 }
838
839 template <typename T>
840 GLM_FUNC_QUALIFIER tvec4<T> operator++
841 (
842 tvec4<T> const & v,
843 int
844 )
845 {
846 typename tvec4<T>::value_type One(1);
847 return tvec4<T>(
848 v.x + One,
849 v.y + One,
850 v.z + One,
851 v.w + One);
852 }
853
854 template <typename T>
855 GLM_FUNC_QUALIFIER tvec4<T> operator--
856 (
857 tvec4<T> const & v,
858 int
859 )
860 {
861 typename tvec4<T>::value_type One(1);
862 return tvec4<T>(
863 v.x - One,
864 v.y - One,
865 v.z - One,
866 v.w - One);
867 }
868
869 //////////////////////////////////////
870 // Boolean operators
871
872 template <typename T>
873 GLM_FUNC_QUALIFIER bool operator==
874 (
875 tvec4<T> const & v1,
876 tvec4<T> const & v2
877 )
878 {
879 return (v1.x == v2.x) && (v1.y == v2.y) && (v1.z == v2.z) && (v1.w == v2.w);
880 }
881
882 template <typename T>
883 GLM_FUNC_QUALIFIER bool operator!=
884 (
885 tvec4<T> const & v1,
886 tvec4<T> const & v2
887 )
888 {
889 return (v1.x != v2.x) || (v1.y != v2.y) || (v1.z != v2.z) || (v1.w != v2.w);
890 }
891
892 //////////////////////////////////////
893 // Binary bit operators
894
895 template <typename T>
896 GLM_FUNC_QUALIFIER tvec4<T> operator%
897 (
898 tvec4<T> const & v,
899 typename tvec4<T>::value_type const & s
900 )
901 {
902 return tvec4<T>(
903 v.x % s,
904 v.y % s,
905 v.z % s,
906 v.w % s);
907 }
908
909 template <typename T>
910 GLM_FUNC_QUALIFIER tvec4<T> operator%
911 (
912 typename tvec4<T>::value_type const & s,
913 tvec4<T> const & v
914 )
915 {
916 return tvec4<T>(
917 s % v.x,
918 s % v.y,
919 s % v.z,
920 s % v.w);
921 }
922
923 template <typename T>
924 GLM_FUNC_QUALIFIER tvec4<T> operator%
925 (
926 tvec4<T> const & v1,
927 tvec4<T> const & v2
928 )
929 {
930 return tvec4<T>(
931 v1.x % v2.x,
932 v1.y % v2.y,
933 v1.z % v2.z,
934 v1.w % v2.w);
935 }
936
937 template <typename T>
938 GLM_FUNC_QUALIFIER tvec4<T> operator&
939 (
940 tvec4<T> const & v,
941 typename tvec4<T>::value_type const & s
942 )
943 {
944 return tvec4<T>(
945 v.x & s,
946 v.y & s,
947 v.z & s,
948 v.w & s);
949 }
950
951 template <typename T>
952 GLM_FUNC_QUALIFIER tvec4<T> operator&
953 (
954 typename tvec4<T>::value_type const & s,
955 tvec4<T> const & v
956 )
957 {
958 return tvec4<T>(
959 s & v.x,
960 s & v.y,
961 s & v.z,
962 s & v.w);
963 }
964
965 template <typename T>
966 GLM_FUNC_QUALIFIER tvec4<T> operator&
967 (
968 tvec4<T> const & v1,
969 tvec4<T> const & v2
970 )
971 {
972 return tvec4<T>(
973 v1.x & v2.x,
974 v1.y & v2.y,
975 v1.z & v2.z,
976 v1.w & v2.w);
977 }
978
979 template <typename T>
980 GLM_FUNC_QUALIFIER tvec4<T> operator|
981 (
982 tvec4<T> const & v,
983 typename tvec4<T>::value_type const & s
984 )
985 {
986 return tvec4<T>(
987 v.x | s,
988 v.y | s,
989 v.z | s,
990 v.w | s);
991 }
992
993 template <typename T>
994 GLM_FUNC_QUALIFIER tvec4<T> operator|
995 (
996 typename tvec4<T>::value_type const & s,
997 tvec4<T> const & v
998 )
999 {
1000 return tvec4<T>(
1001 s | v.x,
1002 s | v.y,
1003 s | v.z,
1004 s | v.w);
1005 }
1006
1007 template <typename T>
1008 GLM_FUNC_QUALIFIER tvec4<T> operator|
1009 (
1010 tvec4<T> const & v1,
1011 tvec4<T> const & v2
1012 )
1013 {
1014 return tvec4<T>(
1015 v1.x | v2.x,
1016 v1.y | v2.y,
1017 v1.z | v2.z,
1018 v1.w | v2.w);
1019 }
123 template <typename T>
124 template <typename U>
125 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
126 (
127 U const & x
128 ) :
129 x(value_type(x)),
130 y(value_type(x)),
131 z(value_type(x)),
132 w(value_type(x))
133 {}
134
135 template <typename T>
136 template <typename A, typename B, typename C, typename D>
137 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
138 (
139 A const & x,
140 B const & y,
141 C const & z,
142 D const & w
143 ) :
144 x(value_type(x)),
145 y(value_type(y)),
146 z(value_type(z)),
147 w(value_type(w))
148 {}
149
150 //////////////////////////////////////
151 // Convertion vector constructors
152
153 template <typename T>
154 template <typename A, typename B, typename C>
155 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
156 (
157 tvec2<A> const & v,
158 B const & s1,
159 C const & s2
160 ) :
161 x(value_type(v.x)),
162 y(value_type(v.y)),
163 z(value_type(s1)),
164 w(value_type(s2))
165 {}
166
167 template <typename T>
168 template <typename A, typename B, typename C>
169 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
170 (
171 A const & s1,
172 tvec2<B> const & v,
173 C const & s2
174 ) :
175 x(value_type(s1)),
176 y(value_type(v.x)),
177 z(value_type(v.y)),
178 w(value_type(s2))
179 {}
180
181 template <typename T>
182 template <typename A, typename B, typename C>
183 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
184 (
185 A const & s1,
186 B const & s2,
187 tvec2<C> const & v
188 ) :
189 x(value_type(s1)),
190 y(value_type(s2)),
191 z(value_type(v.x)),
192 w(value_type(v.y))
193 {}
194
195 template <typename T>
196 template <typename A, typename B>
197 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
198 (
199 tvec3<A> const & v,
200 B const & s
201 ) :
202 x(value_type(v.x)),
203 y(value_type(v.y)),
204 z(value_type(v.z)),
205 w(value_type(s))
206 {}
207
208 template <typename T>
209 template <typename A, typename B>
210 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
211 (
212 A const & s,
213 tvec3<B> const & v
214 ) :
215 x(value_type(s)),
216 y(value_type(v.x)),
217 z(value_type(v.y)),
218 w(value_type(v.z))
219 {}
220
221 template <typename T>
222 template <typename A, typename B>
223 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
224 (
225 tvec2<A> const & v1,
226 tvec2<B> const & v2
227 ) :
228 x(value_type(v1.x)),
229 y(value_type(v1.y)),
230 z(value_type(v2.x)),
231 w(value_type(v2.y))
232 {}
233
234 template <typename T>
235 template <typename U>
236 GLM_FUNC_QUALIFIER tvec4<T>::tvec4
237 (
238 tvec4<U> const & v
239 ) :
240 x(value_type(v.x)),
241 y(value_type(v.y)),
242 z(value_type(v.z)),
243 w(value_type(v.w))
244 {}
245
246 //////////////////////////////////////
247 // Unary arithmetic operators
248
249 template <typename T>
250 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator=
251 (
252 tvec4<T> const & v
253 )
254 {
255 this->x = v.x;
256 this->y = v.y;
257 this->z = v.z;
258 this->w = v.w;
259 return *this;
260 }
261
262 template <typename T>
263 template <typename U>
264 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator=
265 (
266 tvec4<U> const & v
267 )
268 {
269 this->x = T(v.x);
270 this->y = T(v.y);
271 this->z = T(v.z);
272 this->w = T(v.w);
273 return *this;
274 }
275
276 template <typename T>
277 template <typename U>
278 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator+=
279 (
280 U const & s
281 )
282 {
283 this->x += T(s);
284 this->y += T(s);
285 this->z += T(s);
286 this->w += T(s);
287 return *this;
288 }
289
290 template <typename T>
291 template <typename U>
292 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator+=
293 (
294 tvec4<U> const & v
295 )
296 {
297 this->x += T(v.x);
298 this->y += T(v.y);
299 this->z += T(v.z);
300 this->w += T(v.w);
301 return *this;
302 }
303
304 template <typename T>
305 template <typename U>
306 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator-=
307 (
308 U const & s
309 )
310 {
311 this->x -= T(s);
312 this->y -= T(s);
313 this->z -= T(s);
314 this->w -= T(s);
315 return *this;
316 }
317
318 template <typename T>
319 template <typename U>
320 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator-=
321 (
322 tvec4<U> const & v
323 )
324 {
325 this->x -= T(v.x);
326 this->y -= T(v.y);
327 this->z -= T(v.z);
328 this->w -= T(v.w);
329 return *this;
330 }
331
332 template <typename T>
333 template <typename U>
334 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator*=
335 (
336 U const & s
337 )
338 {
339 this->x *= T(s);
340 this->y *= T(s);
341 this->z *= T(s);
342 this->w *= T(s);
343 return *this;
344 }
345
346 template <typename T>
347 template <typename U>
348 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator*=
349 (
350 tvec4<U> const & v
351 )
352 {
353 this->x *= T(v.x);
354 this->y *= T(v.y);
355 this->z *= T(v.z);
356 this->w *= T(v.w);
357 return *this;
358 }
359
360 template <typename T>
361 template <typename U>
362 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator/=
363 (
364 U const & s
365 )
366 {
367 this->x /= T(s);
368 this->y /= T(s);
369 this->z /= T(s);
370 this->w /= T(s);
371 return *this;
372 }
373
374 template <typename T>
375 template <typename U>
376 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator/=
377 (
378 tvec4<U> const & v
379 )
380 {
381 this->x /= T(v.x);
382 this->y /= T(v.y);
383 this->z /= T(v.z);
384 this->w /= T(v.w);
385 return *this;
386 }
387
388 template <typename T>
389 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator++()
390 {
391 ++this->x;
392 ++this->y;
393 ++this->z;
394 ++this->w;
395 return *this;
396 }
397
398 template <typename T>
399 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator--()
400 {
401 --this->x;
402 --this->y;
403 --this->z;
404 --this->w;
405 return *this;
406 }
407
408 //////////////////////////////////////
409 // Unary bit operators
410
411 template <typename T>
412 template <typename U>
413 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator%=
414 (
415 U const & s
416 )
417 {
418 this->x %= T(s);
419 this->y %= T(s);
420 this->z %= T(s);
421 this->w %= T(s);
422 return *this;
423 }
424
425 template <typename T>
426 template <typename U>
427 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator%=
428 (
429 tvec4<U> const & v
430 )
431 {
432 this->x %= T(v.x);
433 this->y %= T(v.y);
434 this->z %= T(v.z);
435 this->w %= T(v.w);
436 return *this;
437 }
438
439 template <typename T>
440 template <typename U>
441 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator&=
442 (
443 U const & s
444 )
445 {
446 this->x &= T(s);
447 this->y &= T(s);
448 this->z &= T(s);
449 this->w &= T(s);
450 return *this;
451 }
452
453 template <typename T>
454 template <typename U>
455 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator&=
456 (
457 tvec4<U> const & v
458 )
459 {
460 this->x &= T(v.x);
461 this->y &= T(v.y);
462 this->z &= T(v.z);
463 this->w &= T(v.w);
464 return *this;
465 }
466
467 template <typename T>
468 template <typename U>
469 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator|=
470 (
471 U const & s
472 )
473 {
474 this->x |= T(s);
475 this->y |= T(s);
476 this->z |= T(s);
477 this->w |= T(s);
478 return *this;
479 }
480
481 template <typename T>
482 template <typename U>
483 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator|=
484 (
485 tvec4<U> const & v
486 )
487 {
488 this->x |= T(v.x);
489 this->y |= T(v.y);
490 this->z |= T(v.z);
491 this->w |= T(v.w);
492 return *this;
493 }
494
495 template <typename T>
496 template <typename U>
497 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator^=
498 (
499 U const & s
500 )
501 {
502 this->x ^= T(s);
503 this->y ^= T(s);
504 this->z ^= T(s);
505 this->w ^= T(s);
506 return *this;
507 }
508
509 template <typename T>
510 template <typename U>
511 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator^=
512 (
513 tvec4<U> const & v
514 )
515 {
516 this->x ^= T(v.x);
517 this->y ^= T(v.y);
518 this->z ^= T(v.z);
519 this->w ^= T(v.w);
520 return *this;
521 }
522
523 template <typename T>
524 template <typename U>
525 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator<<=
526 (
527 U const & s
528 )
529 {
530 this->x <<= T(s);
531 this->y <<= T(s);
532 this->z <<= T(s);
533 this->w <<= T(s);
534 return *this;
535 }
536
537 template <typename T>
538 template <typename U>
539 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator<<=
540 (
541 tvec4<U> const & v
542 )
543 {
544 this->x <<= T(v.x);
545 this->y <<= T(v.y);
546 this->z <<= T(v.z);
547 this->w <<= T(v.w);
548 return *this;
549 }
550
551 template <typename T>
552 template <typename U>
553 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator>>=
554 (
555 U const & s
556 )
557 {
558 this->x >>= T(s);
559 this->y >>= T(s);
560 this->z >>= T(s);
561 this->w >>= T(s);
562 return *this;
563 }
564
565 template <typename T>
566 template <typename U>
567 GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator>>=
568 (
569 tvec4<U> const & v
570 )
571 {
572 this->x >>= T(v.x);
573 this->y >>= T(v.y);
574 this->z >>= T(v.z);
575 this->w >>= T(v.w);
576 return *this;
577 }
578
579 //////////////////////////////////////
580 // Swizzle operators
581
582 template <typename T>
583 GLM_FUNC_QUALIFIER typename tvec4<T>::value_type
584 tvec4<T>::swizzle
585 (
586 comp x
587 ) const
588 {
589 return (*this)[x];
590 }
591
592 template <typename T>
593 GLM_FUNC_QUALIFIER tvec2<T> tvec4<T>::swizzle
594 (
595 comp x,
596 comp y
597 ) const
598 {
599 return tvec2<T>(
600 (*this)[x],
601 (*this)[y]);
602 }
603
604 template <typename T>
605 GLM_FUNC_QUALIFIER tvec3<T> tvec4<T>::swizzle
606 (
607 comp x,
608 comp y,
609 comp z
610 ) const
611 {
612 return tvec3<T>(
613 (*this)[x],
614 (*this)[y],
615 (*this)[z]);
616 }
617
618 template <typename T>
619 GLM_FUNC_QUALIFIER tvec4<T> tvec4<T>::swizzle
620 (
621 comp x,
622 comp y,
623 comp z,
624 comp w
625 ) const
626 {
627 return tvec4<T>(
628 (*this)[x],
629 (*this)[y],
630 (*this)[z],
631 (*this)[w]);
632 }
633
634 template <typename T>
635 GLM_FUNC_QUALIFIER tref2<T> tvec4<T>::swizzle
636 (
637 comp x,
638 comp y
639 )
640 {
641 return tref2<T>(
642 (*this)[x],
643 (*this)[y]);
644 }
645
646 template <typename T>
647 GLM_FUNC_QUALIFIER tref3<T> tvec4<T>::swizzle
648 (
649 comp x,
650 comp y,
651 comp z
652 )
653 {
654 return tref3<T>(
655 (*this)[x],
656 (*this)[y],
657 (*this)[z]);
658 }
659
660 template <typename T>
661 GLM_FUNC_QUALIFIER tref4<T> tvec4<T>::swizzle
662 (
663 comp x,
664 comp y,
665 comp z,
666 comp w
667 )
668 {
669 return tref4<T>(
670 (*this)[x],
671 (*this)[y],
672 (*this)[z],
673 (*this)[w]);
674 }
675
676 //////////////////////////////////////
677 // Binary arithmetic operators
678
679 template <typename T>
680 GLM_FUNC_QUALIFIER tvec4<T> operator+
681 (
682 tvec4<T> const & v,
683 typename tvec4<T>::value_type const & s
684 )
685 {
686 return tvec4<T>(
687 v.x + s,
688 v.y + s,
689 v.z + s,
690 v.w + s);
691 }
692
693 template <typename T>
694 GLM_FUNC_QUALIFIER tvec4<T> operator+
695 (
696 typename tvec4<T>::value_type const & s,
697 tvec4<T> const & v
698 )
699 {
700 return tvec4<T>(
701 s + v.x,
702 s + v.y,
703 s + v.z,
704 s + v.w);
705 }
706
707 template <typename T>
708 GLM_FUNC_QUALIFIER tvec4<T> operator+
709 (
710 tvec4<T> const & v1,
711 tvec4<T> const & v2
712 )
713 {
714 return tvec4<T>(
715 v1.x + v2.x,
716 v1.y + v2.y,
717 v1.z + v2.z,
718 v1.w + v2.w);
719 }
720
721 //operator-
722 template <typename T>
723 GLM_FUNC_QUALIFIER tvec4<T> operator-
724 (
725 tvec4<T> const & v,
726 typename tvec4<T>::value_type const & s
727 )
728 {
729 return tvec4<T>(
730 v.x - s,
731 v.y - s,
732 v.z - s,
733 v.w - s);
734 }
735
736 template <typename T>
737 GLM_FUNC_QUALIFIER tvec4<T> operator-
738 (
739 typename tvec4<T>::value_type const & s,
740 tvec4<T> const & v
741 )
742 {
743 return tvec4<T>(
744 s - v.x,
745 s - v.y,
746 s - v.z,
747 s - v.w);
748 }
749
750 template <typename T>
751 GLM_FUNC_QUALIFIER tvec4<T> operator-
752 (
753 tvec4<T> const & v1,
754 tvec4<T> const & v2
755 )
756 {
757 return tvec4<T>(
758 v1.x - v2.x,
759 v1.y - v2.y,
760 v1.z - v2.z,
761 v1.w - v2.w);
762 }
763
764 //operator*
765 template <typename T>
766 GLM_FUNC_QUALIFIER tvec4<T> operator*
767 (
768 tvec4<T> const & v,
769 typename tvec4<T>::value_type const & s
770 )
771 {
772 return tvec4<T>(
773 v.x * s,
774 v.y * s,
775 v.z * s,
776 v.w * s);
777 }
778
779 template <typename T>
780 GLM_FUNC_QUALIFIER tvec4<T> operator*
781 (
782 typename tvec4<T>::value_type const & s,
783 tvec4<T> const & v
784 )
785 {
786 return tvec4<T>(
787 s * v.x,
788 s * v.y,
789 s * v.z,
790 s * v.w);
791 }
792
793 template <typename T>
794 GLM_FUNC_QUALIFIER tvec4<T> operator*
795 (
796 tvec4<T> const & v1,
797 tvec4<T> const & v2
798 )
799 {
800 return tvec4<T>(
801 v1.x * v2.x,
802 v1.y * v2.y,
803 v1.z * v2.z,
804 v1.w * v2.w);
805 }
806
807 //operator/
808 template <typename T>
809 GLM_FUNC_QUALIFIER tvec4<T> operator/
810 (
811 tvec4<T> const & v,
812 typename tvec4<T>::value_type const & s
813 )
814 {
815 return tvec4<T>(
816 v.x / s,
817 v.y / s,
818 v.z / s,
819 v.w / s);
820 }
821
822 template <typename T>
823 GLM_FUNC_QUALIFIER tvec4<T> operator/
824 (
825 typename tvec4<T>::value_type const & s,
826 tvec4<T> const & v
827 )
828 {
829 return tvec4<T>(
830 s / v.x,
831 s / v.y,
832 s / v.z,
833 s / v.w);
834 }
835
836 template <typename T>
837 GLM_FUNC_QUALIFIER tvec4<T> operator/
838 (
839 tvec4<T> const & v1,
840 tvec4<T> const & v2
841 )
842 {
843 return tvec4<T>(
844 v1.x / v2.x,
845 v1.y / v2.y,
846 v1.z / v2.z,
847 v1.w / v2.w);
848 }
849
850 // Unary constant operators
851 template <typename T>
852 GLM_FUNC_QUALIFIER tvec4<T> operator-
853 (
854 tvec4<T> const & v
855 )
856 {
857 return tvec4<T>(
858 -v.x,
859 -v.y,
860 -v.z,
861 -v.w);
862 }
863
864 template <typename T>
865 GLM_FUNC_QUALIFIER tvec4<T> operator++
866 (
867 tvec4<T> const & v,
868 int
869 )
870 {
871 typename tvec4<T>::value_type One(1);
872 return tvec4<T>(
873 v.x + One,
874 v.y + One,
875 v.z + One,
876 v.w + One);
877 }
878
879 template <typename T>
880 GLM_FUNC_QUALIFIER tvec4<T> operator--
881 (
882 tvec4<T> const & v,
883 int
884 )
885 {
886 typename tvec4<T>::value_type One(1);
887 return tvec4<T>(
888 v.x - One,
889 v.y - One,
890 v.z - One,
891 v.w - One);
892 }
893
894 //////////////////////////////////////
895 // Boolean operators
896
897 template <typename T>
898 GLM_FUNC_QUALIFIER bool operator==
899 (
900 tvec4<T> const & v1,
901 tvec4<T> const & v2
902 )
903 {
904 return (v1.x == v2.x) && (v1.y == v2.y) && (v1.z == v2.z) && (v1.w == v2.w);
905 }
906
907 template <typename T>
908 GLM_FUNC_QUALIFIER bool operator!=
909 (
910 tvec4<T> const & v1,
911 tvec4<T> const & v2
912 )
913 {
914 return (v1.x != v2.x) || (v1.y != v2.y) || (v1.z != v2.z) || (v1.w != v2.w);
915 }
916
917 //////////////////////////////////////
918 // Binary bit operators
919
920 template <typename T>
921 GLM_FUNC_QUALIFIER tvec4<T> operator%
922 (
923 tvec4<T> const & v,
924 typename tvec4<T>::value_type const & s
925 )
926 {
927 return tvec4<T>(
928 v.x % s,
929 v.y % s,
930 v.z % s,
931 v.w % s);
932 }
933
934 template <typename T>
935 GLM_FUNC_QUALIFIER tvec4<T> operator%
936 (
937 typename tvec4<T>::value_type const & s,
938 tvec4<T> const & v
939 )
940 {
941 return tvec4<T>(
942 s % v.x,
943 s % v.y,
944 s % v.z,
945 s % v.w);
946 }
947
948 template <typename T>
949 GLM_FUNC_QUALIFIER tvec4<T> operator%
950 (
951 tvec4<T> const & v1,
952 tvec4<T> const & v2
953 )
954 {
955 return tvec4<T>(
956 v1.x % v2.x,
957 v1.y % v2.y,
958 v1.z % v2.z,
959 v1.w % v2.w);
960 }
961
962 template <typename T>
963 GLM_FUNC_QUALIFIER tvec4<T> operator&
964 (
965 tvec4<T> const & v,
966 typename tvec4<T>::value_type const & s
967 )
968 {
969 return tvec4<T>(
970 v.x & s,
971 v.y & s,
972 v.z & s,
973 v.w & s);
974 }
975
976 template <typename T>
977 GLM_FUNC_QUALIFIER tvec4<T> operator&
978 (
979 typename tvec4<T>::value_type const & s,
980 tvec4<T> const & v
981 )
982 {
983 return tvec4<T>(
984 s & v.x,
985 s & v.y,
986 s & v.z,
987 s & v.w);
988 }
989
990 template <typename T>
991 GLM_FUNC_QUALIFIER tvec4<T> operator&
992 (
993 tvec4<T> const & v1,
994 tvec4<T> const & v2
995 )
996 {
997 return tvec4<T>(
998 v1.x & v2.x,
999 v1.y & v2.y,
1000 v1.z & v2.z,
1001 v1.w & v2.w);
1002 }
1003
1004 template <typename T>
1005 GLM_FUNC_QUALIFIER tvec4<T> operator|
1006 (
1007 tvec4<T> const & v,
1008 typename tvec4<T>::value_type const & s
1009 )
1010 {
1011 return tvec4<T>(
1012 v.x | s,
1013 v.y | s,
1014 v.z | s,
1015 v.w | s);
1016 }
1017
1018 template <typename T>
1019 GLM_FUNC_QUALIFIER tvec4<T> operator|
1020 (
1021 typename tvec4<T>::value_type const & s,
1022 tvec4<T> const & v
1023 )
1024 {
1025 return tvec4<T>(
1026 s | v.x,
1027 s | v.y,
1028 s | v.z,
1029 s | v.w);
1030 }
1031
1032 template <typename T>
1033 GLM_FUNC_QUALIFIER tvec4<T> operator|
1034 (
1035 tvec4<T> const & v1,
1036 tvec4<T> const & v2
1037 )
1038 {
1039 return tvec4<T>(
1040 v1.x | v2.x,
1041 v1.y | v2.y,
1042 v1.z | v2.z,
1043 v1.w | v2.w);
1044 }
10201045
1021 template <typename T>
1022 GLM_FUNC_QUALIFIER tvec4<T> operator^
1023 (
1024 tvec4<T> const & v,
1025 typename tvec4<T>::value_type const & s
1026 )
1027 {
1028 return tvec4<T>(
1029 v.x ^ s,
1030 v.y ^ s,
1031 v.z ^ s,
1032 v.w ^ s);
1033 }
1034
1035 template <typename T>
1036 GLM_FUNC_QUALIFIER tvec4<T> operator^
1037 (
1038 typename tvec4<T>::value_type const & s,
1039 tvec4<T> const & v
1040 )
1041 {
1042 return tvec4<T>(
1043 s ^ v.x,
1044 s ^ v.y,
1045 s ^ v.z,
1046 s ^ v.w);
1047 }
1048
1049 template <typename T>
1050 GLM_FUNC_QUALIFIER tvec4<T> operator^
1051 (
1052 tvec4<T> const & v1,
1053 tvec4<T> const & v2
1054 )
1055 {
1056 return tvec4<T>(
1057 v1.x ^ v2.x,
1058 v1.y ^ v2.y,
1059 v1.z ^ v2.z,
1060 v1.w ^ v2.w);
1061 }
1062
1063 template <typename T>
1064 GLM_FUNC_QUALIFIER tvec4<T> operator<<
1065 (
1066 tvec4<T> const & v,
1067 typename tvec4<T>::value_type const & s
1068 )
1069 {
1070 return tvec4<T>(
1071 v.x << s,
1072 v.y << s,
1073 v.z << s,
1074 v.w << s);
1075 }
1076
1077 template <typename T>
1078 GLM_FUNC_QUALIFIER tvec4<T> operator<<
1079 (
1080 typename tvec4<T>::value_type const & s,
1081 tvec4<T> const & v
1082 )
1083 {
1084 return tvec4<T>(
1085 s << v.x,
1086 s << v.y,
1087 s << v.z,
1088 s << v.w);
1089 }
1090
1091 template <typename T>
1092 GLM_FUNC_QUALIFIER tvec4<T> operator<<
1093 (
1094 tvec4<T> const & v1,
1095 tvec4<T> const & v2
1096 )
1097 {
1098 return tvec4<T>(
1099 v1.x << v2.x,
1100 v1.y << v2.y,
1101 v1.z << v2.z,
1102 v1.w << v2.w);
1103 }
1104
1105 template <typename T>
1106 GLM_FUNC_QUALIFIER tvec4<T> operator>>
1107 (
1108 tvec4<T> const & v,
1109 typename tvec4<T>::value_type const & s
1110 )
1111 {
1112 return tvec4<T>(
1113 v.x >> s,
1114 v.y >> s,
1115 v.z >> s,
1116 v.w >> s);
1117 }
1118
1119 template <typename T>
1120 GLM_FUNC_QUALIFIER tvec4<T> operator>>
1121 (
1122 typename tvec4<T>::value_type const & s,
1123 tvec4<T> const & v
1124 )
1125 {
1126 return tvec4<T>(
1127 s >> v.x,
1128 s >> v.y,
1129 s >> v.z,
1130 s >> v.w);
1131 }
1132
1133 template <typename T>
1134 GLM_FUNC_QUALIFIER tvec4<T> operator>>
1135 (
1136 tvec4<T> const & v1,
1137 tvec4<T> const & v2
1138 )
1139 {
1140 return tvec4<T>(
1141 v1.x >> v2.x,
1142 v1.y >> v2.y,
1143 v1.z >> v2.z,
1144 v1.w >> v2.w);
1145 }
1146
1147 template <typename T>
1148 GLM_FUNC_QUALIFIER tvec4<T> operator~
1149 (
1150 tvec4<T> const & v
1151 )
1152 {
1153 return tvec4<T>(
1154 ~v.x,
1155 ~v.y,
1156 ~v.z,
1157 ~v.w);
1158 }
1159
1160 //////////////////////////////////////
1161 // tref definition
1162
1163 template <typename T>
1164 tref4<T>::tref4
1165 (
1166 T & x,
1167 T & y,
1168 T & z,
1169 T & w
1170 ) :
1171 x(x),
1172 y(y),
1173 z(z),
1174 w(w)
1175 {}
1176
1177 template <typename T>
1178 tref4<T>::tref4
1179 (
1180 tref4<T> const & r
1181 ) :
1182 x(r.x),
1183 y(r.y),
1184 z(r.z),
1185 w(r.w)
1186 {}
1187
1188 template <typename T>
1189 tref4<T>::tref4
1190 (
1191 tvec4<T> const & v
1192 ) :
1193 x(v.x),
1194 y(v.y),
1195 z(v.z),
1196 w(v.w)
1197 {}
1198
1199 template <typename T>
1200 tref4<T>& tref4<T>::operator=
1201 (
1202 tref4<T> const & r
1203 )
1204 {
1205 x = r.x;
1206 y = r.y;
1207 z = r.z;
1208 w = r.w;
1209 return *this;
1210 }
1211
1212 template <typename T>
1213 tref4<T>& tref4<T>::operator=
1214 (
1215 tvec4<T> const & v
1216 )
1217 {
1218 x = v.x;
1219 y = v.y;
1220 z = v.z;
1221 w = v.w;
1222 return *this;
1223 }
1224
1225 }//namespace detail
1046 template <typename T>
1047 GLM_FUNC_QUALIFIER tvec4<T> operator^
1048 (
1049 tvec4<T> const & v,
1050 typename tvec4<T>::value_type const & s
1051 )
1052 {
1053 return tvec4<T>(
1054 v.x ^ s,
1055 v.y ^ s,
1056 v.z ^ s,
1057 v.w ^ s);
1058 }
1059
1060 template <typename T>
1061 GLM_FUNC_QUALIFIER tvec4<T> operator^
1062 (
1063 typename tvec4<T>::value_type const & s,
1064 tvec4<T> const & v
1065 )
1066 {
1067 return tvec4<T>(
1068 s ^ v.x,
1069 s ^ v.y,
1070 s ^ v.z,
1071 s ^ v.w);
1072 }
1073
1074 template <typename T>
1075 GLM_FUNC_QUALIFIER tvec4<T> operator^
1076 (
1077 tvec4<T> const & v1,
1078 tvec4<T> const & v2
1079 )
1080 {
1081 return tvec4<T>(
1082 v1.x ^ v2.x,
1083 v1.y ^ v2.y,
1084 v1.z ^ v2.z,
1085 v1.w ^ v2.w);
1086 }
1087
1088 template <typename T>
1089 GLM_FUNC_QUALIFIER tvec4<T> operator<<
1090 (
1091 tvec4<T> const & v,
1092 typename tvec4<T>::value_type const & s
1093 )
1094 {
1095 return tvec4<T>(
1096 v.x << s,
1097 v.y << s,
1098 v.z << s,
1099 v.w << s);
1100 }
1101
1102 template <typename T>
1103 GLM_FUNC_QUALIFIER tvec4<T> operator<<
1104 (
1105 typename tvec4<T>::value_type const & s,
1106 tvec4<T> const & v
1107 )
1108 {
1109 return tvec4<T>(
1110 s << v.x,
1111 s << v.y,
1112 s << v.z,
1113 s << v.w);
1114 }
1115
1116 template <typename T>
1117 GLM_FUNC_QUALIFIER tvec4<T> operator<<
1118 (
1119 tvec4<T> const & v1,
1120 tvec4<T> const & v2
1121 )
1122 {
1123 return tvec4<T>(
1124 v1.x << v2.x,
1125 v1.y << v2.y,
1126 v1.z << v2.z,
1127 v1.w << v2.w);
1128 }
1129
1130 template <typename T>
1131 GLM_FUNC_QUALIFIER tvec4<T> operator>>
1132 (
1133 tvec4<T> const & v,
1134 typename tvec4<T>::value_type const & s
1135 )
1136 {
1137 return tvec4<T>(
1138 v.x >> s,
1139 v.y >> s,
1140 v.z >> s,
1141 v.w >> s);
1142 }
1143
1144 template <typename T>
1145 GLM_FUNC_QUALIFIER tvec4<T> operator>>
1146 (
1147 typename tvec4<T>::value_type const & s,
1148 tvec4<T> const & v
1149 )
1150 {
1151 return tvec4<T>(
1152 s >> v.x,
1153 s >> v.y,
1154 s >> v.z,
1155 s >> v.w);
1156 }
1157
1158 template <typename T>
1159 GLM_FUNC_QUALIFIER tvec4<T> operator>>
1160 (
1161 tvec4<T> const & v1,
1162 tvec4<T> const & v2
1163 )
1164 {
1165 return tvec4<T>(
1166 v1.x >> v2.x,
1167 v1.y >> v2.y,
1168 v1.z >> v2.z,
1169 v1.w >> v2.w);
1170 }
1171
1172 template <typename T>
1173 GLM_FUNC_QUALIFIER tvec4<T> operator~
1174 (
1175 tvec4<T> const & v
1176 )
1177 {
1178 return tvec4<T>(
1179 ~v.x,
1180 ~v.y,
1181 ~v.z,
1182 ~v.w);
1183 }
1184
1185 //////////////////////////////////////
1186 // tref definition
1187
1188 template <typename T>
1189 tref4<T>::tref4
1190 (
1191 T & x,
1192 T & y,
1193 T & z,
1194 T & w
1195 ) :
1196 x(x),
1197 y(y),
1198 z(z),
1199 w(w)
1200 {}
1201
1202 template <typename T>
1203 tref4<T>::tref4
1204 (
1205 tref4<T> const & r
1206 ) :
1207 x(r.x),
1208 y(r.y),
1209 z(r.z),
1210 w(r.w)
1211 {}
1212
1213 template <typename T>
1214 tref4<T>::tref4
1215 (
1216 tvec4<T> const & v
1217 ) :
1218 x(v.x),
1219 y(v.y),
1220 z(v.z),
1221 w(v.w)
1222 {}
1223
1224 template <typename T>
1225 tref4<T>& tref4<T>::operator=
1226 (
1227 tref4<T> const & r
1228 )
1229 {
1230 x = r.x;
1231 y = r.y;
1232 z = r.z;
1233 w = r.w;
1234 return *this;
1235 }
1236
1237 template <typename T>
1238 tref4<T>& tref4<T>::operator=
1239 (
1240 tvec4<T> const & v
1241 )
1242 {
1243 x = v.x;
1244 y = v.y;
1245 z = v.z;
1246 w = v.w;
1247 return *this;
1248 }
1249
1250 }//namespace detail
12261251 }//namespace glm
2525 //! GLM namespace, it contains all GLSL based features.
2626 namespace glm
2727 {
28 namespace test
29 {
30 bool main_bug();
31 bool main_core();
32 }//namespace test
33
3428 //! GLM core. Namespace that includes all the feature define by GLSL 4.10.6 specification. This namespace is included in glm namespace.
3529 namespace core
3630 {
3832 //! from section 4.1.2 Booleans, 4.1.3 Integers section, 4.1.4 Floats section,
3933 //! 4.1.5 Vectors and section 4.1.6 Matrices of GLSL 1.30.8 specification.
4034 //! This namespace resolves precision qualifier define in section 4.5 of GLSL 1.30.8 specification.
41 namespace type{}
35 namespace type
36 {
37 namespace precision{}
38 }
4239
4340 //! Some of the functions defined in section 8 Built-in Functions of GLSL 1.30.8 specification.
4441 //! Angle and trigonometry, exponential, common, geometric, matrix and vector relational functions.
4542 namespace function{}
46 }
47 //namespace core
43 }//namespace core
4844
4945 //! G-Truc Creation stable extensions.
5046 namespace gtc{}
5450 namespace gtx{}
5551
5652 //! VIRTREV extensions.
57 namespace img{}
53 namespace virtrev{}
5854
59 } //namespace glm
55 using namespace core::type;
56 using namespace core::type::precision;
57 using namespace core::function;
58 }//namespace glm
6059
6160 #include "./core/_detail.hpp"
6261 #include "./core/type.hpp"
7170 #include "./core/func_integer.hpp"
7271 #include "./core/func_noise.hpp"
7372 #include "./core/_swizzle.hpp"
74
75 namespace glm
76 {
77 using namespace core::type;
78 using namespace core::type::precision;
79 using namespace core::function;
80 } //namespace glm
8173
8274 ////////////////////
8375 // check type sizes
9789 GLM_STATIC_ASSERT(sizeof(glm::detail::float64) == 8, "float64 size isn't 8 bytes on this platform");
9890 #endif//GLM_STATIC_ASSERT_NULL
9991
100 #endif //glm_glm
92 #endif//glm_glm
1616 # pragma message("GLM: GLM_GTC_half_float extension included")
1717 #endif
1818
19 namespace glm
19 namespace glm{
20 namespace detail
2021 {
21 namespace test{
22 bool main_gtc_half_float();
23 }//namespace
24 namespace detail
22 #ifndef _MSC_EXTENSIONS
23 template <>
24 struct tvec2<thalf>
2525 {
26 #ifndef _MSC_EXTENSIONS
27 template <>
28 struct tvec2<thalf>
29 {
30 enum ctor{null};
31 typedef thalf value_type;
32 typedef std::size_t size_type;
33 static size_type value_size();
34
35 typedef tvec2<thalf> type;
36 typedef tvec2<bool> bool_type;
37
38 //////////////////////////////////////
39 // Data
40
41 thalf x, y;
42
43 //////////////////////////////////////
44 // Accesses
45
46 thalf & operator[](size_type i);
47 thalf const & operator[](size_type i) const;
48
49 //////////////////////////////////////
50 // Implicit basic constructors
51
52 tvec2();
53 tvec2(tvec2<thalf> const & v);
54
55 //////////////////////////////////////
56 // Explicit basic constructors
57
58 explicit tvec2(ctor);
59 explicit tvec2(
60 thalf const & s);
61 explicit tvec2(
62 thalf const & s1,
63 thalf const & s2);
64
65 //////////////////////////////////////
66 // Swizzle constructors
67
68 tvec2(tref2<thalf> const & r);
69
70 //////////////////////////////////////
71 // Convertion scalar constructors
72
73 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
74 template <typename U>
75 explicit tvec2(U const & x);
76 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
77 template <typename U, typename V>
78 explicit tvec2(U const & x, V const & y);
79
80 //////////////////////////////////////
81 // Convertion vector constructors
82
83 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
84 template <typename U>
85 explicit tvec2(tvec2<U> const & v);
86 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
87 template <typename U>
88 explicit tvec2(tvec3<U> const & v);
89 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
90 template <typename U>
91 explicit tvec2(tvec4<U> const & v);
92
93 //////////////////////////////////////
94 // Unary arithmetic operators
95
96 tvec2<thalf>& operator= (tvec2<thalf> const & v);
97
98 tvec2<thalf>& operator+=(thalf const & s);
99 tvec2<thalf>& operator+=(tvec2<thalf> const & v);
100 tvec2<thalf>& operator-=(thalf const & s);
101 tvec2<thalf>& operator-=(tvec2<thalf> const & v);
102 tvec2<thalf>& operator*=(thalf const & s);
103 tvec2<thalf>& operator*=(tvec2<thalf> const & v);
104 tvec2<thalf>& operator/=(thalf const & s);
105 tvec2<thalf>& operator/=(tvec2<thalf> const & v);
106 tvec2<thalf>& operator++();
107 tvec2<thalf>& operator--();
108
109 //////////////////////////////////////
110 // Swizzle operators
111
112 thalf swizzle(comp X) const;
113 tvec2<thalf> swizzle(comp X, comp Y) const;
114 tvec3<thalf> swizzle(comp X, comp Y, comp Z) const;
115 tvec4<thalf> swizzle(comp X, comp Y, comp Z, comp W) const;
116 tref2<thalf> swizzle(comp X, comp Y);
117 };
118
119 template <>
120 struct tvec3<thalf>
121 {
122 enum ctor{null};
123 typedef thalf value_type;
124 typedef std::size_t size_type;
125 static size_type value_size();
126
127 typedef tvec3<thalf> type;
128 typedef tvec3<bool> bool_type;
129
130 //////////////////////////////////////
131 // Data
132
133 thalf x, y, z;
134
135 //////////////////////////////////////
136 // Accesses
137
138 thalf & operator[](size_type i);
139 thalf const & operator[](size_type i) const;
140
141 //////////////////////////////////////
142 // Implicit basic constructors
143
144 tvec3();
145 tvec3(tvec3<thalf> const & v);
146
147 //////////////////////////////////////
148 // Explicit basic constructors
149
150 explicit tvec3(ctor);
151 explicit tvec3(
152 thalf const & s);
153 explicit tvec3(
154 thalf const & s1,
155 thalf const & s2,
156 thalf const & s3);
157
158 //////////////////////////////////////
159 // Swizzle constructors
160
161 tvec3(tref3<thalf> const & r);
162
163 //////////////////////////////////////
164 // Convertion scalar constructors
165
166 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
167 template <typename U>
168 explicit tvec3(U const & x);
169 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
170 template <typename U, typename V, typename W>
171 explicit tvec3(U const & x, V const & y, W const & z);
172
173 //////////////////////////////////////
174 // Convertion vector constructors
175
176 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
177 template <typename A, typename B>
178 explicit tvec3(tvec2<A> const & v, B const & s);
179 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
180 template <typename A, typename B>
181 explicit tvec3(A const & s, tvec2<B> const & v);
182 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
183 template <typename U>
184 explicit tvec3(tvec3<U> const & v);
185 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
186 template <typename U>
187 explicit tvec3(tvec4<U> const & v);
188
189 //////////////////////////////////////
190 // Unary arithmetic operators
191
192 tvec3<thalf>& operator= (tvec3<thalf> const & v);
193
194 tvec3<thalf>& operator+=(thalf const & s);
195 tvec3<thalf>& operator+=(tvec3<thalf> const & v);
196 tvec3<thalf>& operator-=(thalf const & s);
197 tvec3<thalf>& operator-=(tvec3<thalf> const & v);
198 tvec3<thalf>& operator*=(thalf const & s);
199 tvec3<thalf>& operator*=(tvec3<thalf> const & v);
200 tvec3<thalf>& operator/=(thalf const & s);
201 tvec3<thalf>& operator/=(tvec3<thalf> const & v);
202 tvec3<thalf>& operator++();
203 tvec3<thalf>& operator--();
204
205 //////////////////////////////////////
206 // Swizzle operators
207
208 thalf swizzle(comp X) const;
209 tvec2<thalf> swizzle(comp X, comp Y) const;
210 tvec3<thalf> swizzle(comp X, comp Y, comp Z) const;
211 tvec4<thalf> swizzle(comp X, comp Y, comp Z, comp W) const;
212 tref3<thalf> swizzle(comp X, comp Y, comp Z);
213 };
214
215 template <>
216 struct tvec4<thalf>
217 {
218 enum ctor{null};
219 typedef thalf value_type;
220 typedef std::size_t size_type;
221 static size_type value_size();
222
223 typedef tvec4<thalf> type;
224 typedef tvec4<bool> bool_type;
225
226 //////////////////////////////////////
227 // Data
228
229 thalf x, y, z, w;
230
231 //////////////////////////////////////
232 // Accesses
233
234 thalf & operator[](size_type i);
235 thalf const & operator[](size_type i) const;
236
237 //////////////////////////////////////
238 // Implicit basic constructors
239
240 tvec4();
241 tvec4(tvec4<thalf> const & v);
242
243 //////////////////////////////////////
244 // Explicit basic constructors
245
246 explicit tvec4(ctor);
247 explicit tvec4(
248 thalf const & s);
249 explicit tvec4(
250 thalf const & s0,
251 thalf const & s1,
252 thalf const & s2,
253 thalf const & s3);
254
255 //////////////////////////////////////
256 // Swizzle constructors
257
258 tvec4(tref4<thalf> const & r);
259
260 //////////////////////////////////////
261 // Convertion scalar constructors
262
263 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
264 template <typename U>
265 explicit tvec4(U const & x);
266 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
267 template <typename A, typename B, typename C, typename D>
268 explicit tvec4(A const & x, B const & y, C const & z, D const & w);
269
270 //////////////////////////////////////
271 // Convertion vector constructors
272
273 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
274 template <typename A, typename B, typename C>
275 explicit tvec4(tvec2<A> const & v, B const & s1, C const & s2);
276 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
277 template <typename A, typename B, typename C>
278 explicit tvec4(A const & s1, tvec2<B> const & v, C const & s2);
279 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
280 template <typename A, typename B, typename C>
281 explicit tvec4(A const & s1, B const & s2, tvec2<C> const & v);
282 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
283 template <typename A, typename B>
284 explicit tvec4(tvec3<A> const & v, B const & s);
285 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
286 template <typename A, typename B>
287 explicit tvec4(A const & s, tvec3<B> const & v);
288 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
289 template <typename A, typename B>
290 explicit tvec4(tvec2<A> const & v1, tvec2<B> const & v2);
291 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
292 template <typename U>
293 explicit tvec4(tvec4<U> const & v);
294
295 //////////////////////////////////////
296 // Unary arithmetic operators
297
298 tvec4<thalf>& operator= (tvec4<thalf> const & v);
299
300 tvec4<thalf>& operator+=(thalf const & s);
301 tvec4<thalf>& operator+=(tvec4<thalf> const & v);
302 tvec4<thalf>& operator-=(thalf const & s);
303 tvec4<thalf>& operator-=(tvec4<thalf> const & v);
304 tvec4<thalf>& operator*=(thalf const & s);
305 tvec4<thalf>& operator*=(tvec4<thalf> const & v);
306 tvec4<thalf>& operator/=(thalf const & s);
307 tvec4<thalf>& operator/=(tvec4<thalf> const & v);
308 tvec4<thalf>& operator++();
309 tvec4<thalf>& operator--();
310
311 //////////////////////////////////////
312 // Swizzle operators
313
314 thalf swizzle(comp X) const;
315 tvec2<thalf> swizzle(comp X, comp Y) const;
316 tvec3<thalf> swizzle(comp X, comp Y, comp Z) const;
317 tvec4<thalf> swizzle(comp X, comp Y, comp Z, comp W) const;
318 tref4<thalf> swizzle(comp X, comp Y, comp Z, comp W);
319 };
26 enum ctor{null};
27 typedef thalf value_type;
28 typedef std::size_t size_type;
29 static size_type value_size();
30 GLM_FUNC_DECL size_type length() const;
31
32 typedef tvec2<thalf> type;
33 typedef tvec2<bool> bool_type;
34
35 //////////////////////////////////////
36 // Data
37
38 thalf x, y;
39
40 //////////////////////////////////////
41 // Accesses
42
43 thalf & operator[](size_type i);
44 thalf const & operator[](size_type i) const;
45
46 //////////////////////////////////////
47 // Implicit basic constructors
48
49 tvec2();
50 tvec2(tvec2<thalf> const & v);
51
52 //////////////////////////////////////
53 // Explicit basic constructors
54
55 explicit tvec2(ctor);
56 explicit tvec2(
57 thalf const & s);
58 explicit tvec2(
59 thalf const & s1,
60 thalf const & s2);
61
62 //////////////////////////////////////
63 // Swizzle constructors
64
65 tvec2(tref2<thalf> const & r);
66
67 //////////////////////////////////////
68 // Convertion scalar constructors
69
70 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
71 template <typename U>
72 explicit tvec2(U const & x);
73 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
74 template <typename U, typename V>
75 explicit tvec2(U const & x, V const & y);
76
77 //////////////////////////////////////
78 // Convertion vector constructors
79
80 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
81 template <typename U>
82 explicit tvec2(tvec2<U> const & v);
83 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
84 template <typename U>
85 explicit tvec2(tvec3<U> const & v);
86 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
87 template <typename U>
88 explicit tvec2(tvec4<U> const & v);
89
90 //////////////////////////////////////
91 // Unary arithmetic operators
92
93 tvec2<thalf>& operator= (tvec2<thalf> const & v);
94
95 tvec2<thalf>& operator+=(thalf const & s);
96 tvec2<thalf>& operator+=(tvec2<thalf> const & v);
97 tvec2<thalf>& operator-=(thalf const & s);
98 tvec2<thalf>& operator-=(tvec2<thalf> const & v);
99 tvec2<thalf>& operator*=(thalf const & s);
100 tvec2<thalf>& operator*=(tvec2<thalf> const & v);
101 tvec2<thalf>& operator/=(thalf const & s);
102 tvec2<thalf>& operator/=(tvec2<thalf> const & v);
103 tvec2<thalf>& operator++();
104 tvec2<thalf>& operator--();
105
106 //////////////////////////////////////
107 // Swizzle operators
108
109 thalf swizzle(comp X) const;
110 tvec2<thalf> swizzle(comp X, comp Y) const;
111 tvec3<thalf> swizzle(comp X, comp Y, comp Z) const;
112 tvec4<thalf> swizzle(comp X, comp Y, comp Z, comp W) const;
113 tref2<thalf> swizzle(comp X, comp Y);
114 };
115
116 template <>
117 struct tvec3<thalf>
118 {
119 enum ctor{null};
120 typedef thalf value_type;
121 typedef std::size_t size_type;
122 static size_type value_size();
123 GLM_FUNC_DECL size_type length() const;
124
125 typedef tvec3<thalf> type;
126 typedef tvec3<bool> bool_type;
127
128 //////////////////////////////////////
129 // Data
130
131 thalf x, y, z;
132
133 //////////////////////////////////////
134 // Accesses
135
136 thalf & operator[](size_type i);
137 thalf const & operator[](size_type i) const;
138
139 //////////////////////////////////////
140 // Implicit basic constructors
141
142 tvec3();
143 tvec3(tvec3<thalf> const & v);
144
145 //////////////////////////////////////
146 // Explicit basic constructors
147
148 explicit tvec3(ctor);
149 explicit tvec3(
150 thalf const & s);
151 explicit tvec3(
152 thalf const & s1,
153 thalf const & s2,
154 thalf const & s3);
155
156 //////////////////////////////////////
157 // Swizzle constructors
158
159 tvec3(tref3<thalf> const & r);
160
161 //////////////////////////////////////
162 // Convertion scalar constructors
163
164 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
165 template <typename U>
166 explicit tvec3(U const & x);
167 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
168 template <typename U, typename V, typename W>
169 explicit tvec3(U const & x, V const & y, W const & z);
170
171 //////////////////////////////////////
172 // Convertion vector constructors
173
174 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
175 template <typename A, typename B>
176 explicit tvec3(tvec2<A> const & v, B const & s);
177 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
178 template <typename A, typename B>
179 explicit tvec3(A const & s, tvec2<B> const & v);
180 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
181 template <typename U>
182 explicit tvec3(tvec3<U> const & v);
183 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
184 template <typename U>
185 explicit tvec3(tvec4<U> const & v);
186
187 //////////////////////////////////////
188 // Unary arithmetic operators
189
190 tvec3<thalf>& operator= (tvec3<thalf> const & v);
191
192 tvec3<thalf>& operator+=(thalf const & s);
193 tvec3<thalf>& operator+=(tvec3<thalf> const & v);
194 tvec3<thalf>& operator-=(thalf const & s);
195 tvec3<thalf>& operator-=(tvec3<thalf> const & v);
196 tvec3<thalf>& operator*=(thalf const & s);
197 tvec3<thalf>& operator*=(tvec3<thalf> const & v);
198 tvec3<thalf>& operator/=(thalf const & s);
199 tvec3<thalf>& operator/=(tvec3<thalf> const & v);
200 tvec3<thalf>& operator++();
201 tvec3<thalf>& operator--();
202
203 //////////////////////////////////////
204 // Swizzle operators
205
206 thalf swizzle(comp X) const;
207 tvec2<thalf> swizzle(comp X, comp Y) const;
208 tvec3<thalf> swizzle(comp X, comp Y, comp Z) const;
209 tvec4<thalf> swizzle(comp X, comp Y, comp Z, comp W) const;
210 tref3<thalf> swizzle(comp X, comp Y, comp Z);
211 };
212
213 template <>
214 struct tvec4<thalf>
215 {
216 enum ctor{null};
217 typedef thalf value_type;
218 typedef std::size_t size_type;
219 static size_type value_size();
220 GLM_FUNC_DECL size_type length() const;
221
222 typedef tvec4<thalf> type;
223 typedef tvec4<bool> bool_type;
224
225 //////////////////////////////////////
226 // Data
227
228 thalf x, y, z, w;
229
230 //////////////////////////////////////
231 // Accesses
232
233 thalf & operator[](size_type i);
234 thalf const & operator[](size_type i) const;
235
236 //////////////////////////////////////
237 // Implicit basic constructors
238
239 tvec4();
240 tvec4(tvec4<thalf> const & v);
241
242 //////////////////////////////////////
243 // Explicit basic constructors
244
245 explicit tvec4(ctor);
246 explicit tvec4(
247 thalf const & s);
248 explicit tvec4(
249 thalf const & s0,
250 thalf const & s1,
251 thalf const & s2,
252 thalf const & s3);
253
254 //////////////////////////////////////
255 // Swizzle constructors
256
257 tvec4(tref4<thalf> const & r);
258
259 //////////////////////////////////////
260 // Convertion scalar constructors
261
262 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
263 template <typename U>
264 explicit tvec4(U const & x);
265 //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
266 template <typename A, typename B, typename C, typename D>
267 explicit tvec4(A const & x, B const & y, C const & z, D const & w);
268
269 //////////////////////////////////////
270 // Convertion vector constructors
271
272 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
273 template <typename A, typename B, typename C>
274 explicit tvec4(tvec2<A> const & v, B const & s1, C const & s2);
275 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
276 template <typename A, typename B, typename C>
277 explicit tvec4(A const & s1, tvec2<B> const & v, C const & s2);
278 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
279 template <typename A, typename B, typename C>
280 explicit tvec4(A const & s1, B const & s2, tvec2<C> const & v);
281 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
282 template <typename A, typename B>
283 explicit tvec4(tvec3<A> const & v, B const & s);
284 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
285 template <typename A, typename B>
286 explicit tvec4(A const & s, tvec3<B> const & v);
287 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
288 template <typename A, typename B>
289 explicit tvec4(tvec2<A> const & v1, tvec2<B> const & v2);
290 //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
291 template <typename U>
292 explicit tvec4(tvec4<U> const & v);
293
294 //////////////////////////////////////
295 // Unary arithmetic operators
296
297 tvec4<thalf>& operator= (tvec4<thalf> const & v);
298
299 tvec4<thalf>& operator+=(thalf const & s);
300 tvec4<thalf>& operator+=(tvec4<thalf> const & v);
301 tvec4<thalf>& operator-=(thalf const & s);
302 tvec4<thalf>& operator-=(tvec4<thalf> const & v);
303 tvec4<thalf>& operator*=(thalf const & s);
304 tvec4<thalf>& operator*=(tvec4<thalf> const & v);
305 tvec4<thalf>& operator/=(thalf const & s);
306 tvec4<thalf>& operator/=(tvec4<thalf> const & v);
307 tvec4<thalf>& operator++();
308 tvec4<thalf>& operator--();
309
310 //////////////////////////////////////
311 // Swizzle operators
312
313 thalf swizzle(comp X) const;
314 tvec2<thalf> swizzle(comp X, comp Y) const;
315 tvec3<thalf> swizzle(comp X, comp Y, comp Z) const;
316 tvec4<thalf> swizzle(comp X, comp Y, comp Z, comp W) const;
317 tref4<thalf> swizzle(comp X, comp Y, comp Z, comp W);
318 };
320319 #endif//_MSC_EXTENSIONS
321 }
322 //namespace detail
323
324 namespace gtc{
325 //! GLM_GTC_half_float extension: Add support for half precision floating-point types
326 namespace half_float
327 {
328 /// \addtogroup gtc_half_float
329 ///@{
330
331 //! Type for half-precision floating-point numbers.
332 //! From GLM_GTC_half_float extension.
333 typedef detail::thalf half;
334
335 //! Vector of 2 half-precision floating-point numbers.
336 //! From GLM_GTC_half_float extension.
337 typedef detail::tvec2<detail::thalf> hvec2;
338
339 //! Vector of 3 half-precision floating-point numbers.
340 //! From GLM_GTC_half_float extension.
341 typedef detail::tvec3<detail::thalf> hvec3;
342
343 //! Vector of 4 half-precision floating-point numbers.
344 //! From GLM_GTC_half_float extension.
345 typedef detail::tvec4<detail::thalf> hvec4;
346
347 //! 2 * 2 matrix of half-precision floating-point numbers.
348 //! From GLM_GTC_half_float extension.
349 typedef detail::tmat2x2<detail::thalf> hmat2;
350
351 //! 3 * 3 matrix of half-precision floating-point numbers.
352 //! From GLM_GTC_half_float extension.
353 typedef detail::tmat3x3<detail::thalf> hmat3;
354
355 //! 4 * 4 matrix of half-precision floating-point numbers.
356 //! From GLM_GTC_half_float extension.
357 typedef detail::tmat4x4<detail::thalf> hmat4;
358
359 ///@}
360
361 }//namespace half_float
362 }//namespace gtc
363 }//namespace glm
320 }
321 //namespace detail
322
323 namespace gtc{
324 namespace half_float ///< GLM_GTC_half_float extension: Add support for half precision floating-point types
325 {
326 /// \addtogroup gtc_half_float
327 ///@{
328
329 /// Type for half-precision floating-point numbers.
330 /// From GLM_GTC_half_float extension.
331 typedef detail::thalf half;
332
333 /// Vector of 2 half-precision floating-point numbers.
334 /// From GLM_GTC_half_float extension.
335 typedef detail::tvec2<detail::thalf> hvec2;
336
337 /// Vector of 3 half-precision floating-point numbers.
338 /// From GLM_GTC_half_float extension.
339 typedef detail::tvec3<detail::thalf> hvec3;
340
341 /// Vector of 4 half-precision floating-point numbers.
342 /// From GLM_GTC_half_float extension.
343 typedef detail::tvec4<detail::thalf> hvec4;
344
345 /// 2 * 2 matrix of half-precision floating-point numbers.
346 /// From GLM_GTC_half_float extension.
347 typedef detail::tmat2x2<detail::thalf> hmat2;
348
349 /// 3 * 3 matrix of half-precision floating-point numbers.
350 /// From GLM_GTC_half_float extension.
351 typedef detail::tmat3x3<detail::thalf> hmat3;
352
353 /// 4 * 4 matrix of half-precision floating-point numbers.
354 /// From GLM_GTC_half_float extension.
355 typedef detail::tmat4x4<detail::thalf> hmat4;
356
357 /// 2 * 2 matrix of half-precision floating-point numbers.
358 /// From GLM_GTC_half_float extension.
359 typedef detail::tmat2x2<detail::thalf> hmat2x2;
360
361 /// 2 * 3 matrix of half-precision floating-point numbers.
362 /// From GLM_GTC_half_float extension.
363 typedef detail::tmat2x3<detail::thalf> hmat2x3;
364
365 /// 2 * 4 matrix of half-precision floating-point numbers.
366 /// From GLM_GTC_half_float extension.
367 typedef detail::tmat2x4<detail::thalf> hmat2x4;
368
369 /// 3 * 2 matrix of half-precision floating-point numbers.
370 /// From GLM_GTC_half_float extension.
371 typedef detail::tmat3x2<detail::thalf> hmat3x2;
372
373 /// 3 * 3 matrix of half-precision floating-point numbers.
374 /// From GLM_GTC_half_float extension.
375 typedef detail::tmat3x3<detail::thalf> hmat3x3;
376
377 /// 3 * 4 matrix of half-precision floating-point numbers.
378 /// From GLM_GTC_half_float extension.
379 typedef detail::tmat3x4<detail::thalf> hmat3x4;
380
381 /// 4 * 2 matrix of half-precision floating-point numbers.
382 /// From GLM_GTC_half_float extension.
383 typedef detail::tmat4x2<detail::thalf> hmat4x2;
384
385 /// 4 * 3 matrix of half-precision floating-point numbers.
386 /// From GLM_GTC_half_float extension.
387 typedef detail::tmat4x3<detail::thalf> hmat4x3;
388
389 /// 4 * 4 matrix of half-precision floating-point numbers.
390 /// From GLM_GTC_half_float extension.
391 typedef detail::tmat4x4<detail::thalf> hmat4x4;
392
393 /// @}
394
395 }// namespace half_float
396 }// namespace gtc
397 }// namespace glm
364398
365399 #include "half_float.inl"
366400
1919 return 2;
2020 }
2121
22 GLM_FUNC_QUALIFIER tvec2<thalf>::size_type tvec2<thalf>::length() const
23 {
24 return 2;
25 }
26
2227 //////////////////////////////////////
2328 // Accesses
2429
287292 return 3;
288293 }
289294
295 GLM_FUNC_QUALIFIER tvec3<thalf>::size_type tvec3<thalf>::length() const
296 {
297 return 3;
298 }
299
290300 //////////////////////////////////////
291301 // Accesses
292302
599609 return 4;
600610 }
601611
612 GLM_FUNC_QUALIFIER tvec4<thalf>::size_type tvec4<thalf>::length() const
613 {
614 return 4;
615 }
616
602617 //////////////////////////////////////
603618 // Accesses
604619
2121
2222 namespace glm{
2323 namespace gtc{
24 //! GLM_GTC_matrix_access extension: Set a column or a row of a matrix
25 namespace matrix_access
24 namespace matrix_access ///< GLM_GTC_matrix_access extension: Set a column or a row of a matrix
2625 {
2726 /// \addtogroup gtc_matrix_access
2827 ///@{
1919 # pragma message("GLM: GLM_GTC_matrix_integer extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtc{
24 namespace matrix_integer ///< GLM_GTC_matrix_integer extension: Add integer matrices
2325 {
24 namespace test{
25 bool main_gtc_matrix_integer();
26 }//namespace test
27
28 namespace gtc{
29 //! GLM_GTC_matrix_integer extension: Add integer matrices
30 namespace matrix_integer
31 {
32 /// \addtogroup gtc_matrix_integer
33 ///@{
34
35 typedef detail::tmat2x2<highp_int> highp_imat2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
36 typedef detail::tmat3x3<highp_int> highp_imat3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
37 typedef detail::tmat4x4<highp_int> highp_imat4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
38
39 typedef detail::tmat2x2<highp_int> highp_imat2x2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
40 typedef detail::tmat2x3<highp_int> highp_imat2x3; //!< \brief High-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
41 typedef detail::tmat2x4<highp_int> highp_imat2x4; //!< \brief High-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
42 typedef detail::tmat3x2<highp_int> highp_imat3x2; //!< \brief High-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
43 typedef detail::tmat3x3<highp_int> highp_imat3x3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
44 typedef detail::tmat3x4<highp_int> highp_imat3x4; //!< \brief High-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
45 typedef detail::tmat4x2<highp_int> highp_imat4x2; //!< \brief High-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
46 typedef detail::tmat4x3<highp_int> highp_imat4x3; //!< \brief High-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
47 typedef detail::tmat4x4<highp_int> highp_imat4x4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
48
49 typedef detail::tmat2x2<mediump_int> mediump_imat2; //!< \brief Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
50 typedef detail::tmat3x3<mediump_int> mediump_imat3; //!< \brief Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
51 typedef detail::tmat4x4<mediump_int> mediump_imat4; //!< \brief Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
52
53 typedef detail::tmat2x2<mediump_int> mediump_imat2x2; //!< \brief Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
54 typedef detail::tmat2x3<mediump_int> mediump_imat2x3; //!< \brief Medium-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
55 typedef detail::tmat2x4<mediump_int> mediump_imat2x4; //!< \brief Medium-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
56 typedef detail::tmat3x2<mediump_int> mediump_imat3x2; //!< \brief Medium-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
57 typedef detail::tmat3x3<mediump_int> mediump_imat3x3; //!< \brief Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
58 typedef detail::tmat3x4<mediump_int> mediump_imat3x4; //!< \brief Medium-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
59 typedef detail::tmat4x2<mediump_int> mediump_imat4x2; //!< \brief Medium-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
60 typedef detail::tmat4x3<mediump_int> mediump_imat4x3; //!< \brief Medium-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
61 typedef detail::tmat4x4<mediump_int> mediump_imat4x4; //!< \brief Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
62
63 typedef detail::tmat2x2<lowp_int> lowp_imat2; //!< \brief Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
64 typedef detail::tmat3x3<lowp_int> lowp_imat3; //!< \brief Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
65 typedef detail::tmat4x4<lowp_int> lowp_imat4; //!< \brief Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
66
67 typedef detail::tmat2x2<lowp_int> lowp_imat2x2; //!< \brief Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
68 typedef detail::tmat2x3<lowp_int> lowp_imat2x3; //!< \brief Low-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
69 typedef detail::tmat2x4<lowp_int> lowp_imat2x4; //!< \brief Low-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
70 typedef detail::tmat3x2<lowp_int> lowp_imat3x2; //!< \brief Low-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
71 typedef detail::tmat3x3<lowp_int> lowp_imat3x3; //!< \brief Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
72 typedef detail::tmat3x4<lowp_int> lowp_imat3x4; //!< \brief Low-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
73 typedef detail::tmat4x2<lowp_int> lowp_imat4x2; //!< \brief Low-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
74 typedef detail::tmat4x3<lowp_int> lowp_imat4x3; //!< \brief Low-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
75 typedef detail::tmat4x4<lowp_int> lowp_imat4x4; //!< \brief Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
76
77 typedef detail::tmat2x2<highp_uint> highp_umat2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
78 typedef detail::tmat3x3<highp_uint> highp_umat3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
79 typedef detail::tmat4x4<highp_uint> highp_umat4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
80
81 typedef detail::tmat2x2<highp_uint> highp_umat2x2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
82 typedef detail::tmat2x3<highp_uint> highp_umat2x3; //!< \brief High-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
83 typedef detail::tmat2x4<highp_uint> highp_umat2x4; //!< \brief High-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
84 typedef detail::tmat3x2<highp_uint> highp_umat3x2; //!< \brief High-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
85 typedef detail::tmat3x3<highp_uint> highp_umat3x3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
86 typedef detail::tmat3x4<highp_uint> highp_umat3x4; //!< \brief High-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
87 typedef detail::tmat4x2<highp_uint> highp_umat4x2; //!< \brief High-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
88 typedef detail::tmat4x3<highp_uint> highp_umat4x3; //!< \brief High-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
89 typedef detail::tmat4x4<highp_uint> highp_umat4x4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
90
91 typedef detail::tmat2x2<mediump_uint> mediump_umat2; //!< \brief Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
92 typedef detail::tmat3x3<mediump_uint> mediump_umat3; //!< \brief Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
93 typedef detail::tmat4x4<mediump_uint> mediump_umat4; //!< \brief Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
94
95 typedef detail::tmat2x2<mediump_uint> mediump_umat2x2; //!< \brief Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
96 typedef detail::tmat2x3<mediump_uint> mediump_umat2x3; //!< \brief Medium-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
97 typedef detail::tmat2x4<mediump_uint> mediump_umat2x4; //!< \brief Medium-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
98 typedef detail::tmat3x2<mediump_uint> mediump_umat3x2; //!< \brief Medium-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
99 typedef detail::tmat3x3<mediump_uint> mediump_umat3x3; //!< \brief Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
100 typedef detail::tmat3x4<mediump_uint> mediump_umat3x4; //!< \brief Medium-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
101 typedef detail::tmat4x2<mediump_uint> mediump_umat4x2; //!< \brief Medium-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
102 typedef detail::tmat4x3<mediump_uint> mediump_umat4x3; //!< \brief Medium-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
103 typedef detail::tmat4x4<mediump_uint> mediump_umat4x4; //!< \brief Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
104
105 typedef detail::tmat2x2<lowp_uint> lowp_umat2; //!< \brief Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
106 typedef detail::tmat3x3<lowp_uint> lowp_umat3; //!< \brief Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
107 typedef detail::tmat4x4<lowp_uint> lowp_umat4; //!< \brief Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
108
109 typedef detail::tmat2x2<lowp_uint> lowp_umat2x2; //!< \brief Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
110 typedef detail::tmat2x3<lowp_uint> lowp_umat2x3; //!< \brief Low-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
111 typedef detail::tmat2x4<lowp_uint> lowp_umat2x4; //!< \brief Low-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
112 typedef detail::tmat3x2<lowp_uint> lowp_umat3x2; //!< \brief Low-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
113 typedef detail::tmat3x3<lowp_uint> lowp_umat3x3; //!< \brief Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
114 typedef detail::tmat3x4<lowp_uint> lowp_umat3x4; //!< \brief Low-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
115 typedef detail::tmat4x2<lowp_uint> lowp_umat4x2; //!< \brief Low-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
116 typedef detail::tmat4x3<lowp_uint> lowp_umat4x3; //!< \brief Low-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
117 typedef detail::tmat4x4<lowp_uint> lowp_umat4x4; //!< \brief Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
26 /// \addtogroup gtc_matrix_integer
27 ///@{
28
29 typedef detail::tmat2x2<highp_int> highp_imat2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
30 typedef detail::tmat3x3<highp_int> highp_imat3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
31 typedef detail::tmat4x4<highp_int> highp_imat4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
32
33 typedef detail::tmat2x2<highp_int> highp_imat2x2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
34 typedef detail::tmat2x3<highp_int> highp_imat2x3; //!< \brief High-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
35 typedef detail::tmat2x4<highp_int> highp_imat2x4; //!< \brief High-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
36 typedef detail::tmat3x2<highp_int> highp_imat3x2; //!< \brief High-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
37 typedef detail::tmat3x3<highp_int> highp_imat3x3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
38 typedef detail::tmat3x4<highp_int> highp_imat3x4; //!< \brief High-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
39 typedef detail::tmat4x2<highp_int> highp_imat4x2; //!< \brief High-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
40 typedef detail::tmat4x3<highp_int> highp_imat4x3; //!< \brief High-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
41 typedef detail::tmat4x4<highp_int> highp_imat4x4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
42
43 typedef detail::tmat2x2<mediump_int> mediump_imat2; //!< \brief Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
44 typedef detail::tmat3x3<mediump_int> mediump_imat3; //!< \brief Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
45 typedef detail::tmat4x4<mediump_int> mediump_imat4; //!< \brief Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
46
47 typedef detail::tmat2x2<mediump_int> mediump_imat2x2; //!< \brief Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
48 typedef detail::tmat2x3<mediump_int> mediump_imat2x3; //!< \brief Medium-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
49 typedef detail::tmat2x4<mediump_int> mediump_imat2x4; //!< \brief Medium-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
50 typedef detail::tmat3x2<mediump_int> mediump_imat3x2; //!< \brief Medium-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
51 typedef detail::tmat3x3<mediump_int> mediump_imat3x3; //!< \brief Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
52 typedef detail::tmat3x4<mediump_int> mediump_imat3x4; //!< \brief Medium-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
53 typedef detail::tmat4x2<mediump_int> mediump_imat4x2; //!< \brief Medium-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
54 typedef detail::tmat4x3<mediump_int> mediump_imat4x3; //!< \brief Medium-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
55 typedef detail::tmat4x4<mediump_int> mediump_imat4x4; //!< \brief Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
56
57 typedef detail::tmat2x2<lowp_int> lowp_imat2; //!< \brief Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
58 typedef detail::tmat3x3<lowp_int> lowp_imat3; //!< \brief Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
59 typedef detail::tmat4x4<lowp_int> lowp_imat4; //!< \brief Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
60
61 typedef detail::tmat2x2<lowp_int> lowp_imat2x2; //!< \brief Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
62 typedef detail::tmat2x3<lowp_int> lowp_imat2x3; //!< \brief Low-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
63 typedef detail::tmat2x4<lowp_int> lowp_imat2x4; //!< \brief Low-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
64 typedef detail::tmat3x2<lowp_int> lowp_imat3x2; //!< \brief Low-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
65 typedef detail::tmat3x3<lowp_int> lowp_imat3x3; //!< \brief Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
66 typedef detail::tmat3x4<lowp_int> lowp_imat3x4; //!< \brief Low-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
67 typedef detail::tmat4x2<lowp_int> lowp_imat4x2; //!< \brief Low-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
68 typedef detail::tmat4x3<lowp_int> lowp_imat4x3; //!< \brief Low-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
69 typedef detail::tmat4x4<lowp_int> lowp_imat4x4; //!< \brief Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
70
71 typedef detail::tmat2x2<highp_uint> highp_umat2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
72 typedef detail::tmat3x3<highp_uint> highp_umat3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
73 typedef detail::tmat4x4<highp_uint> highp_umat4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
74
75 typedef detail::tmat2x2<highp_uint> highp_umat2x2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
76 typedef detail::tmat2x3<highp_uint> highp_umat2x3; //!< \brief High-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
77 typedef detail::tmat2x4<highp_uint> highp_umat2x4; //!< \brief High-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
78 typedef detail::tmat3x2<highp_uint> highp_umat3x2; //!< \brief High-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
79 typedef detail::tmat3x3<highp_uint> highp_umat3x3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
80 typedef detail::tmat3x4<highp_uint> highp_umat3x4; //!< \brief High-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
81 typedef detail::tmat4x2<highp_uint> highp_umat4x2; //!< \brief High-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
82 typedef detail::tmat4x3<highp_uint> highp_umat4x3; //!< \brief High-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
83 typedef detail::tmat4x4<highp_uint> highp_umat4x4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
84
85 typedef detail::tmat2x2<mediump_uint> mediump_umat2; //!< \brief Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
86 typedef detail::tmat3x3<mediump_uint> mediump_umat3; //!< \brief Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
87 typedef detail::tmat4x4<mediump_uint> mediump_umat4; //!< \brief Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
88
89 typedef detail::tmat2x2<mediump_uint> mediump_umat2x2; //!< \brief Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
90 typedef detail::tmat2x3<mediump_uint> mediump_umat2x3; //!< \brief Medium-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
91 typedef detail::tmat2x4<mediump_uint> mediump_umat2x4; //!< \brief Medium-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
92 typedef detail::tmat3x2<mediump_uint> mediump_umat3x2; //!< \brief Medium-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
93 typedef detail::tmat3x3<mediump_uint> mediump_umat3x3; //!< \brief Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
94 typedef detail::tmat3x4<mediump_uint> mediump_umat3x4; //!< \brief Medium-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
95 typedef detail::tmat4x2<mediump_uint> mediump_umat4x2; //!< \brief Medium-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
96 typedef detail::tmat4x3<mediump_uint> mediump_umat4x3; //!< \brief Medium-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
97 typedef detail::tmat4x4<mediump_uint> mediump_umat4x4; //!< \brief Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
98
99 typedef detail::tmat2x2<lowp_uint> lowp_umat2; //!< \brief Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
100 typedef detail::tmat3x3<lowp_uint> lowp_umat3; //!< \brief Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
101 typedef detail::tmat4x4<lowp_uint> lowp_umat4; //!< \brief Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
102
103 typedef detail::tmat2x2<lowp_uint> lowp_umat2x2; //!< \brief Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
104 typedef detail::tmat2x3<lowp_uint> lowp_umat2x3; //!< \brief Low-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
105 typedef detail::tmat2x4<lowp_uint> lowp_umat2x4; //!< \brief Low-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
106 typedef detail::tmat3x2<lowp_uint> lowp_umat3x2; //!< \brief Low-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
107 typedef detail::tmat3x3<lowp_uint> lowp_umat3x3; //!< \brief Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
108 typedef detail::tmat3x4<lowp_uint> lowp_umat3x4; //!< \brief Low-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
109 typedef detail::tmat4x2<lowp_uint> lowp_umat4x2; //!< \brief Low-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
110 typedef detail::tmat4x3<lowp_uint> lowp_umat4x3; //!< \brief Low-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
111 typedef detail::tmat4x4<lowp_uint> lowp_umat4x4; //!< \brief Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
118112
119113 #if(defined(GLM_PRECISION_HIGHP_INT))
120 typedef highp_imat2 imat2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
121 typedef highp_imat3 imat3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
122 typedef highp_imat4 imat4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
123 typedef highp_imat2x2 imat2x2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
124 typedef highp_imat2x3 imat2x3; //!< \brief Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
125 typedef highp_imat2x4 imat2x4; //!< \brief Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
126 typedef highp_imat3x2 imat3x2; //!< \brief Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
127 typedef highp_imat3x3 imat3x3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
128 typedef highp_imat3x4 imat3x4; //!< \brief Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
129 typedef highp_imat4x2 imat4x2; //!< \brief Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
130 typedef highp_imat4x3 imat4x3; //!< \brief Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
131 typedef highp_imat4x4 imat4x4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
114 typedef highp_imat2 imat2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
115 typedef highp_imat3 imat3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
116 typedef highp_imat4 imat4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
117 typedef highp_imat2x2 imat2x2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
118 typedef highp_imat2x3 imat2x3; //!< \brief Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
119 typedef highp_imat2x4 imat2x4; //!< \brief Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
120 typedef highp_imat3x2 imat3x2; //!< \brief Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
121 typedef highp_imat3x3 imat3x3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
122 typedef highp_imat3x4 imat3x4; //!< \brief Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
123 typedef highp_imat4x2 imat4x2; //!< \brief Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
124 typedef highp_imat4x3 imat4x3; //!< \brief Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
125 typedef highp_imat4x4 imat4x4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
132126 #elif(defined(GLM_PRECISION_LOWP_INT))
133 typedef lowp_imat2 imat2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
134 typedef lowp_imat3 imat3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
135 typedef lowp_imat4 imat4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
136 typedef lowp_imat2x2 imat2x2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
137 typedef lowp_imat2x3 imat2x3; //!< \brief Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
138 typedef lowp_imat2x4 imat2x4; //!< \brief Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
139 typedef lowp_imat3x2 imat3x2; //!< \brief Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
140 typedef lowp_imat3x3 imat3x3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
141 typedef lowp_imat3x4 imat3x4; //!< \brief Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
142 typedef lowp_imat4x2 imat4x2; //!< \brief Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
143 typedef lowp_imat4x3 imat4x3; //!< \brief Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
144 typedef lowp_imat4x4 imat4x4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
127 typedef lowp_imat2 imat2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
128 typedef lowp_imat3 imat3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
129 typedef lowp_imat4 imat4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
130 typedef lowp_imat2x2 imat2x2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
131 typedef lowp_imat2x3 imat2x3; //!< \brief Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
132 typedef lowp_imat2x4 imat2x4; //!< \brief Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
133 typedef lowp_imat3x2 imat3x2; //!< \brief Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
134 typedef lowp_imat3x3 imat3x3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
135 typedef lowp_imat3x4 imat3x4; //!< \brief Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
136 typedef lowp_imat4x2 imat4x2; //!< \brief Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
137 typedef lowp_imat4x3 imat4x3; //!< \brief Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
138 typedef lowp_imat4x4 imat4x4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
145139 #else //if(defined(GLM_PRECISION_MEDIUMP_INT))
146 typedef mediump_imat2 imat2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
147 typedef mediump_imat3 imat3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
148 typedef mediump_imat4 imat4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
149 typedef mediump_imat2x2 imat2x2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
150 typedef mediump_imat2x3 imat2x3; //!< \brief Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
151 typedef mediump_imat2x4 imat2x4; //!< \brief Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
152 typedef mediump_imat3x2 imat3x2; //!< \brief Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
153 typedef mediump_imat3x3 imat3x3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
154 typedef mediump_imat3x4 imat3x4; //!< \brief Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
155 typedef mediump_imat4x2 imat4x2; //!< \brief Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
156 typedef mediump_imat4x3 imat4x3; //!< \brief Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
157 typedef mediump_imat4x4 imat4x4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
140 typedef mediump_imat2 imat2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
141 typedef mediump_imat3 imat3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
142 typedef mediump_imat4 imat4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
143 typedef mediump_imat2x2 imat2x2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
144 typedef mediump_imat2x3 imat2x3; //!< \brief Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
145 typedef mediump_imat2x4 imat2x4; //!< \brief Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
146 typedef mediump_imat3x2 imat3x2; //!< \brief Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
147 typedef mediump_imat3x3 imat3x3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
148 typedef mediump_imat3x4 imat3x4; //!< \brief Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
149 typedef mediump_imat4x2 imat4x2; //!< \brief Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
150 typedef mediump_imat4x3 imat4x3; //!< \brief Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
151 typedef mediump_imat4x4 imat4x4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
158152 #endif//GLM_PRECISION
159153
160154 #if(defined(GLM_PRECISION_HIGHP_UINT))
161 typedef highp_umat2 umat2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
162 typedef highp_umat3 umat3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
163 typedef highp_umat4 umat4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
164 typedef highp_umat2x2 umat2x2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
165 typedef highp_umat2x3 umat2x3; //!< \brief Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
166 typedef highp_umat2x4 umat2x4; //!< \brief Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
167 typedef highp_umat3x2 umat3x2; //!< \brief Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
168 typedef highp_umat3x3 umat3x3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
169 typedef highp_umat3x4 umat3x4; //!< \brief Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
170 typedef highp_umat4x2 umat4x2; //!< \brief Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
171 typedef highp_umat4x3 umat4x3; //!< \brief Unsigned integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
172 typedef highp_umat4x4 umat4x4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
155 typedef highp_umat2 umat2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
156 typedef highp_umat3 umat3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
157 typedef highp_umat4 umat4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
158 typedef highp_umat2x2 umat2x2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
159 typedef highp_umat2x3 umat2x3; //!< \brief Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
160 typedef highp_umat2x4 umat2x4; //!< \brief Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
161 typedef highp_umat3x2 umat3x2; //!< \brief Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
162 typedef highp_umat3x3 umat3x3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
163 typedef highp_umat3x4 umat3x4; //!< \brief Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
164 typedef highp_umat4x2 umat4x2; //!< \brief Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
165 typedef highp_umat4x3 umat4x3; //!< \brief Unsigned integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
166 typedef highp_umat4x4 umat4x4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
173167 #elif(defined(GLM_PRECISION_LOWP_UINT))
174 typedef lowp_umat2 umat2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
175 typedef lowp_umat3 umat3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
176 typedef lowp_umat4 umat4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
177 typedef lowp_umat2x2 umat2x2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
178 typedef lowp_umat2x3 umat2x3; //!< \brief Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
179 typedef lowp_umat2x4 umat2x4; //!< \brief Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
180 typedef lowp_umat3x2 umat3x2; //!< \brief Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
181 typedef lowp_umat3x3 umat3x3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
182 typedef lowp_umat3x4 umat3x4; //!< \brief Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
183 typedef lowp_umat4x2 umat4x2; //!< \brief Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
184 typedef lowp_umat4x3 umat4x3; //!< \brief Unsigned integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
185 typedef lowp_umat4x4 umat4x4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
168 typedef lowp_umat2 umat2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
169 typedef lowp_umat3 umat3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
170 typedef lowp_umat4 umat4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
171 typedef lowp_umat2x2 umat2x2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
172 typedef lowp_umat2x3 umat2x3; //!< \brief Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
173 typedef lowp_umat2x4 umat2x4; //!< \brief Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
174 typedef lowp_umat3x2 umat3x2; //!< \brief Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
175 typedef lowp_umat3x3 umat3x3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
176 typedef lowp_umat3x4 umat3x4; //!< \brief Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
177 typedef lowp_umat4x2 umat4x2; //!< \brief Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
178 typedef lowp_umat4x3 umat4x3; //!< \brief Unsigned integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
179 typedef lowp_umat4x4 umat4x4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
186180 #else //if(defined(GLM_PRECISION_MEDIUMP_UINT))
187 typedef mediump_umat2 umat2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
188 typedef mediump_umat3 umat3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
189 typedef mediump_umat4 umat4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
190 typedef mediump_umat2x2 umat2x2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
191 typedef mediump_umat2x3 umat2x3; //!< \brief Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
192 typedef mediump_umat2x4 umat2x4; //!< \brief Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
193 typedef mediump_umat3x2 umat3x2; //!< \brief Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
194 typedef mediump_umat3x3 umat3x3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
195 typedef mediump_umat3x4 umat3x4; //!< \brief Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
196 typedef mediump_umat4x2 umat4x2; //!< \brief Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
197 typedef mediump_umat4x3 umat4x3; //!< \brief Unsigned integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
198 typedef mediump_umat4x4 umat4x4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
181 typedef mediump_umat2 umat2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
182 typedef mediump_umat3 umat3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
183 typedef mediump_umat4 umat4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
184 typedef mediump_umat2x2 umat2x2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
185 typedef mediump_umat2x3 umat2x3; //!< \brief Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension)
186 typedef mediump_umat2x4 umat2x4; //!< \brief Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension)
187 typedef mediump_umat3x2 umat3x2; //!< \brief Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension)
188 typedef mediump_umat3x3 umat3x3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
189 typedef mediump_umat3x4 umat3x4; //!< \brief Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension)
190 typedef mediump_umat4x2 umat4x2; //!< \brief Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension)
191 typedef mediump_umat4x3 umat4x3; //!< \brief Unsigned integer 4x3 matrix. (from GLM_GTC_matrix_integer extension)
192 typedef mediump_umat4x4 umat4x4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
199193 #endif//GLM_PRECISION
200194
201 ///@}
202
203 }//namespace matrix_integer
204 }//namespace gtc
195 ///@}
196
197 }//namespace matrix_integer
198 }//namespace gtc
205199 }//namespace glm
206200
207201 namespace glm{using namespace gtc::matrix_integer;}
2121
2222 namespace glm{
2323 namespace gtc{
24 //! GLM_GTC_matrix_inverse extension: Inverse matrix functions
25 namespace matrix_inverse
24 namespace matrix_inverse ///< GLM_GTC_matrix_inverse extension: Inverse matrix functions
2625 {
2726 /// \addtogroup gtc_matrix_inverse
2827 ///@{
2020 # pragma message("GLM: GLM_GTC_matrix_transform extension included")
2121 #endif
2222
23 namespace glm
23 namespace glm{
24 namespace gtc{
25 namespace matrix_transform ///< GLM_GTC_matrix_transform extension: Add transformation matrices
2426 {
25 namespace test{
26 bool main_gtc_matrix_transform();
27 }//namespace test
27 /// \addtogroup gtc_matrix_transform
28 ///@{
2829
29 namespace gtc{
30 //! GLM_GTC_matrix_transform extension: Add transformation matrices
31 namespace matrix_transform
32 {
33 /// \addtogroup gtc_matrix_transform
34 ///@{
30 //! Builds a translation 4 * 4 matrix created from a vector of 3 components.
31 //! From GLM_GTC_matrix_transform extension.
32 template <typename T>
33 detail::tmat4x4<T> translate(
34 detail::tmat4x4<T> const & m,
35 detail::tvec3<T> const & v);
36
37 //! Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees.
38 //! From GLM_GTC_matrix_transform extension.
39 template <typename T>
40 detail::tmat4x4<T> rotate(
41 detail::tmat4x4<T> const & m,
42 T const & angle,
43 detail::tvec3<T> const & v);
3544
36 //! Builds a translation 4 * 4 matrix created from a vector of 3 components.
37 //! From GLM_GTC_matrix_transform extension.
38 template <typename T>
39 detail::tmat4x4<T> translate(
40 detail::tmat4x4<T> const & m,
41 detail::tvec3<T> const & v);
42
43 //! Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees.
44 //! From GLM_GTC_matrix_transform extension.
45 template <typename T>
46 detail::tmat4x4<T> rotate(
47 detail::tmat4x4<T> const & m,
48 T const & angle,
49 detail::tvec3<T> const & v);
45 //! Builds a scale 4 * 4 matrix created from 3 scalars.
46 //! From GLM_GTC_matrix_transform extension.
47 template <typename T>
48 detail::tmat4x4<T> scale(
49 detail::tmat4x4<T> const & m,
50 detail::tvec3<T> const & v);
5051
51 //! Builds a scale 4 * 4 matrix created from 3 scalars.
52 //! From GLM_GTC_matrix_transform extension.
53 template <typename T>
54 detail::tmat4x4<T> scale(
55 detail::tmat4x4<T> const & m,
56 detail::tvec3<T> const & v);
52 //! Creates a matrix for an orthographic parallel viewing volume.
53 //! From GLM_GTC_matrix_transform extension.
54 template <typename T>
55 detail::tmat4x4<T> ortho(
56 T const & left,
57 T const & right,
58 T const & bottom,
59 T const & top,
60 T const & zNear,
61 T const & zFar);
5762
58 //! Creates a matrix for an orthographic parallel viewing volume.
59 //! From GLM_GTC_matrix_transform extension.
60 template <typename T>
61 detail::tmat4x4<T> ortho(
62 T const & left,
63 T const & right,
64 T const & bottom,
65 T const & top,
66 T const & zNear,
67 T const & zFar);
63 //! Creates a matrix for projecting two-dimensional coordinates onto the screen.
64 //! From GLM_GTC_matrix_transform extension.
65 template <typename T>
66 detail::tmat4x4<T> ortho(
67 T const & left,
68 T const & right,
69 T const & bottom,
70 T const & top);
6871
69 //! Creates a matrix for projecting two-dimensional coordinates onto the screen.
70 //! From GLM_GTC_matrix_transform extension.
71 template <typename T>
72 detail::tmat4x4<T> ortho(
73 T const & left,
74 T const & right,
75 T const & bottom,
76 T const & top);
72 //! Creates a frustum matrix.
73 //! From GLM_GTC_matrix_transform extension.
74 template <typename T>
75 detail::tmat4x4<T> frustum(
76 T const & left,
77 T const & right,
78 T const & bottom,
79 T const & top,
80 T const & nearVal,
81 T const & farVal);
7782
78 //! Creates a frustum matrix.
79 //! From GLM_GTC_matrix_transform extension.
80 template <typename T>
81 detail::tmat4x4<T> frustum(
82 T const & left,
83 T const & right,
84 T const & bottom,
85 T const & top,
86 T const & nearVal,
87 T const & farVal);
83 //! Creates a matrix for a symetric perspective-view frustum.
84 //! From GLM_GTC_matrix_transform extension.
85 template <typename T>
86 detail::tmat4x4<T> perspective(
87 T const & fovy,
88 T const & aspect,
89 T const & zNear,
90 T const & zFar);
8891
89 //! Creates a matrix for a symetric perspective-view frustum.
90 //! From GLM_GTC_matrix_transform extension.
91 template <typename T>
92 detail::tmat4x4<T> perspective(
93 T const & fovy,
94 T const & aspect,
95 T const & zNear,
96 T const & zFar);
92 //! Builds a perspective projection matrix based on a field of view
93 //! From GLM_GTC_matrix_transform extension.
94 template <typename valType>
95 detail::tmat4x4<valType> perspectiveFov(
96 valType const & fov,
97 valType const & width,
98 valType const & height,
99 valType const & zNear,
100 valType const & zFar);
97101
98 //! Builds a perspective projection matrix based on a field of view
99 //! From GLM_GTC_matrix_transform extension.
100 template <typename valType>
101 detail::tmat4x4<valType> perspectiveFov(
102 valType const & fov,
103 valType const & width,
104 valType const & height,
105 valType const & zNear,
106 valType const & zFar);
102 //! Creates a matrix for a symmetric perspective-view frustum with far plane at infinite .
103 //! From GLM_GTC_matrix_transform extension.
104 template <typename T>
105 detail::tmat4x4<T> infinitePerspective(
106 T fovy, T aspect, T zNear);
107107
108 //! Creates a matrix for a symmetric perspective-view frustum with far plane at infinite .
109 //! From GLM_GTC_matrix_transform extension.
110 template <typename T>
111 detail::tmat4x4<T> infinitePerspective(
112 T fovy, T aspect, T zNear);
108 //! Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.
109 //! From GLM_GTC_matrix_transform extension.
110 template <typename T>
111 detail::tmat4x4<T> tweakedInfinitePerspective(
112 T fovy, T aspect, T zNear);
113113
114 //! Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.
115 //! From GLM_GTC_matrix_transform extension.
116 template <typename T>
117 detail::tmat4x4<T> tweakedInfinitePerspective(
118 T fovy, T aspect, T zNear);
114 //! Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
115 //! From GLM_GTC_matrix_transform extension.
116 template <typename T, typename U>
117 detail::tvec3<T> project(
118 detail::tvec3<T> const & obj,
119 detail::tmat4x4<T> const & model,
120 detail::tmat4x4<T> const & proj,
121 detail::tvec4<U> const & viewport);
119122
120 //! Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
121 //! From GLM_GTC_matrix_transform extension.
122 template <typename T, typename U>
123 detail::tvec3<T> project(
124 detail::tvec3<T> const & obj,
125 detail::tmat4x4<T> const & model,
126 detail::tmat4x4<T> const & proj,
127 detail::tvec4<U> const & viewport);
123 //! Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
124 //! From GLM_GTC_matrix_transform extension.
125 template <typename T, typename U>
126 detail::tvec3<T> unProject(
127 detail::tvec3<T> const & win,
128 detail::tmat4x4<T> const & model,
129 detail::tmat4x4<T> const & proj,
130 detail::tvec4<U> const & viewport);
128131
129 //! Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
130 //! From GLM_GTC_matrix_transform extension.
131 template <typename T, typename U>
132 detail::tvec3<T> unProject(
133 detail::tvec3<T> const & win,
134 detail::tmat4x4<T> const & model,
135 detail::tmat4x4<T> const & proj,
136 detail::tvec4<U> const & viewport);
132 //! Define a picking region
133 //! From GLM_GTC_matrix_transform extension.
134 template <typename T, typename U>
135 detail::tmat4x4<T> pickMatrix(
136 detail::tvec2<T> const & center,
137 detail::tvec2<T> const & delta,
138 detail::tvec4<U> const & viewport);
137139
138 //! Define a picking region
139 //! From GLM_GTC_matrix_transform extension.
140 template <typename T, typename U>
141 detail::tmat4x4<T> pickMatrix(
142 detail::tvec2<T> const & center,
143 detail::tvec2<T> const & delta,
144 detail::tvec4<U> const & viewport);
140 //! Build a look at view matrix.
141 //! From GLM_GTC_matrix_transform extension.
142 template <typename T>
143 detail::tmat4x4<T> lookAt(
144 detail::tvec3<T> const & eye,
145 detail::tvec3<T> const & center,
146 detail::tvec3<T> const & up);
145147
146 //! Build a look at view matrix.
147 //! From GLM_GTC_matrix_transform extension.
148 template <typename T>
149 detail::tmat4x4<T> lookAt(
150 detail::tvec3<T> const & eye,
151 detail::tvec3<T> const & center,
152 detail::tvec3<T> const & up);
153
154 ///@}
155 }//namespace matrix_transform
156 }//namespace gtc
148 ///@}
149 }//namespace matrix_transform
150 }//namespace gtc
157151 }//namespace glm
158152
159153 #include "matrix_transform.inl"
2525 # pragma message("GLM: GLM_GTC_quaternion extension included")
2626 #endif
2727
28 namespace glm
28 namespace glm{
29 namespace detail
2930 {
30 namespace test{
31 bool main_gtc_quaternion();
32 }//namespace test
33
34 namespace detail
31 //! \brief Template for quaternion.
32 //! From GLM_GTC_quaternion extension.
33 /// \ingroup gtc_quaternion
34 template <typename T>
35 struct tquat// : public genType<T, tquat>
3536 {
36 //! \brief Template for quaternion.
37 //! From GLM_GTC_quaternion extension.
38 /// \ingroup gtc_quaternion
39 template <typename T>
40 struct tquat// : public genType<T, tquat>
41 {
42 typedef T value_type;
43
44 public:
45 value_type x, y, z, w;
46
47 // Constructors
48 tquat();
49 explicit tquat(
50 value_type const & s,
51 tvec3<T> const & v);
52 explicit tquat(
53 value_type const & w,
54 value_type const & x,
55 value_type const & y,
56 value_type const & z);
57
58 // Convertions
59 //explicit tquat(valType const & pitch, valType const & yaw, valType const & roll);
60 //! pitch, yaw, roll
61 explicit tquat(
62 tvec3<T> const & eulerAngles);
63 explicit tquat(
64 tmat3x3<T> const & m);
65 explicit tquat(
66 tmat4x4<T> const & m);
67
68 // Accesses
69 value_type & operator[](int i);
70 value_type const & operator[](int i) const;
71
72 // Operators
73 tquat<T> & operator*=(value_type const & s);
74 tquat<T> & operator/=(value_type const & s);
75 };
76
77 template <typename T>
78 detail::tquat<T> operator- (
79 detail::tquat<T> const & q);
80
81 template <typename T>
82 detail::tquat<T> operator* (
83 detail::tquat<T> const & q,
84 detail::tquat<T> const & p);
85
86 template <typename T>
87 detail::tvec3<T> operator* (
88 detail::tquat<T> const & q,
89 detail::tvec3<T> const & v);
90
91 template <typename T>
92 detail::tvec3<T> operator* (
93 detail::tvec3<T> const & v,
94 detail::tquat<T> const & q);
95
96 template <typename T>
97 detail::tvec4<T> operator* (
98 detail::tquat<T> const & q,
99 detail::tvec4<T> const & v);
100
101 template <typename T>
102 detail::tvec4<T> operator* (
103 detail::tvec4<T> const & v,
104 detail::tquat<T> const & q);
105
106 template <typename T>
107 detail::tquat<T> operator* (
108 detail::tquat<T> const & q,
109 typename detail::tquat<T>::value_type const & s);
110
111 template <typename T>
112 detail::tquat<T> operator* (
113 typename detail::tquat<T>::value_type const & s,
114 detail::tquat<T> const & q);
115
116 template <typename T>
117 detail::tquat<T> operator/ (
118 detail::tquat<T> const & q,
119 typename detail::tquat<T>::value_type const & s);
120
121 } //namespace detail
122
123 namespace gtc{
124 //! GLM_GTC_quaternion extension: Quaternion types and functions
125 namespace quaternion
126 {
127 /// \addtogroup gtc_quaternion
128 ///@{
129
130 //! Returns the length of the quaternion x.
131 //! From GLM_GTC_quaternion extension.
132 template <typename T>
133 typename detail::tquat<T>::value_type length(
134 detail::tquat<T> const & q);
135
136 //! Returns the normalized quaternion of from x.
137 //! From GLM_GTC_quaternion extension.
138 template <typename T>
139 detail::tquat<T> normalize(
140 detail::tquat<T> const & q);
37 typedef T value_type;
38
39 public:
40 value_type x, y, z, w;
41
42 // Constructors
43 tquat();
44 explicit tquat(
45 value_type const & s,
46 tvec3<T> const & v);
47 explicit tquat(
48 value_type const & w,
49 value_type const & x,
50 value_type const & y,
51 value_type const & z);
52
53 // Convertions
54 //explicit tquat(valType const & pitch, valType const & yaw, valType const & roll);
55 //! Build a quaternion from euler angles (pitch, yaw, roll), in radians.
56 explicit tquat(
57 tvec3<T> const & eulerAngles);
58 explicit tquat(
59 tmat3x3<T> const & m);
60 explicit tquat(
61 tmat4x4<T> const & m);
62
63 // Accesses
64 value_type & operator[](int i);
65 value_type const & operator[](int i) const;
66
67 // Operators
68 tquat<T> & operator*=(value_type const & s);
69 tquat<T> & operator/=(value_type const & s);
70 };
71
72 template <typename T>
73 detail::tquat<T> operator- (
74 detail::tquat<T> const & q);
75
76 template <typename T>
77 detail::tquat<T> operator+ (
78 detail::tquat<T> const & q,
79 detail::tquat<T> const & p);
80
81 template <typename T>
82 detail::tquat<T> operator* (
83 detail::tquat<T> const & q,
84 detail::tquat<T> const & p);
85
86 template <typename T>
87 detail::tvec3<T> operator* (
88 detail::tquat<T> const & q,
89 detail::tvec3<T> const & v);
90
91 template <typename T>
92 detail::tvec3<T> operator* (
93 detail::tvec3<T> const & v,
94 detail::tquat<T> const & q);
95
96 template <typename T>
97 detail::tvec4<T> operator* (
98 detail::tquat<T> const & q,
99 detail::tvec4<T> const & v);
100
101 template <typename T>
102 detail::tvec4<T> operator* (
103 detail::tvec4<T> const & v,
104 detail::tquat<T> const & q);
105
106 template <typename T>
107 detail::tquat<T> operator* (
108 detail::tquat<T> const & q,
109 typename detail::tquat<T>::value_type const & s);
110
111 template <typename T>
112 detail::tquat<T> operator* (
113 typename detail::tquat<T>::value_type const & s,
114 detail::tquat<T> const & q);
115
116 template <typename T>
117 detail::tquat<T> operator/ (
118 detail::tquat<T> const & q,
119 typename detail::tquat<T>::value_type const & s);
120
121 } //namespace detail
122
123 namespace gtc{
124 namespace quaternion ///< GLM_GTC_quaternion extension: Quaternion types and functions
125 {
126 /// @addtogroup gtc_quaternion
127 /// @{
128
129 //! Returns the length of the quaternion.
130 //! From GLM_GTC_quaternion extension.
131 template <typename T>
132 typename detail::tquat<T>::value_type length(
133 detail::tquat<T> const & q);
134
135 //! Returns the normalized quaternion.
136 //! From GLM_GTC_quaternion extension.
137 template <typename T>
138 detail::tquat<T> normalize(
139 detail::tquat<T> const & q);
141140
142 //! Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ...
143 //! From GLM_GTC_quaternion extension.
144 template <typename T>
145 typename detail::tquat<T>::value_type dot(
146 detail::tquat<T> const & q1,
147 detail::tquat<T> const & q2);
148
149 //! Returns the cross product of q1 and q2.
150 //! From GLM_GTC_quaternion extension.
151 template <typename T>
152 GLM_DEPRECATED detail::tquat<T> cross(
153 detail::tquat<T> const & q1,
154 detail::tquat<T> const & q2);
141 //! Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ...
142 //! From GLM_GTC_quaternion extension.
143 template <typename T>
144 typename detail::tquat<T>::value_type dot(
145 detail::tquat<T> const & q1,
146 detail::tquat<T> const & q2);
147
148 //! Returns the cross product of q1 and q2.
149 //! From GLM_GTC_quaternion extension.
150 template <typename T>
151 GLM_DEPRECATED detail::tquat<T> cross(
152 detail::tquat<T> const & q1,
153 detail::tquat<T> const & q2);
155154
156 //! Returns a SLERP interpolated quaternion of x and y according a.
157 //! From GLM_GTC_quaternion extension.
158 template <typename T>
159 detail::tquat<T> mix(
160 detail::tquat<T> const & x,
161 detail::tquat<T> const & y,
162 typename detail::tquat<T>::value_type const & a);
155 //! Returns a SLERP interpolated quaternion of x and y according a.
156 //! From GLM_GTC_quaternion extension.
157 template <typename T>
158 detail::tquat<T> mix(
159 detail::tquat<T> const & x,
160 detail::tquat<T> const & y,
161 T const & a);
163162
164 //! Returns the q conjugate.
165 //! From GLM_GTC_quaternion extension.
166 template <typename T>
167 detail::tquat<T> conjugate(
168 detail::tquat<T> const & q);
169
170 //! Returns the q inverse.
171 //! From GLM_GTC_quaternion extension.
172 template <typename T>
173 detail::tquat<T> inverse(
174 detail::tquat<T> const & q);
175
176 //! Rotates a quaternion from an vector of 3 components axis and an angle expressed in degrees.
177 //! From GLM_GTC_quaternion extension.
178 template <typename T>
179 detail::tquat<T> rotate(
180 detail::tquat<T> const & q,
181 typename detail::tquat<T>::value_type const & angle,
182 detail::tvec3<T> const & v);
183
184 //! Converts a quaternion to a 3 * 3 matrix.
185 //! From GLM_GTC_quaternion extension.
186 template <typename T>
187 detail::tmat3x3<T> mat3_cast(
188 detail::tquat<T> const & x);
189
190 //! Converts a quaternion to a 4 * 4 matrix.
191 //! From GLM_GTC_quaternion extension.
192 template <typename T>
193 detail::tmat4x4<T> mat4_cast(
194 detail::tquat<T> const & x);
195
196 //! Converts a 3 * 3 matrix to a quaternion.
197 //! From GLM_GTC_quaternion extension.
198 template <typename T>
199 detail::tquat<T> quat_cast(
200 detail::tmat3x3<T> const & x);
201
202 //! Converts a 4 * 4 matrix to a quaternion.
203 //! From GLM_GTC_quaternion extension.
204 template <typename T>
205 detail::tquat<T> quat_cast(
206 detail::tmat4x4<T> const & x);
207
208 //! Quaternion of floating-point numbers.
209 //! From GLM_GTC_quaternion extension.
210 typedef detail::tquat<float> quat;
211
212 //! Quaternion of half-precision floating-point numbers.
213 //! From GLM_GTC_quaternion extension.
214 typedef detail::tquat<detail::thalf> hquat;
215
216 //! Quaternion of single-precision floating-point numbers.
217 //! From GLM_GTC_quaternion extension.
218 typedef detail::tquat<float> fquat;
219
220 //! Quaternion of double-precision floating-point numbers.
221 //! From GLM_GTC_quaternion extension.
222 typedef detail::tquat<double> dquat;
223
224 ///@}
225
226 }//namespace quaternion
227 }//namespace gtc
163 //! Returns the q conjugate.
164 //! From GLM_GTC_quaternion extension.
165 template <typename T>
166 detail::tquat<T> conjugate(
167 detail::tquat<T> const & q);
168
169 //! Returns the q inverse.
170 //! From GLM_GTC_quaternion extension.
171 template <typename T>
172 detail::tquat<T> inverse(
173 detail::tquat<T> const & q);
174
175 //! Rotates a quaternion from an vector of 3 components axis and an angle expressed in degrees.
176 //! From GLM_GTC_quaternion extension.
177 template <typename T>
178 detail::tquat<T> rotate(
179 detail::tquat<T> const & q,
180 typename detail::tquat<T>::value_type const & angle,
181 detail::tvec3<T> const & v);
182
183 //! Converts a quaternion to a 3 * 3 matrix.
184 //! From GLM_GTC_quaternion extension.
185 template <typename T>
186 detail::tmat3x3<T> mat3_cast(
187 detail::tquat<T> const & x);
188
189 //! Converts a quaternion to a 4 * 4 matrix.
190 //! From GLM_GTC_quaternion extension.
191 template <typename T>
192 detail::tmat4x4<T> mat4_cast(
193 detail::tquat<T> const & x);
194
195 //! Converts a 3 * 3 matrix to a quaternion.
196 //! From GLM_GTC_quaternion extension.
197 template <typename T>
198 detail::tquat<T> quat_cast(
199 detail::tmat3x3<T> const & x);
200
201 //! Converts a 4 * 4 matrix to a quaternion.
202 //! From GLM_GTC_quaternion extension.
203 template <typename T>
204 detail::tquat<T> quat_cast(
205 detail::tmat4x4<T> const & x);
206
207 //! Quaternion of floating-point numbers.
208 //! From GLM_GTC_quaternion extension.
209 typedef detail::tquat<float> quat;
210
211 //! Quaternion of half-precision floating-point numbers.
212 //! From GLM_GTC_quaternion extension.
213 typedef detail::tquat<detail::thalf> hquat;
214
215 //! Quaternion of single-precision floating-point numbers.
216 //! From GLM_GTC_quaternion extension.
217 typedef detail::tquat<float> fquat;
218
219 //! Quaternion of double-precision floating-point numbers.
220 //! From GLM_GTC_quaternion extension.
221 typedef detail::tquat<double> dquat;
222
223 //! Quaternion of low precision floating-point numbers.
224 //! From GLM_GTC_quaternion extension.
225 typedef detail::tquat<lowp_float> lowp_quat;
226
227 //! Quaternion of medium precision floating-point numbers.
228 //! From GLM_GTC_quaternion extension.
229 typedef detail::tquat<mediump_float> mediump_quat;
230
231 //! Quaternion of high precision floating-point numbers.
232 //! From GLM_GTC_quaternion extension.
233 typedef detail::tquat<highp_float> highp_quat;
234 /// @}
235
236 } //namespace quaternion
237 } //namespace gtc
228238 } //namespace glm
229239
230240 #include "quaternion.inl"
8787 tmat3x3<T> const & m
8888 )
8989 {
90 *this = toQuat(m);
90 *this = gtc::quaternion::quat_cast(m);
9191 }
9292
9393 template <typename T>
9696 tmat4x4<T> const & m
9797 )
9898 {
99 *this = toQuat(m);
99 *this = gtc::quaternion::quat_cast(m);
100100 }
101101
102102 //////////////////////////////////////////////////////////////
154154 {
155155 return detail::tquat<T>(-q.w, -q.x, -q.y, -q.z);
156156 }
157
158 template <typename T>
159 GLM_FUNC_QUALIFIER detail::tquat<T> operator+
160 (
161 detail::tquat<T> const & q,
162 detail::tquat<T> const & p
163 )
164 {
165 return detail::tquat<T>(
166 q.w + p.w,
167 q.x + p.x,
168 q.y + p.y,
169 q.z + p.z);
170 }
157171
158172 template <typename T>
159173 GLM_FUNC_QUALIFIER detail::tquat<T> operator*
415429 )
416430 {
417431 T angle = acos(dot(x, y));
418 return (sin((1 - a) * angle) * x + sin(a * angle) * y) / sin(angle);
432 return (glm::sin((T(1) - a) * angle) * x + glm::sin(a * angle) * y) / glm::sin(angle);
419433 }
420434
421435 template <typename T>
459473 typename detail::tquat<T>::value_type AngleRad = radians(angle);
460474 typename detail::tquat<T>::value_type fSin = sin(AngleRad * T(0.5));
461475
462 return gtc::quaternion::cross(q, detail::tquat<T>(cos(AngleRad * T(0.5)), Tmp.x * fSin, Tmp.y * fSin, Tmp.z * fSin));
476 return q * detail::tquat<T>(cos(AngleRad * T(0.5)), Tmp.x * fSin, Tmp.y * fSin, Tmp.z * fSin);
477 //return gtc::quaternion::cross(q, detail::tquat<T>(cos(AngleRad * T(0.5)), Tmp.x * fSin, Tmp.y * fSin, Tmp.z * fSin));
463478 }
464479
465480 template <typename T>
2020 # pragma message("GLM: GLM_GTC_swizzle extension included")
2121 #endif
2222
23 namespace glm
23 namespace glm{
24 namespace gtc{
25 namespace swizzle ///< GLM_GTC_swizzle extension
2426 {
25 namespace test{
26 void main_gtc_swizzle();
27 }//namespace test
28
29 namespace gtc{
30 //! GLM_GTC_swizzle extension
31 namespace swizzle
32 {
33 using namespace gtc::half_float;
34
35 template <typename T, template <typename> class vecType>
36 T const & swizzle(
37 vecType<T> const & v,
38 comp x);
39
40 template <typename T, template <typename> class vecType>
41 detail::tvec2<T> const & swizzle(
42 vecType<T> const & v,
43 comp x, comp y);
44
45 template <typename T, template <typename> class vecType>
46 detail::tvec3<T> const & swizzle(
47 vecType<T> const & v,
48 comp x, comp y, comp z);
49
50 template <typename T, template <typename> class vecType>
51 detail::tvec4<T> const & swizzle(
52 vecType<T> const & v,
53 comp x, comp y, comp z, comp w);
54
55 template <typename T, template <typename> class vecType>
56 T & swizzle(
57 vecType<T> & v,
58 comp x);
59
60 template <typename T, template <typename> class vecType>
61 detail::tref2<T> swizzle(
62 vecType<T> & v,
63 comp x, comp y);
64
65 template <typename T, template <typename> class vecType>
66 detail::tref3<T> swizzle(
67 vecType<T> & v,
68 comp x, comp y, comp z);
69
70 template <typename T, template <typename> class vecType>
71 detail::tref4<T> swizzle(
72 vecType<T> & v,
73 comp x, comp y, comp z, comp w);
74
75 # define static_swizzle1(TYPE, SIZE) \
76 template <comp x> \
77 GLM_FUNC_QUALIFIER TYPE swizzle(detail::tvec##SIZE<TYPE> const & v) \
78 {return v[x];} \
79 \
80 template <comp x> \
81 GLM_FUNC_QUALIFIER TYPE& swizzle(detail::tvec##SIZE<TYPE> & v) \
82 {return v[x];}
83
84 static_swizzle1(detail::float16, 2)
85 static_swizzle1(detail::float16, 3)
86 static_swizzle1(detail::float16, 4)
87 static_swizzle1(detail::float32, 2)
88 static_swizzle1(detail::float32, 3)
89 static_swizzle1(detail::float32, 4)
90 static_swizzle1(detail::float64, 2)
91 static_swizzle1(detail::float64, 3)
92 static_swizzle1(detail::float64, 4)
93
94 static_swizzle1(detail::int8, 2)
95 static_swizzle1(detail::int8, 3)
96 static_swizzle1(detail::int8, 4)
97 static_swizzle1(detail::int16, 2)
98 static_swizzle1(detail::int16, 3)
99 static_swizzle1(detail::int16, 4)
100 static_swizzle1(detail::int32, 2)
101 static_swizzle1(detail::int32, 3)
102 static_swizzle1(detail::int32, 4)
103 static_swizzle1(detail::int64, 2)
104 static_swizzle1(detail::int64, 3)
105 static_swizzle1(detail::int64, 4)
106
107 static_swizzle1(detail::uint8, 2)
108 static_swizzle1(detail::uint8, 3)
109 static_swizzle1(detail::uint8, 4)
110 static_swizzle1(detail::uint16, 2)
111 static_swizzle1(detail::uint16, 3)
112 static_swizzle1(detail::uint16, 4)
113 static_swizzle1(detail::uint32, 2)
114 static_swizzle1(detail::uint32, 3)
115 static_swizzle1(detail::uint32, 4)
116 static_swizzle1(detail::uint64, 2)
117 static_swizzle1(detail::uint64, 3)
118 static_swizzle1(detail::uint64, 4)
119
120 # define static_swizzle2_const(TYPE) \
121 template <comp x, comp y> \
122 GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \
123 {return TYPE(v[x], v[y]);}
124
125 # define static_swizzle3_const(TYPE) \
126 template <comp x, comp y, comp z> \
127 GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \
128 {return TYPE(v[x], v[y], v[z]);}
129
130 # define static_swizzle4_const(TYPE) \
131 template <comp x, comp y, comp z, comp w> \
132 GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \
133 {return TYPE(v[x], v[y], v[z], v[w]);}
27 using namespace gtc::half_float;
28
29 template <typename T, template <typename> class vecType>
30 T const & swizzle(
31 vecType<T> const & v,
32 comp x);
33
34 template <typename T, template <typename> class vecType>
35 detail::tvec2<T> const & swizzle(
36 vecType<T> const & v,
37 comp x, comp y);
38
39 template <typename T, template <typename> class vecType>
40 detail::tvec3<T> const & swizzle(
41 vecType<T> const & v,
42 comp x, comp y, comp z);
43
44 template <typename T, template <typename> class vecType>
45 detail::tvec4<T> const & swizzle(
46 vecType<T> const & v,
47 comp x, comp y, comp z, comp w);
48
49 template <typename T, template <typename> class vecType>
50 T & swizzle(
51 vecType<T> & v,
52 comp x);
53
54 template <typename T, template <typename> class vecType>
55 detail::tref2<T> swizzle(
56 vecType<T> & v,
57 comp x, comp y);
58
59 template <typename T, template <typename> class vecType>
60 detail::tref3<T> swizzle(
61 vecType<T> & v,
62 comp x, comp y, comp z);
63
64 template <typename T, template <typename> class vecType>
65 detail::tref4<T> swizzle(
66 vecType<T> & v,
67 comp x, comp y, comp z, comp w);
68
69 # define static_swizzle1_const(TYPE, SIZE) \
70 template <comp x> \
71 GLM_FUNC_QUALIFIER TYPE swizzle(detail::tvec##SIZE<TYPE> const & v) \
72 {return v[x];}
73
74 # define static_swizzle1_ref(TYPE, SIZE) \
75 template <comp x> \
76 GLM_FUNC_QUALIFIER TYPE& swizzle(detail::tvec##SIZE<TYPE> & v) \
77 {return v[x];}
78
79 static_swizzle1_ref(detail::float16, 2)
80 static_swizzle1_ref(detail::float16, 3)
81 static_swizzle1_ref(detail::float16, 4)
82 static_swizzle1_ref(detail::float32, 2)
83 static_swizzle1_ref(detail::float32, 3)
84 static_swizzle1_ref(detail::float32, 4)
85 static_swizzle1_ref(detail::float64, 2)
86 static_swizzle1_ref(detail::float64, 3)
87 static_swizzle1_ref(detail::float64, 4)
88
89 static_swizzle1_ref(detail::int8, 2)
90 static_swizzle1_ref(detail::int8, 3)
91 static_swizzle1_ref(detail::int8, 4)
92 static_swizzle1_ref(detail::int16, 2)
93 static_swizzle1_ref(detail::int16, 3)
94 static_swizzle1_ref(detail::int16, 4)
95 static_swizzle1_ref(detail::int32, 2)
96 static_swizzle1_ref(detail::int32, 3)
97 static_swizzle1_ref(detail::int32, 4)
98 static_swizzle1_ref(detail::int64, 2)
99 static_swizzle1_ref(detail::int64, 3)
100 static_swizzle1_ref(detail::int64, 4)
101
102 static_swizzle1_ref(detail::uint8, 2)
103 static_swizzle1_ref(detail::uint8, 3)
104 static_swizzle1_ref(detail::uint8, 4)
105 static_swizzle1_ref(detail::uint16, 2)
106 static_swizzle1_ref(detail::uint16, 3)
107 static_swizzle1_ref(detail::uint16, 4)
108 static_swizzle1_ref(detail::uint32, 2)
109 static_swizzle1_ref(detail::uint32, 3)
110 static_swizzle1_ref(detail::uint32, 4)
111 static_swizzle1_ref(detail::uint64, 2)
112 static_swizzle1_ref(detail::uint64, 3)
113 static_swizzle1_ref(detail::uint64, 4)
134114 /*
135 # define static_swizzle2_const(TYPE, SIZE) \
136 template <comp x, comp y> \
137 GLM_FUNC_QUALIFIER detail::tvec2<TYPE> swizzle(detail::tvec##SIZE<TYPE> const & v) \
138 {return detail::tvec2<TYPE>(v[x], v[y]);}
139
140 # define static_swizzle3_const(TYPE, SIZE) \
141 template <comp x, comp y, comp z> \
142 GLM_FUNC_QUALIFIER detail::tvec3<TYPE> swizzle(detail::tvec##SIZE<TYPE> const & v) \
143 {return detail::tvec3<TYPE>(v[x], v[y], v[z]);}
144
145 # define static_swizzle4_const(TYPE, SIZE) \
146 template <comp x, comp y, comp z, comp w> \
147 GLM_FUNC_QUALIFIER detail::tvec4<TYPE> swizzle(detail::tvec##SIZE<TYPE> const & v) \
148 {return detail::tvec4<TYPE>(v[x], v[y], v[z], v[w]);}
115 # define static_swizzle2_const(TYPE) \
116 template <comp x, comp y> \
117 GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \
118 {return TYPE(v[x], v[y]);}
119
120 # define static_swizzle3_const(TYPE) \
121 template <comp x, comp y, comp z> \
122 GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \
123 {return TYPE(v[x], v[y], v[z]);}
124
125 # define static_swizzle4_const(TYPE) \
126 template <comp x, comp y, comp z, comp w> \
127 GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \
128 {return TYPE(v[x], v[y], v[z], v[w]);}
149129 */
150 static_swizzle2_const(glm::f16vec2)
151 static_swizzle2_const(glm::f16vec3)
152 static_swizzle2_const(glm::f16vec4)
153 static_swizzle2_const(glm::f32vec2)
154 static_swizzle2_const(glm::f32vec3)
155 static_swizzle2_const(glm::f32vec4)
156 static_swizzle2_const(glm::f64vec2)
157 static_swizzle2_const(glm::f64vec3)
158 static_swizzle2_const(glm::f64vec4)
159
160 static_swizzle2_const(glm::i8vec2)
161 static_swizzle2_const(glm::i8vec3)
162 static_swizzle2_const(glm::i8vec4)
163 static_swizzle2_const(glm::i16vec2)
164 static_swizzle2_const(glm::i16vec3)
165 static_swizzle2_const(glm::i16vec4)
166 static_swizzle2_const(glm::i32vec2)
167 static_swizzle2_const(glm::i32vec3)
168 static_swizzle2_const(glm::i32vec4)
169 static_swizzle2_const(glm::i64vec2)
170 static_swizzle2_const(glm::i64vec3)
171 static_swizzle2_const(glm::i64vec4)
172
173 static_swizzle2_const(glm::u8vec2)
174 static_swizzle2_const(glm::u8vec3)
175 static_swizzle2_const(glm::u8vec4)
176 static_swizzle2_const(glm::u16vec2)
177 static_swizzle2_const(glm::u16vec3)
178 static_swizzle2_const(glm::u16vec4)
179 static_swizzle2_const(glm::u32vec2)
180 static_swizzle2_const(glm::u32vec3)
181 static_swizzle2_const(glm::u32vec4)
182 static_swizzle2_const(glm::u64vec2)
183 static_swizzle2_const(glm::u64vec3)
184 static_swizzle2_const(glm::u64vec4)
185
186 static_swizzle3_const(glm::f16vec2)
187 static_swizzle3_const(glm::f16vec3)
188 static_swizzle3_const(glm::f16vec4)
189 static_swizzle3_const(glm::f32vec2)
190 static_swizzle3_const(glm::f32vec3)
191 static_swizzle3_const(glm::f32vec4)
192 static_swizzle3_const(glm::f64vec2)
193 static_swizzle3_const(glm::f64vec3)
194 static_swizzle3_const(glm::f64vec4)
195
196 static_swizzle3_const(glm::i8vec2)
197 static_swizzle3_const(glm::i8vec3)
198 static_swizzle3_const(glm::i8vec4)
199 static_swizzle3_const(glm::i16vec2)
200 static_swizzle3_const(glm::i16vec3)
201 static_swizzle3_const(glm::i16vec4)
202 static_swizzle3_const(glm::i32vec2)
203 static_swizzle3_const(glm::i32vec3)
204 static_swizzle3_const(glm::i32vec4)
205 static_swizzle3_const(glm::i64vec2)
206 static_swizzle3_const(glm::i64vec3)
207 static_swizzle3_const(glm::i64vec4)
208
209 static_swizzle3_const(glm::u8vec2)
210 static_swizzle3_const(glm::u8vec3)
211 static_swizzle3_const(glm::u8vec4)
212 static_swizzle3_const(glm::u16vec2)
213 static_swizzle3_const(glm::u16vec3)
214 static_swizzle3_const(glm::u16vec4)
215 static_swizzle3_const(glm::u32vec2)
216 static_swizzle3_const(glm::u32vec3)
217 static_swizzle3_const(glm::u32vec4)
218 static_swizzle3_const(glm::u64vec2)
219 static_swizzle3_const(glm::u64vec3)
220 static_swizzle3_const(glm::u64vec4)
221
222 static_swizzle4_const(glm::f16vec2)
223 static_swizzle4_const(glm::f16vec3)
224 static_swizzle4_const(glm::f16vec4)
225 static_swizzle4_const(glm::f32vec2)
226 static_swizzle4_const(glm::f32vec3)
227 static_swizzle4_const(glm::f32vec4)
228 static_swizzle4_const(glm::f64vec2)
229 static_swizzle4_const(glm::f64vec3)
230 static_swizzle4_const(glm::f64vec4)
231
232 static_swizzle4_const(glm::i8vec2)
233 static_swizzle4_const(glm::i8vec3)
234 static_swizzle4_const(glm::i8vec4)
235 static_swizzle4_const(glm::i16vec2)
236 static_swizzle4_const(glm::i16vec3)
237 static_swizzle4_const(glm::i16vec4)
238 static_swizzle4_const(glm::i32vec2)
239 static_swizzle4_const(glm::i32vec3)
240 static_swizzle4_const(glm::i32vec4)
241 static_swizzle4_const(glm::i64vec2)
242 static_swizzle4_const(glm::i64vec3)
243 static_swizzle4_const(glm::i64vec4)
244
245 static_swizzle4_const(glm::u8vec2)
246 static_swizzle4_const(glm::u8vec3)
247 static_swizzle4_const(glm::u8vec4)
248 static_swizzle4_const(glm::u16vec2)
249 static_swizzle4_const(glm::u16vec3)
250 static_swizzle4_const(glm::u16vec4)
251 static_swizzle4_const(glm::u32vec2)
252 static_swizzle4_const(glm::u32vec3)
253 static_swizzle4_const(glm::u32vec4)
254 static_swizzle4_const(glm::u64vec2)
255 static_swizzle4_const(glm::u64vec3)
256 static_swizzle4_const(glm::u64vec4)
257
258 # define static_swizzle2_ref(TYPE) \
259 template <glm::comp x, glm::comp y> \
260 GLM_FUNC_QUALIFIER glm::detail::tref2<typename TYPE::value_type> swizzle(TYPE & v) \
261 {return glm::detail::tref2<typename TYPE::value_type>(v[x], v[y]);}
262
263 # define static_swizzle3_ref(TYPE) \
264 template <glm::comp x, glm::comp y, glm::comp z> \
265 GLM_FUNC_QUALIFIER glm::detail::tref3<typename TYPE::value_type> swizzle(TYPE & v) \
266 {return glm::detail::tref3<typename TYPE::value_type>(v[x], v[y], v[z]);}
267
268 # define static_swizzle4_ref(TYPE) \
269 template <glm::comp x, glm::comp y, glm::comp z, glm::comp w> \
270 GLM_FUNC_QUALIFIER glm::detail::tref4<typename TYPE::value_type> swizzle(TYPE & v) \
271 {return glm::detail::tref4<typename TYPE::value_type>(v[x], v[y], v[z], v[w]);}
272
273 static_swizzle2_ref(glm::f16vec2)
274 static_swizzle2_ref(glm::f16vec3)
275 static_swizzle2_ref(glm::f16vec4)
276 static_swizzle2_ref(glm::f32vec2)
277 static_swizzle2_ref(glm::f32vec3)
278 static_swizzle2_ref(glm::f32vec4)
279 static_swizzle2_ref(glm::f64vec2)
280 static_swizzle2_ref(glm::f64vec3)
281 static_swizzle2_ref(glm::f64vec4)
282
283 static_swizzle2_ref(glm::i8vec2)
284 static_swizzle2_ref(glm::i8vec3)
285 static_swizzle2_ref(glm::i8vec4)
286 static_swizzle2_ref(glm::i16vec2)
287 static_swizzle2_ref(glm::i16vec3)
288 static_swizzle2_ref(glm::i16vec4)
289 static_swizzle2_ref(glm::i32vec2)
290 static_swizzle2_ref(glm::i32vec3)
291 static_swizzle2_ref(glm::i32vec4)
292 static_swizzle2_ref(glm::i64vec2)
293 static_swizzle2_ref(glm::i64vec3)
294 static_swizzle2_ref(glm::i64vec4)
295
296 static_swizzle2_ref(glm::u8vec2)
297 static_swizzle2_ref(glm::u8vec3)
298 static_swizzle2_ref(glm::u8vec4)
299 static_swizzle2_ref(glm::u16vec2)
300 static_swizzle2_ref(glm::u16vec3)
301 static_swizzle2_ref(glm::u16vec4)
302 static_swizzle2_ref(glm::u32vec2)
303 static_swizzle2_ref(glm::u32vec3)
304 static_swizzle2_ref(glm::u32vec4)
305 static_swizzle2_ref(glm::u64vec2)
306 static_swizzle2_ref(glm::u64vec3)
307 static_swizzle2_ref(glm::u64vec4)
308
309 static_swizzle3_ref(glm::f16vec3)
310 static_swizzle3_ref(glm::f16vec4)
311 static_swizzle3_ref(glm::f32vec3)
312 static_swizzle3_ref(glm::f32vec4)
313 static_swizzle3_ref(glm::f64vec3)
314 static_swizzle3_ref(glm::f64vec4)
315
316 static_swizzle3_ref(glm::i8vec3)
317 static_swizzle3_ref(glm::i8vec4)
318 static_swizzle3_ref(glm::i16vec3)
319 static_swizzle3_ref(glm::i16vec4)
320 static_swizzle3_ref(glm::i32vec3)
321 static_swizzle3_ref(glm::i32vec4)
322 static_swizzle3_ref(glm::i64vec3)
323 static_swizzle3_ref(glm::i64vec4)
324
325 static_swizzle3_ref(glm::u8vec3)
326 static_swizzle3_ref(glm::u8vec4)
327 static_swizzle3_ref(glm::u16vec3)
328 static_swizzle3_ref(glm::u16vec4)
329 static_swizzle3_ref(glm::u32vec3)
330 static_swizzle3_ref(glm::u32vec4)
331 static_swizzle3_ref(glm::u64vec3)
332 static_swizzle3_ref(glm::u64vec4)
333
334 static_swizzle4_ref(glm::f16vec4)
335 static_swizzle4_ref(glm::f32vec4)
336 static_swizzle4_ref(glm::f64vec4)
337
338 static_swizzle4_ref(glm::i8vec4)
339 static_swizzle4_ref(glm::i16vec4)
340 static_swizzle4_ref(glm::i32vec4)
341 static_swizzle4_ref(glm::i64vec4)
342
343 static_swizzle4_ref(glm::u8vec4)
344 static_swizzle4_ref(glm::u16vec4)
345 static_swizzle4_ref(glm::u32vec4)
346 static_swizzle4_ref(glm::u64vec4)
347
348 }//namespace swizzle
349 }//namespace gtc
130
131 # define static_swizzle2_const(TYPE, SIZE) \
132 template <comp x, comp y> \
133 GLM_FUNC_QUALIFIER detail::tvec2<TYPE> swizzle(detail::tvec##SIZE<TYPE> const & v) \
134 {return detail::tvec2<TYPE>(v[x], v[y]);}
135
136 # define static_swizzle3_const(TYPE, SIZE) \
137 template <comp x, comp y, comp z> \
138 GLM_FUNC_QUALIFIER detail::tvec3<TYPE> swizzle(detail::tvec##SIZE<TYPE> const & v) \
139 {return detail::tvec3<TYPE>(v[x], v[y], v[z]);}
140
141 # define static_swizzle4_const(TYPE, SIZE) \
142 template <comp x, comp y, comp z, comp w> \
143 GLM_FUNC_QUALIFIER detail::tvec4<TYPE> swizzle(detail::tvec##SIZE<TYPE> const & v) \
144 {return detail::tvec4<TYPE>(v[x], v[y], v[z], v[w]);}
145
146
147 static_swizzle2_const(glm::f16, 2)
148 static_swizzle2_const(glm::f16, 3)
149 static_swizzle2_const(glm::f16, 4)
150 static_swizzle2_const(glm::f32, 2)
151 static_swizzle2_const(glm::f32, 3)
152 static_swizzle2_const(glm::f32, 4)
153 static_swizzle2_const(glm::f64, 2)
154 static_swizzle2_const(glm::f64, 3)
155 static_swizzle2_const(glm::f64, 4)
156
157 static_swizzle2_const(glm::i8, 2)
158 static_swizzle2_const(glm::i8, 3)
159 static_swizzle2_const(glm::i8, 4)
160 static_swizzle2_const(glm::i16, 2)
161 static_swizzle2_const(glm::i16, 3)
162 static_swizzle2_const(glm::i16, 4)
163 static_swizzle2_const(glm::i32, 2)
164 static_swizzle2_const(glm::i32, 3)
165 static_swizzle2_const(glm::i32, 4)
166 static_swizzle2_const(glm::i64, 2)
167 static_swizzle2_const(glm::i64, 3)
168 static_swizzle2_const(glm::i64, 4)
169
170 static_swizzle2_const(glm::u8, 2)
171 static_swizzle2_const(glm::u8, 3)
172 static_swizzle2_const(glm::u8, 4)
173 static_swizzle2_const(glm::u16, 2)
174 static_swizzle2_const(glm::u16, 3)
175 static_swizzle2_const(glm::u16, 4)
176 static_swizzle2_const(glm::u32, 2)
177 static_swizzle2_const(glm::u32, 3)
178 static_swizzle2_const(glm::u32, 4)
179 static_swizzle2_const(glm::u64, 2)
180 static_swizzle2_const(glm::u64, 3)
181 static_swizzle2_const(glm::u64, 4)
182
183 static_swizzle3_const(glm::f16, 2)
184 static_swizzle3_const(glm::f16, 3)
185 static_swizzle3_const(glm::f16, 4)
186 static_swizzle3_const(glm::f32, 2)
187 static_swizzle3_const(glm::f32, 3)
188 static_swizzle3_const(glm::f32, 4)
189 static_swizzle3_const(glm::f64, 2)
190 static_swizzle3_const(glm::f64, 3)
191 static_swizzle3_const(glm::f64, 4)
192
193 static_swizzle3_const(glm::i8, 2)
194 static_swizzle3_const(glm::i8, 3)
195 static_swizzle3_const(glm::i8, 4)
196 static_swizzle3_const(glm::i16, 2)
197 static_swizzle3_const(glm::i16, 3)
198 static_swizzle3_const(glm::i16, 4)
199 static_swizzle3_const(glm::i32, 2)
200 static_swizzle3_const(glm::i32, 3)
201 static_swizzle3_const(glm::i32, 4)
202 static_swizzle3_const(glm::i64, 2)
203 static_swizzle3_const(glm::i64, 3)
204 static_swizzle3_const(glm::i64, 4)
205
206 static_swizzle3_const(glm::u8, 2)
207 static_swizzle3_const(glm::u8, 3)
208 static_swizzle3_const(glm::u8, 4)
209 static_swizzle3_const(glm::u16, 2)
210 static_swizzle3_const(glm::u16, 3)
211 static_swizzle3_const(glm::u16, 4)
212 static_swizzle3_const(glm::u32, 2)
213 static_swizzle3_const(glm::u32, 3)
214 static_swizzle3_const(glm::u32, 4)
215 static_swizzle3_const(glm::u64, 2)
216 static_swizzle3_const(glm::u64, 3)
217 static_swizzle3_const(glm::u64, 4)
218
219 static_swizzle4_const(glm::f16, 2)
220 static_swizzle4_const(glm::f16, 3)
221 static_swizzle4_const(glm::f16, 4)
222 static_swizzle4_const(glm::f32, 2)
223 static_swizzle4_const(glm::f32, 3)
224 static_swizzle4_const(glm::f32, 4)
225 static_swizzle4_const(glm::f64, 2)
226 static_swizzle4_const(glm::f64, 3)
227 static_swizzle4_const(glm::f64, 4)
228
229 static_swizzle4_const(glm::i8, 2)
230 static_swizzle4_const(glm::i8, 3)
231 static_swizzle4_const(glm::i8, 4)
232 static_swizzle4_const(glm::i16, 2)
233 static_swizzle4_const(glm::i16, 3)
234 static_swizzle4_const(glm::i16, 4)
235 static_swizzle4_const(glm::i32, 2)
236 static_swizzle4_const(glm::i32, 3)
237 static_swizzle4_const(glm::i32, 4)
238 static_swizzle4_const(glm::i64, 2)
239 static_swizzle4_const(glm::i64, 3)
240 static_swizzle4_const(glm::i64, 4)
241
242 static_swizzle4_const(glm::u8, 2)
243 static_swizzle4_const(glm::u8, 3)
244 static_swizzle4_const(glm::u8, 4)
245 static_swizzle4_const(glm::u16, 2)
246 static_swizzle4_const(glm::u16, 3)
247 static_swizzle4_const(glm::u16, 4)
248 static_swizzle4_const(glm::u32, 2)
249 static_swizzle4_const(glm::u32, 3)
250 static_swizzle4_const(glm::u32, 4)
251 static_swizzle4_const(glm::u64, 2)
252 static_swizzle4_const(glm::u64, 3)
253 static_swizzle4_const(glm::u64, 4)
254
255 # define static_swizzle2_ref(TYPE, SIZE) \
256 template <glm::comp x, glm::comp y> \
257 GLM_FUNC_QUALIFIER glm::detail::tref2<TYPE> swizzle(detail::tvec##SIZE<TYPE> & v) \
258 {return glm::detail::tref2<TYPE>(v[x], v[y]);}
259
260 # define static_swizzle3_ref(TYPE, SIZE) \
261 template <glm::comp x, glm::comp y, glm::comp z> \
262 GLM_FUNC_QUALIFIER glm::detail::tref3<TYPE> swizzle(detail::tvec##SIZE<TYPE> & v) \
263 {return glm::detail::tref3<TYPE>(v[x], v[y], v[z]);}
264
265 # define static_swizzle4_ref(TYPE, SIZE) \
266 template <glm::comp x, glm::comp y, glm::comp z, glm::comp w> \
267 GLM_FUNC_QUALIFIER glm::detail::tref4<TYPE> swizzle(detail::tvec##SIZE<TYPE> & v) \
268 {return glm::detail::tref4<TYPE>(v[x], v[y], v[z], v[w]);}
269
270 static_swizzle2_ref(glm::f16, 2)
271 static_swizzle2_ref(glm::f16, 3)
272 static_swizzle2_ref(glm::f16, 4)
273 static_swizzle2_ref(glm::f32, 2)
274 static_swizzle2_ref(glm::f32, 3)
275 static_swizzle2_ref(glm::f32, 4)
276 static_swizzle2_ref(glm::f64, 2)
277 static_swizzle2_ref(glm::f64, 3)
278 static_swizzle2_ref(glm::f64, 4)
279
280 static_swizzle2_ref(glm::i8, 2)
281 static_swizzle2_ref(glm::i8, 3)
282 static_swizzle2_ref(glm::i8, 4)
283 static_swizzle2_ref(glm::i16, 2)
284 static_swizzle2_ref(glm::i16, 3)
285 static_swizzle2_ref(glm::i16, 4)
286 static_swizzle2_ref(glm::i32, 2)
287 static_swizzle2_ref(glm::i32, 3)
288 static_swizzle2_ref(glm::i32, 4)
289 static_swizzle2_ref(glm::i64, 2)
290 static_swizzle2_ref(glm::i64, 3)
291 static_swizzle2_ref(glm::i64, 4)
292
293 static_swizzle2_ref(glm::u8, 2)
294 static_swizzle2_ref(glm::u8, 3)
295 static_swizzle2_ref(glm::u8, 4)
296 static_swizzle2_ref(glm::u16, 2)
297 static_swizzle2_ref(glm::u16, 3)
298 static_swizzle2_ref(glm::u16, 4)
299 static_swizzle2_ref(glm::u32, 2)
300 static_swizzle2_ref(glm::u32, 3)
301 static_swizzle2_ref(glm::u32, 4)
302 static_swizzle2_ref(glm::u64, 2)
303 static_swizzle2_ref(glm::u64, 3)
304 static_swizzle2_ref(glm::u64, 4)
305
306 static_swizzle3_ref(glm::f16, 3)
307 static_swizzle3_ref(glm::f16, 4)
308 static_swizzle3_ref(glm::f32, 3)
309 static_swizzle3_ref(glm::f32, 4)
310 static_swizzle3_ref(glm::f64, 3)
311 static_swizzle3_ref(glm::f64, 4)
312
313 static_swizzle3_ref(glm::i8, 3)
314 static_swizzle3_ref(glm::i8, 4)
315 static_swizzle3_ref(glm::i16, 3)
316 static_swizzle3_ref(glm::i16, 4)
317 static_swizzle3_ref(glm::i32, 3)
318 static_swizzle3_ref(glm::i32, 4)
319 static_swizzle3_ref(glm::i64, 3)
320 static_swizzle3_ref(glm::i64, 4)
321
322 static_swizzle3_ref(glm::u8, 3)
323 static_swizzle3_ref(glm::u8, 4)
324 static_swizzle3_ref(glm::u16, 3)
325 static_swizzle3_ref(glm::u16, 4)
326 static_swizzle3_ref(glm::u32, 3)
327 static_swizzle3_ref(glm::u32, 4)
328 static_swizzle3_ref(glm::u64, 3)
329 static_swizzle3_ref(glm::u64, 4)
330
331 static_swizzle4_ref(glm::f16, 4)
332 static_swizzle4_ref(glm::f32, 4)
333 static_swizzle4_ref(glm::f64, 4)
334
335 static_swizzle4_ref(glm::i8, 4)
336 static_swizzle4_ref(glm::i16, 4)
337 static_swizzle4_ref(glm::i32, 4)
338 static_swizzle4_ref(glm::i64, 4)
339
340 static_swizzle4_ref(glm::u8, 4)
341 static_swizzle4_ref(glm::u16, 4)
342 static_swizzle4_ref(glm::u32, 4)
343 static_swizzle4_ref(glm::u64, 4)
344
345 }//namespace swizzle
346 }//namespace gtc
350347 }//namespace glm
351348
352349 #include "swizzle.inl"
2323 # pragma message("GLM: GLM_GTC_type_precision extension included")
2424 #endif
2525
26 namespace glm
26 namespace glm{
27 namespace gtc{
28 namespace type_precision ///< GLM_GTC_type_precision extension: Defined types with specific size.
2729 {
28 namespace test{
29 bool main_gtc_type_precision();
30 }//namespace test
31
32 namespace gtc{
33 //! GLM_GTC_type_precision extension: Defined types with specific size.
34 namespace type_precision
35 {
36 ///////////////////////////
37 // Dependences
38
39 using namespace gtc::half_float;
40 using namespace gtc::quaternion;
41
42 ///////////////////////////
43 // Signed int vector types
44
45 /// \addtogroup gtc_type_precision
46 ///@{
47
48 typedef detail::int8 int8; //!< \brief 8bit signed integer. (from GLM_GTC_type_precision extension)
49 typedef detail::int16 int16; //!< \brief 16bit signed integer. (from GLM_GTC_type_precision extension)
50 typedef detail::int32 int32; //!< \brief 32bit signed integer. (from GLM_GTC_type_precision extension)
51 typedef detail::int64 int64; //!< \brief 64bit signed integer. (from GLM_GTC_type_precision extension)
52
53 typedef int8 i8; //!< \brief 8bit signed integer. (from GLM_GTC_type_precision extension)
54 typedef int16 i16; //!< \brief 16bit signed integer. (from GLM_GTC_type_precision extension)
55 typedef int32 i32; //!< \brief 32bit signed integer. (from GLM_GTC_type_precision extension)
56 typedef int64 i64; //!< \brief 64bit signed integer. (from GLM_GTC_type_precision extension)
57
58 //typedef i8 i8vec1; //!< \brief 8bit signed integer scalar. (from GLM_GTC_type_precision extension)
59 typedef detail::tvec2<i8> i8vec2; //!< \brief 8bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)
60 typedef detail::tvec3<i8> i8vec3; //!< \brief 8bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)
61 typedef detail::tvec4<i8> i8vec4; //!< \brief 8bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)
62
63 //typedef i16 i16vec1; //!< \brief 16bit signed integer scalar. (from GLM_GTC_type_precision extension)
64 typedef detail::tvec2<i16> i16vec2; //!< \brief 16bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)
65 typedef detail::tvec3<i16> i16vec3; //!< \brief 16bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)
66 typedef detail::tvec4<i16> i16vec4; //!< \brief 16bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)
67
68 //typedef i32 i32vec1; //!< \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension)
69 typedef detail::tvec2<i32> i32vec2; //!< \brief 32bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)
70 typedef detail::tvec3<i32> i32vec3; //!< \brief 32bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)
71 typedef detail::tvec4<i32> i32vec4; //!< \brief 32bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)
72
73 //typedef i64 i64vec1; //!< \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension)
74 typedef detail::tvec2<i64> i64vec2; //!< \brief 64bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)
75 typedef detail::tvec3<i64> i64vec3; //!< \brief 64bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)
76 typedef detail::tvec4<i64> i64vec4; //!< \brief 64bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)
77
78 /////////////////////////////
79 // Unsigned int vector types
80
81 typedef detail::uint8 uint8; //!< \brief 8bit unsigned integer. (from GLM_GTC_type_precision extension)
82 typedef detail::uint16 uint16; //!< \brief 16bit unsigned integer. (from GLM_GTC_type_precision extension)
83 typedef detail::uint32 uint32; //!< \brief 32bit unsigned integer. (from GLM_GTC_type_precision extension)
84 typedef detail::uint64 uint64; //!< \brief 64bit unsigned integer. (from GLM_GTC_type_precision extension)
85
86 typedef uint8 u8; //!< \brief 8bit unsigned integer. (from GLM_GTC_type_precision extension)
87 typedef uint16 u16; //!< \brief 16bit unsigned integer. (from GLM_GTC_type_precision extension)
88 typedef uint32 u32; //!< \brief 32bit unsigned integer. (from GLM_GTC_type_precision extension)
89 typedef uint64 u64; //!< \brief 64bit unsigned integer. (from GLM_GTC_type_precision extension)
90
91 //typedef u8 u8vec1; //!< \brief 8bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
92 typedef detail::tvec2<u8> u8vec2; //!< \brief 8bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)
93 typedef detail::tvec3<u8> u8vec3; //!< \brief 8bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)
94 typedef detail::tvec4<u8> u8vec4; //!< \brief 8bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)
95
96 //typedef u16 u16vec1; //!< \brief 16bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
97 typedef detail::tvec2<u16> u16vec2; //!< \brief 16bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)
98 typedef detail::tvec3<u16> u16vec3; //!< \brief 16bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)
99 typedef detail::tvec4<u16> u16vec4; //!< \brief 16bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)
100
101 //typedef u32 u32vec1; //!< \brief 32bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
102 typedef detail::tvec2<u32> u32vec2; //!< \brief 32bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)
103 typedef detail::tvec3<u32> u32vec3; //!< \brief 32bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)
104 typedef detail::tvec4<u32> u32vec4; //!< \brief 32bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)
105
106 //typedef u64 u64vec1; //!< \brief 64bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
107 typedef detail::tvec2<u64> u64vec2; //!< \brief 64bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)
108 typedef detail::tvec3<u64> u64vec3; //!< \brief 64bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)
109 typedef detail::tvec4<u64> u64vec4; //!< \brief 64bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)
110
111 //////////////////////
112 // Float vector types
113
114 typedef detail::float16 float16; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
115 typedef detail::float32 float32; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
116 typedef detail::float64 float64; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)
117
118 typedef float16 f16; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
119 typedef float32 f32; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
120 typedef float64 f64; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)
121
122 typedef detail::tvec2<float> fvec2; //!< Vector of 2 single-precision floating-point numbers. (from GLM_GTC_type_precision extension)
123 typedef detail::tvec3<float> fvec3; //!< Vector of 3 single-precision floating-point numbers. (from GLM_GTC_type_precision extension)
124 typedef detail::tvec4<float> fvec4; //!< Vector of 4 single-precision floating-point numbers. (from GLM_GTC_type_precision extension)
125
126 //typedef f16 f16vec1; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
127 typedef detail::tvec2<f16> f16vec2; //!< \brief Half-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension)
128 typedef detail::tvec3<f16> f16vec3; //!< \brief Half-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension)
129 typedef detail::tvec4<f16> f16vec4; //!< \brief Half-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension)
130
131 //typedef f32 f32vec1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
132 typedef detail::tvec2<f32> f32vec2; //!< \brief Single-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension)
133 typedef detail::tvec3<f32> f32vec3; //!< \brief Single-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension)
134 typedef detail::tvec4<f32> f32vec4; //!< \brief Single-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension)
135
136 //typedef f64 f64vec1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
137 typedef detail::tvec2<f64> f64vec2; //!< \brief Double-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension)
138 typedef detail::tvec3<f64> f64vec3; //!< \brief Double-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension)
139 typedef detail::tvec4<f64> f64vec4; //!< \brief Double-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension)
140
141 //////////////////////
142 // Float matrix types
143
144 //typedef f32 fmat1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
145 typedef detail::tmat2x2<f32> fmat2; //!< \brief Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)
146 typedef detail::tmat3x3<f32> fmat3; //!< \brief Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)
147 typedef detail::tmat4x4<f32> fmat4; //!< \brief Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)
148
149 //typedef f32 fmat1x1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
150 typedef detail::tmat2x2<f32> fmat2x2; //!< \brief Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)
151 typedef detail::tmat2x3<f32> fmat2x3; //!< \brief Single-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension)
152 typedef detail::tmat2x4<f32> fmat2x4; //!< \brief Single-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension)
153 typedef detail::tmat3x2<f32> fmat3x2; //!< \brief Single-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension)
154 typedef detail::tmat3x3<f32> fmat3x3; //!< \brief Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)
155 typedef detail::tmat3x4<f32> fmat3x4; //!< \brief Single-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension)
156 typedef detail::tmat4x2<f32> fmat4x2; //!< \brief Single-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension)
157 typedef detail::tmat4x3<f32> fmat4x3; //!< \brief Single-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension)
158 typedef detail::tmat4x4<f32> fmat4x4; //!< \brief Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)
159
160 //typedef f16 f16mat1; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
161 typedef detail::tmat2x2<f16> f16mat2; //!< \brief Half-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)
162 typedef detail::tmat3x3<f16> f16mat3; //!< \brief Half-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)
163 typedef detail::tmat4x4<f16> f16mat4; //!< \brief Half-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)
164
165 //typedef f16 f16mat1x1; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
166 typedef detail::tmat2x2<f16> f16mat2x2; //!< \brief Half-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)
167 typedef detail::tmat2x3<f16> f16mat2x3; //!< \brief Half-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension)
168 typedef detail::tmat2x4<f16> f16mat2x4; //!< \brief Half-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension)
169 typedef detail::tmat3x2<f16> f16mat3x2; //!< \brief Half-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension)
170 typedef detail::tmat3x3<f16> f16mat3x3; //!< \brief Half-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)
171 typedef detail::tmat3x4<f16> f16mat3x4; //!< \brief Half-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension)
172 typedef detail::tmat4x2<f16> f16mat4x2; //!< \brief Half-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension)
173 typedef detail::tmat4x3<f16> f16mat4x3; //!< \brief Half-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension)
174 typedef detail::tmat4x4<f16> f16mat4x4; //!< \brief Half-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)
175
176 //typedef f32 f32mat1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
177 typedef detail::tmat2x2<f32> f32mat2; //!< \brief Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)
178 typedef detail::tmat3x3<f32> f32mat3; //!< \brief Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)
179 typedef detail::tmat4x4<f32> f32mat4; //!< \brief Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)
180
181 //typedef f32 f32mat1x1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
182 typedef detail::tmat2x2<f32> f32mat2x2; //!< \brief Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)
183 typedef detail::tmat2x3<f32> f32mat2x3; //!< \brief Single-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension)
184 typedef detail::tmat2x4<f32> f32mat2x4; //!< \brief Single-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension)
185 typedef detail::tmat3x2<f32> f32mat3x2; //!< \brief Single-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension)
186 typedef detail::tmat3x3<f32> f32mat3x3; //!< \brief Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)
187 typedef detail::tmat3x4<f32> f32mat3x4; //!< \brief Single-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension)
188 typedef detail::tmat4x2<f32> f32mat4x2; //!< \brief Single-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension)
189 typedef detail::tmat4x3<f32> f32mat4x3; //!< \brief Single-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension)
190 typedef detail::tmat4x4<f32> f32mat4x4; //!< \brief Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)
191
192 //typedef f64 f64mat1; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)
193 typedef detail::tmat2x2<f64> f64mat2; //!< \brief Double-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)
194 typedef detail::tmat3x3<f64> f64mat3; //!< \brief Double-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)
195 typedef detail::tmat4x4<f64> f64mat4; //!< \brief Double-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)
196
197 //typedef f64 f64mat1x1; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)
198 typedef detail::tmat2x2<f64> f64mat2x2; //!< \brief Double-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)
199 typedef detail::tmat2x3<f64> f64mat2x3; //!< \brief Double-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension)
200 typedef detail::tmat2x4<f64> f64mat2x4; //!< \brief Double-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension)
201 typedef detail::tmat3x2<f64> f64mat3x2; //!< \brief Double-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension)
202 typedef detail::tmat3x3<f64> f64mat3x3; //!< \brief Double-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)
203 typedef detail::tmat3x4<f64> f64mat3x4; //!< \brief Double-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension)
204 typedef detail::tmat4x2<f64> f64mat4x2; //!< \brief Double-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension)
205 typedef detail::tmat4x3<f64> f64mat4x3; //!< \brief Double-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension)
206 typedef detail::tmat4x4<f64> f64mat4x4; //!< \brief Double-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)
207
208 //////////////////////////
209 // Float quaternion types
210
211 typedef detail::tquat<f16> f16quat; //!< \brief Half-precision floating-point quaternion. (from GLM_GTC_type_precision extension)
212 typedef detail::tquat<f32> f32quat; //!< \brief Single-precision floating-point quaternion. (from GLM_GTC_type_precision extension)
213 typedef detail::tquat<f64> f64quat; //!< \brief Double-precision floating-point quaternion. (from GLM_GTC_type_precision extension)
214
215 ///@}
216
217 }//namespace type_precision
218 }//namespace gtc
30 ///////////////////////////
31 // Dependences
32
33 using namespace gtc::half_float;
34 using namespace gtc::quaternion;
35
36 ///////////////////////////
37 // Signed int vector types
38
39 /// \addtogroup gtc_type_precision
40 ///@{
41
42 typedef detail::int8 int8; //!< \brief 8bit signed integer. (from GLM_GTC_type_precision extension)
43 typedef detail::int16 int16; //!< \brief 16bit signed integer. (from GLM_GTC_type_precision extension)
44 typedef detail::int32 int32; //!< \brief 32bit signed integer. (from GLM_GTC_type_precision extension)
45 typedef detail::int64 int64; //!< \brief 64bit signed integer. (from GLM_GTC_type_precision extension)
46
47 typedef int8 i8; //!< \brief 8bit signed integer. (from GLM_GTC_type_precision extension)
48 typedef int16 i16; //!< \brief 16bit signed integer. (from GLM_GTC_type_precision extension)
49 typedef int32 i32; //!< \brief 32bit signed integer. (from GLM_GTC_type_precision extension)
50 typedef int64 i64; //!< \brief 64bit signed integer. (from GLM_GTC_type_precision extension)
51
52 //typedef i8 i8vec1; //!< \brief 8bit signed integer scalar. (from GLM_GTC_type_precision extension)
53 typedef detail::tvec2<i8> i8vec2; //!< \brief 8bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)
54 typedef detail::tvec3<i8> i8vec3; //!< \brief 8bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)
55 typedef detail::tvec4<i8> i8vec4; //!< \brief 8bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)
56
57 //typedef i16 i16vec1; //!< \brief 16bit signed integer scalar. (from GLM_GTC_type_precision extension)
58 typedef detail::tvec2<i16> i16vec2; //!< \brief 16bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)
59 typedef detail::tvec3<i16> i16vec3; //!< \brief 16bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)
60 typedef detail::tvec4<i16> i16vec4; //!< \brief 16bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)
61
62 //typedef i32 i32vec1; //!< \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension)
63 typedef detail::tvec2<i32> i32vec2; //!< \brief 32bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)
64 typedef detail::tvec3<i32> i32vec3; //!< \brief 32bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)
65 typedef detail::tvec4<i32> i32vec4; //!< \brief 32bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)
66
67 //typedef i64 i64vec1; //!< \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension)
68 typedef detail::tvec2<i64> i64vec2; //!< \brief 64bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)
69 typedef detail::tvec3<i64> i64vec3; //!< \brief 64bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)
70 typedef detail::tvec4<i64> i64vec4; //!< \brief 64bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)
71
72 /////////////////////////////
73 // Unsigned int vector types
74
75 typedef detail::uint8 uint8; //!< \brief 8bit unsigned integer. (from GLM_GTC_type_precision extension)
76 typedef detail::uint16 uint16; //!< \brief 16bit unsigned integer. (from GLM_GTC_type_precision extension)
77 typedef detail::uint32 uint32; //!< \brief 32bit unsigned integer. (from GLM_GTC_type_precision extension)
78 typedef detail::uint64 uint64; //!< \brief 64bit unsigned integer. (from GLM_GTC_type_precision extension)
79
80 typedef uint8 u8; //!< \brief 8bit unsigned integer. (from GLM_GTC_type_precision extension)
81 typedef uint16 u16; //!< \brief 16bit unsigned integer. (from GLM_GTC_type_precision extension)
82 typedef uint32 u32; //!< \brief 32bit unsigned integer. (from GLM_GTC_type_precision extension)
83 typedef uint64 u64; //!< \brief 64bit unsigned integer. (from GLM_GTC_type_precision extension)
84
85 //typedef u8 u8vec1; //!< \brief 8bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
86 typedef detail::tvec2<u8> u8vec2; //!< \brief 8bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)
87 typedef detail::tvec3<u8> u8vec3; //!< \brief 8bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)
88 typedef detail::tvec4<u8> u8vec4; //!< \brief 8bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)
89
90 //typedef u16 u16vec1; //!< \brief 16bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
91 typedef detail::tvec2<u16> u16vec2; //!< \brief 16bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)
92 typedef detail::tvec3<u16> u16vec3; //!< \brief 16bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)
93 typedef detail::tvec4<u16> u16vec4; //!< \brief 16bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)
94
95 //typedef u32 u32vec1; //!< \brief 32bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
96 typedef detail::tvec2<u32> u32vec2; //!< \brief 32bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)
97 typedef detail::tvec3<u32> u32vec3; //!< \brief 32bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)
98 typedef detail::tvec4<u32> u32vec4; //!< \brief 32bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)
99
100 //typedef u64 u64vec1; //!< \brief 64bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
101 typedef detail::tvec2<u64> u64vec2; //!< \brief 64bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)
102 typedef detail::tvec3<u64> u64vec3; //!< \brief 64bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)
103 typedef detail::tvec4<u64> u64vec4; //!< \brief 64bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)
104
105 //////////////////////
106 // Float vector types
107
108 typedef detail::float16 float16; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
109 typedef detail::float32 float32; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
110 typedef detail::float64 float64; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)
111
112 typedef float16 f16; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
113 typedef float32 f32; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
114 typedef float64 f64; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)
115
116 typedef detail::tvec2<float> fvec2; //!< Vector of 2 single-precision floating-point numbers. (from GLM_GTC_type_precision extension)
117 typedef detail::tvec3<float> fvec3; //!< Vector of 3 single-precision floating-point numbers. (from GLM_GTC_type_precision extension)
118 typedef detail::tvec4<float> fvec4; //!< Vector of 4 single-precision floating-point numbers. (from GLM_GTC_type_precision extension)
119
120 //typedef f16 f16vec1; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
121 typedef detail::tvec2<f16> f16vec2; //!< \brief Half-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension)
122 typedef detail::tvec3<f16> f16vec3; //!< \brief Half-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension)
123 typedef detail::tvec4<f16> f16vec4; //!< \brief Half-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension)
124
125 //typedef f32 f32vec1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
126 typedef detail::tvec2<f32> f32vec2; //!< \brief Single-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension)
127 typedef detail::tvec3<f32> f32vec3; //!< \brief Single-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension)
128 typedef detail::tvec4<f32> f32vec4; //!< \brief Single-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension)
129
130 //typedef f64 f64vec1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
131 typedef detail::tvec2<f64> f64vec2; //!< \brief Double-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension)
132 typedef detail::tvec3<f64> f64vec3; //!< \brief Double-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension)
133 typedef detail::tvec4<f64> f64vec4; //!< \brief Double-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension)
134
135 //////////////////////
136 // Float matrix types
137
138 //typedef f32 fmat1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
139 typedef detail::tmat2x2<f32> fmat2; //!< \brief Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)
140 typedef detail::tmat3x3<f32> fmat3; //!< \brief Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)
141 typedef detail::tmat4x4<f32> fmat4; //!< \brief Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)
142
143 //typedef f32 fmat1x1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
144 typedef detail::tmat2x2<f32> fmat2x2; //!< \brief Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)
145 typedef detail::tmat2x3<f32> fmat2x3; //!< \brief Single-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension)
146 typedef detail::tmat2x4<f32> fmat2x4; //!< \brief Single-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension)
147 typedef detail::tmat3x2<f32> fmat3x2; //!< \brief Single-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension)
148 typedef detail::tmat3x3<f32> fmat3x3; //!< \brief Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)
149 typedef detail::tmat3x4<f32> fmat3x4; //!< \brief Single-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension)
150 typedef detail::tmat4x2<f32> fmat4x2; //!< \brief Single-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension)
151 typedef detail::tmat4x3<f32> fmat4x3; //!< \brief Single-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension)
152 typedef detail::tmat4x4<f32> fmat4x4; //!< \brief Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)
153
154 //typedef f16 f16mat1; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
155 typedef detail::tmat2x2<f16> f16mat2; //!< \brief Half-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)
156 typedef detail::tmat3x3<f16> f16mat3; //!< \brief Half-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)
157 typedef detail::tmat4x4<f16> f16mat4; //!< \brief Half-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)
158
159 //typedef f16 f16mat1x1; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
160 typedef detail::tmat2x2<f16> f16mat2x2; //!< \brief Half-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)
161 typedef detail::tmat2x3<f16> f16mat2x3; //!< \brief Half-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension)
162 typedef detail::tmat2x4<f16> f16mat2x4; //!< \brief Half-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension)
163 typedef detail::tmat3x2<f16> f16mat3x2; //!< \brief Half-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension)
164 typedef detail::tmat3x3<f16> f16mat3x3; //!< \brief Half-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)
165 typedef detail::tmat3x4<f16> f16mat3x4; //!< \brief Half-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension)
166 typedef detail::tmat4x2<f16> f16mat4x2; //!< \brief Half-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension)
167 typedef detail::tmat4x3<f16> f16mat4x3; //!< \brief Half-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension)
168 typedef detail::tmat4x4<f16> f16mat4x4; //!< \brief Half-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)
169
170 //typedef f32 f32mat1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
171 typedef detail::tmat2x2<f32> f32mat2; //!< \brief Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)
172 typedef detail::tmat3x3<f32> f32mat3; //!< \brief Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)
173 typedef detail::tmat4x4<f32> f32mat4; //!< \brief Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)
174
175 //typedef f32 f32mat1x1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
176 typedef detail::tmat2x2<f32> f32mat2x2; //!< \brief Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)
177 typedef detail::tmat2x3<f32> f32mat2x3; //!< \brief Single-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension)
178 typedef detail::tmat2x4<f32> f32mat2x4; //!< \brief Single-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension)
179 typedef detail::tmat3x2<f32> f32mat3x2; //!< \brief Single-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension)
180 typedef detail::tmat3x3<f32> f32mat3x3; //!< \brief Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)
181 typedef detail::tmat3x4<f32> f32mat3x4; //!< \brief Single-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension)
182 typedef detail::tmat4x2<f32> f32mat4x2; //!< \brief Single-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension)
183 typedef detail::tmat4x3<f32> f32mat4x3; //!< \brief Single-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension)
184 typedef detail::tmat4x4<f32> f32mat4x4; //!< \brief Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)
185
186 //typedef f64 f64mat1; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)
187 typedef detail::tmat2x2<f64> f64mat2; //!< \brief Double-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)
188 typedef detail::tmat3x3<f64> f64mat3; //!< \brief Double-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)
189 typedef detail::tmat4x4<f64> f64mat4; //!< \brief Double-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)
190
191 //typedef f64 f64mat1x1; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)
192 typedef detail::tmat2x2<f64> f64mat2x2; //!< \brief Double-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension)
193 typedef detail::tmat2x3<f64> f64mat2x3; //!< \brief Double-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension)
194 typedef detail::tmat2x4<f64> f64mat2x4; //!< \brief Double-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension)
195 typedef detail::tmat3x2<f64> f64mat3x2; //!< \brief Double-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension)
196 typedef detail::tmat3x3<f64> f64mat3x3; //!< \brief Double-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension)
197 typedef detail::tmat3x4<f64> f64mat3x4; //!< \brief Double-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension)
198 typedef detail::tmat4x2<f64> f64mat4x2; //!< \brief Double-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension)
199 typedef detail::tmat4x3<f64> f64mat4x3; //!< \brief Double-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension)
200 typedef detail::tmat4x4<f64> f64mat4x4; //!< \brief Double-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension)
201
202 //////////////////////////
203 // Float quaternion types
204
205 typedef detail::tquat<f16> f16quat; //!< \brief Half-precision floating-point quaternion. (from GLM_GTC_type_precision extension)
206 typedef detail::tquat<f32> f32quat; //!< \brief Single-precision floating-point quaternion. (from GLM_GTC_type_precision extension)
207 typedef detail::tquat<f64> f64quat; //!< \brief Double-precision floating-point quaternion. (from GLM_GTC_type_precision extension)
208
209 ///@}
210
211 }//namespace type_precision
212 }//namespace gtc
219213 }//namespace glm
220214
221215 #include "type_precision.inl"
2020 # pragma message("GLM: GLM_GTC_type_ptr extension included")
2121 #endif
2222
23 namespace glm
24 {
25 namespace test{
26 void main_gtc_type_ptr();
27 }//namespace test
28
29 namespace gtc{
30 //! GLM_GTC_type_ptr extension: Get access to vectors & matrices value type address.
31 namespace type_ptr{
32
33 /// \addtogroup gtc_type_ptr
34 ///@{
35
36 //! Get the const address of the vector content.
37 //! From GLM_GTC_type_ptr extension.
38 template<typename T>
39 GLM_FUNC_QUALIFIER T const * value_ptr
40 (
41 detail::tvec2<T> const & vec
42 )
43 {
44 return &(vec.x);
45 }
46
47 //! Get the address of the vector content.
48 //! From GLM_GTC_type_ptr extension.
49 template<typename T>
50 GLM_FUNC_QUALIFIER T * value_ptr
51 (
52 detail::tvec2<T> & vec
53 )
54 {
55 return &(vec.x);
56 }
57
58 //! Get the const address of the vector content.
59 //! From GLM_GTC_type_ptr extension.
60 template<typename T>
61 GLM_FUNC_QUALIFIER T const * value_ptr
62 (
63 detail::tvec3<T> const & vec
64 )
65 {
66 return &(vec.x);
67 }
68
69 //! Get the address of the vector content.
70 //! From GLM_GTC_type_ptr extension.
71 template<typename T>
72 GLM_FUNC_QUALIFIER T * value_ptr
73 (
74 detail::tvec3<T> & vec
75 )
76 {
77 return &(vec.x);
78 }
79
80 //! Get the const address of the vector content.
81 //! From GLM_GTC_type_ptr extension.
82 template<typename T>
83 GLM_FUNC_QUALIFIER T const * value_ptr
84 (
85 detail::tvec4<T> const & vec
86 )
87 {
88 return &(vec.x);
89 }
90
91 //! Get the address of the vector content.
92 //! From GLM_GTC_type_ptr extension.
93 template<typename T>
94 GLM_FUNC_QUALIFIER T * value_ptr
95 (
96 detail::tvec4<T> & vec
97 )
98 {
99 return &(vec.x);
100 }
101
102 //! Get the const address of the matrix content.
103 //! From GLM_GTC_type_ptr extension.
104 template<typename T>
105 GLM_FUNC_QUALIFIER T const * value_ptr
106 (
107 detail::tmat2x2<T> const & mat
108 )
109 {
110 return &(mat[0].x);
111 }
112
113 //! Get the address of the matrix content.
114 //! From GLM_GTC_type_ptr extension.
115 template<typename T>
116 GLM_FUNC_QUALIFIER T * value_ptr
117 (
118 detail::tmat2x2<T> & mat
119 )
120 {
121 return &(mat[0].x);
122 }
123
124 //! Get the const address of the matrix content.
125 //! From GLM_GTC_type_ptr extension.
126 template<typename T>
127 GLM_FUNC_QUALIFIER T const * value_ptr
128 (
129 detail::tmat3x3<T> const & mat
130 )
131 {
132 return &(mat[0].x);
133 }
134
135 //! Get the address of the matrix content.
136 //! From GLM_GTC_type_ptr extension.
137 template<typename T>
138 GLM_FUNC_QUALIFIER T * value_ptr
139 (
140 detail::tmat3x3<T> & mat
141 )
142 {
143 return &(mat[0].x);
144 }
145
146 //! Get the const address of the matrix content.
147 //! From GLM_GTC_type_ptr extension.
148 template<typename T>
149 GLM_FUNC_QUALIFIER T const * value_ptr
150 (
151 detail::tmat4x4<T> const & mat
152 )
153 {
154 return &(mat[0].x);
155 }
156
157 //! Get the address of the matrix content.
158 //! From GLM_GTC_type_ptr extension.
159 template<typename T>
160 GLM_FUNC_QUALIFIER T * value_ptr
161 (
162 detail::tmat4x4<T> & mat
163 )
164 {
165 return &(mat[0].x);
166 }
167
168 //! Get the const address of the matrix content.
169 //! From GLM_GTC_type_ptr extension.
170 template<typename T>
171 GLM_FUNC_QUALIFIER T const * value_ptr
172 (
173 detail::tmat2x3<T> const & mat
174 )
175 {
176 return &(mat[0].x);
177 }
178
179 //! Get the address of the matrix content.
180 //! From GLM_GTC_type_ptr extension.
181 template<typename T>
182 GLM_FUNC_QUALIFIER T * value_ptr
183 (
184 detail::tmat2x3<T> & mat
185 )
186 {
187 return &(mat[0].x);
188 }
189
190 //! Get the const address of the matrix content.
191 //! From GLM_GTC_type_ptr extension.
192 template<typename T>
193 GLM_FUNC_QUALIFIER T const * value_ptr
194 (
195 detail::tmat3x2<T> const & mat
196 )
197 {
198 return &(mat[0].x);
199 }
200
201 //! Get the address of the matrix content.
202 //! From GLM_GTC_type_ptr extension.
203 template<typename T>
204 GLM_FUNC_QUALIFIER T * value_ptr
205 (
206 detail::tmat3x2<T> & mat
207 )
208 {
209 return &(mat[0].x);
210 }
211
212 //! Get the const address of the matrix content.
213 //! From GLM_GTC_type_ptr extension.
214 template<typename T>
215 GLM_FUNC_QUALIFIER T const * value_ptr
216 (
217 detail::tmat2x4<T> const & mat
218 )
219 {
220 return &(mat[0].x);
221 }
222
223 //! Get the address of the matrix content.
224 //! From GLM_GTC_type_ptr extension.
225 template<typename T>
226 GLM_FUNC_QUALIFIER T * value_ptr
227 (
228 detail::tmat2x4<T> & mat
229 )
230 {
231 return &(mat[0].x);
232 }
233
234 //! Get the const address of the matrix content.
235 //! From GLM_GTC_type_ptr extension.
236 template<typename T>
237 GLM_FUNC_QUALIFIER T const * value_ptr
238 (
239 detail::tmat4x2<T> const & mat
240 )
241 {
242 return &(mat[0].x);
243 }
244
245 //! Get the address of the matrix content.
246 //! From GLM_GTC_type_ptr extension.
247 template<typename T>
248 GLM_FUNC_QUALIFIER T * value_ptr
249 (
250 detail::tmat4x2<T> & mat
251 )
252 {
253 return &(mat[0].x);
254 }
255
256 //! Get the const address of the matrix content.
257 //! From GLM_GTC_type_ptr extension.
258 template<typename T>
259 GLM_FUNC_QUALIFIER T const * value_ptr
260 (
261 detail::tmat3x4<T> const & mat
262 )
263 {
264 return &(mat[0].x);
265 }
266
267 //! Get the address of the matrix content.
268 //! From GLM_GTC_type_ptr extension.
269 template<typename T>
270 GLM_FUNC_QUALIFIER T * value_ptr
271 (
272 detail::tmat3x4<T> & mat
273 )
274 {
275 return &(mat[0].x);
276 }
277
278 //! Get the const address of the matrix content.
279 //! From GLM_GTC_type_ptr extension.
280 template<typename T>
281 GLM_FUNC_QUALIFIER T const * value_ptr
282 (
283 detail::tmat4x3<T> const & mat
284 )
285 {
286 return &(mat[0].x);
287 }
288
289 //! Get the address of the matrix content.
290 //! From GLM_GTC_type_ptr extension.
291 template<typename T>
292 GLM_FUNC_QUALIFIER T * value_ptr(detail::tmat4x3<T> & mat)
293 {
294 return &(mat[0].x);
295 }
296
297 //! Build a vector from a pointer.
298 //! From GLM_GTC_type_ptr extension.
299 template<typename T>
300 GLM_FUNC_QUALIFIER detail::tvec2<T> make_vec2(T const * const ptr)
301 {
302 detail::tvec2<T> Result;
303 memcpy(value_ptr(Result), ptr, sizeof(detail::tvec2<T>));
304 return Result;
305 }
306
307 //! Build a vector from a pointer.
308 //! From GLM_GTC_type_ptr extension.
309 template<typename T>
310 GLM_FUNC_QUALIFIER detail::tvec3<T> make_vec3(T const * const ptr)
311 {
312 detail::tvec3<T> Result;
313 memcpy(value_ptr(Result), ptr, sizeof(detail::tvec3<T>));
314 return Result;
315 }
316
317 //! Build a vector from a pointer.
318 //! From GLM_GTC_type_ptr extension.
319 template<typename T>
320 GLM_FUNC_QUALIFIER detail::tvec4<T> make_vec4(T const * const ptr)
321 {
322 detail::tvec4<T> Result;
323 memcpy(value_ptr(Result), ptr, sizeof(detail::tvec4<T>));
324 return Result;
325 }
326
327 //! Build a matrix from a pointer.
328 //! From GLM_GTC_type_ptr extension.
329 template<typename T>
330 GLM_FUNC_QUALIFIER detail::tmat2x2<T> make_mat2x2(T const * const ptr)
331 {
332 detail::tmat2x2<T> Result;
333 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat2x2<T>));
334 return Result;
335 }
336
337 //! Build a matrix from a pointer.
338 //! From GLM_GTC_type_ptr extension.
339 template<typename T>
340 GLM_FUNC_QUALIFIER detail::tmat2x3<T> make_mat2x3(T const * const ptr)
341 {
342 detail::tmat2x3<T> Result;
343 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat2x3<T>));
344 return Result;
345 }
346
347 //! Build a matrix from a pointer.
348 //! From GLM_GTC_type_ptr extension.
349 template<typename T>
350 GLM_FUNC_QUALIFIER detail::tmat2x4<T> make_mat2x4(T const * const ptr)
351 {
352 detail::tmat2x4<T> Result;
353 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat2x4<T>));
354 return Result;
355 }
356
357 //! Build a matrix from a pointer.
358 //! From GLM_GTC_type_ptr extension.
359 template<typename T>
360 GLM_FUNC_QUALIFIER detail::tmat3x2<T> make_mat3x2(T const * const ptr)
361 {
362 detail::tmat3x2<T> Result;
363 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat3x2<T>));
364 return Result;
365 }
366
367 //! Build a matrix from a pointer.
368 //! From GLM_GTC_type_ptr extension.
369 template<typename T>
370 GLM_FUNC_QUALIFIER detail::tmat3x3<T> make_mat3x3(T const * const ptr)
371 {
372 detail::tmat3x3<T> Result;
373 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat3x3<T>));
374 return Result;
375 }
376
377 //! Build a matrix from a pointer.
378 //! From GLM_GTC_type_ptr extension.
379 template<typename T>
380 GLM_FUNC_QUALIFIER detail::tmat3x4<T> make_mat3x4(T const * const ptr)
381 {
382 detail::tmat3x4<T> Result;
383 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat3x4<T>));
384 return Result;
385 }
386
387
388 //! Build a matrix from a pointer.
389 //! From GLM_GTC_type_ptr extension.
390 template<typename T>
391 GLM_FUNC_QUALIFIER detail::tmat4x2<T> make_mat4x2(T const * const ptr)
392 {
393 detail::tmat4x2<T> Result;
394 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat4x2<T>));
395 return Result;
396 }
397
398 //! Build a matrix from a pointer.
399 //! From GLM_GTC_type_ptr extension.
400 template<typename T>
401 GLM_FUNC_QUALIFIER detail::tmat4x3<T> make_mat4x3(T const * const ptr)
402 {
403 detail::tmat4x3<T> Result;
404 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat4x3<T>));
405 return Result;
406 }
407
408 //! Build a matrix from a pointer.
409 //! From GLM_GTC_type_ptr extension.
410 template<typename T>
411 GLM_FUNC_QUALIFIER detail::tmat4x4<T> make_mat4x4(T const * const ptr)
412 {
413 detail::tmat4x4<T> Result;
414 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat4x4<T>));
415 return Result;
416 }
417
418 //! Build a matrix from a pointer.
419 //! From GLM_GTC_type_ptr extension.
420 template<typename T>
421 GLM_FUNC_QUALIFIER detail::tmat2x2<T> make_mat2(T const * const ptr)
422 {
423 return make_mat2x2(ptr);
424 }
425
426 //! Build a matrix from a pointer.
427 //! From GLM_GTC_type_ptr extension.
428 template<typename T>
429 GLM_FUNC_QUALIFIER detail::tmat3x3<T> make_mat3(T const * const ptr)
430 {
431 return make_mat3x3(ptr);
432 }
433
434 //! Build a matrix from a pointer.
435 //! From GLM_GTC_type_ptr extension.
436 template<typename T>
437 GLM_FUNC_QUALIFIER detail::tmat4x4<T> make_mat4(T const * const ptr)
438 {
439 return make_mat4x4(ptr);
440 }
441
442 ///@}
443
444 }//namespace type_ptr
445 }//namespace gtc
23 namespace glm{
24 namespace gtc{
25 namespace type_ptr ///< GLM_GTC_type_ptr extension: Get access to vectors & matrices value type address.
26 {
27
28 /// \addtogroup gtc_type_ptr
29 ///@{
30
31 //! Get the const address of the vector content.
32 //! From GLM_GTC_type_ptr extension.
33 template<typename T>
34 GLM_FUNC_QUALIFIER T const * value_ptr
35 (
36 detail::tvec2<T> const & vec
37 )
38 {
39 return &(vec.x);
40 }
41
42 //! Get the address of the vector content.
43 //! From GLM_GTC_type_ptr extension.
44 template<typename T>
45 GLM_FUNC_QUALIFIER T * value_ptr
46 (
47 detail::tvec2<T> & vec
48 )
49 {
50 return &(vec.x);
51 }
52
53 //! Get the const address of the vector content.
54 //! From GLM_GTC_type_ptr extension.
55 template<typename T>
56 GLM_FUNC_QUALIFIER T const * value_ptr
57 (
58 detail::tvec3<T> const & vec
59 )
60 {
61 return &(vec.x);
62 }
63
64 //! Get the address of the vector content.
65 //! From GLM_GTC_type_ptr extension.
66 template<typename T>
67 GLM_FUNC_QUALIFIER T * value_ptr
68 (
69 detail::tvec3<T> & vec
70 )
71 {
72 return &(vec.x);
73 }
74
75 //! Get the const address of the vector content.
76 //! From GLM_GTC_type_ptr extension.
77 template<typename T>
78 GLM_FUNC_QUALIFIER T const * value_ptr
79 (
80 detail::tvec4<T> const & vec
81 )
82 {
83 return &(vec.x);
84 }
85
86 //! Get the address of the vector content.
87 //! From GLM_GTC_type_ptr extension.
88 template<typename T>
89 GLM_FUNC_QUALIFIER T * value_ptr
90 (
91 detail::tvec4<T> & vec
92 )
93 {
94 return &(vec.x);
95 }
96
97 //! Get the const address of the matrix content.
98 //! From GLM_GTC_type_ptr extension.
99 template<typename T>
100 GLM_FUNC_QUALIFIER T const * value_ptr
101 (
102 detail::tmat2x2<T> const & mat
103 )
104 {
105 return &(mat[0].x);
106 }
107
108 //! Get the address of the matrix content.
109 //! From GLM_GTC_type_ptr extension.
110 template<typename T>
111 GLM_FUNC_QUALIFIER T * value_ptr
112 (
113 detail::tmat2x2<T> & mat
114 )
115 {
116 return &(mat[0].x);
117 }
118
119 //! Get the const address of the matrix content.
120 //! From GLM_GTC_type_ptr extension.
121 template<typename T>
122 GLM_FUNC_QUALIFIER T const * value_ptr
123 (
124 detail::tmat3x3<T> const & mat
125 )
126 {
127 return &(mat[0].x);
128 }
129
130 //! Get the address of the matrix content.
131 //! From GLM_GTC_type_ptr extension.
132 template<typename T>
133 GLM_FUNC_QUALIFIER T * value_ptr
134 (
135 detail::tmat3x3<T> & mat
136 )
137 {
138 return &(mat[0].x);
139 }
140
141 //! Get the const address of the matrix content.
142 //! From GLM_GTC_type_ptr extension.
143 template<typename T>
144 GLM_FUNC_QUALIFIER T const * value_ptr
145 (
146 detail::tmat4x4<T> const & mat
147 )
148 {
149 return &(mat[0].x);
150 }
151
152 //! Get the address of the matrix content.
153 //! From GLM_GTC_type_ptr extension.
154 template<typename T>
155 GLM_FUNC_QUALIFIER T * value_ptr
156 (
157 detail::tmat4x4<T> & mat
158 )
159 {
160 return &(mat[0].x);
161 }
162
163 //! Get the const address of the matrix content.
164 //! From GLM_GTC_type_ptr extension.
165 template<typename T>
166 GLM_FUNC_QUALIFIER T const * value_ptr
167 (
168 detail::tmat2x3<T> const & mat
169 )
170 {
171 return &(mat[0].x);
172 }
173
174 //! Get the address of the matrix content.
175 //! From GLM_GTC_type_ptr extension.
176 template<typename T>
177 GLM_FUNC_QUALIFIER T * value_ptr
178 (
179 detail::tmat2x3<T> & mat
180 )
181 {
182 return &(mat[0].x);
183 }
184
185 //! Get the const address of the matrix content.
186 //! From GLM_GTC_type_ptr extension.
187 template<typename T>
188 GLM_FUNC_QUALIFIER T const * value_ptr
189 (
190 detail::tmat3x2<T> const & mat
191 )
192 {
193 return &(mat[0].x);
194 }
195
196 //! Get the address of the matrix content.
197 //! From GLM_GTC_type_ptr extension.
198 template<typename T>
199 GLM_FUNC_QUALIFIER T * value_ptr
200 (
201 detail::tmat3x2<T> & mat
202 )
203 {
204 return &(mat[0].x);
205 }
206
207 //! Get the const address of the matrix content.
208 //! From GLM_GTC_type_ptr extension.
209 template<typename T>
210 GLM_FUNC_QUALIFIER T const * value_ptr
211 (
212 detail::tmat2x4<T> const & mat
213 )
214 {
215 return &(mat[0].x);
216 }
217
218 //! Get the address of the matrix content.
219 //! From GLM_GTC_type_ptr extension.
220 template<typename T>
221 GLM_FUNC_QUALIFIER T * value_ptr
222 (
223 detail::tmat2x4<T> & mat
224 )
225 {
226 return &(mat[0].x);
227 }
228
229 //! Get the const address of the matrix content.
230 //! From GLM_GTC_type_ptr extension.
231 template<typename T>
232 GLM_FUNC_QUALIFIER T const * value_ptr
233 (
234 detail::tmat4x2<T> const & mat
235 )
236 {
237 return &(mat[0].x);
238 }
239
240 //! Get the address of the matrix content.
241 //! From GLM_GTC_type_ptr extension.
242 template<typename T>
243 GLM_FUNC_QUALIFIER T * value_ptr
244 (
245 detail::tmat4x2<T> & mat
246 )
247 {
248 return &(mat[0].x);
249 }
250
251 //! Get the const address of the matrix content.
252 //! From GLM_GTC_type_ptr extension.
253 template<typename T>
254 GLM_FUNC_QUALIFIER T const * value_ptr
255 (
256 detail::tmat3x4<T> const & mat
257 )
258 {
259 return &(mat[0].x);
260 }
261
262 //! Get the address of the matrix content.
263 //! From GLM_GTC_type_ptr extension.
264 template<typename T>
265 GLM_FUNC_QUALIFIER T * value_ptr
266 (
267 detail::tmat3x4<T> & mat
268 )
269 {
270 return &(mat[0].x);
271 }
272
273 //! Get the const address of the matrix content.
274 //! From GLM_GTC_type_ptr extension.
275 template<typename T>
276 GLM_FUNC_QUALIFIER T const * value_ptr
277 (
278 detail::tmat4x3<T> const & mat
279 )
280 {
281 return &(mat[0].x);
282 }
283
284 //! Get the address of the matrix content.
285 //! From GLM_GTC_type_ptr extension.
286 template<typename T>
287 GLM_FUNC_QUALIFIER T * value_ptr(detail::tmat4x3<T> & mat)
288 {
289 return &(mat[0].x);
290 }
291
292 //! Build a vector from a pointer.
293 //! From GLM_GTC_type_ptr extension.
294 template<typename T>
295 GLM_FUNC_QUALIFIER detail::tvec2<T> make_vec2(T const * const ptr)
296 {
297 detail::tvec2<T> Result;
298 memcpy(value_ptr(Result), ptr, sizeof(detail::tvec2<T>));
299 return Result;
300 }
301
302 //! Build a vector from a pointer.
303 //! From GLM_GTC_type_ptr extension.
304 template<typename T>
305 GLM_FUNC_QUALIFIER detail::tvec3<T> make_vec3(T const * const ptr)
306 {
307 detail::tvec3<T> Result;
308 memcpy(value_ptr(Result), ptr, sizeof(detail::tvec3<T>));
309 return Result;
310 }
311
312 //! Build a vector from a pointer.
313 //! From GLM_GTC_type_ptr extension.
314 template<typename T>
315 GLM_FUNC_QUALIFIER detail::tvec4<T> make_vec4(T const * const ptr)
316 {
317 detail::tvec4<T> Result;
318 memcpy(value_ptr(Result), ptr, sizeof(detail::tvec4<T>));
319 return Result;
320 }
321
322 //! Build a matrix from a pointer.
323 //! From GLM_GTC_type_ptr extension.
324 template<typename T>
325 GLM_FUNC_QUALIFIER detail::tmat2x2<T> make_mat2x2(T const * const ptr)
326 {
327 detail::tmat2x2<T> Result;
328 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat2x2<T>));
329 return Result;
330 }
331
332 //! Build a matrix from a pointer.
333 //! From GLM_GTC_type_ptr extension.
334 template<typename T>
335 GLM_FUNC_QUALIFIER detail::tmat2x3<T> make_mat2x3(T const * const ptr)
336 {
337 detail::tmat2x3<T> Result;
338 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat2x3<T>));
339 return Result;
340 }
341
342 //! Build a matrix from a pointer.
343 //! From GLM_GTC_type_ptr extension.
344 template<typename T>
345 GLM_FUNC_QUALIFIER detail::tmat2x4<T> make_mat2x4(T const * const ptr)
346 {
347 detail::tmat2x4<T> Result;
348 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat2x4<T>));
349 return Result;
350 }
351
352 //! Build a matrix from a pointer.
353 //! From GLM_GTC_type_ptr extension.
354 template<typename T>
355 GLM_FUNC_QUALIFIER detail::tmat3x2<T> make_mat3x2(T const * const ptr)
356 {
357 detail::tmat3x2<T> Result;
358 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat3x2<T>));
359 return Result;
360 }
361
362 //! Build a matrix from a pointer.
363 //! From GLM_GTC_type_ptr extension.
364 template<typename T>
365 GLM_FUNC_QUALIFIER detail::tmat3x3<T> make_mat3x3(T const * const ptr)
366 {
367 detail::tmat3x3<T> Result;
368 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat3x3<T>));
369 return Result;
370 }
371
372 //! Build a matrix from a pointer.
373 //! From GLM_GTC_type_ptr extension.
374 template<typename T>
375 GLM_FUNC_QUALIFIER detail::tmat3x4<T> make_mat3x4(T const * const ptr)
376 {
377 detail::tmat3x4<T> Result;
378 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat3x4<T>));
379 return Result;
380 }
381
382
383 //! Build a matrix from a pointer.
384 //! From GLM_GTC_type_ptr extension.
385 template<typename T>
386 GLM_FUNC_QUALIFIER detail::tmat4x2<T> make_mat4x2(T const * const ptr)
387 {
388 detail::tmat4x2<T> Result;
389 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat4x2<T>));
390 return Result;
391 }
392
393 //! Build a matrix from a pointer.
394 //! From GLM_GTC_type_ptr extension.
395 template<typename T>
396 GLM_FUNC_QUALIFIER detail::tmat4x3<T> make_mat4x3(T const * const ptr)
397 {
398 detail::tmat4x3<T> Result;
399 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat4x3<T>));
400 return Result;
401 }
402
403 //! Build a matrix from a pointer.
404 //! From GLM_GTC_type_ptr extension.
405 template<typename T>
406 GLM_FUNC_QUALIFIER detail::tmat4x4<T> make_mat4x4(T const * const ptr)
407 {
408 detail::tmat4x4<T> Result;
409 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat4x4<T>));
410 return Result;
411 }
412
413 //! Build a matrix from a pointer.
414 //! From GLM_GTC_type_ptr extension.
415 template<typename T>
416 GLM_FUNC_QUALIFIER detail::tmat2x2<T> make_mat2(T const * const ptr)
417 {
418 return make_mat2x2(ptr);
419 }
420
421 //! Build a matrix from a pointer.
422 //! From GLM_GTC_type_ptr extension.
423 template<typename T>
424 GLM_FUNC_QUALIFIER detail::tmat3x3<T> make_mat3(T const * const ptr)
425 {
426 return make_mat3x3(ptr);
427 }
428
429 //! Build a matrix from a pointer.
430 //! From GLM_GTC_type_ptr extension.
431 template<typename T>
432 GLM_FUNC_QUALIFIER detail::tmat4x4<T> make_mat4(T const * const ptr)
433 {
434 return make_mat4x4(ptr);
435 }
436
437 ///@}
438
439 }//namespace type_ptr
440 }//namespace gtc
446441 }//namespace glm
447442
448443 #include "type_ptr.inl"
2020 # pragma message("GLM: GLM_GTX_associated_min_max extension included")
2121 #endif
2222
23 namespace glm
23 namespace glm{
24 namespace gtx{
25 namespace associated_min_max ///< GLM_GTX_associated_min_max extension: Min and max functions that return associated values not the compared onces.
2426 {
25 namespace test{
26 void main_gtx_associated_min_max();
27 }//namespace test
27 /// \addtogroup gtx_associated_min_max
28 ///@{
2829
29 namespace gtx
30 {
31 //! GLM_GTX_associated_min_max extension: Min and max functions that return associated values not the compared onces.
32 namespace associated_min_max
33 {
34 /// \addtogroup gtx_associated_min_max
35 ///@{
30 //! \brief Min comparison between 2 variables
31 template<typename genTypeT, typename genTypeU>
32 genTypeU associatedMin(
33 const genTypeT& x, const genTypeU& a,
34 const genTypeT& y, const genTypeU& b);
3635
37 //! \brief Min comparison between 2 variables
38 template<typename genTypeT, typename genTypeU>
39 genTypeU associatedMin(
40 const genTypeT& x, const genTypeU& a,
41 const genTypeT& y, const genTypeU& b);
36 //! \brief Min comparison between 3 variables
37 template<typename genTypeT, typename genTypeU>
38 genTypeU associatedMin(
39 const genTypeT& x, const genTypeU& a,
40 const genTypeT& y, const genTypeU& b,
41 const genTypeT& z, const genTypeU& c);
4242
43 //! \brief Min comparison between 3 variables
44 template<typename genTypeT, typename genTypeU>
45 genTypeU associatedMin(
46 const genTypeT& x, const genTypeU& a,
47 const genTypeT& y, const genTypeU& b,
48 const genTypeT& z, const genTypeU& c);
43 //! \brief Min comparison between 4 variables
44 template<typename genTypeT, typename genTypeU>
45 genTypeU associatedMin(
46 const genTypeT& x, const genTypeU& a,
47 const genTypeT& y, const genTypeU& b,
48 const genTypeT& z, const genTypeU& c,
49 const genTypeT& w, const genTypeU& d);
4950
50 //! \brief Min comparison between 4 variables
51 template<typename genTypeT, typename genTypeU>
52 genTypeU associatedMin(
53 const genTypeT& x, const genTypeU& a,
54 const genTypeT& y, const genTypeU& b,
55 const genTypeT& z, const genTypeU& c,
56 const genTypeT& w, const genTypeU& d);
51 //! \brief Max comparison between 2 variables
52 template<typename genTypeT, typename genTypeU>
53 genTypeU associatedMax(
54 const genTypeT& x, const genTypeU& a,
55 const genTypeT& y, const genTypeU& b);
5756
58 //! \brief Max comparison between 2 variables
59 template<typename genTypeT, typename genTypeU>
60 genTypeU associatedMax(
61 const genTypeT& x, const genTypeU& a,
62 const genTypeT& y, const genTypeU& b);
57 //! \brief Max comparison between 3 variables
58 template<typename genTypeT, typename genTypeU>
59 genTypeU associatedMax(
60 const genTypeT& x, const genTypeU& a,
61 const genTypeT& y, const genTypeU& b,
62 const genTypeT& z, const genTypeU& c);
6363
64 //! \brief Max comparison between 3 variables
65 template<typename genTypeT, typename genTypeU>
66 genTypeU associatedMax(
67 const genTypeT& x, const genTypeU& a,
68 const genTypeT& y, const genTypeU& b,
69 const genTypeT& z, const genTypeU& c);
64 //! \brief Max comparison between 4 variables
65 template<typename genTypeT, typename genTypeU>
66 genTypeU associatedMax(
67 const genTypeT& x, const genTypeU& a,
68 const genTypeT& y, const genTypeU& b,
69 const genTypeT& z, const genTypeU& c,
70 const genTypeT& w, const genTypeU& d);
7071
71 //! \brief Max comparison between 4 variables
72 template<typename genTypeT, typename genTypeU>
73 genTypeU associatedMax(
74 const genTypeT& x, const genTypeU& a,
75 const genTypeT& y, const genTypeU& b,
76 const genTypeT& z, const genTypeU& c,
77 const genTypeT& w, const genTypeU& d);
78 ///@}
79
80 }//namespace associated_min_max
81
82 bool test();
83 }//namespace gtx
84 }//namespace glm
72 ///@}
73 } //namespace associated_min_max
74 } //namespace gtx
75 } //namespace glm
8576
8677 #include "associated_min_max.inl"
8778
2121 # pragma message("GLM: GLM_GTX_bit extension included")
2222 #endif
2323
24 namespace glm
24 namespace glm{
25 namespace gtx{
26 namespace bit ///< GLM_GTX_bit extension: Allow to perform bit operations on integer values
2527 {
26 namespace test{
27 void main_gtx_bit();
28 }//namespace test
28 using namespace gtc::half_float;
2929
30 namespace gtx{
31 //! GLM_GTX_bit extension: Allow to perform bit operations on integer values
32 namespace bit
33 {
34 using namespace gtc::half_float;
30 /// \addtogroup gtx_bit
31 ///@{
3532
36 /// \addtogroup gtx_bit
37 ///@{
33 //! Build a mask of 'count' bits
34 //! From GLM_GTX_bit extension.
35 template <typename genIType>
36 genIType mask(genIType const & count);
3837
39 //! Build a mask of 'count' bits
40 //! From GLM_GTX_bit extension.
41 template <typename genIType>
42 genIType mask(genIType const & count);
38 //! Component wise extraction of bit fields.
39 //! genType and genIType could be a scalar or a vector.
40 //! From GLM_GTX_bit extension.
41 template <typename genIUType, typename sizeType>
42 genIUType extractField(
43 genIUType const & v,
44 sizeType const & first,
45 sizeType const & count);
4346
44 //! Component wise extraction of bit fields.
45 //! genType and genIType could be a scalar or a vector.
46 //! From GLM_GTX_bit extension.
47 template <typename genIUType, typename sizeType>
48 genIUType extractField(
49 genIUType const & v,
50 sizeType const & first,
51 sizeType const & count);
47 //! Find the lowest bit set to 1 in a integer variable.
48 //! From GLM_GTX_bit extension.
49 template <typename genType>
50 int lowestBit(genType const & value);
5251
53 //! Find the lowest bit set to 1 in a integer variable.
54 //! From GLM_GTX_bit extension.
55 template <typename genType>
56 int lowestBit(genType const & value);
52 //! Find the highest bit set to 1 in a integer variable.
53 //! From GLM_GTX_bit extension.
54 template <typename genType>
55 int highestBit(genType const & value);
5756
58 //! Find the highest bit set to 1 in a integer variable.
59 //! From GLM_GTX_bit extension.
60 template <typename genType>
61 int highestBit(genType const & value);
57 //! Find the highest bit set to 1 in a integer variable and return its value.
58 //! From GLM_GTX_bit extension.
59 template <typename genType>
60 genType highestBitValue(genType const & value);
6261
63 //! Find the highest bit set to 1 in a integer variable and return its value.
64 //! From GLM_GTX_bit extension.
65 template <typename genType>
66 genType highestBitValue(genType const & value);
62 //! Return true if the value is a power of two number.
63 //! From GLM_GTX_bit extension.
64 template <typename genType>
65 bool isPowerOfTwo(genType const & value);
6766
68 //! Return true if the value is a power of two number.
69 //! From GLM_GTX_bit extension.
70 template <typename genType>
71 bool isPowerOfTwo(genType const & value);
67 //! Return the power of two number which value is just higher the input value.
68 //! From GLM_GTX_bit extension.
69 template <typename genType>
70 genType powerOfTwoAbove(genType const & value);
7271
73 //! Return the power of two number which value is just higher the input value.
74 //! From GLM_GTX_bit extension.
75 template <typename genType>
76 genType powerOfTwoAbove(genType const & value);
72 //! Return the power of two number which value is just lower the input value.
73 //! From GLM_GTX_bit extension.
74 template <typename genType>
75 genType powerOfTwoBelow(genType const & value);
7776
78 //! Return the power of two number which value is just lower the input value.
79 //! From GLM_GTX_bit extension.
80 template <typename genType>
81 genType powerOfTwoBelow(genType const & value);
77 //! Return the power of two number which value is the closet to the input value.
78 //! From GLM_GTX_bit extension.
79 template <typename genType>
80 genType powerOfTwoNearest(genType const & value);
8281
83 //! Return the power of two number which value is the closet to the input value.
84 //! From GLM_GTX_bit extension.
85 template <typename genType>
86 genType powerOfTwoNearest(genType const & value);
82 //! Revert all bits of any integer based type.
83 //! From GLM_GTX_bit extension.
84 template <typename genType>
85 genType bitRevert(genType const & value);
8786
88 //! Revert all bits of any integer based type.
89 //! From GLM_GTX_bit extension.
90 template <typename genType>
91 genType bitRevert(genType const & value);
87 //! Rotate all bits to the right.
88 //! From GLM_GTX_bit extension.
89 template <typename genType>
90 genType bitRotateRight(genType const & In, std::size_t Shift);
9291
93 //! Rotate all bits to the right.
94 //! From GLM_GTX_bit extension.
95 template <typename genType>
96 genType bitRotateRight(genType const & In, std::size_t Shift);
92 //! Rotate all bits to the left.
93 //! From GLM_GTX_bit extension.
94 template <typename genType>
95 genType bitRotateLeft(genType const & In, std::size_t Shift);
9796
98 //! Rotate all bits to the left.
99 //! From GLM_GTX_bit extension.
100 template <typename genType>
101 genType bitRotateLeft(genType const & In, std::size_t Shift);
102
103 ///@}
104
105 }//namespace bit
106 }//namespace gtx
97 ///@}
98 }//namespace bit
99 }//namespace gtx
107100 }//namespace glm
108101
109102 #include "bit.inl"
1919 # pragma message("GLM: GLM_GTX_closest_point extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace closest_point ///< GLM_GTX_closest_point extension: Find the point on a straight line which is the closet of a point.
2325 {
24 namespace test{
25 void main_gtx_closest_point();
26 }//namespace test
26 /// \addtogroup gtx_closest_point
27 /// @{
2728
28 namespace gtx{
29 //! GLM_GTX_closest_point extension: Find the point on a straight line which is the closet of a point.
30 namespace closest_point{
31
32 /// \addtogroup gtx_closest_point
33 ///@{
34
35 //! Find the point on a straight line which is the closet of a point.
36 //! From GLM_GTX_closest_point extension.
29 /// Find the point on a straight line which is the closet of a point.
30 /// From GLM_GTX_closest_point extension.
3731 template <typename T>
3832 detail::tvec3<T> closestPointOnLine(
3933 detail::tvec3<T> const & point,
4034 detail::tvec3<T> const & a,
4135 detail::tvec3<T> const & b);
42 ///@}
4336
44 }//namespace closest_point
45 }//namespace gtx
46 }//namespace glm
37 /// @}
38 }// namespace closest_point
39 }// namespace gtx
40 }// namespace glm
4741
4842 #include "closest_point.inl"
4943
2121 # pragma message("GLM: GLM_GTX_color_cast extension included")
2222 #endif
2323
24 namespace glm
24 namespace glm{
25 namespace gtx{
26 namespace color_cast ///< GLM_GTX_color_cast extension: Conversion between two color types
2527 {
26 namespace test{
27 void main_ext_gtx_color_cast();
28 }//namespace test
28 using namespace gtx::number_precision;
2929
30 namespace gtx{
31 //! GLM_GTX_color_cast extension: Conversion between two color types
32 namespace color_cast
33 {
34 using namespace gtx::number_precision;
30 /// \addtogroup gtx_color_cast
31 ///@{
3532
36 /// \addtogroup gtx_color_cast
37 ///@{
33 //! Conversion of a floating value into a 8bit unsigned int value.
34 //! From GLM_GTX_color_cast extension.
35 template <typename valType> gtc::type_precision::uint8 u8channel_cast(valType a);
3836
39 //! Conversion of a floating value into a 8bit unsigned int value.
40 //! From GLM_GTX_color_cast extension.
41 template <typename valType> gtc::type_precision::uint8 u8channel_cast(valType a);
37 //! Conversion of a floating value into a 16bit unsigned int value.
38 //! From GLM_GTX_color_cast extension.
39 template <typename valType> gtc::type_precision::uint16 u16channel_cast(valType a);
4240
43 //! Conversion of a floating value into a 16bit unsigned int value.
44 //! From GLM_GTX_color_cast extension.
45 template <typename valType> gtc::type_precision::uint16 u16channel_cast(valType a);
41 template <typename T> gtc::type_precision::uint32 u32_rgbx_cast(const detail::tvec3<T>& c); //!< \brief Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension)
42 template <typename T> gtc::type_precision::uint32 u32_xrgb_cast(const detail::tvec3<T>& c); //!< \brief Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension)
43 template <typename T> gtc::type_precision::uint32 u32_bgrx_cast(const detail::tvec3<T>& c); //!< \brief Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension)
44 template <typename T> gtc::type_precision::uint32 u32_xbgr_cast(const detail::tvec3<T>& c); //!< \brief Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension)
4645
47 template <typename T> gtc::type_precision::uint32 u32_rgbx_cast(const detail::tvec3<T>& c); //!< \brief Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension)
48 template <typename T> gtc::type_precision::uint32 u32_xrgb_cast(const detail::tvec3<T>& c); //!< \brief Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension)
49 template <typename T> gtc::type_precision::uint32 u32_bgrx_cast(const detail::tvec3<T>& c); //!< \brief Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension)
50 template <typename T> gtc::type_precision::uint32 u32_xbgr_cast(const detail::tvec3<T>& c); //!< \brief Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension)
46 template <typename T> gtc::type_precision::uint32 u32_rgba_cast(const detail::tvec4<T>& c); //!< \brief Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension)
47 template <typename T> gtc::type_precision::uint32 u32_argb_cast(const detail::tvec4<T>& c); //!< \brief Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension)
48 template <typename T> gtc::type_precision::uint32 u32_bgra_cast(const detail::tvec4<T>& c); //!< \brief Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension)
49 template <typename T> gtc::type_precision::uint32 u32_abgr_cast(const detail::tvec4<T>& c); //!< \brief Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension)
5150
52 template <typename T> gtc::type_precision::uint32 u32_rgba_cast(const detail::tvec4<T>& c); //!< \brief Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension)
53 template <typename T> gtc::type_precision::uint32 u32_argb_cast(const detail::tvec4<T>& c); //!< \brief Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension)
54 template <typename T> gtc::type_precision::uint32 u32_bgra_cast(const detail::tvec4<T>& c); //!< \brief Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension)
55 template <typename T> gtc::type_precision::uint32 u32_abgr_cast(const detail::tvec4<T>& c); //!< \brief Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension)
51 template <typename T> gtc::type_precision::uint64 u64_rgbx_cast(const detail::tvec3<T>& c); //!< \brief Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension)
52 template <typename T> gtc::type_precision::uint64 u64_xrgb_cast(const detail::tvec3<T>& c); //!< \brief Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension)
53 template <typename T> gtc::type_precision::uint64 u64_bgrx_cast(const detail::tvec3<T>& c); //!< \brief Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension)
54 template <typename T> gtc::type_precision::uint64 u64_xbgr_cast(const detail::tvec3<T>& c); //!< \brief Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension)
5655
57 template <typename T> gtc::type_precision::uint64 u64_rgbx_cast(const detail::tvec3<T>& c); //!< \brief Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension)
58 template <typename T> gtc::type_precision::uint64 u64_xrgb_cast(const detail::tvec3<T>& c); //!< \brief Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension)
59 template <typename T> gtc::type_precision::uint64 u64_bgrx_cast(const detail::tvec3<T>& c); //!< \brief Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension)
60 template <typename T> gtc::type_precision::uint64 u64_xbgr_cast(const detail::tvec3<T>& c); //!< \brief Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension)
56 template <typename T> gtc::type_precision::uint64 u64_rgba_cast(const detail::tvec4<T>& c); //!< \brief Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension)
57 template <typename T> gtc::type_precision::uint64 u64_argb_cast(const detail::tvec4<T>& c); //!< \brief Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension)
58 template <typename T> gtc::type_precision::uint64 u64_bgra_cast(const detail::tvec4<T>& c); //!< \brief Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension)
59 template <typename T> gtc::type_precision::uint64 u64_abgr_cast(const detail::tvec4<T>& c); //!< \brief Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension)
6160
62 template <typename T> gtc::type_precision::uint64 u64_rgba_cast(const detail::tvec4<T>& c); //!< \brief Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension)
63 template <typename T> gtc::type_precision::uint64 u64_argb_cast(const detail::tvec4<T>& c); //!< \brief Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension)
64 template <typename T> gtc::type_precision::uint64 u64_bgra_cast(const detail::tvec4<T>& c); //!< \brief Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension)
65 template <typename T> gtc::type_precision::uint64 u64_abgr_cast(const detail::tvec4<T>& c); //!< \brief Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension)
61 template <typename T> gtx::number_precision::f16vec1 f16_channel_cast(T a); //!< \brief Conversion of a u8 or u16 value to a single channel floating value. (From GLM_GTX_color_cast extension)
6662
67 template <typename T> gtx::number_precision::f16vec1 f16_channel_cast(T a); //!< \brief Conversion of a u8 or u16 value to a single channel floating value. (From GLM_GTX_color_cast extension)
63 template <typename T> gtc::type_precision::f16vec3 f16_rgbx_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
64 template <typename T> gtc::type_precision::f16vec3 f16_xrgb_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
65 template <typename T> gtc::type_precision::f16vec3 f16_bgrx_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
66 template <typename T> gtc::type_precision::f16vec3 f16_xbgr_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
6867
69 template <typename T> gtc::type_precision::f16vec3 f16_rgbx_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
70 template <typename T> gtc::type_precision::f16vec3 f16_xrgb_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
71 template <typename T> gtc::type_precision::f16vec3 f16_bgrx_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
72 template <typename T> gtc::type_precision::f16vec3 f16_xbgr_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
68 template <typename T> gtc::type_precision::f16vec4 f16_rgba_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
69 template <typename T> gtc::type_precision::f16vec4 f16_argb_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
70 template <typename T> gtc::type_precision::f16vec4 f16_bgra_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
71 template <typename T> gtc::type_precision::f16vec4 f16_abgr_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
7372
74 template <typename T> gtc::type_precision::f16vec4 f16_rgba_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
75 template <typename T> gtc::type_precision::f16vec4 f16_argb_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
76 template <typename T> gtc::type_precision::f16vec4 f16_bgra_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
77 template <typename T> gtc::type_precision::f16vec4 f16_abgr_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
73 template <typename T> gtx::number_precision::f32vec1 f32_channel_cast(T a); //!< \brief Conversion of a u8 or u16 value to a single channel floating value. (From GLM_GTX_color_cast extension)
7874
79 template <typename T> gtx::number_precision::f32vec1 f32_channel_cast(T a); //!< \brief Conversion of a u8 or u16 value to a single channel floating value. (From GLM_GTX_color_cast extension)
75 template <typename T> gtc::type_precision::f32vec3 f32_rgbx_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
76 template <typename T> gtc::type_precision::f32vec3 f32_xrgb_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
77 template <typename T> gtc::type_precision::f32vec3 f32_bgrx_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
78 template <typename T> gtc::type_precision::f32vec3 f32_xbgr_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
8079
81 template <typename T> gtc::type_precision::f32vec3 f32_rgbx_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
82 template <typename T> gtc::type_precision::f32vec3 f32_xrgb_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
83 template <typename T> gtc::type_precision::f32vec3 f32_bgrx_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
84 template <typename T> gtc::type_precision::f32vec3 f32_xbgr_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
80 template <typename T> gtc::type_precision::f32vec4 f32_rgba_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
81 template <typename T> gtc::type_precision::f32vec4 f32_argb_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
82 template <typename T> gtc::type_precision::f32vec4 f32_bgra_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
83 template <typename T> gtc::type_precision::f32vec4 f32_abgr_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
8584
86 template <typename T> gtc::type_precision::f32vec4 f32_rgba_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
87 template <typename T> gtc::type_precision::f32vec4 f32_argb_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
88 template <typename T> gtc::type_precision::f32vec4 f32_bgra_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
89 template <typename T> gtc::type_precision::f32vec4 f32_abgr_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
85 template <typename T> gtx::number_precision::f64vec1 f64_channel_cast(T a); //!< \brief Conversion of a u8 or u16 value to a single channel floating value. (From GLM_GTX_color_cast extension)
9086
91 template <typename T> gtx::number_precision::f64vec1 f64_channel_cast(T a); //!< \brief Conversion of a u8 or u16 value to a single channel floating value. (From GLM_GTX_color_cast extension)
87 template <typename T> gtc::type_precision::f64vec3 f64_rgbx_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
88 template <typename T> gtc::type_precision::f64vec3 f64_xrgb_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
89 template <typename T> gtc::type_precision::f64vec3 f64_bgrx_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
90 template <typename T> gtc::type_precision::f64vec3 f64_xbgr_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
9291
93 template <typename T> gtc::type_precision::f64vec3 f64_rgbx_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
94 template <typename T> gtc::type_precision::f64vec3 f64_xrgb_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
95 template <typename T> gtc::type_precision::f64vec3 f64_bgrx_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
96 template <typename T> gtc::type_precision::f64vec3 f64_xbgr_cast(T c); //!< \brief Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension)
92 template <typename T> gtc::type_precision::f64vec4 f64_rgba_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
93 template <typename T> gtc::type_precision::f64vec4 f64_argb_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
94 template <typename T> gtc::type_precision::f64vec4 f64_bgra_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
95 template <typename T> gtc::type_precision::f64vec4 f64_abgr_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
9796
98 template <typename T> gtc::type_precision::f64vec4 f64_rgba_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
99 template <typename T> gtc::type_precision::f64vec4 f64_argb_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
100 template <typename T> gtc::type_precision::f64vec4 f64_bgra_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
101 template <typename T> gtc::type_precision::f64vec4 f64_abgr_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
102
103 ///@}
104 }//namespace color_space
105 }//namespace gtx
97 ///@}
98 }//namespace color_space
99 }//namespace gtx
106100 }//namespace glm
107101
108102 #include "color_cast.inl"
203203 GLM_FUNC_QUALIFIER gtc::type_precision::f16vec3 f16_rgbx_cast<gtc::type_precision::uint32>(gtc::type_precision::uint32 color)
204204 {
205205 gtc::type_precision::f16vec3 result;
206 result.x = gtc::type_precision::f16(static_cast<float>(color >> 0) / static_cast<float>(255));
207 result.y = gtc::type_precision::f16(static_cast<float>(color >> 8) / static_cast<float>(255));
208 result.z = gtc::type_precision::f16(static_cast<float>(color >> 16) / static_cast<float>(255));
206 result.x = gtc::type_precision::f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
207 result.y = gtc::type_precision::f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
208 result.z = gtc::type_precision::f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
209209 return result;
210210 }
211211
213213 GLM_FUNC_QUALIFIER gtc::type_precision::f16vec3 f16_xrgb_cast<gtc::type_precision::uint32>(gtc::type_precision::uint32 color)
214214 {
215215 gtc::type_precision::f16vec3 result;
216 result.x = gtc::type_precision::f16(static_cast<float>(color >> 8) / static_cast<float>(255));
217 result.y = gtc::type_precision::f16(static_cast<float>(color >> 16) / static_cast<float>(255));
218 result.z = gtc::type_precision::f16(static_cast<float>(color >> 24) / static_cast<float>(255));
216 result.x = gtc::type_precision::f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
217 result.y = gtc::type_precision::f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
218 result.z = gtc::type_precision::f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
219219 return result;
220220 }
221221
223223 GLM_FUNC_QUALIFIER f16vec3 f16_bgrx_cast<uint32>(uint32 color)
224224 {
225225 f16vec3 result;
226 result.x = f16(static_cast<float>(color >> 16) / static_cast<float>(255));
227 result.y = f16(static_cast<float>(color >> 8) / static_cast<float>(255));
228 result.z = f16(static_cast<float>(color >> 0) / static_cast<float>(255));
226 result.x = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
227 result.y = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
228 result.z = f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
229229 return result;
230230 }
231231
233233 GLM_FUNC_QUALIFIER f16vec3 f16_xbgr_cast<uint32>(uint32 color)
234234 {
235235 f16vec3 result;
236 result.x = f16(static_cast<float>(color >> 24) / static_cast<float>(255));
237 result.y = f16(static_cast<float>(color >> 16) / static_cast<float>(255));
238 result.z = f16(static_cast<float>(color >> 8) / static_cast<float>(255));
236 result.x = f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
237 result.y = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
238 result.z = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
239239 return result;
240240 }
241241
243243 GLM_FUNC_QUALIFIER f16vec4 f16_rgba_cast<uint32>(uint32 color)
244244 {
245245 f16vec4 result;
246 result.x = f16(static_cast<float>(color >> 0) / static_cast<float>(255));
247 result.y = f16(static_cast<float>(color >> 8) / static_cast<float>(255));
248 result.z = f16(static_cast<float>(color >> 16) / static_cast<float>(255));
249 result.w = f16(static_cast<float>(color >> 24) / static_cast<float>(255));
246 result.x = f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
247 result.y = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
248 result.z = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
249 result.w = f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
250250 return result;
251251 }
252252
254254 GLM_FUNC_QUALIFIER f16vec4 f16_argb_cast<uint32>(uint32 color)
255255 {
256256 f16vec4 result;
257 result.x = f16(static_cast<float>(color >> 8) / static_cast<float>(255));
258 result.y = f16(static_cast<float>(color >> 16) / static_cast<float>(255));
259 result.z = f16(static_cast<float>(color >> 24) / static_cast<float>(255));
260 result.w = f16(static_cast<float>(color >> 0) / static_cast<float>(255));
257 result.x = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
258 result.y = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
259 result.z = f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
260 result.w = f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
261261 return result;
262262 }
263263
265265 GLM_FUNC_QUALIFIER f16vec4 f16_bgra_cast<uint32>(uint32 color)
266266 {
267267 f16vec4 result;
268 result.x = f16(static_cast<float>(color >> 16) / static_cast<float>(255));
269 result.y = f16(static_cast<float>(color >> 8) / static_cast<float>(255));
270 result.z = f16(static_cast<float>(color >> 0) / static_cast<float>(255));
271 result.w = f16(static_cast<float>(color >> 24) / static_cast<float>(255));
268 result.x = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
269 result.y = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
270 result.z = f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
271 result.w = f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
272272 return result;
273273 }
274274
276276 GLM_FUNC_QUALIFIER f16vec4 f16_abgr_cast<uint32>(uint32 color)
277277 {
278278 f16vec4 result;
279 result.x = f16(static_cast<float>(color >> 24) / static_cast<float>(255));
280 result.y = f16(static_cast<float>(color >> 16) / static_cast<float>(255));
281 result.z = f16(static_cast<float>(color >> 8) / static_cast<float>(255));
282 result.w = f16(static_cast<float>(color >> 0) / static_cast<float>(255));
279 result.x = f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
280 result.y = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
281 result.z = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
282 result.w = f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
283283 return result;
284284 }
285285
293293 GLM_FUNC_QUALIFIER detail::tvec3<float> f32_rgbx_cast<uint32>(uint32 color)
294294 {
295295 detail::tvec3<float> result;
296 result.x = static_cast<float>(color >> 0) / static_cast<float>(255);
297 result.y = static_cast<float>(color >> 8) / static_cast<float>(255);
298 result.z = static_cast<float>(color >> 16) / static_cast<float>(255);
296 result.x = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
297 result.y = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
298 result.z = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
299299 return result;
300300 }
301301
303303 GLM_FUNC_QUALIFIER detail::tvec3<float> f32_xrgb_cast<uint32>(uint32 color)
304304 {
305305 detail::tvec3<float> result;
306 result.x = static_cast<float>(color >> 8) / static_cast<float>(255);
307 result.y = static_cast<float>(color >> 16) / static_cast<float>(255);
308 result.z = static_cast<float>(color >> 24) / static_cast<float>(255);
306 result.x = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
307 result.y = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
308 result.z = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
309309 return result;
310310 }
311311
313313 GLM_FUNC_QUALIFIER detail::tvec3<float> f32_bgrx_cast<uint32>(uint32 color)
314314 {
315315 detail::tvec3<float> result;
316 result.x = static_cast<float>(color >> 16) / static_cast<float>(255);
317 result.y = static_cast<float>(color >> 8) / static_cast<float>(255);
318 result.z = static_cast<float>(color >> 0) / static_cast<float>(255);
316 result.x = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
317 result.y = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
318 result.z = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
319319 return result;
320320 }
321321
323323 GLM_FUNC_QUALIFIER detail::tvec3<float> f32_xbgr_cast<uint32>(uint32 color)
324324 {
325325 detail::tvec3<float> result;
326 result.x = static_cast<float>(color >> 24) / static_cast<float>(255);
327 result.y = static_cast<float>(color >> 16) / static_cast<float>(255);
328 result.z = static_cast<float>(color >> 8) / static_cast<float>(255);
326 result.x = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
327 result.y = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
328 result.z = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
329329 return result;
330330 }
331331
333333 GLM_FUNC_QUALIFIER detail::tvec4<float> f32_rgba_cast<uint32>(uint32 color)
334334 {
335335 detail::tvec4<float> result;
336 result.x = static_cast<float>(color >> 0) / static_cast<float>(255);
337 result.y = static_cast<float>(color >> 8) / static_cast<float>(255);
338 result.z = static_cast<float>(color >> 16) / static_cast<float>(255);
339 result.w = static_cast<float>(color >> 24) / static_cast<float>(255);
336 result.x = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
337 result.y = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
338 result.z = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
339 result.w = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
340340 return result;
341341 }
342342
344344 GLM_FUNC_QUALIFIER detail::tvec4<float> f32_argb_cast<uint32>(uint32 color)
345345 {
346346 detail::tvec4<float> result;
347 result.x = static_cast<float>(color >> 8) / static_cast<float>(255);
348 result.y = static_cast<float>(color >> 16) / static_cast<float>(255);
349 result.z = static_cast<float>(color >> 24) / static_cast<float>(255);
350 result.w = static_cast<float>(color >> 0) / static_cast<float>(255);
347 result.x = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
348 result.y = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
349 result.z = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
350 result.w = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
351351 return result;
352352 }
353353
355355 GLM_FUNC_QUALIFIER detail::tvec4<float> f32_bgra_cast<uint32>(uint32 color)
356356 {
357357 detail::tvec4<float> result;
358 result.x = static_cast<float>(color >> 16) / static_cast<float>(255);
359 result.y = static_cast<float>(color >> 8) / static_cast<float>(255);
360 result.z = static_cast<float>(color >> 0) / static_cast<float>(255);
361 result.w = static_cast<float>(color >> 24) / static_cast<float>(255);
358 result.x = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
359 result.y = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
360 result.z = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
361 result.w = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
362362 return result;
363363 }
364364
366366 GLM_FUNC_QUALIFIER detail::tvec4<float> f32_abgr_cast<uint32>(uint32 color)
367367 {
368368 detail::tvec4<float> result;
369 result.x = static_cast<float>(color >> 24) / static_cast<float>(255);
370 result.y = static_cast<float>(color >> 16) / static_cast<float>(255);
371 result.z = static_cast<float>(color >> 8) / static_cast<float>(255);
372 result.w = static_cast<float>(color >> 0) / static_cast<float>(255);
369 result.x = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
370 result.y = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
371 result.z = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
372 result.w = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
373373 return result;
374374 }
375375
383383 GLM_FUNC_QUALIFIER detail::tvec3<double> f64_rgbx_cast<uint32>(uint32 color)
384384 {
385385 detail::tvec3<double> result;
386 result.x = static_cast<double>(color >> 0) / static_cast<double>(255);
387 result.y = static_cast<double>(color >> 8) / static_cast<double>(255);
388 result.z = static_cast<double>(color >> 16) / static_cast<double>(255);
386 result.x = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
387 result.y = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
388 result.z = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
389389 return result;
390390 }
391391
393393 GLM_FUNC_QUALIFIER detail::tvec3<double> f64_xrgb_cast<uint32>(uint32 color)
394394 {
395395 detail::tvec3<double> result;
396 result.x = static_cast<double>(color >> 8) / static_cast<double>(255);
397 result.y = static_cast<double>(color >> 16) / static_cast<double>(255);
398 result.z = static_cast<double>(color >> 24) / static_cast<double>(255);
396 result.x = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
397 result.y = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
398 result.z = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
399399 return result;
400400 }
401401
403403 GLM_FUNC_QUALIFIER detail::tvec3<double> f64_bgrx_cast<uint32>(uint32 color)
404404 {
405405 detail::tvec3<double> result;
406 result.x = static_cast<double>(color >> 16) / static_cast<double>(255);
407 result.y = static_cast<double>(color >> 8) / static_cast<double>(255);
408 result.z = static_cast<double>(color >> 0) / static_cast<double>(255);
406 result.x = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
407 result.y = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
408 result.z = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
409409 return result;
410410 }
411411
413413 GLM_FUNC_QUALIFIER detail::tvec3<double> f64_xbgr_cast<uint32>(uint32 color)
414414 {
415415 detail::tvec3<double> result;
416 result.x = static_cast<double>(color >> 24) / static_cast<double>(255);
417 result.y = static_cast<double>(color >> 16) / static_cast<double>(255);
418 result.z = static_cast<double>(color >> 8) / static_cast<double>(255);
416 result.x = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
417 result.y = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
418 result.z = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
419419 return result;
420420 }
421421
423423 GLM_FUNC_QUALIFIER detail::tvec4<double> f64_rgba_cast<uint32>(uint32 color)
424424 {
425425 detail::tvec4<double> result;
426 result.x = static_cast<double>(color >> 0) / static_cast<double>(255);
427 result.y = static_cast<double>(color >> 8) / static_cast<double>(255);
428 result.z = static_cast<double>(color >> 16) / static_cast<double>(255);
429 result.w = static_cast<double>(color >> 24) / static_cast<double>(255);
426 result.x = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
427 result.y = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
428 result.z = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
429 result.w = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
430430 return result;
431431 }
432432
434434 GLM_FUNC_QUALIFIER detail::tvec4<double> f64_argb_cast<uint32>(uint32 color)
435435 {
436436 detail::tvec4<double> result;
437 result.x = static_cast<double>(color >> 8) / static_cast<double>(255);
438 result.y = static_cast<double>(color >> 16) / static_cast<double>(255);
439 result.z = static_cast<double>(color >> 24) / static_cast<double>(255);
440 result.w = static_cast<double>(color >> 0) / static_cast<double>(255);
437 result.x = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
438 result.y = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
439 result.z = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
440 result.w = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
441441 return result;
442442 }
443443
445445 GLM_FUNC_QUALIFIER detail::tvec4<double> f64_bgra_cast<uint32>(uint32 color)
446446 {
447447 detail::tvec4<double> result;
448 result.x = static_cast<double>(color >> 16) / static_cast<double>(255);
449 result.y = static_cast<double>(color >> 8) / static_cast<double>(255);
450 result.z = static_cast<double>(color >> 0) / static_cast<double>(255);
451 result.w = static_cast<double>(color >> 24) / static_cast<double>(255);
448 result.x = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
449 result.y = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
450 result.z = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
451 result.w = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
452452 return result;
453453 }
454454
456456 GLM_FUNC_QUALIFIER detail::tvec4<double> f64_abgr_cast<uint32>(uint32 color)
457457 {
458458 detail::tvec4<double> result;
459 result.x = static_cast<double>(color >> 24) / static_cast<double>(255);
460 result.y = static_cast<double>(color >> 16) / static_cast<double>(255);
461 result.z = static_cast<double>(color >> 8) / static_cast<double>(255);
462 result.w = static_cast<double>(color >> 0) / static_cast<double>(255);
459 result.x = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
460 result.y = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
461 result.z = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
462 result.w = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
463463 return result;
464464 }
465465
473473 GLM_FUNC_QUALIFIER detail::tvec3<detail::thalf> f16_rgbx_cast<uint64>(uint64 color)
474474 {
475475 detail::tvec3<detail::thalf> result;
476 result.x = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535));
477 result.y = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535));
478 result.z = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535));
476 result.x = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
477 result.y = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
478 result.z = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
479479 return result;
480480 }
481481
483483 GLM_FUNC_QUALIFIER detail::tvec3<detail::thalf> f16_xrgb_cast<uint64>(uint64 color)
484484 {
485485 detail::tvec3<detail::thalf> result;
486 result.x = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535));
487 result.y = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535));
488 result.z = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535));
486 result.x = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
487 result.y = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
488 result.z = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
489489 return result;
490490 }
491491
493493 GLM_FUNC_QUALIFIER detail::tvec3<detail::thalf> f16_bgrx_cast<uint64>(uint64 color)
494494 {
495495 detail::tvec3<detail::thalf> result;
496 result.x = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535));
497 result.y = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535));
498 result.z = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535));
496 result.x = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
497 result.y = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
498 result.z = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
499499 return result;
500500 }
501501
503503 GLM_FUNC_QUALIFIER detail::tvec3<detail::thalf> f16_xbgr_cast<uint64>(uint64 color)
504504 {
505505 detail::tvec3<detail::thalf> result;
506 result.x = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535));
507 result.y = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535));
508 result.z = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535));
506 result.x = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
507 result.y = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
508 result.z = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
509509 return result;
510510 }
511511
513513 GLM_FUNC_QUALIFIER detail::tvec4<detail::thalf> f16_rgba_cast<uint64>(uint64 color)
514514 {
515515 detail::tvec4<detail::thalf> result;
516 result.x = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535));
517 result.y = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535));
518 result.z = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535));
519 result.w = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535));
516 result.x = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
517 result.y = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
518 result.z = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
519 result.w = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
520520 return result;
521521 }
522522
524524 GLM_FUNC_QUALIFIER detail::tvec4<detail::thalf> f16_argb_cast<uint64>(uint64 color)
525525 {
526526 detail::tvec4<detail::thalf> result;
527 result.x = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535));
528 result.y = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535));
529 result.z = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535));
530 result.w = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535));
527 result.x = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
528 result.y = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
529 result.z = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
530 result.w = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
531531 return result;
532532 }
533533
535535 GLM_FUNC_QUALIFIER detail::tvec4<detail::thalf> f16_bgra_cast<uint64>(uint64 color)
536536 {
537537 detail::tvec4<detail::thalf> result;
538 result.x = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535));
539 result.y = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535));
540 result.z = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535));
541 result.w = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535));
538 result.x = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
539 result.y = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
540 result.z = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
541 result.w = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
542542 return result;
543543 }
544544
546546 GLM_FUNC_QUALIFIER detail::tvec4<detail::thalf> f16_abgr_cast<uint64>(uint64 color)
547547 {
548548 detail::tvec4<detail::thalf> result;
549 result.x = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535));
550 result.y = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535));
551 result.z = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535));
552 result.w = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535));
549 result.x = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
550 result.y = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
551 result.z = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
552 result.w = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
553553 return result;
554554 }
555555
563563 GLM_FUNC_QUALIFIER detail::tvec3<float> f32_rgbx_cast<uint64>(uint64 color)
564564 {
565565 detail::tvec3<float> result;
566 result.x = static_cast<float>(color >> 0) / static_cast<float>(65535);
567 result.y = static_cast<float>(color >> 16) / static_cast<float>(65535);
568 result.z = static_cast<float>(color >> 32) / static_cast<float>(65535);
566 result.x = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
567 result.y = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
568 result.z = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
569569 return result;
570570 }
571571
573573 GLM_FUNC_QUALIFIER detail::tvec3<float> f32_xrgb_cast<uint64>(uint64 color)
574574 {
575575 detail::tvec3<float> result;
576 result.x = static_cast<float>(color >> 16) / static_cast<float>(65535);
577 result.y = static_cast<float>(color >> 32) / static_cast<float>(65535);
578 result.z = static_cast<float>(color >> 48) / static_cast<float>(65535);
576 result.x = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
577 result.y = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
578 result.z = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
579579 return result;
580580 }
581581
583583 GLM_FUNC_QUALIFIER detail::tvec3<float> f32_bgrx_cast<uint64>(uint64 color)
584584 {
585585 detail::tvec3<float> result;
586 result.x = static_cast<float>(color >> 32) / static_cast<float>(65535);
587 result.y = static_cast<float>(color >> 16) / static_cast<float>(65535);
588 result.z = static_cast<float>(color >> 0) / static_cast<float>(65535);
586 result.x = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
587 result.y = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
588 result.z = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
589589 return result;
590590 }
591591
593593 GLM_FUNC_QUALIFIER detail::tvec3<float> f32_xbgr_cast<uint64>(uint64 color)
594594 {
595595 detail::tvec3<float> result;
596 result.x = static_cast<float>(color >> 48) / static_cast<float>(65535);
597 result.y = static_cast<float>(color >> 32) / static_cast<float>(65535);
598 result.z = static_cast<float>(color >> 16) / static_cast<float>(65535);
596 result.x = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
597 result.y = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
598 result.z = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
599599 return result;
600600 }
601601
603603 GLM_FUNC_QUALIFIER detail::tvec4<float> f32_rgba_cast<uint64>(uint64 color)
604604 {
605605 detail::tvec4<float> result;
606 result.x = static_cast<float>(color >> 0) / static_cast<float>(65535);
607 result.y = static_cast<float>(color >> 16) / static_cast<float>(65535);
608 result.z = static_cast<float>(color >> 32) / static_cast<float>(65535);
609 result.w = static_cast<float>(color >> 48) / static_cast<float>(65535);
606 result.x = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
607 result.y = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
608 result.z = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
609 result.w = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
610610 return result;
611611 }
612612
614614 GLM_FUNC_QUALIFIER detail::tvec4<float> f32_argb_cast<uint64>(uint64 color)
615615 {
616616 detail::tvec4<float> result;
617 result.x = static_cast<float>(color >> 16) / static_cast<float>(65535);
618 result.y = static_cast<float>(color >> 32) / static_cast<float>(65535);
619 result.z = static_cast<float>(color >> 48) / static_cast<float>(65535);
620 result.w = static_cast<float>(color >> 0) / static_cast<float>(65535);
617 result.x = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
618 result.y = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
619 result.z = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
620 result.w = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
621621 return result;
622622 }
623623
625625 GLM_FUNC_QUALIFIER detail::tvec4<float> f32_bgra_cast<uint64>(uint64 color)
626626 {
627627 detail::tvec4<float> result;
628 result.x = static_cast<float>(color >> 32) / static_cast<float>(65535);
629 result.y = static_cast<float>(color >> 16) / static_cast<float>(65535);
630 result.z = static_cast<float>(color >> 0) / static_cast<float>(65535);
631 result.w = static_cast<float>(color >> 48) / static_cast<float>(65535);
628 result.x = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
629 result.y = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
630 result.z = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
631 result.w = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
632632 return result;
633633 }
634634
636636 GLM_FUNC_QUALIFIER detail::tvec4<float> f32_abgr_cast<uint64>(uint64 color)
637637 {
638638 detail::tvec4<float> result;
639 result.x = static_cast<float>(color >> 48) / static_cast<float>(65535);
640 result.y = static_cast<float>(color >> 32) / static_cast<float>(65535);
641 result.z = static_cast<float>(color >> 16) / static_cast<float>(65535);
642 result.w = static_cast<float>(color >> 0) / static_cast<float>(65535);
639 result.x = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
640 result.y = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
641 result.z = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
642 result.w = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
643643 return result;
644644 }
645645
653653 GLM_FUNC_QUALIFIER detail::tvec3<double> f64_rgbx_cast<uint64>(uint64 color)
654654 {
655655 detail::tvec3<double> result;
656 result.x = static_cast<double>(color >> 0) / static_cast<double>(65535);
657 result.y = static_cast<double>(color >> 16) / static_cast<double>(65535);
658 result.z = static_cast<double>(color >> 32) / static_cast<double>(65535);
656 result.x = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
657 result.y = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
658 result.z = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
659659 return result;
660660 }
661661
663663 GLM_FUNC_QUALIFIER detail::tvec3<double> f64_xrgb_cast<uint64>(uint64 color)
664664 {
665665 detail::tvec3<double> result;
666 result.x = static_cast<double>(color >> 16) / static_cast<double>(65535);
667 result.y = static_cast<double>(color >> 32) / static_cast<double>(65535);
668 result.z = static_cast<double>(color >> 48) / static_cast<double>(65535);
666 result.x = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
667 result.y = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
668 result.z = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
669669 return result;
670670 }
671671
673673 GLM_FUNC_QUALIFIER detail::tvec3<double> f64_bgrx_cast<uint64>(uint64 color)
674674 {
675675 detail::tvec3<double> result;
676 result.x = static_cast<double>(color >> 32) / static_cast<double>(65535);
677 result.y = static_cast<double>(color >> 16) / static_cast<double>(65535);
678 result.z = static_cast<double>(color >> 0) / static_cast<double>(65535);
676 result.x = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
677 result.y = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
678 result.z = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
679679 return result;
680680 }
681681
683683 GLM_FUNC_QUALIFIER detail::tvec3<double> f64_xbgr_cast<uint64>(uint64 color)
684684 {
685685 detail::tvec3<double> result;
686 result.x = static_cast<double>(color >> 48) / static_cast<double>(65535);
687 result.y = static_cast<double>(color >> 32) / static_cast<double>(65535);
688 result.z = static_cast<double>(color >> 16) / static_cast<double>(65535);
686 result.x = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
687 result.y = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
688 result.z = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
689689 return result;
690690 }
691691
693693 GLM_FUNC_QUALIFIER detail::tvec4<double> f64_rgba_cast<uint64>(uint64 color)
694694 {
695695 detail::tvec4<double> result;
696 result.x = static_cast<double>(color >> 0) / static_cast<double>(65535);
697 result.y = static_cast<double>(color >> 16) / static_cast<double>(65535);
698 result.z = static_cast<double>(color >> 32) / static_cast<double>(65535);
699 result.w = static_cast<double>(color >> 48) / static_cast<double>(65535);
696 result.x = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
697 result.y = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
698 result.z = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
699 result.w = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
700700 return result;
701701 }
702702
704704 GLM_FUNC_QUALIFIER detail::tvec4<double> f64_argb_cast<uint64>(uint64 color)
705705 {
706706 detail::tvec4<double> result;
707 result.x = static_cast<double>(color >> 16) / static_cast<double>(65535);
708 result.y = static_cast<double>(color >> 32) / static_cast<double>(65535);
709 result.z = static_cast<double>(color >> 48) / static_cast<double>(65535);
710 result.w = static_cast<double>(color >> 0) / static_cast<double>(65535);
707 result.x = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
708 result.y = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
709 result.z = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
710 result.w = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
711711 return result;
712712 }
713713
715715 GLM_FUNC_QUALIFIER detail::tvec4<double> f64_bgra_cast<uint64>(uint64 color)
716716 {
717717 detail::tvec4<double> result;
718 result.x = static_cast<double>(color >> 32) / static_cast<double>(65535);
719 result.y = static_cast<double>(color >> 16) / static_cast<double>(65535);
720 result.z = static_cast<double>(color >> 0) / static_cast<double>(65535);
721 result.w = static_cast<double>(color >> 48) / static_cast<double>(65535);
718 result.x = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
719 result.y = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
720 result.z = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
721 result.w = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
722722 return result;
723723 }
724724
726726 GLM_FUNC_QUALIFIER detail::tvec4<double> f64_abgr_cast<uint64>(uint64 color)
727727 {
728728 detail::tvec4<double> result;
729 result.x = static_cast<double>(color >> 48) / static_cast<double>(65535);
730 result.y = static_cast<double>(color >> 32) / static_cast<double>(65535);
731 result.z = static_cast<double>(color >> 16) / static_cast<double>(65535);
732 result.w = static_cast<double>(color >> 0) / static_cast<double>(65535);
729 result.x = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
730 result.y = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
731 result.z = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
732 result.w = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
733733 return result;
734734 }
735735
1919 # pragma message("GLM: GLM_GTX_color_space extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace color_space ///< GLM_GTX_color_space extension: Related to RGB to HSV conversions and operations
2325 {
24 namespace test{
25 void main_gtx_color_space();
26 }//namespace test
26 /// \addtogroup gtx_color_space
27 /// @{
2728
28 namespace gtx{
29 //! GLM_GTX_color_space extension: Related to RGB to HSV conversions and operations
30 namespace color_space
31 {
32 /// \addtogroup gtx_color_space
33 ///@{
29 //! Converts a color from HSV color space to its color in RGB color space.
30 //! From GLM_GTX_color_space extension.
31 template <typename valType>
32 detail::tvec3<valType> rgbColor(
33 detail::tvec3<valType> const & hsvValue);
3434
35 //! Converts a color from HSV color space to its color in RGB color space.
36 //! From GLM_GTX_color_space extension.
37 template <typename valType>
38 detail::tvec3<valType> rgbColor(
39 detail::tvec3<valType> const & hsvValue);
35 //! Converts a color from RGB color space to its color in HSV color space.
36 //! From GLM_GTX_color_space extension.
37 template <typename valType>
38 detail::tvec3<valType> hsvColor(
39 detail::tvec3<valType> const & rgbValue);
40
41 //! Build a saturation matrix.
42 //! From GLM_GTX_color_space extension
43 template <typename valType>
44 detail::tmat4x4<valType> saturation(
45 valType const s);
4046
41 //! Converts a color from RGB color space to its color in HSV color space.
42 //! From GLM_GTX_color_space extension.
43 template <typename valType>
44 detail::tvec3<valType> hsvColor(
45 detail::tvec3<valType> const & rgbValue);
47 //! Modify the saturation of a color.
48 //! From GLM_GTX_color_space extension.
49 template <typename valType>
50 detail::tvec3<valType> saturation(
51 valType const s,
52 detail::tvec3<valType> const & color);
4653
47 //! Build a saturation matrix.
48 //! From GLM_GTX_color_space extension
49 template <typename valType>
50 detail::tmat4x4<valType> saturation(
51 valType const s);
54 //! Modify the saturation of a color.
55 //! From GLM_GTX_color_space extension.
56 template <typename valType>
57 detail::tvec4<valType> saturation(
58 valType const s,
59 detail::tvec4<valType> const & color);
60
61 //! Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.
62 //! From GLM_GTX_color_space extension.
63 template <typename valType>
64 valType luminosity(
65 detail::tvec3<valType> const & color);
5266
53 //! Modify the saturation of a color.
54 //! From GLM_GTX_color_space extension.
55 template <typename valType>
56 detail::tvec3<valType> saturation(
57 valType const s,
58 detail::tvec3<valType> const & color);
59
60 //! Modify the saturation of a color.
61 //! From GLM_GTX_color_space extension.
62 template <typename valType>
63 detail::tvec4<valType> saturation(
64 valType const s,
65 detail::tvec4<valType> const & color);
66
67 //! Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.
68 //! From GLM_GTX_color_space extension.
69 template <typename valType>
70 valType luminosity(
71 detail::tvec3<valType> const & color);
72
73 ///@}
74
75 }//namespace color_space
76 }//namespace gtx
67 /// @}
68 }//namespace color_space
69 }//namespace gtx
7770 }//namespace glm
7871
7972 #include "color_space.inl"
1919 # pragma message("GLM: GLM_GTX_color_space_YCoCg extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace color_space_YCoCg ///< GLM_GTX_color_space_YCoCg extension: RGB to YCoCg conversions and operations
2325 {
24 namespace test{
25 void main_gtx_color_space_YCoCg();
26 }//namespace test
26 /// \addtogroup gtx_color_space_YCoCg
27 ///@{
2728
28 namespace gtx{
29 //! GLM_GTX_color_space_YCoCg extension: RGB to YCoCg conversions and operations
30 namespace color_space_YCoCg
31 {
32 /// \addtogroup gtx_color_space_YCoCg
33 ///@{
29 //! Convert a color from RGB color space to YCoCg color space.
30 //! From GLM_GTX_color_space_YCoCg extension.
31 template <typename valType>
32 detail::tvec3<valType> rgb2YCoCg(
33 detail::tvec3<valType> const & rgbColor);
3434
35 //! Convert a color from RGB color space to YCoCg color space.
36 //! From GLM_GTX_color_space_YCoCg extension.
37 template <typename valType>
38 detail::tvec3<valType> rgb2YCoCg(
39 detail::tvec3<valType> const & rgbColor);
35 //! Convert a color from YCoCg color space to RGB color space.
36 //! From GLM_GTX_color_space_YCoCg extension.
37 template <typename valType>
38 detail::tvec3<valType> YCoCg2rgb(
39 detail::tvec3<valType> const & YCoCgColor);
4040
41 //! Convert a color from YCoCg color space to RGB color space.
42 //! From GLM_GTX_color_space_YCoCg extension.
43 template <typename valType>
44 detail::tvec3<valType> YCoCg2rgb(
45 detail::tvec3<valType> const & YCoCgColor);
41 //! Convert a color from RGB color space to YCoCgR color space.
42 //! \see "YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
43 //! From GLM_GTX_color_space_YCoCg extension.
44 template <typename valType>
45 detail::tvec3<valType> rgb2YCoCgR(
46 detail::tvec3<valType> const & rgbColor);
4647
47 //! Convert a color from RGB color space to YCoCgR color space.
48 //! \see "YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
49 //! From GLM_GTX_color_space_YCoCg extension.
50 template <typename valType>
51 detail::tvec3<valType> rgb2YCoCgR(
52 detail::tvec3<valType> const & rgbColor);
48 //! Convert a color from YCoCgR color space to RGB color space.
49 //! \see "YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
50 //! From GLM_GTX_color_space_YCoCg extension.
51 template <typename valType>
52 detail::tvec3<valType> YCoCgR2rgb(
53 detail::tvec3<valType> const & YCoCgColor);
5354
54 //! Convert a color from YCoCgR color space to RGB color space.
55 //! \see "YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
56 //! From GLM_GTX_color_space_YCoCg extension.
57 template <typename valType>
58 detail::tvec3<valType> YCoCgR2rgb(
59 detail::tvec3<valType> const & YCoCgColor);
60
61 ///@}
62 }//namespace color_space_YCoCg
63 }//namespace gtx
55 /// @}
56 }//namespace color_space_YCoCg
57 }//namespace gtx
6458 }//namespace glm
6559
6660 #include "color_space_YCoCg.inl"
2727 #include <cmath>
2828 #endif//GLM_COMPILER
2929
30 namespace glm
30 namespace glm{
31 namespace gtx{
32 namespace compatibility ///< GLM_GTX_compatibility extension: Provide functions to increase the compatibility with Cg and HLSL languages
3133 {
32 namespace test{
33 void main_gtx_compatibility();
34 }//namespace test
34 /// \addtogroup gtx_compatibility
35 ///@{
3536
36 namespace gtx{
37 //! GLM_GTX_compatibility extension: Provide functions to increase the compatibility with Cg and HLSL languages
38 namespace compatibility
39 {
40 /// \addtogroup gtx_compatibility
41 ///@{
37 template <typename T> GLM_FUNC_QUALIFIER T lerp(T x, T y, T a){return mix(x, y, a);} //!< \brief 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]. (From GLM_GTX_compatibility)
38 template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> lerp(const detail::tvec2<T>& x, const detail::tvec2<T>& y, T a){return mix(x, y, a);} //!< \brief 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]. (From GLM_GTX_compatibility)
39 template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> lerp(const detail::tvec3<T>& x, const detail::tvec3<T>& y, T a){return mix(x, y, a);} //!< \brief 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]. (From GLM_GTX_compatibility)
40 template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> lerp(const detail::tvec4<T>& x, const detail::tvec4<T>& y, T a){return mix(x, y, a);} //!< \brief 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]. (From GLM_GTX_compatibility)
41 template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> lerp(const detail::tvec2<T>& x, const detail::tvec2<T>& y, const detail::tvec2<T>& a){return mix(x, y, a);} //!< \brief Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
42 template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> lerp(const detail::tvec3<T>& x, const detail::tvec3<T>& y, const detail::tvec3<T>& a){return mix(x, y, a);} //!< \brief Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
43 template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> lerp(const detail::tvec4<T>& x, const detail::tvec4<T>& y, const detail::tvec4<T>& a){return mix(x, y, a);} //!< \brief Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
4244
43 template <typename T> GLM_FUNC_QUALIFIER T lerp(T x, T y, T a){return mix(x, y, a);} //!< \brief 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]. (From GLM_GTX_compatibility)
44 template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> lerp(const detail::tvec2<T>& x, const detail::tvec2<T>& y, T a){return mix(x, y, a);} //!< \brief 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]. (From GLM_GTX_compatibility)
45 template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> lerp(const detail::tvec3<T>& x, const detail::tvec3<T>& y, T a){return mix(x, y, a);} //!< \brief 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]. (From GLM_GTX_compatibility)
46 template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> lerp(const detail::tvec4<T>& x, const detail::tvec4<T>& y, T a){return mix(x, y, a);} //!< \brief 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]. (From GLM_GTX_compatibility)
47 template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> lerp(const detail::tvec2<T>& x, const detail::tvec2<T>& y, const detail::tvec2<T>& a){return mix(x, y, a);} //!< \brief Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
48 template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> lerp(const detail::tvec3<T>& x, const detail::tvec3<T>& y, const detail::tvec3<T>& a){return mix(x, y, a);} //!< \brief Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
49 template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> lerp(const detail::tvec4<T>& x, const detail::tvec4<T>& y, const detail::tvec4<T>& a){return mix(x, y, a);} //!< \brief Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
45 template <typename T> GLM_FUNC_QUALIFIER T saturate(T x){return clamp(x, T(0), T(1));} //!< \brief Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
46 template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> saturate(const detail::tvec2<T>& x){return clamp(x, T(0), T(1));} //!< \brief Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
47 template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> saturate(const detail::tvec3<T>& x){return clamp(x, T(0), T(1));} //!< \brief Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
48 template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> saturate(const detail::tvec4<T>& x){return clamp(x, T(0), T(1));} //!< \brief Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
5049
51 template <typename T> GLM_FUNC_QUALIFIER T saturate(T x){return clamp(x, T(0), T(1));} //!< \brief Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
52 template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> saturate(const detail::tvec2<T>& x){return clamp(x, T(0), T(1));} //!< \brief Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
53 template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> saturate(const detail::tvec3<T>& x){return clamp(x, T(0), T(1));} //!< \brief Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
54 template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> saturate(const detail::tvec4<T>& x){return clamp(x, T(0), T(1));} //!< \brief Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
50 template <typename T> GLM_FUNC_QUALIFIER T atan2(T x, T y){return atan(x, y);} //!< \brief 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. (From GLM_GTX_compatibility)
51 template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> atan2(const detail::tvec2<T>& x, const detail::tvec2<T>& y){return atan(x, y);} //!< \brief 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. (From GLM_GTX_compatibility)
52 template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> atan2(const detail::tvec3<T>& x, const detail::tvec3<T>& y){return atan(x, y);} //!< \brief 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. (From GLM_GTX_compatibility)
53 template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> atan2(const detail::tvec4<T>& x, const detail::tvec4<T>& y){return atan(x, y);} //!< \brief 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. (From GLM_GTX_compatibility)
5554
56 template <typename T> GLM_FUNC_QUALIFIER T atan2(T x, T y){return atan(x, y);} //!< \brief 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. (From GLM_GTX_compatibility)
57 template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> atan2(const detail::tvec2<T>& x, const detail::tvec2<T>& y){return atan(x, y);} //!< \brief 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. (From GLM_GTX_compatibility)
58 template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> atan2(const detail::tvec3<T>& x, const detail::tvec3<T>& y){return atan(x, y);} //!< \brief 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. (From GLM_GTX_compatibility)
59 template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> atan2(const detail::tvec4<T>& x, const detail::tvec4<T>& y){return atan(x, y);} //!< \brief 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. (From GLM_GTX_compatibility)
55 template <typename genType> bool isfinite(genType const & x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
56 template <typename valType> detail::tvec2<bool> isfinite(const detail::tvec2<valType>& x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
57 template <typename valType> detail::tvec3<bool> isfinite(const detail::tvec3<valType>& x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
58 template <typename valType> detail::tvec4<bool> isfinite(const detail::tvec4<valType>& x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
6059
61 template <typename genType> bool isfinite(genType const & x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
62 template <typename valType> detail::tvec2<bool> isfinite(const detail::tvec2<valType>& x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
63 template <typename valType> detail::tvec3<bool> isfinite(const detail::tvec3<valType>& x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
64 template <typename valType> detail::tvec4<bool> isfinite(const detail::tvec4<valType>& x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
60 template <typename genType> bool isinf(genType const & x); //!< \brief Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension)
61 template <typename genType> detail::tvec2<bool> isinf(const detail::tvec2<genType>& x); //!< \brief Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension)
62 template <typename genType> detail::tvec3<bool> isinf(const detail::tvec3<genType>& x); //!< \brief Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension)
63 template <typename genType> detail::tvec4<bool> isinf(const detail::tvec4<genType>& x); //!< \brief Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension)
6564
66 template <typename genType> bool isinf(genType const & x); //!< \brief Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension)
67 template <typename genType> detail::tvec2<bool> isinf(const detail::tvec2<genType>& x); //!< \brief Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension)
68 template <typename genType> detail::tvec3<bool> isinf(const detail::tvec3<genType>& x); //!< \brief Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension)
69 template <typename genType> detail::tvec4<bool> isinf(const detail::tvec4<genType>& x); //!< \brief Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension)
65 template <typename genType> bool isnan(genType const & x); //!< \brief Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension)
66 template <typename genType> detail::tvec2<bool> isnan(const detail::tvec2<genType>& x); //!< \brief Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension)
67 template <typename genType> detail::tvec3<bool> isnan(const detail::tvec3<genType>& x); //!< \brief Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension)
68 template <typename genType> detail::tvec4<bool> isnan(const detail::tvec4<genType>& x); //!< \brief Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension)
7069
71 template <typename genType> bool isnan(genType const & x); //!< \brief Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension)
72 template <typename genType> detail::tvec2<bool> isnan(const detail::tvec2<genType>& x); //!< \brief Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension)
73 template <typename genType> detail::tvec3<bool> isnan(const detail::tvec3<genType>& x); //!< \brief Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension)
74 template <typename genType> detail::tvec4<bool> isnan(const detail::tvec4<genType>& x); //!< \brief Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension)
70 typedef bool bool1; //!< \brief boolean type with 1 component. (From GLM_GTX_compatibility extension)
71 typedef detail::tvec2<bool> bool2; //!< \brief boolean type with 2 components. (From GLM_GTX_compatibility extension)
72 typedef detail::tvec3<bool> bool3; //!< \brief boolean type with 3 components. (From GLM_GTX_compatibility extension)
73 typedef detail::tvec4<bool> bool4; //!< \brief boolean type with 4 components. (From GLM_GTX_compatibility extension)
7574
76 typedef bool bool1; //!< \brief boolean type with 1 component. (From GLM_GTX_compatibility extension)
77 typedef detail::tvec2<bool> bool2; //!< \brief boolean type with 2 components. (From GLM_GTX_compatibility extension)
78 typedef detail::tvec3<bool> bool3; //!< \brief boolean type with 3 components. (From GLM_GTX_compatibility extension)
79 typedef detail::tvec4<bool> bool4; //!< \brief boolean type with 4 components. (From GLM_GTX_compatibility extension)
75 typedef bool bool1x1; //!< \brief boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension)
76 typedef detail::tmat2x2<bool> bool2x2; //!< \brief boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
77 typedef detail::tmat2x3<bool> bool2x3; //!< \brief boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
78 typedef detail::tmat2x4<bool> bool2x4; //!< \brief boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
79 typedef detail::tmat3x2<bool> bool3x2; //!< \brief boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
80 typedef detail::tmat3x3<bool> bool3x3; //!< \brief boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
81 typedef detail::tmat3x4<bool> bool3x4; //!< \brief boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
82 typedef detail::tmat4x2<bool> bool4x2; //!< \brief boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
83 typedef detail::tmat4x3<bool> bool4x3; //!< \brief boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
84 typedef detail::tmat4x4<bool> bool4x4; //!< \brief boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
8085
81 typedef bool bool1x1; //!< \brief boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension)
82 typedef detail::tmat2x2<bool> bool2x2; //!< \brief boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
83 typedef detail::tmat2x3<bool> bool2x3; //!< \brief boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
84 typedef detail::tmat2x4<bool> bool2x4; //!< \brief boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
85 typedef detail::tmat3x2<bool> bool3x2; //!< \brief boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
86 typedef detail::tmat3x3<bool> bool3x3; //!< \brief boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
87 typedef detail::tmat3x4<bool> bool3x4; //!< \brief boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
88 typedef detail::tmat4x2<bool> bool4x2; //!< \brief boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
89 typedef detail::tmat4x3<bool> bool4x3; //!< \brief boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
90 typedef detail::tmat4x4<bool> bool4x4; //!< \brief boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
86 typedef int int1; //!< \brief integer vector with 1 component. (From GLM_GTX_compatibility extension)
87 typedef detail::tvec2<int> int2; //!< \brief integer vector with 2 components. (From GLM_GTX_compatibility extension)
88 typedef detail::tvec3<int> int3; //!< \brief integer vector with 3 components. (From GLM_GTX_compatibility extension)
89 typedef detail::tvec4<int> int4; //!< \brief integer vector with 4 components. (From GLM_GTX_compatibility extension)
9190
92 typedef int int1; //!< \brief integer vector with 1 component. (From GLM_GTX_compatibility extension)
93 typedef detail::tvec2<int> int2; //!< \brief integer vector with 2 components. (From GLM_GTX_compatibility extension)
94 typedef detail::tvec3<int> int3; //!< \brief integer vector with 3 components. (From GLM_GTX_compatibility extension)
95 typedef detail::tvec4<int> int4; //!< \brief integer vector with 4 components. (From GLM_GTX_compatibility extension)
91 typedef int int1x1; //!< \brief integer matrix with 1 component. (From GLM_GTX_compatibility extension)
92 typedef detail::tmat2x2<int> int2x2; //!< \brief integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
93 typedef detail::tmat2x3<int> int2x3; //!< \brief integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
94 typedef detail::tmat2x4<int> int2x4; //!< \brief integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
95 typedef detail::tmat3x2<int> int3x2; //!< \brief integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
96 typedef detail::tmat3x3<int> int3x3; //!< \brief integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
97 typedef detail::tmat3x4<int> int3x4; //!< \brief integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
98 typedef detail::tmat4x2<int> int4x2; //!< \brief integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
99 typedef detail::tmat4x3<int> int4x3; //!< \brief integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
100 typedef detail::tmat4x4<int> int4x4; //!< \brief integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
96101
97 typedef int int1x1; //!< \brief integer matrix with 1 component. (From GLM_GTX_compatibility extension)
98 typedef detail::tmat2x2<int> int2x2; //!< \brief integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
99 typedef detail::tmat2x3<int> int2x3; //!< \brief integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
100 typedef detail::tmat2x4<int> int2x4; //!< \brief integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
101 typedef detail::tmat3x2<int> int3x2; //!< \brief integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
102 typedef detail::tmat3x3<int> int3x3; //!< \brief integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
103 typedef detail::tmat3x4<int> int3x4; //!< \brief integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
104 typedef detail::tmat4x2<int> int4x2; //!< \brief integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
105 typedef detail::tmat4x3<int> int4x3; //!< \brief integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
106 typedef detail::tmat4x4<int> int4x4; //!< \brief integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
102 typedef gtc::half_float::half half1; //!< \brief half-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
103 typedef detail::tvec2<gtc::half_float::half> half2; //!< \brief half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
104 typedef detail::tvec3<gtc::half_float::half> half3; //!< \brief half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
105 typedef detail::tvec4<gtc::half_float::half> half4; //!< \brief half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
107106
108 typedef gtc::half_float::half half1; //!< \brief half-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
109 typedef detail::tvec2<gtc::half_float::half> half2; //!< \brief half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
110 typedef detail::tvec3<gtc::half_float::half> half3; //!< \brief half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
111 typedef detail::tvec4<gtc::half_float::half> half4; //!< \brief half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
107 typedef gtc::half_float::half half1x1; //!< \brief half-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
108 typedef detail::tmat2x2<gtc::half_float::half> half2x2; //!< \brief half-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
109 typedef detail::tmat2x3<gtc::half_float::half> half2x3; //!< \brief half-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
110 typedef detail::tmat2x4<gtc::half_float::half> half2x4; //!< \brief half-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
111 typedef detail::tmat3x2<gtc::half_float::half> half3x2; //!< \brief half-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
112 typedef detail::tmat3x3<gtc::half_float::half> half3x3; //!< \brief half-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
113 typedef detail::tmat3x4<gtc::half_float::half> half3x4; //!< \brief half-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
114 typedef detail::tmat4x2<gtc::half_float::half> half4x2; //!< \brief half-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
115 typedef detail::tmat4x3<gtc::half_float::half> half4x3; //!< \brief half-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
116 typedef detail::tmat4x4<gtc::half_float::half> half4x4; //!< \brief half-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
112117
113 typedef gtc::half_float::half half1x1; //!< \brief half-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
114 typedef detail::tmat2x2<gtc::half_float::half> half2x2; //!< \brief half-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
115 typedef detail::tmat2x3<gtc::half_float::half> half2x3; //!< \brief half-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
116 typedef detail::tmat2x4<gtc::half_float::half> half2x4; //!< \brief half-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
117 typedef detail::tmat3x2<gtc::half_float::half> half3x2; //!< \brief half-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
118 typedef detail::tmat3x3<gtc::half_float::half> half3x3; //!< \brief half-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
119 typedef detail::tmat3x4<gtc::half_float::half> half3x4; //!< \brief half-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
120 typedef detail::tmat4x2<gtc::half_float::half> half4x2; //!< \brief half-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
121 typedef detail::tmat4x3<gtc::half_float::half> half4x3; //!< \brief half-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
122 typedef detail::tmat4x4<gtc::half_float::half> half4x4; //!< \brief half-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
118 typedef float float1; //!< \brief single-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
119 typedef detail::tvec2<float> float2; //!< \brief single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
120 typedef detail::tvec3<float> float3; //!< \brief single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
121 typedef detail::tvec4<float> float4; //!< \brief single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
123122
124 typedef float float1; //!< \brief single-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
125 typedef detail::tvec2<float> float2; //!< \brief single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
126 typedef detail::tvec3<float> float3; //!< \brief single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
127 typedef detail::tvec4<float> float4; //!< \brief single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
123 typedef float float1x1; //!< \brief single-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
124 typedef detail::tmat2x2<float> float2x2; //!< \brief single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
125 typedef detail::tmat2x3<float> float2x3; //!< \brief single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
126 typedef detail::tmat2x4<float> float2x4; //!< \brief single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
127 typedef detail::tmat3x2<float> float3x2; //!< \brief single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
128 typedef detail::tmat3x3<float> float3x3; //!< \brief single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
129 typedef detail::tmat3x4<float> float3x4; //!< \brief single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
130 typedef detail::tmat4x2<float> float4x2; //!< \brief single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
131 typedef detail::tmat4x3<float> float4x3; //!< \brief single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
132 typedef detail::tmat4x4<float> float4x4; //!< \brief single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
128133
129 typedef float float1x1; //!< \brief single-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
130 typedef detail::tmat2x2<float> float2x2; //!< \brief single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
131 typedef detail::tmat2x3<float> float2x3; //!< \brief single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
132 typedef detail::tmat2x4<float> float2x4; //!< \brief single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
133 typedef detail::tmat3x2<float> float3x2; //!< \brief single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
134 typedef detail::tmat3x3<float> float3x3; //!< \brief single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
135 typedef detail::tmat3x4<float> float3x4; //!< \brief single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
136 typedef detail::tmat4x2<float> float4x2; //!< \brief single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
137 typedef detail::tmat4x3<float> float4x3; //!< \brief single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
138 typedef detail::tmat4x4<float> float4x4; //!< \brief single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
134 typedef double double1; //!< \brief double-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
135 typedef detail::tvec2<double> double2; //!< \brief double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
136 typedef detail::tvec3<double> double3; //!< \brief double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
137 typedef detail::tvec4<double> double4; //!< \brief double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
139138
140 typedef double double1; //!< \brief double-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
141 typedef detail::tvec2<double> double2; //!< \brief double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
142 typedef detail::tvec3<double> double3; //!< \brief double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
143 typedef detail::tvec4<double> double4; //!< \brief double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
139 typedef double double1x1; //!< \brief double-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
140 typedef detail::tmat2x2<double> double2x2; //!< \brief double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
141 typedef detail::tmat2x3<double> double2x3; //!< \brief double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
142 typedef detail::tmat2x4<double> double2x4; //!< \brief double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
143 typedef detail::tmat3x2<double> double3x2; //!< \brief double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
144 typedef detail::tmat3x3<double> double3x3; //!< \brief double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
145 typedef detail::tmat3x4<double> double3x4; //!< \brief double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
146 typedef detail::tmat4x2<double> double4x2; //!< \brief double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
147 typedef detail::tmat4x3<double> double4x3; //!< \brief double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
148 typedef detail::tmat4x4<double> double4x4; //!< \brief double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
144149
145 typedef double double1x1; //!< \brief double-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
146 typedef detail::tmat2x2<double> double2x2; //!< \brief double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
147 typedef detail::tmat2x3<double> double2x3; //!< \brief double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
148 typedef detail::tmat2x4<double> double2x4; //!< \brief double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
149 typedef detail::tmat3x2<double> double3x2; //!< \brief double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
150 typedef detail::tmat3x3<double> double3x3; //!< \brief double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
151 typedef detail::tmat3x4<double> double3x4; //!< \brief double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
152 typedef detail::tmat4x2<double> double4x2; //!< \brief double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
153 typedef detail::tmat4x3<double> double4x3; //!< \brief double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
154 typedef detail::tmat4x4<double> double4x4; //!< \brief double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
155
156 ///@}
157
158 }//namespace compatibility
159 }//namespace gtx
150 /// @}
151 }//namespace compatibility
152 }//namespace gtx
160153 }//namespace glm
161154
162155 #include "compatibility.inl"
1919 # pragma message("GLM: GLM_GTX_component_wise extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace component_wise ///< GLM_GTX_component_wise extension: Operations between components of a type
2325 {
24 namespace test{
25 void main_gtx_component_wise();
26 }//namespace test
26 /// \addtogroup gtx_component_wise
27 /// @{
2728
28 namespace gtx{
29 //! GLM_GTX_component_wise extension: Operations between components of a type
30 namespace component_wise
31 {
32 /// \addtogroup gtx_component_wise
33 ///@{
29 //! Add all vector components together.
30 //! From GLM_GTX_component_wise extension.
31 template <typename genType>
32 typename genType::value_type compAdd(
33 genType const & v);
3434
35 //! Add all vector components together.
36 //! From GLM_GTX_component_wise extension.
37 template <typename genType>
38 typename genType::value_type compAdd(
39 genType const & v);
35 //! Multiply all vector components together.
36 //! From GLM_GTX_component_wise extension.
37 template <typename genType>
38 typename genType::value_type compMul(
39 genType const & v);
4040
41 //! Multiply all vector components together.
42 //! From GLM_GTX_component_wise extension.
43 template <typename genType>
44 typename genType::value_type compMul(
45 genType const & v);
41 //! Find the minimum value between single vector components.
42 //! From GLM_GTX_component_wise extension.
43 template <typename genType>
44 typename genType::value_type compMin(
45 genType const & v);
4646
47 //! Find the minimum value between single vector components.
48 //! From GLM_GTX_component_wise extension.
49 template <typename genType>
50 typename genType::value_type compMin(
51 genType const & v);
47 //! Find the maximum value between single vector components.
48 //! From GLM_GTX_component_wise extension.
49 template <typename genType>
50 typename genType::value_type compMax(
51 genType const & v);
5252
53 //! Find the maximum value between single vector components.
54 //! From GLM_GTX_component_wise extension.
55 template <typename genType>
56 typename genType::value_type compMax(
57 genType const & v);
58
59 ///@}
60
61 }//namespace component_wise
62 }//namespace gtx
53 /// @}
54 }//namespace component_wise
55 }//namespace gtx
6356 }//namespace glm
6457
6558 #include "component_wise.inl"
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
88 // Dependency:
99 // - GLM core
10 // - GLM_GTX_half
10 // - GLM_GTC_half_float
11 // - GLM_GTC_quaternion
1112 ///////////////////////////////////////////////////////////////////////////////////////////////////
1213
1314 #ifndef glm_gtx_epsilon
1617 // Dependency:
1718 #include "../glm.hpp"
1819 #include "../gtc/half_float.hpp"
20 #include "../gtc/quaternion.hpp"
1921
2022 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
2123 # pragma message("GLM: GLM_GTX_epsilon extension included")
2224 #endif
2325
24 namespace glm
26 namespace glm{
27 namespace gtx{
28 namespace epsilon ///< GLM_GTX_epsilon extension: Comparison functions for a user defined epsilon values.
2529 {
26 namespace test{
27 void main_gtx_epsilon();
28 }//namespace test
30 /// \addtogroup gtx_epsilon
31 ///@{
2932
30 namespace gtx{
31 //! GLM_GTX_epsilon extension: Comparison functions for a user defined epsilon values.
32 namespace epsilon
33 {
34 /// \addtogroup gtx_epsilon
35 ///@{
33 //! Returns the component-wise compare of |x - y| < epsilon.
34 //! From GLM_GTX_epsilon extension.
35 template <typename genTypeT, typename genTypeU>
36 bool equalEpsilon(
37 genTypeT const & x,
38 genTypeT const & y,
39 genTypeU const & epsilon);
40
41 //! Returns the component-wise compare of |x - y| >= epsilon.
42 //! From GLM_GTX_epsilon extension.
43 template <typename genTypeT, typename genTypeU>
44 bool notEqualEpsilon(
45 genTypeT const & x,
46 genTypeT const & y,
47 genTypeU const & epsilon);
3648
37 //! Returns the component-wise compare of |x - y| < epsilon.
38 //! From GLM_GTX_epsilon extension.
39 template <typename genTypeT, typename genTypeU>
40 bool equalEpsilon(
41 genTypeT const & x,
42 genTypeT const & y,
43 genTypeU const & epsilon);
44
45 //! Returns the component-wise compare of |x - y| >= epsilon.
46 //! From GLM_GTX_epsilon extension.
47 template <typename genTypeT, typename genTypeU>
48 bool notEqualEpsilon(
49 genTypeT const & x,
50 genTypeT const & y,
51 genTypeU const & epsilon);
52
53 ///@}
54
55 }//namespace epsilon
56 }//namespace gtx
49 ///@}
50 }//namespace epsilon
51 }//namespace gtx
5752 }//namespace glm
5853
5954 #include "epsilon.inl"
157157 }
158158
159159 template <typename valType>
160 GLM_FUNC_QUALIFIER detail::tvec4<bool> equalEpsilon
161 (
162 detail::tquat<valType> const & x,
163 detail::tquat<valType> const & y,
164 detail::tquat<valType> const & epsilon
165 )
166 {
167 return detail::tvec4<bool>(
168 abs(x.x - y.x) < epsilon.x,
169 abs(x.y - y.y) < epsilon.y,
170 abs(x.z - y.z) < epsilon.z,
171 abs(x.w - y.w) < epsilon.w);
172 }
173
174 template <typename valType>
160175 GLM_FUNC_QUALIFIER detail::tvec2<bool> notEqualEpsilon
161176 (
162177 detail::tvec2<valType> const & x,
198213 abs(x.w - y.w) >= epsilon.w);
199214 }
200215
216 template <typename valType>
217 GLM_FUNC_QUALIFIER detail::tvec4<bool> notEqualEpsilon
218 (
219 detail::tquat<valType> const & x,
220 detail::tquat<valType> const & y,
221 detail::tquat<valType> const & epsilon
222 )
223 {
224 return detail::tvec4<bool>(
225 abs(x.x - y.x) >= epsilon.x,
226 abs(x.y - y.y) >= epsilon.y,
227 abs(x.z - y.z) >= epsilon.z,
228 abs(x.w - y.w) >= epsilon.w);
229 }
230
201231 }//namespace epsilon
202232 }//namespace gtx
203233 }//namespace glm
2525 # pragma message("GLM: GLM_GTX_euler_angles extension included")
2626 #endif
2727
28 namespace glm
28 namespace glm{
29 namespace gtx{
30 namespace euler_angles ///< GLM_GTX_euler_angles extension: Build matrices from Euler angles.
2931 {
30 namespace gtx{
31 //! GLM_GTX_euler_angles extension: Build matrices from Euler angles.
32 namespace euler_angles
33 {
34 /// \addtogroup gtx_euler_angles
35 ///@{
32 /// \addtogroup gtx_euler_angles
33 /// @{
3634
37 //! Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.
38 //! From GLM_GTX_euler_angles extension.
39 template <typename valType>
40 detail::tmat4x4<valType> eulerAngleX(
41 valType const & angleX);
35 //! Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.
36 //! From GLM_GTX_euler_angles extension.
37 template <typename valType>
38 detail::tmat4x4<valType> eulerAngleX(
39 valType const & angleX);
4240
43 //! Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.
44 //! From GLM_GTX_euler_angles extension.
45 template <typename valType>
46 detail::tmat4x4<valType> eulerAngleY(
47 valType const & angleY);
41 //! Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.
42 //! From GLM_GTX_euler_angles extension.
43 template <typename valType>
44 detail::tmat4x4<valType> eulerAngleY(
45 valType const & angleY);
4846
49 //! Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.
50 //! From GLM_GTX_euler_angles extension.
51 template <typename valType>
52 detail::tmat4x4<valType> eulerAngleZ(
53 valType const & angleZ);
47 //! Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.
48 //! From GLM_GTX_euler_angles extension.
49 template <typename valType>
50 detail::tmat4x4<valType> eulerAngleZ(
51 valType const & angleZ);
5452
55 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).
56 //! From GLM_GTX_euler_angles extension.
57 template <typename valType>
58 detail::tmat4x4<valType> eulerAngleXY(
59 valType const & angleX,
60 valType const & angleY);
53 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).
54 //! From GLM_GTX_euler_angles extension.
55 template <typename valType>
56 detail::tmat4x4<valType> eulerAngleXY(
57 valType const & angleX,
58 valType const & angleY);
6159
62 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).
63 //! From GLM_GTX_euler_angles extension.
64 template <typename valType>
65 detail::tmat4x4<valType> eulerAngleYX(
66 valType const & angleY,
67 valType const & angleX);
60 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).
61 //! From GLM_GTX_euler_angles extension.
62 template <typename valType>
63 detail::tmat4x4<valType> eulerAngleYX(
64 valType const & angleY,
65 valType const & angleX);
6866
69 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).
70 //! From GLM_GTX_euler_angles extension.
71 template <typename valType>
72 detail::tmat4x4<valType> eulerAngleXZ(
73 valType const & angleX,
74 valType const & angleZ);
67 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).
68 //! From GLM_GTX_euler_angles extension.
69 template <typename valType>
70 detail::tmat4x4<valType> eulerAngleXZ(
71 valType const & angleX,
72 valType const & angleZ);
7573
76 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).
77 //! From GLM_GTX_euler_angles extension.
78 template <typename valType>
79 detail::tmat4x4<valType> eulerAngleZX(
80 valType const & angleZ,
81 valType const & angleX);
74 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).
75 //! From GLM_GTX_euler_angles extension.
76 template <typename valType>
77 detail::tmat4x4<valType> eulerAngleZX(
78 valType const & angleZ,
79 valType const & angleX);
8280
83 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).
84 //! From GLM_GTX_euler_angles extension.
85 template <typename valType>
86 detail::tmat4x4<valType> eulerAngleYZ(
87 valType const & angleY,
88 valType const & angleZ);
81 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).
82 //! From GLM_GTX_euler_angles extension.
83 template <typename valType>
84 detail::tmat4x4<valType> eulerAngleYZ(
85 valType const & angleY,
86 valType const & angleZ);
8987
90 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).
91 //! From GLM_GTX_euler_angles extension.
92 template <typename valType>
93 detail::tmat4x4<valType> eulerAngleZY(
94 valType const & angleZ,
95 valType const & angleY);
88 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).
89 //! From GLM_GTX_euler_angles extension.
90 template <typename valType>
91 detail::tmat4x4<valType> eulerAngleZY(
92 valType const & angleZ,
93 valType const & angleY);
9694
97 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
98 //! From GLM_GTX_euler_angles extension.
99 template <typename valType>
100 detail::tmat4x4<valType> eulerAngleYXZ(
101 valType const & yaw,
102 valType const & pitch,
103 valType const & roll);
95 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
96 //! From GLM_GTX_euler_angles extension.
97 template <typename valType>
98 detail::tmat4x4<valType> eulerAngleYXZ(
99 valType const & yaw,
100 valType const & pitch,
101 valType const & roll);
104102
105 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
106 //! From GLM_GTX_euler_angles extension.
107 template <typename valType>
108 detail::tmat4x4<valType> yawPitchRoll(
109 valType const & yaw,
110 valType const & pitch,
111 valType const & roll);
103 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
104 //! From GLM_GTX_euler_angles extension.
105 template <typename valType>
106 detail::tmat4x4<valType> yawPitchRoll(
107 valType const & yaw,
108 valType const & pitch,
109 valType const & roll);
112110
113 //! Creates a 2D 2 * 2 rotation matrix from an euler angle.
114 //! From GLM_GTX_euler_angles extension.
115 template <typename T>
116 detail::tmat2x2<T> orientate2(T const & angle);
111 //! Creates a 2D 2 * 2 rotation matrix from an euler angle.
112 //! From GLM_GTX_euler_angles extension.
113 template <typename T>
114 detail::tmat2x2<T> orientate2(T const & angle);
117115
118 //! Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.
119 //! From GLM_GTX_euler_angles extension.
120 template <typename T>
121 detail::tmat3x3<T> orientate3(T const & angle);
116 //! Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.
117 //! From GLM_GTX_euler_angles extension.
118 template <typename T>
119 detail::tmat3x3<T> orientate3(T const & angle);
122120
123 //! Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z).
124 //! From GLM_GTX_euler_angles extension.
125 template <typename T>
126 detail::tmat3x3<T> orientate3(detail::tvec3<T> const & angles);
121 //! Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z).
122 //! From GLM_GTX_euler_angles extension.
123 template <typename T>
124 detail::tmat3x3<T> orientate3(detail::tvec3<T> const & angles);
127125
128 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
129 //! From GLM_GTX_euler_angles extension.
130 template <typename T>
131 detail::tmat4x4<T> orientate4(detail::tvec3<T> const & angles);
126 //! Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
127 //! From GLM_GTX_euler_angles extension.
128 template <typename T>
129 detail::tmat4x4<T> orientate4(detail::tvec3<T> const & angles);
132130
133 ///@}
134 }//namespace euler_angles
135 }//namespace gtx
131 /// @}
132 }//namespace euler_angles
133 }//namespace gtx
136134 }//namespace glm
137135
138136 #include "euler_angles.inl"
1919 # pragma message("GLM: GLM_GTX_extend extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace extend ///< GLM_GTX_extend extension: Extend a position from a source to a position at a defined length.
2325 {
24 namespace test{
25 void main_gtx_extend();
26 }//namespace test
26 /// \addtogroup gtx_extend
27 /// @{
2728
28 namespace gtx{
29 //! GLM_GTX_extend extension: Extend a position from a source to a position at a defined length.
30 namespace extend
31 {
32 /// \addtogroup gtx_extend
33 ///@{
29 //! Extends of Length the Origin position using the (Source - Origin) direction.
30 //! From GLM_GTX_extend extension.
31 template <typename genType>
32 genType extend(
33 genType const & Origin,
34 genType const & Source,
35 typename genType::value_type const Length);
3436
35 //! Extends of Length the Origin position using the (Source - Origin) direction.
36 //! From GLM_GTX_extend extension.
37 template <typename genType>
38 genType extend(
39 genType const & Origin,
40 genType const & Source,
41 typename genType::value_type const Length);
42
43 ///@}
44
45 }//namespace extend
46 }//namespace gtx
37 /// @}
38 }//namespace extend
39 }//namespace gtx
4740 }//namespace glm
4841
4942 #include "extend.inl"
2121 # pragma message("GLM: GLM_GTX_extented_min_max extension included")
2222 #endif
2323
24 namespace glm
24 namespace glm{
25 namespace gtx{
26 namespace extented_min_max ///< GLM_GTX_extented_min_max extension: Min and max functions for 3 to 4 parameters.
2527 {
26 namespace test{
27 void main_ext_gtx_extented_min_max();
28 }//namespace test
28 /// \addtogroup gtx_extented_min_max
29 ///@{
2930
30 namespace gtx{
31 //! GLM_GTX_extented_min_max extension: Min and max functions for 3 to 4 parameters.
32 namespace extented_min_max
33 {
34 /// \addtogroup gtx_extented_min_max
35 ///@{
31 //< Return the minimum component-wise values of 3 inputs
32 //< From GLM_GTX_extented_min_max extension
33 template <typename T>
34 T min(
35 T const & x,
36 T const & y,
37 T const & z);
3638
37 //< Return the minimum component-wise values of 3 inputs
38 //< From GLM_GTX_extented_min_max extension
39 template <typename T>
40 T min(
41 T const & x,
42 T const & y,
43 T const & z);
39 //< Return the minimum component-wise values of 3 inputs
40 //< From GLM_GTX_extented_min_max extension
41 template
42 <
43 typename T,
44 template <typename> class C
45 >
46 C<T> min(
47 C<T> const & x,
48 typename C<T>::value_type const & y,
49 typename C<T>::value_type const & z);
4450
45 //< Return the minimum component-wise values of 3 inputs
46 //< From GLM_GTX_extented_min_max extension
47 template
48 <
49 typename T,
50 template <typename> class C
51 >
52 C<T> min(
53 C<T> const & x,
54 typename C<T>::value_type const & y,
55 typename C<T>::value_type const & z);
51 //< Return the minimum component-wise values of 3 inputs
52 //< From GLM_GTX_extented_min_max extension
53 template
54 <
55 typename T,
56 template <typename> class C
57 >
58 C<T> min(
59 C<T> const & x,
60 C<T> const & y,
61 C<T> const & z);
5662
57 //< Return the minimum component-wise values of 3 inputs
58 //< From GLM_GTX_extented_min_max extension
59 template
60 <
61 typename T,
62 template <typename> class C
63 >
64 C<T> min(
65 C<T> const & x,
66 C<T> const & y,
67 C<T> const & z);
63 //< Return the minimum component-wise values of 4 inputs
64 //< From GLM_GTX_extented_min_max extension
65 template <typename T>
66 T min(
67 T const & x,
68 T const & y,
69 T const & z,
70 T const & w);
6871
69 //< Return the minimum component-wise values of 4 inputs
70 //< From GLM_GTX_extented_min_max extension
71 template <typename T>
72 T min(
73 T const & x,
74 T const & y,
75 T const & z,
76 T const & w);
72 //< Return the minimum component-wise values of 4 inputs
73 //< From GLM_GTX_extented_min_max extension
74 template
75 <
76 typename T,
77 template <typename> class C
78 >
79 C<T> min(
80 C<T> const & x,
81 typename C<T>::value_type const & y,
82 typename C<T>::value_type const & z,
83 typename C<T>::value_type const & w);
7784
78 //< Return the minimum component-wise values of 4 inputs
79 //< From GLM_GTX_extented_min_max extension
80 template
81 <
82 typename T,
83 template <typename> class C
84 >
85 C<T> min(
86 C<T> const & x,
87 typename C<T>::value_type const & y,
88 typename C<T>::value_type const & z,
89 typename C<T>::value_type const & w);
85 //< Return the minimum component-wise values of 4 inputs
86 //< From GLM_GTX_extented_min_max extension
87 template
88 <
89 typename T,
90 template <typename> class C
91 >
92 C<T> min(
93 C<T> const & x,
94 C<T> const & y,
95 C<T> const & z,
96 C<T> const & w);
9097
91 //< Return the minimum component-wise values of 4 inputs
92 //< From GLM_GTX_extented_min_max extension
93 template
94 <
95 typename T,
96 template <typename> class C
97 >
98 C<T> min(
99 C<T> const & x,
100 C<T> const & y,
101 C<T> const & z,
102 C<T> const & w);
98 //< Return the maximum component-wise values of 3 inputs
99 //< From GLM_GTX_extented_min_max extension
100 template <typename T>
101 T max(
102 T const & x,
103 T const & y,
104 T const & z);
103105
104 //< Return the maximum component-wise values of 3 inputs
105 //< From GLM_GTX_extented_min_max extension
106 template <typename T>
107 T max(
108 T const & x,
109 T const & y,
110 T const & z);
106 //< Return the maximum component-wise values of 3 inputs
107 //< From GLM_GTX_extented_min_max extension
108 template
109 <
110 typename T,
111 template <typename> class C
112 >
113 C<T> max(
114 C<T> const & x,
115 typename C<T>::value_type const & y,
116 typename C<T>::value_type const & z);
111117
112 //< Return the maximum component-wise values of 3 inputs
113 //< From GLM_GTX_extented_min_max extension
114 template
115 <
116 typename T,
117 template <typename> class C
118 >
119 C<T> max(
120 C<T> const & x,
121 typename C<T>::value_type const & y,
122 typename C<T>::value_type const & z);
118 //< Return the maximum component-wise values of 3 inputs
119 //< From GLM_GTX_extented_min_max extension
120 template
121 <
122 typename T,
123 template <typename> class C
124 >
125 C<T> max(
126 C<T> const & x,
127 C<T> const & y,
128 C<T> const & z);
123129
124 //< Return the maximum component-wise values of 3 inputs
125 //< From GLM_GTX_extented_min_max extension
126 template
127 <
128 typename T,
129 template <typename> class C
130 >
131 C<T> max(
132 C<T> const & x,
133 C<T> const & y,
134 C<T> const & z);
130 //< Return the maximum component-wise values of 4 inputs
131 //< From GLM_GTX_extented_min_max extension
132 template <typename T>
133 T max(
134 T const & x,
135 T const & y,
136 T const & z,
137 T const & w);
135138
136 //< Return the maximum component-wise values of 4 inputs
137 //< From GLM_GTX_extented_min_max extension
138 template <typename T>
139 T max(
140 T const & x,
141 T const & y,
142 T const & z,
143 T const & w);
139 //< Return the maximum component-wise values of 4 inputs
140 //< From GLM_GTX_extented_min_max extension
141 template
142 <
143 typename T,
144 template <typename> class C
145 >
146 C<T> max(
147 C<T> const & x,
148 typename C<T>::value_type const & y,
149 typename C<T>::value_type const & z,
150 typename C<T>::value_type const & w);
144151
145 //< Return the maximum component-wise values of 4 inputs
146 //< From GLM_GTX_extented_min_max extension
147 template
148 <
149 typename T,
150 template <typename> class C
151 >
152 C<T> max(
153 C<T> const & x,
154 typename C<T>::value_type const & y,
155 typename C<T>::value_type const & z,
156 typename C<T>::value_type const & w);
152 //< Return the maximum component-wise values of 4 inputs
153 //< From GLM_GTX_extented_min_max extension
154 template
155 <
156 typename T,
157 template <typename> class C
158 >
159 C<T> max(
160 C<T> const & x,
161 C<T> const & y,
162 C<T> const & z,
163 C<T> const & w);
157164
158 //< Return the maximum component-wise values of 4 inputs
159 //< From GLM_GTX_extented_min_max extension
160 template
161 <
162 typename T,
163 template <typename> class C
164 >
165 C<T> max(
166 C<T> const & x,
167 C<T> const & y,
168 C<T> const & z,
169 C<T> const & w);
170
171 ///@}
172
173 }//namespace extented_min_max
174 }//namespace gtx
165 /// @}
166 }//namespace extented_min_max
167 }//namespace gtx
175168 }//namespace glm
176169
177170 #include "extented_min_max.inl"
2121 # pragma message("GLM: GLM_GTX_fast_exponential extension included")
2222 #endif
2323
24 namespace glm
24 namespace glm{
25 namespace gtx{
26 namespace fast_exponential ///< GLM_GTX_fast_exponential extension: Fast but less accurate implementations of exponential based functions.
2527 {
26 namespace test{
27 void main_gtx_fast_exponential();
28 }//namespace test
28 using namespace gtc::half_float;
29 /// \addtogroup gtx_fast_exponential
30 /// @{
2931
30 namespace gtx{
31 //! GLM_GTX_fast_exponential extension: Fast but less accurate implementations of exponential based functions.
32 namespace fast_exponential
33 {
34 using namespace gtc::half_float;
35 /// \addtogroup gtx_fast_exponential
36 ///@{
32 //! Faster than the common pow function but less accurate.
33 //! From GLM_GTX_fast_exponential extension.
34 template <typename valType>
35 valType fastPow(
36 valType const & x,
37 valType const & y);
3738
38 //! Faster than the common pow function but less accurate.
39 //! From GLM_GTX_fast_exponential extension.
40 template <typename valType>
41 valType fastPow(
42 valType const & x,
43 valType const & y);
39 //! Faster than the common pow function but less accurate.
40 //! From GLM_GTX_fast_exponential extension.
41 template <typename T, typename U>
42 T fastPow(
43 const T& x,
44 const U& y);
45
46 //! Faster than the common exp function but less accurate.
47 //! From GLM_GTX_fast_exponential extension.
48 template <typename T>
49 T fastExp(const T& x);
50
51 //! Faster than the common log function but less accurate.
52 //! From GLM_GTX_fast_exponential extension.
53 template <typename T>
54 T fastLog(const T& x);
4455
45 //! Faster than the common pow function but less accurate.
46 //! From GLM_GTX_fast_exponential extension.
47 template <typename T, typename U>
48 T fastPow(
49 const T& x,
50 const U& y);
56 //! Faster than the common exp2 function but less accurate.
57 //! From GLM_GTX_fast_exponential extension.
58 template <typename T>
59 T fastExp2(const T& x);
5160
52 //! Faster than the common exp function but less accurate.
53 //! From GLM_GTX_fast_exponential extension.
54 template <typename T>
55 T fastExp(const T& x);
56
57 //! Faster than the common log function but less accurate.
58 //! From GLM_GTX_fast_exponential extension.
59 template <typename T>
60 T fastLog(const T& x);
61 //! Faster than the common log2 function but less accurate.
62 //! From GLM_GTX_fast_exponential extension.
63 template <typename T>
64 T fastLog2(const T& x);
6165
62 //! Faster than the common exp2 function but less accurate.
63 //! From GLM_GTX_fast_exponential extension.
64 template <typename T>
65 T fastExp2(const T& x);
66
67 //! Faster than the common log2 function but less accurate.
68 //! From GLM_GTX_fast_exponential extension.
69 template <typename T>
70 T fastLog2(const T& x);
66 //! Faster than the common ln function but less accurate.
67 //! From GLM_GTX_fast_exponential extension.
68 template <typename T>
69 T fastLn(const T& x);
7170
72 //! Faster than the common ln function but less accurate.
73 //! From GLM_GTX_fast_exponential extension.
74 template <typename T>
75 T fastLn(const T& x);
76
77 ///@}
78
79 }//namespace fast_exponential
80 }//namespace gtx
71 /// @}
72 }//namespace fast_exponential
73 }//namespace gtx
8174 }//namespace glm
8275
8376 #include "fast_exponential.inl"
2323 # pragma message("GLM: GLM_GTX_fast_square_root extension included")
2424 #endif
2525
26 namespace glm
26 namespace glm{
27 namespace gtx{
28 namespace fast_square_root ///< GLM_GTX_fast_square_root extension: Fast but less accurate implementations of square root based functions.
2729 {
28 namespace test{
29 void main_gtx_fast_square_root();
30 }//namespace test
30 /// \addtogroup gtx_fast_square_root
31 /// @{
3132
32 namespace gtx{
33 //! GLM_GTX_fast_square_root extension: Fast but less accurate implementations of square root based functions.
34 namespace fast_square_root
35 {
36 /// \addtogroup gtx_fast_square_root
37 ///@{
33 //! Faster than the common sqrt function but less accurate.
34 //! From GLM_GTX_fast_square_root extension.
35 template <typename genType>
36 genType fastSqrt(genType const & x);
3837
39 //! Faster than the common sqrt function but less accurate.
40 //! From GLM_GTX_fast_square_root extension.
41 template <typename genType>
42 genType fastSqrt(genType const & x);
38 //! Faster than the common inversesqrt function but less accurate.
39 //! From GLM_GTX_fast_square_root extension.
40 template <typename genType>
41 genType fastInverseSqrt(genType const & x);
42
43 //! Faster than the common length function but less accurate.
44 //! From GLM_GTX_fast_square_root extension.
45 template <typename genType>
46 typename genType::value_type fastLength(genType const & x);
4347
44 //! Faster than the common inversesqrt function but less accurate.
45 //! From GLM_GTX_fast_square_root extension.
46 template <typename genType>
47 genType fastInverseSqrt(genType const & x);
48
49 //! Faster than the common length function but less accurate.
50 //! From GLM_GTX_fast_square_root extension.
51 template <typename genType>
52 typename genType::value_type fastLength(genType const & x);
48 //! Faster than the common distance function but less accurate.
49 //! From GLM_GTX_fast_square_root extension.
50 template <typename genType>
51 typename genType::value_type fastDistance(genType const & x, genType const & y);
5352
54 //! Faster than the common distance function but less accurate.
55 //! From GLM_GTX_fast_square_root extension.
56 template <typename genType>
57 typename genType::value_type fastDistance(genType const & x, genType const & y);
53 //! Faster than the common normalize function but less accurate.
54 //! From GLM_GTX_fast_square_root extension.
55 template <typename genType>
56 genType fastNormalize(genType const & x);
5857
59 //! Faster than the common normalize function but less accurate.
60 //! From GLM_GTX_fast_square_root extension.
61 template <typename genType>
62 genType fastNormalize(genType const & x);
63
64 ///@}
65
66 }//namespace fast_square_root
67 }// namespace gtx
68 }//namespace glm
58 /// @}
59 }// namespace fast_square_root
60 }// namespace gtx
61 }// namespace glm
6962
7063 #include "fast_square_root.inl"
7164
1919 # pragma message("GLM: GLM_GTX_fast_trigonometry extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace fast_trigonometry ///< GLM_GTX_fast_trigonometry extension: Fast but less accurate implementations of trigonometric functions.
2325 {
24 namespace test{
25 void main_gtx_fast_trigonometry();
26 }//namespace test
26 /// \addtogroup gtx_fast_trigonometry
27 /// @{
2728
28 namespace gtx{
29 //! GLM_GTX_fast_trigonometry extension: Fast but less accurate implementations of trigonometric functions.
30 namespace fast_trigonometry
31 {
32 /// \addtogroup gtx_fast_trigonometry
33 ///@{
29 //! Faster than the common sin function but less accurate.
30 //! Defined between -2pi and 2pi.
31 //! From GLM_GTX_fast_trigonometry extension.
32 template <typename T>
33 T fastSin(const T& angle);
3434
35 //! Faster than the common sin function but less accurate.
36 //! Defined between -2pi and 2pi.
37 //! From GLM_GTX_fast_trigonometry extension.
38 template <typename T>
39 T fastSin(const T& angle);
35 //! Faster than the common cos function but less accurate.
36 //! Defined between -2pi and 2pi.
37 //! From GLM_GTX_fast_trigonometry extension.
38 template <typename T>
39 T fastCos(const T& angle);
4040
41 //! Faster than the common cos function but less accurate.
42 //! Defined between -2pi and 2pi.
43 //! From GLM_GTX_fast_trigonometry extension.
44 template <typename T>
45 T fastCos(const T& angle);
41 //! Faster than the common tan function but less accurate.
42 //! Defined between -2pi and 2pi.
43 //! From GLM_GTX_fast_trigonometry extension.
44 template <typename T>
45 T fastTan(const T& angle);
4646
47 //! Faster than the common tan function but less accurate.
48 //! Defined between -2pi and 2pi.
49 //! From GLM_GTX_fast_trigonometry extension.
50 template <typename T>
51 T fastTan(const T& angle);
47 //! Faster than the common asin function but less accurate.
48 //! Defined between -2pi and 2pi.
49 //! From GLM_GTX_fast_trigonometry extension.
50 template <typename T>
51 T fastAsin(const T& angle);
5252
53 //! Faster than the common asin function but less accurate.
54 //! Defined between -2pi and 2pi.
55 //! From GLM_GTX_fast_trigonometry extension.
56 template <typename T>
57 T fastAsin(const T& angle);
53 //! Faster than the common acos function but less accurate.
54 //! Defined between -2pi and 2pi.
55 //! From GLM_GTX_fast_trigonometry extension.
56 template <typename T>
57 T fastAcos(const T& angle);
5858
59 //! Faster than the common acos function but less accurate.
60 //! Defined between -2pi and 2pi.
61 //! From GLM_GTX_fast_trigonometry extension.
62 template <typename T>
63 T fastAcos(const T& angle);
59 //! Faster than the common atan function but less accurate.
60 //! Defined between -2pi and 2pi.
61 //! From GLM_GTX_fast_trigonometry extension.
62 template <typename T>
63 T fastAtan(const T& y, const T& x);
6464
65 //! Faster than the common atan function but less accurate.
66 //! Defined between -2pi and 2pi.
67 //! From GLM_GTX_fast_trigonometry extension.
68 template <typename T>
69 T fastAtan(const T& y, const T& x);
65 //! Faster than the common atan function but less accurate.
66 //! Defined between -2pi and 2pi.
67 //! From GLM_GTX_fast_trigonometry extension.
68 template <typename T>
69 T fastAtan(const T& angle);
7070
71 //! Faster than the common atan function but less accurate.
72 //! Defined between -2pi and 2pi.
73 //! From GLM_GTX_fast_trigonometry extension.
74 template <typename T>
75 T fastAtan(const T& angle);
76
77 ///@}
78
79 }//namespace fast_trigonometry
80 }//namespace gtx
71 /// @}
72 }//namespace fast_trigonometry
73 }//namespace gtx
8174 }//namespace glm
8275
8376 #include "fast_trigonometry.inl"
2020 # pragma message("GLM: GLM_GTX_gradient_paint extension included")
2121 #endif
2222
23 namespace glm
23 namespace glm{
24 namespace gtx{
25 namespace gradient_paint ///< GLM_GTX_gradient_paint extension: Compute a radient gradient according section OpenVG 1.1 specifications, 9.3.2 Radial Gradients
2426 {
25 namespace test{
26 void main_gtx_gradient_paint();
27 }//namespace test
27 using namespace gtx::optimum_pow;
2828
29 namespace gtx{
30 //! GLM_GTX_gradient_paint extension: Compute a radient gradient according section OpenVG 1.1 specifications, 9.3.2 Radial Gradients
31 namespace gradient_paint
32 {
33 using namespace gtx::optimum_pow;
29 /// \addtogroup gtx_gradient_paint
30 /// @{
3431
35 template <typename valType>
36 valType radialGradient(
37 glm::detail::tvec2<valType> const & Center,
38 valType const & Radius,
39 glm::detail::tvec2<valType> const & Focal,
40 glm::detail::tvec2<valType> const & Position);
32 template <typename valType>
33 valType radialGradient(
34 glm::detail::tvec2<valType> const & Center,
35 valType const & Radius,
36 glm::detail::tvec2<valType> const & Focal,
37 glm::detail::tvec2<valType> const & Position);
4138
42 template <typename valType>
43 valType linearGradient(
44 glm::detail::tvec2<valType> const & Point0,
45 glm::detail::tvec2<valType> const & Point1,
46 glm::detail::tvec2<valType> const & Position);
39 template <typename valType>
40 valType linearGradient(
41 glm::detail::tvec2<valType> const & Point0,
42 glm::detail::tvec2<valType> const & Point1,
43 glm::detail::tvec2<valType> const & Position);
4744
48 }//namespace gradient_paint
49 }//namespace gtx
50 }//namespace glm
45 /// @}
46 }// namespace gradient_paint
47 }// namespace gtx
48 }// namespace glm
5149
5250 #include "gradient_paint.inl"
5351
1919 # pragma message("GLM: GLM_GTX_handed_coordinate_space extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace handed_coordinate_space ///< GLM_GTX_handed_coordinate_space extension: To know if a set of three basis vectors defines a right or left-handed coordinate system.
2325 {
24 namespace gtx{
25 //! GLM_GTX_handed_coordinate_space extension: To know if a set of three basis vectors defines a right or left-handed coordinate system.
26 namespace handed_coordinate_space
27 {
28 /// \addtogroup gtx_handed_coordinate_space
29 ///@{
26 /// \addtogroup gtx_handed_coordinate_space
27 /// @{
3028
31 //! Return if a trihedron right handed or not.
32 //! From GLM_GTX_handed_coordinate_space extension.
33 template <typename T>
34 bool rightHanded(
35 detail::tvec3<T> const & tangent,
36 detail::tvec3<T> const & binormal,
37 detail::tvec3<T> const & normal);
29 //! Return if a trihedron right handed or not.
30 //! From GLM_GTX_handed_coordinate_space extension.
31 template <typename T>
32 bool rightHanded(
33 detail::tvec3<T> const & tangent,
34 detail::tvec3<T> const & binormal,
35 detail::tvec3<T> const & normal);
3836
39 //! Return if a trihedron left handed or not.
40 //! From GLM_GTX_handed_coordinate_space extension.
41 template <typename T>
42 bool leftHanded(
43 detail::tvec3<T> const & tangent,
44 detail::tvec3<T> const & binormal,
45 detail::tvec3<T> const & normal);
37 //! Return if a trihedron left handed or not.
38 //! From GLM_GTX_handed_coordinate_space extension.
39 template <typename T>
40 bool leftHanded(
41 detail::tvec3<T> const & tangent,
42 detail::tvec3<T> const & binormal,
43 detail::tvec3<T> const & normal);
4644
47 ///@}
48
49 }//namespace handed_coordinate_space
50 }//namespace gtx
51 }//namespace glm
45 /// @}
46 }// namespace handed_coordinate_space
47 }// namespace gtx
48 }// namespace glm
5249
5350 #include "handed_coordinate_space.inl"
5451
1919 # pragma message("GLM: GLM_GTX_inertia extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace inertia ///< GLM_GTX_inertia extension: Create inertia matrices
2325 {
24 namespace gtx{
25 //! GLM_GTX_inertia extension: Create inertia matrices
26 namespace inertia
27 {
28 /// \addtogroup gtx_inertia
29 ///@{
26 /// \addtogroup gtx_inertia
27 /// @{
3028
31 //! Build an inertia matrix for a box.
32 //! From GLM_GTX_inertia extension.
33 template <typename T>
34 detail::tmat3x3<T> boxInertia3(
35 const T Mass,
36 const detail::tvec3<T>& Scale);
29 //! Build an inertia matrix for a box.
30 //! From GLM_GTX_inertia extension.
31 template <typename T>
32 detail::tmat3x3<T> boxInertia3(
33 const T Mass,
34 const detail::tvec3<T>& Scale);
3735
38 //! Build an inertia matrix for a box.
39 //! From GLM_GTX_inertia extension.
40 template <typename T>
41 detail::tmat4x4<T> boxInertia4(
42 const T Mass,
43 const detail::tvec3<T>& Scale);
36 //! Build an inertia matrix for a box.
37 //! From GLM_GTX_inertia extension.
38 template <typename T>
39 detail::tmat4x4<T> boxInertia4(
40 const T Mass,
41 const detail::tvec3<T>& Scale);
4442
45 //! Build an inertia matrix for a disk.
46 //! From GLM_GTX_inertia extension.
47 template <typename T>
48 detail::tmat3x3<T> diskInertia3(
49 const T Mass,
50 const T Radius);
43 //! Build an inertia matrix for a disk.
44 //! From GLM_GTX_inertia extension.
45 template <typename T>
46 detail::tmat3x3<T> diskInertia3(
47 const T Mass,
48 const T Radius);
5149
52 //! Build an inertia matrix for a disk.
53 //! From GLM_GTX_inertia extension.
54 template <typename T>
55 detail::tmat4x4<T> diskInertia4(
56 const T Mass,
57 const T Radius);
50 //! Build an inertia matrix for a disk.
51 //! From GLM_GTX_inertia extension.
52 template <typename T>
53 detail::tmat4x4<T> diskInertia4(
54 const T Mass,
55 const T Radius);
5856
59 //! Build an inertia matrix for a ball.
60 //! From GLM_GTX_inertia extension.
61 template <typename T>
62 detail::tmat3x3<T> ballInertia3(
63 const T Mass,
64 const T Radius);
57 //! Build an inertia matrix for a ball.
58 //! From GLM_GTX_inertia extension.
59 template <typename T>
60 detail::tmat3x3<T> ballInertia3(
61 const T Mass,
62 const T Radius);
6563
66 //! Build an inertia matrix for a ball.
67 //! From GLM_GTX_inertia extension.
68 template <typename T>
69 detail::tmat4x4<T> ballInertia4(
70 const T Mass,
71 const T Radius);
64 //! Build an inertia matrix for a ball.
65 //! From GLM_GTX_inertia extension.
66 template <typename T>
67 detail::tmat4x4<T> ballInertia4(
68 const T Mass,
69 const T Radius);
7270
73 //! Build an inertia matrix for a sphere.
74 //! From GLM_GTX_inertia extension.
75 template <typename T>
76 detail::tmat3x3<T> sphereInertia3(
77 const T Mass,
78 const T Radius);
71 //! Build an inertia matrix for a sphere.
72 //! From GLM_GTX_inertia extension.
73 template <typename T>
74 detail::tmat3x3<T> sphereInertia3(
75 const T Mass,
76 const T Radius);
7977
80 //! Build an inertia matrix for a sphere.
81 //! From GLM_GTX_inertia extension.
82 template <typename T>
83 detail::tmat4x4<T> sphereInertia4(
84 const T Mass,
85 const T Radius);
78 //! Build an inertia matrix for a sphere.
79 //! From GLM_GTX_inertia extension.
80 template <typename T>
81 detail::tmat4x4<T> sphereInertia4(
82 const T Mass,
83 const T Radius);
8684
87 ///@}
88
89 }//namespace inertia
90 }//namespace gtx
91 }//namespace glm
85 /// @}
86 }// namespace inertia
87 }// namespace gtx
88 }// namespace glm
9289
9390 #include "inertia.inl"
9491
2020 # pragma message("GLM: GLM_GTX_int_10_10_10_2 extension included")
2121 #endif
2222
23 namespace glm
23 namespace glm{
24 namespace gtx{
25 namespace int_10_10_10_2 ///< GLM_GTX_int_10_10_10_2 extension: Add support for integer for core functions
2426 {
25 namespace gtx{
26 //! GLM_GTX_int_10_10_10_2 extension: Add support for integer for core functions
27 namespace int_10_10_10_2
28 {
29 using namespace gtx::raw_data;
27 using namespace gtx::raw_data;
3028
31 /// \addtogroup gtx_int_10_10_10_2
32 ///@{
29 /// \addtogroup gtx_int_10_10_10_2
30 ///@{
3331
34 //! From GLM_GTX_int_10_10_10_2 extension.
35 //! Cast a vec4 to an u_10_10_10_2.
36 dword uint10_10_10_2_cast(glm::vec4 const & v);
32 //! From GLM_GTX_int_10_10_10_2 extension.
33 //! Cast a vec4 to an u_10_10_10_2.
34 dword uint10_10_10_2_cast(glm::vec4 const & v);
3735
38 ///@}
36 ///@}
3937
40 }//namespace integer
41 }//namespace gtx
38 }//namespace integer
39 }//namespace gtx
4240 }//namespace glm
4341
4442 #include "int_10_10_10_2.inl"
1919 # pragma message("GLM: GLM_GTX_integer extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace integer ///< GLM_GTX_integer extension: Add support for integer for core functions
2325 {
24 namespace gtx{
25 //! GLM_GTX_integer extension: Add support for integer for core functions
26 namespace integer
27 {
28 /// \addtogroup gtx_integer
29 ///@{
26 /// \addtogroup gtx_integer
27 /// @{
3028
31 //! Returns x raised to the y power.
32 //! From GLM_GTX_integer extension.
33 int pow(int x, int y);
29 //! Returns x raised to the y power.
30 //! From GLM_GTX_integer extension.
31 int pow(int x, int y);
3432
35 //! Returns the positive square root of x.
36 //! From GLM_GTX_integer extension.
37 int sqrt(int x);
33 //! Returns the positive square root of x.
34 //! From GLM_GTX_integer extension.
35 int sqrt(int x);
3836
39 //! Modulus. Returns x - y * floor(x / y) for each component in x using the floating point value y.
40 //! From GLM_GTX_integer extension.
41 int mod(int x, int y);
37 //! Modulus. Returns x - y * floor(x / y) for each component in x using the floating point value y.
38 //! From GLM_GTX_integer extension.
39 int mod(int x, int y);
4240
43 //! Return the factorial value of a number (!12 max, integer only)
44 //! From GLM_GTX_integer extension.
45 template <typename genType>
46 genType factorial(genType const & x);
41 //! Return the factorial value of a number (!12 max, integer only)
42 //! From GLM_GTX_integer extension.
43 template <typename genType>
44 genType factorial(genType const & x);
4745
48 ///@}
49
50 }//namespace integer
51 }//namespace gtx
46 /// @}
47 }//namespace integer
48 }//namespace gtx
5249 }//namespace glm
5350
5451 #include "integer.inl"
4848 template <typename genType>
4949 GLM_FUNC_QUALIFIER genType factorial(genType const & x)
5050 {
51 genType Temp = x;
5152 genType Result;
52 for(Result = 1; x > 1; --x)
53 Result *= x;
53 for(Result = 1; Temp > 1; --Temp)
54 Result *= Temp;
5455 return Result;
5556 }
5657
2121 # pragma message("GLM: GLM_GTX_closest_point extension included")
2222 #endif
2323
24 namespace glm
24 namespace glm{
25 namespace gtx{
26 namespace intersect ///< GLM_GTX_intersect extension: Add intersection functions
2527 {
26 namespace test{
27 void main_gtx_intesect();
28 }//namespace test
28 /// \addtogroup gtx_intersect
29 /// @{
2930
30 namespace gtx{
31 //! GLM_GTX_intersect extension: Add intersection functions
32 namespace intersect
33 {
34 /// \addtogroup gtx_intersect
35 ///@{
31 //! Compute the intersection of a ray and a triangle.
32 //! From GLM_GTX_intersect extension.
33 template <typename genType>
34 bool intersectRayTriangle(
35 genType const & orig, genType const & dir,
36 genType const & vert0, genType const & vert1, genType const & vert2,
37 genType & baryPosition);
3638
37 //! Compute the intersection of a ray and a triangle.
38 //! From GLM_GTX_intersect extension.
39 template <typename genType>
40 bool intersectRayTriangle(
41 genType const & orig, genType const & dir,
42 genType const & vert0, genType const & vert1, genType const & vert2,
43 genType & baryPosition);
39 //! Compute the intersection of a line and a triangle.
40 //! From GLM_GTX_intersect extension.
41 template <typename genType>
42 bool intersectLineTriangle(
43 genType const & orig, genType const & dir,
44 genType const & vert0, genType const & vert1, genType const & vert2,
45 genType & position);
4446
45 //! Compute the intersection of a line and a triangle.
46 //! From GLM_GTX_intersect extension.
47 template <typename genType>
48 bool intersectLineTriangle(
49 genType const & orig, genType const & dir,
50 genType const & vert0, genType const & vert1, genType const & vert2,
51 genType & position);
47 //! Compute the intersection of a ray and a sphere.
48 //! From GLM_GTX_intersect extension.
49 template <typename genType>
50 bool intersectRaySphere(
51 genType const & orig, genType const & dir,
52 genType const & center, typename genType::value_type radius,
53 genType & position, genType & normal);
5254
53 //! Compute the intersection of a ray and a sphere.
54 //! From GLM_GTX_intersect extension.
55 template <typename genType>
56 bool intersectRaySphere(
57 genType const & orig, genType const & dir,
58 genType const & center, typename genType::value_type radius,
59 genType & position, genType & normal);
55 //! Compute the intersection of a line and a sphere.
56 //! From GLM_GTX_intersect extension
57 template <typename genType>
58 bool intersectLineSphere(
59 genType const & point0, genType const & point1,
60 genType const & center, typename genType::value_type radius,
61 genType & position, genType & normal);
6062
61 //! Compute the intersection of a line and a sphere.
62 //! From GLM_GTX_intersect extension
63 template <typename genType>
64 bool intersectLineSphere(
65 genType const & point0, genType const & point1,
66 genType const & center, typename genType::value_type radius,
67 genType & position, genType & normal);
68
69 ///@}
70
71 }//namespace intersect
63 /// @}
64 }//namespace intersect
7265 }//namespace gtx
7366 }//namespace glm
7467
1919 # pragma message("GLM: GLM_GTX_log_base extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace log_base ///< GLM_GTX_log_base extension: Logarithm for any base. base can be a vector or a scalar.
2325 {
24 namespace test{
25 void main_ext_gtx_log_base();
26 }//namespace test
26 /// \addtogroup gtx_log_base
27 /// @{
2728
28 namespace gtx{
29 //! GLM_GTX_log_base extension: Logarithm for any base. base can be a vector or a scalar.
30 namespace log_base
31 {
32 /// \addtogroup gtx_log_base
33 ///@{
29 //! Logarithm for any base.
30 //! From GLM_GTX_log_base.
31 template <typename genType>
32 genType log(
33 genType const & x,
34 genType const & base);
3435
35 //! Logarithm for any base.
36 //! From GLM_GTX_log_base.
37 template <typename genType>
38 genType log(
39 genType const & x,
40 genType const & base);
36 /// @}
4137
42 ///@}
43
44 }//namespace extend
45 }//namespace gtx
38 }//namespace extend
39 }//namespace gtx
4640 }//namespace glm
4741
4842 #include "log_base.inl"
1919 # pragma message("GLM: GLM_GTX_matrix_cross_product extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace matrix_cross_product ///< GLM_GTX_matrix_cross_product: Build cross product matrices
2325 {
24 namespace test{
25 void main_gtx_matrix_cross_product();
26 }//namespace test
26 /// \addtogroup gtx_matrix_cross_product
27 /// @{
2728
28 namespace gtx{
29 //! GLM_GTX_matrix_cross_product: Build cross product matrices
30 namespace matrix_cross_product
31 {
32 /// \addtogroup gtx_matrix_cross_product
33 ///@{
29 //! Build a cross product matrix.
30 //! From GLM_GTX_matrix_cross_product extension.
31 template <typename T>
32 detail::tmat3x3<T> matrixCross3(
33 detail::tvec3<T> const & x);
34
35 //! Build a cross product matrix.
36 //! From GLM_GTX_matrix_cross_product extension.
37 template <typename T>
38 detail::tmat4x4<T> matrixCross4(
39 detail::tvec3<T> const & x);
3440
35 //! Build a cross product matrix.
36 //! From GLM_GTX_matrix_cross_product extension.
37 template <typename T>
38 detail::tmat3x3<T> matrixCross3(
39 detail::tvec3<T> const & x);
40
41 //! Build a cross product matrix.
42 //! From GLM_GTX_matrix_cross_product extension.
43 template <typename T>
44 detail::tmat4x4<T> matrixCross4(
45 detail::tvec3<T> const & x);
46
47 ///@}
48
49 }//namespace matrix_cross_product
50 }//namespace gtx
41 /// @}
42 }//namespace matrix_cross_product
43 }//namespace gtx
5144 }//namespace glm
5245
5346 #include "matrix_cross_product.inl"
2222 # pragma message("GLM: GLM_GTX_matrix_interpolation extension included")
2323 #endif
2424
25 namespace glm
25 namespace glm{
26 namespace gtx{
27 namespace matrix_interpolation ///< GLM_GTX_matrix_interpolation extension: Add transformation matrices
2628 {
27 namespace test{
28 void main_gtx_transform();
29 }//namespace test
29 /// \addtogroup gtx_matrix_interpolation
30 /// @{
3031
31 namespace gtx{
32 //! GLM_GTX_matrix_interpolation extension: Add transformation matrices
33 namespace matrix_interpolation
34 {
35 /// \addtogroup gtx_matrix_interpolation
36 ///@{
32 //! Get the axis and angle of the rotation from a matrix.
33 //! From GLM_GTX_matrix_interpolation extension.
34 template <typename T>
35 void axisAngle(
36 detail::tmat4x4<T> const & mat,
37 detail::tvec3<T> & axis,
38 T & angle);
3739
38 //! Get the axis and angle of the rotation from a matrix.
39 //! From GLM_GTX_matrix_interpolation extension.
40 template <typename T>
41 void axisAngle(
42 detail::tmat4x4<T> const & mat,
43 detail::tvec3<T> & axis,
44 T & angle);
40 //! Build a matrix from axis and angle.
41 //! From GLM_GTX_matrix_interpolation extension.
42 template <typename T>
43 detail::tmat4x4<T> axisAngleMatrix(
44 detail::tvec3<T> const & axis,
45 T const angle);
4546
46 //! Build a matrix from axis and angle.
47 //! From GLM_GTX_matrix_interpolation extension.
48 template <typename T>
49 detail::tmat4x4<T> axisAngleMatrix(
50 detail::tvec3<T> const & axis,
51 T const angle);
47 //! Build a interpolation of 4 * 4 matrixes.
48 //! From GLM_GTX_matrix_interpolation extension.
49 //! Warning! works only with rotation and/or translation matrixes, scale will generate unexpected results.
50 template <typename T>
51 detail::tmat4x4<T> interpolate(
52 detail::tmat4x4<T> const & m1,
53 detail::tmat4x4<T> const & m2,
54 T const delta);
5255
53 //! Build a interpolation of 4 * 4 matrixes.
54 //! From GLM_GTX_matrix_interpolation extension.
55 //! Warning! works only with rotation and/or translation matrixes, scale will generate unexpected results.
56 template <typename T>
57 detail::tmat4x4<T> interpolate(
58 detail::tmat4x4<T> const & m1,
59 detail::tmat4x4<T> const & m2,
60 T const delta);
61
62 ///@}
63
64 }//namespace matrix_interpolation
65 }//namespace gtx
56 /// @}
57 }//namespace matrix_interpolation
58 }//namespace gtx
6659 }//namespace glm
6760
6861 #include "matrix_interpolation.inl"
2727 axis.z = (T)0.0;
2828 return;
2929 }
30 angle = M_1_PI;
30 angle = T(3.1415926535897932384626433832795);
3131 T xx = (mat[0][0] + (T)1.0) / (T)2.0;
3232 T yy = (mat[1][1] + (T)1.0) / (T)2.0;
3333 T zz = (mat[2][2] + (T)1.0) / (T)2.0;
1919 # pragma message("GLM: GLM_GTX_matrix_major_storage extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace matrix_major_storage ///< GLM_GTX_matrix_major_storage: Build matrices with specific matrix order, row or column
2325 {
24 namespace gtx{
25 //! GLM_GTX_matrix_major_storage: Build matrices with specific matrix order, row or column
26 namespace matrix_major_storage
27 {
28 /// \addtogroup gtx_matrix_major_storage
29 ///@{
26 /// \addtogroup gtx_matrix_major_storage
27 /// @{
3028
31 //! Build a row major matrix from row vectors.
32 //! From GLM_GTX_matrix_major_storage extension.
33 template <typename T>
34 detail::tmat2x2<T> rowMajor2(
35 const detail::tvec2<T>& v1,
36 const detail::tvec2<T>& v2);
29 //! Build a row major matrix from row vectors.
30 //! From GLM_GTX_matrix_major_storage extension.
31 template <typename T>
32 detail::tmat2x2<T> rowMajor2(
33 const detail::tvec2<T>& v1,
34 const detail::tvec2<T>& v2);
3735
38 //! Build a row major matrix from other matrix.
39 //! From GLM_GTX_matrix_major_storage extension.
40 template <typename T>
41 detail::tmat2x2<T> rowMajor2(
42 const detail::tmat2x2<T>& m);
36 //! Build a row major matrix from other matrix.
37 //! From GLM_GTX_matrix_major_storage extension.
38 template <typename T>
39 detail::tmat2x2<T> rowMajor2(
40 const detail::tmat2x2<T>& m);
4341
44 //! Build a row major matrix from row vectors.
45 //! From GLM_GTX_matrix_major_storage extension.
46 template <typename T>
47 detail::tmat3x3<T> rowMajor3(
48 const detail::tvec3<T>& v1,
49 const detail::tvec3<T>& v2,
50 const detail::tvec3<T>& v3);
42 //! Build a row major matrix from row vectors.
43 //! From GLM_GTX_matrix_major_storage extension.
44 template <typename T>
45 detail::tmat3x3<T> rowMajor3(
46 const detail::tvec3<T>& v1,
47 const detail::tvec3<T>& v2,
48 const detail::tvec3<T>& v3);
5149
52 //! Build a row major matrix from other matrix.
53 //! From GLM_GTX_matrix_major_storage extension.
54 template <typename T>
55 detail::tmat3x3<T> rowMajor3(
56 const detail::tmat3x3<T>& m);
50 //! Build a row major matrix from other matrix.
51 //! From GLM_GTX_matrix_major_storage extension.
52 template <typename T>
53 detail::tmat3x3<T> rowMajor3(
54 const detail::tmat3x3<T>& m);
5755
58 //! Build a row major matrix from row vectors.
59 //! From GLM_GTX_matrix_major_storage extension.
60 template <typename T>
61 detail::tmat4x4<T> rowMajor4(
62 const detail::tvec4<T>& v1,
63 const detail::tvec4<T>& v2,
64 const detail::tvec4<T>& v3,
65 const detail::tvec4<T>& v4);
56 //! Build a row major matrix from row vectors.
57 //! From GLM_GTX_matrix_major_storage extension.
58 template <typename T>
59 detail::tmat4x4<T> rowMajor4(
60 const detail::tvec4<T>& v1,
61 const detail::tvec4<T>& v2,
62 const detail::tvec4<T>& v3,
63 const detail::tvec4<T>& v4);
6664
67 //! Build a row major matrix from other matrix.
68 //! From GLM_GTX_matrix_major_storage extension.
69 template <typename T>
70 detail::tmat4x4<T> rowMajor4(
71 const detail::tmat4x4<T>& m);
65 //! Build a row major matrix from other matrix.
66 //! From GLM_GTX_matrix_major_storage extension.
67 template <typename T>
68 detail::tmat4x4<T> rowMajor4(
69 const detail::tmat4x4<T>& m);
7270
73 //! Build a column major matrix from column vectors.
74 //! From GLM_GTX_matrix_major_storage extension.
75 template <typename T>
76 detail::tmat2x2<T> colMajor2(
77 const detail::tvec2<T>& v1,
78 const detail::tvec2<T>& v2);
71 //! Build a column major matrix from column vectors.
72 //! From GLM_GTX_matrix_major_storage extension.
73 template <typename T>
74 detail::tmat2x2<T> colMajor2(
75 const detail::tvec2<T>& v1,
76 const detail::tvec2<T>& v2);
7977
80 //! Build a column major matrix from other matrix.
81 //! From GLM_GTX_matrix_major_storage extension.
82 template <typename T>
83 detail::tmat2x2<T> colMajor2(
84 const detail::tmat2x2<T>& m);
78 //! Build a column major matrix from other matrix.
79 //! From GLM_GTX_matrix_major_storage extension.
80 template <typename T>
81 detail::tmat2x2<T> colMajor2(
82 const detail::tmat2x2<T>& m);
8583
86 //! Build a column major matrix from column vectors.
87 //! From GLM_GTX_matrix_major_storage extension.
88 template <typename T>
89 detail::tmat3x3<T> colMajor3(
90 const detail::tvec3<T>& v1,
91 const detail::tvec3<T>& v2,
92 const detail::tvec3<T>& v3);
84 //! Build a column major matrix from column vectors.
85 //! From GLM_GTX_matrix_major_storage extension.
86 template <typename T>
87 detail::tmat3x3<T> colMajor3(
88 const detail::tvec3<T>& v1,
89 const detail::tvec3<T>& v2,
90 const detail::tvec3<T>& v3);
9391
94 //! Build a column major matrix from other matrix.
95 //! From GLM_GTX_matrix_major_storage extension.
96 template <typename T>
97 detail::tmat3x3<T> colMajor3(
98 const detail::tmat3x3<T>& m);
92 //! Build a column major matrix from other matrix.
93 //! From GLM_GTX_matrix_major_storage extension.
94 template <typename T>
95 detail::tmat3x3<T> colMajor3(
96 const detail::tmat3x3<T>& m);
9997
100 //! Build a column major matrix from column vectors.
101 //! From GLM_GTX_matrix_major_storage extension.
102 template <typename T>
103 detail::tmat4x4<T> colMajor4(
104 const detail::tvec4<T>& v1,
105 const detail::tvec4<T>& v2,
106 const detail::tvec4<T>& v3,
107 const detail::tvec4<T>& v4);
98 //! Build a column major matrix from column vectors.
99 //! From GLM_GTX_matrix_major_storage extension.
100 template <typename T>
101 detail::tmat4x4<T> colMajor4(
102 const detail::tvec4<T>& v1,
103 const detail::tvec4<T>& v2,
104 const detail::tvec4<T>& v3,
105 const detail::tvec4<T>& v4);
108106
109 //! Build a column major matrix from other matrix.
110 //! From GLM_GTX_matrix_major_storage extension.
111 template <typename T>
112 detail::tmat4x4<T> colMajor4(
113 const detail::tmat4x4<T>& m);
107 //! Build a column major matrix from other matrix.
108 //! From GLM_GTX_matrix_major_storage extension.
109 template <typename T>
110 detail::tmat4x4<T> colMajor4(
111 const detail::tmat4x4<T>& m);
114112
115 ///@}
116
117 }//namespace matrix_major_storage
118 }//namespace gtx
113 /// @}
114 }//namespace matrix_major_storage
115 }//namespace gtx
119116 }//namespace glm
120117
121118 #include "matrix_major_storage.inl"
1919 # pragma message("GLM: GLM_GTX_matrix_operation extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace matrix_operation ///< GLM_GTX_matrix_operation: Build diagonal matrices
2325 {
24 namespace test{
25 void main_gtx_matrix_operation();
26 }//namespace test
26 /// \addtogroup gtx_matrix_operation
27 /// @{
2728
28 namespace gtx{
29 //! GLM_GTX_matrix_operation: Build diagonal matrices
30 namespace matrix_operation
31 {
32 /// \addtogroup gtx_matrix_operation
33 ///@{
29 //! Build a diagonal matrix.
30 //! From GLM_GTX_matrix_operation extension.
31 template <typename valType>
32 detail::tmat2x2<valType> diagonal2x2(
33 detail::tvec2<valType> const & v);
3434
35 //! Build a diagonal matrix.
36 //! From GLM_GTX_matrix_operation extension.
37 template <typename valType>
38 detail::tmat2x2<valType> diagonal2x2(
39 detail::tvec2<valType> const & v);
35 //! Build a diagonal matrix.
36 //! From GLM_GTX_matrix_operation extension.
37 template <typename valType>
38 detail::tmat2x3<valType> diagonal2x3(
39 detail::tvec2<valType> const & v);
4040
41 //! Build a diagonal matrix.
42 //! From GLM_GTX_matrix_operation extension.
43 template <typename valType>
44 detail::tmat2x3<valType> diagonal2x3(
45 detail::tvec2<valType> const & v);
41 //! Build a diagonal matrix.
42 //! From GLM_GTX_matrix_operation extension.
43 template <typename valType>
44 detail::tmat2x4<valType> diagonal2x4(
45 detail::tvec2<valType> const & v);
4646
47 //! Build a diagonal matrix.
48 //! From GLM_GTX_matrix_operation extension.
49 template <typename valType>
50 detail::tmat2x4<valType> diagonal2x4(
51 detail::tvec2<valType> const & v);
47 //! Build a diagonal matrix.
48 //! From GLM_GTX_matrix_operation extension.
49 template <typename valType>
50 detail::tmat3x2<valType> diagonal3x2(
51 detail::tvec2<valType> const & v);
5252
53 //! Build a diagonal matrix.
54 //! From GLM_GTX_matrix_operation extension.
55 template <typename valType>
56 detail::tmat3x2<valType> diagonal3x2(
57 detail::tvec2<valType> const & v);
53 //! Build a diagonal matrix.
54 //! From GLM_GTX_matrix_operation extension.
55 template <typename valType>
56 detail::tmat3x3<valType> diagonal3x3(
57 detail::tvec3<valType> const & v);
5858
59 //! Build a diagonal matrix.
60 //! From GLM_GTX_matrix_operation extension.
61 template <typename valType>
62 detail::tmat3x3<valType> diagonal3x3(
63 detail::tvec3<valType> const & v);
59 //! Build a diagonal matrix.
60 //! From GLM_GTX_matrix_operation extension.
61 template <typename valType>
62 detail::tmat3x4<valType> diagonal3x4(
63 detail::tvec3<valType> const & v);
6464
65 //! Build a diagonal matrix.
66 //! From GLM_GTX_matrix_operation extension.
67 template <typename valType>
68 detail::tmat3x4<valType> diagonal3x4(
69 detail::tvec3<valType> const & v);
65 //! Build a diagonal matrix.
66 //! From GLM_GTX_matrix_operation extension.
67 template <typename valType>
68 detail::tmat4x2<valType> diagonal4x2(
69 detail::tvec2<valType> const & v);
7070
71 //! Build a diagonal matrix.
72 //! From GLM_GTX_matrix_operation extension.
73 template <typename valType>
74 detail::tmat4x2<valType> diagonal4x2(
75 detail::tvec2<valType> const & v);
71 //! Build a diagonal matrix.
72 //! From GLM_GTX_matrix_operation extension.
73 template <typename valType>
74 detail::tmat4x3<valType> diagonal4x3(
75 detail::tvec3<valType> const & v);
7676
77 //! Build a diagonal matrix.
78 //! From GLM_GTX_matrix_operation extension.
79 template <typename valType>
80 detail::tmat4x3<valType> diagonal4x3(
81 detail::tvec3<valType> const & v);
77 //! Build a diagonal matrix.
78 //! From GLM_GTX_matrix_operation extension.
79 template <typename valType>
80 detail::tmat4x4<valType> diagonal4x4(
81 detail::tvec4<valType> const & v);
8282
83 //! Build a diagonal matrix.
84 //! From GLM_GTX_matrix_operation extension.
85 template <typename valType>
86 detail::tmat4x4<valType> diagonal4x4(
87 detail::tvec4<valType> const & v);
88
89 ///@}
90
91 }//namespace matrix_operation
92 }//namespace gtx
83 /// @}
84 }//namespace matrix_operation
85 }//namespace gtx
9386 }//namespace glm
9487
9588 #include "matrix_operation.inl"
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
88
99 namespace glm{
10 namespace gtc{
10 namespace gtx{
1111 namespace matrix_operation
1212 {
1313 template <typename valType>
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
88 // Dependency:
99 // - GLM core
10 // - GLM_GTX_matrix_query
1011 ///////////////////////////////////////////////////////////////////////////////////////////////////
1112
1213 #ifndef glm_gtx_matrix_query
1920 # pragma message("GLM: GLM_GTX_matrix_query extension included")
2021 #endif
2122
22 namespace glm
23 namespace glm{
24 namespace gtx{
25 namespace matrix_query ///< GLM_GTX_matrix_query: Query to evaluate matrix properties
2326 {
24 namespace test{
25 void main_gtx_matrix_query();
26 }//namespace test
27 /// @addtogroup gtx_matrix_query
28 /// @{
2729
28 namespace gtx{
29 //! GLM_GTX_matrix_query: Query to evaluate matrix properties
30 namespace matrix_query
31 {
32 /// \addtogroup gtx_matrix_query
33 ///@{
30 //! Return if a matrix a null matrix.
31 //! From GLM_GTX_matrix_query extension.
32 template<typename T>
33 bool isNull(
34 const detail::tmat2x2<T>& m,
35 const T epsilon = std::numeric_limits<T>::epsilon());
36
37 //! Return if a matrix a null matrix.
38 //! From GLM_GTX_matrix_query extension.
39 template<typename T>
40 bool isNull(
41 const detail::tmat3x3<T>& m,
42 const T epsilon = std::numeric_limits<T>::epsilon());
43
44 //! Return if a matrix a null matrix.
45 //! From GLM_GTX_matrix_query extension.
46 template<typename T>
47 bool isNull(
48 const detail::tmat4x4<T>& m,
49 const T epsilon = std::numeric_limits<T>::epsilon());
50
51 //! Return if a matrix an identity matrix.
52 //! From GLM_GTX_matrix_query extension.
53 template<typename genType>
54 bool isIdentity(
55 const genType& m,
56 const typename genType::value_type epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
3457
35 //! Return if a matrix a null matrix.
36 //! From GLM_GTX_matrix_query extension.
37 template<typename T>
38 bool isNull(
39 const detail::tmat2x2<T>& m,
40 const T epsilon = std::numeric_limits<T>::epsilon());
58 //! Return if a matrix a normalized matrix.
59 //! From GLM_GTX_matrix_query extension.
60 template<typename T>
61 bool isNormalized(
62 const detail::tmat2x2<T>& m,
63 const T epsilon = std::numeric_limits<T>::epsilon());
4164
42 //! Return if a matrix a null matrix.
43 //! From GLM_GTX_matrix_query extension.
44 template<typename T>
45 bool isNull(
46 const detail::tmat3x3<T>& m,
47 const T epsilon = std::numeric_limits<T>::epsilon());
65 //! Return if a matrix a normalized matrix.
66 //! From GLM_GTX_matrix_query extension.
67 template<typename T>
68 bool isNormalized(
69 const detail::tmat3x3<T>& m,
70 const T epsilon = std::numeric_limits<T>::epsilon());
4871
49 //! Return if a matrix a null matrix.
50 //! From GLM_GTX_matrix_query extension.
51 template<typename T>
52 bool isNull(
53 const detail::tmat4x4<T>& m,
54 const T epsilon = std::numeric_limits<T>::epsilon());
55
56 //! Return if a matrix an identity matrix.
57 //! From GLM_GTX_matrix_query extension.
58 template<typename genType>
59 bool isIdentity(
60 const genType& m,
61 const typename genType::value_type epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
72 //! Return if a matrix a normalized matrix.
73 //! From GLM_GTX_matrix_query extension.
74 template<typename T>
75 bool isNormalized(
76 const detail::tmat4x4<T>& m,
77 const T epsilon = std::numeric_limits<T>::epsilon());
6278
63 //! Return if a matrix a normalized matrix.
64 //! From GLM_GTX_matrix_query extension.
65 template<typename T>
66 bool isNormalized(
67 const detail::tmat2x2<T>& m,
68 const T epsilon = std::numeric_limits<T>::epsilon());
69
70 //! Return if a matrix a normalized matrix.
71 //! From GLM_GTX_matrix_query extension.
72 template<typename T>
73 bool isNormalized(
74 const detail::tmat3x3<T>& m,
75 const T epsilon = std::numeric_limits<T>::epsilon());
76
77 //! Return if a matrix a normalized matrix.
78 //! From GLM_GTX_matrix_query extension.
79 template<typename T>
80 bool isNormalized(
81 const detail::tmat4x4<T>& m,
82 const T epsilon = std::numeric_limits<T>::epsilon());
79 //! Return if a matrix an orthonormalized matrix.
80 //! From GLM_GTX_matrix_query extension.
81 template<typename genType>
82 bool isOrthogonal(
83 const genType& m,
84 const typename genType::value_type epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
8385
84 //! Return if a matrix an orthonormalized matrix.
85 //! From GLM_GTX_matrix_query extension.
86 template<typename genType>
87 bool isOrthogonal(
88 const genType& m,
89 const typename genType::value_type epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
90
91 ///@}
92 }//namespace matrix_query
93 }//namespace gtx
86 /// @}
87 }//namespace matrix_query
88 }//namespace gtx
9489 }//namespace glm
9590
9691 #include "matrix_query.inl"
1919 # pragma message("GLM: GLM_GTX_mixed_product extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace mixed_product ///< GLM_GTX_mixed_product extension: Mixed product of 3 vectors.
2325 {
24 namespace test{
25 void main_gtx_matrix_selection();
26 }//namespace test
26 /// \addtogroup gtx_mixed_product
27 /// @{
2728
28 namespace gtx{
29 //! GLM_GTX_mixed_product extension: Mixed product of 3 vectors.
30 namespace mixed_product
31 {
32 /// \addtogroup gtx_mixed_product
33 ///@{
29 //! \brief Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)
30 template <typename valType>
31 valType mixedProduct(
32 detail::tvec3<valType> const & v1,
33 detail::tvec3<valType> const & v2,
34 detail::tvec3<valType> const & v3);
3435
35 //! \brief Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)
36 template <typename valType>
37 valType mixedProduct(
38 detail::tvec3<valType> const & v1,
39 detail::tvec3<valType> const & v2,
40 detail::tvec3<valType> const & v3);
41
42 ///@}
43 }//namespace mixed_product
44 }//namespace gtx
45 }//namespace glm
36 /// @}
37 }// namespace mixed_product
38 }// namespace gtx
39 }// namespace glm
4640
4741 #include "mixed_product.inl"
4842
1919 # pragma message("GLM: GLM_GTX_multiple extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace multiple ///< GLM_GTX_multiple: Find the closest number of a number multiple of other number.
2325 {
24 namespace test{
25 bool main_img_multiple();
26 }//namespace test
26 /// \addtogroup gtx_multiple
27 /// @{
2728
28 namespace gtx{
29 //! GLM_GTX_multiple: Find the closest number of a number multiple of other number.
30 namespace multiple
31 {
32 /// \addtogroup gtx_multiple
33 ///@{
29 //! Higher Multiple number of Source.
30 //! From GLM_GTX_multiple extension.
31 template <typename genType>
32 genType higherMultiple(
33 genType const & Source,
34 genType const & Multiple);
3435
35 //! Higher Multiple number of Source.
36 //! From GLM_GTX_multiple extension.
37 template <typename genType>
38 genType higherMultiple(
39 genType const & Source,
40 genType const & Multiple);
36 //! Lower Multiple number of Source.
37 //! From GLM_GTX_multiple extension.
38 template <typename genType>
39 genType lowerMultiple(
40 genType const & Source,
41 genType const & Multiple);
4142
42 //! Lower Multiple number of Source.
43 //! From GLM_GTX_multiple extension.
44 template <typename genType>
45 genType lowerMultiple(
46 genType const & Source,
47 genType const & Multiple);
48
49 ///@}
50
51 }//namespace multiple
52 }//namespace gtx
43 /// @}
44 }//namespace multiple
45 }//namespace gtx
5346 }//namespace glm
5447
5548 #include "multiple.inl"
2424 # pragma message("GLM: GLM_GTX_noise extension included")
2525 #endif
2626
27 namespace glm
27 namespace glm{
28 namespace gtx{
29 namespace noise ///< GLM_GTX_noise extension: Comparison functions for a user defined epsilon values.
2830 {
29 namespace test{
30 void main_gtx_noise();
31 }//namespace test
31 /// \addtogroup gtx_noise
32 /// @{
3233
33 namespace gtx{
34 //! GLM_GTX_noise extension: Comparison functions for a user defined epsilon values.
35 namespace noise
36 {
37 /// \addtogroup gtx_noise
38 ///@{
34 //! Classic perlin noise.
35 //! From GLM_GTX_noise extension.
36 template <typename T, template<typename> class vecType>
37 T perlin(
38 vecType<T> const & p);
39
40 //! Periodic perlin noise.
41 //! From GLM_GTX_noise extension.
42 template <typename T, template<typename> class vecType>
43 T perlin(
44 vecType<T> const & p,
45 vecType<T> const & rep);
3946
40 //! Classic perlin noise.
41 //! From GLM_GTX_noise extension.
42 template <typename T, template<typename> class vecType>
43 T perlin(
44 vecType<T> const & p);
45
46 //! Periodic perlin noise.
47 //! From GLM_GTX_noise extension.
48 template <typename T, template<typename> class vecType>
49 T perlin(
50 vecType<T> const & p,
51 vecType<T> const & rep);
47 //! Simplex noise.
48 //! From GLM_GTX_noise extension.
49 template <typename T, template<typename> class vecType>
50 T simplex(
51 vecType<T> const & p);
5252
53 //! Simplex noise.
54 //! From GLM_GTX_noise extension.
55 template <typename T, template<typename> class vecType>
56 T simplex(
57 vecType<T> const & p);
58
59 ///@}
60
61 }//namespace noise
62 }//namespace gtx
53 /// @}
54 }//namespace noise
55 }//namespace gtx
6356 }//namespace glm
6457
6558 #include "noise.inl"
2424 # pragma message("GLM: GLM_GTX_norm extension included")
2525 #endif
2626
27 namespace glm
27 namespace glm{
28 namespace gtx{
29 namespace norm ///< GLM_GTX_norm extension: Various way to compute vector norms.
2830 {
29 namespace test{
30 void main_gtx_norm();
31 }//namespace test
31 /// \addtogroup gtx_norm
32 /// @{
3233
33 namespace gtx{
34 //! GLM_GTX_norm extension: Various way to compute vector norms.
35 namespace norm
36 {
37 /// \addtogroup gtx_norm
38 ///@{
34 //! Returns the squared length of x.
35 //! From GLM_GTX_norm extension.
36 template <typename T>
37 T length2(
38 const T x);
3939
40 //! Returns the squared length of x.
41 //! From GLM_GTX_norm extension.
42 template <typename T>
43 T length2(
44 const T x);
40 //! Returns the squared length of x.
41 //! From GLM_GTX_norm extension.
42 template <typename T>
43 T length2(
44 const detail::tvec2<T> & x);
4545
46 //! Returns the squared length of x.
47 //! From GLM_GTX_norm extension.
48 template <typename T>
49 T length2(
50 const detail::tvec2<T> & x);
46 //! Returns the squared length of x.
47 //! From GLM_GTX_norm extension.
48 template <typename T>
49 T length2(
50 const detail::tvec3<T>& x);
51
52 //! Returns the squared length of x.
53 //! From GLM_GTX_norm extension.
54 template <typename T>
55 T length2(
56 const detail::tvec4<T>& x);
57
58 //! Returns the squared length of x.
59 //! From GLM_GTX_norm extension.
60 template <typename T>
61 T length2(
62 const detail::tquat<T>& q);
5163
52 //! Returns the squared length of x.
53 //! From GLM_GTX_norm extension.
54 template <typename T>
55 T length2(
56 const detail::tvec3<T>& x);
64 //! Returns the squared distance between p0 and p1, i.e., length(p0 - p1).
65 //! From GLM_GTX_norm extension.
66 template <typename T>
67 T distance2(
68 const T p0,
69 const T p1);
5770
58 //! Returns the squared length of x.
59 //! From GLM_GTX_norm extension.
60 template <typename T>
61 T length2(
62 const detail::tvec4<T>& x);
71 //! Returns the squared distance between p0 and p1, i.e., length(p0 - p1).
72 //! From GLM_GTX_norm extension.
73 template <typename T>
74 T distance2(
75 const detail::tvec2<T>& p0,
76 const detail::tvec2<T>& p1);
77
78 //! Returns the squared distance between p0 and p1, i.e., length(p0 - p1).
79 //! From GLM_GTX_norm extension.
80 template <typename T>
81 T distance2(
82 const detail::tvec3<T>& p0,
83 const detail::tvec3<T>& p1);
84
85 //! Returns the squared distance between p0 and p1, i.e., length(p0 - p1).
86 //! From GLM_GTX_norm extension.
87 template <typename T>
88 T distance2(
89 const detail::tvec4<T>& p0,
90 const detail::tvec4<T>& p1);
91
92 //! Returns the L1 norm between x and y.
93 //! From GLM_GTX_norm extension.
94 template <typename T>
95 T l1Norm(
96 const detail::tvec3<T>& x,
97 const detail::tvec3<T>& y);
6398
64 //! Returns the squared length of x.
65 //! From GLM_GTX_norm extension.
66 template <typename T>
67 T length2(
68 const detail::tquat<T>& q);
99 //! Returns the L1 norm of v.
100 //! From GLM_GTX_norm extension.
101 template <typename T>
102 T l1Norm(
103 const detail::tvec3<T>& v);
104
105 //! Returns the L2 norm between x and y.
106 //! From GLM_GTX_norm extension.
107 template <typename T>
108 T l2Norm(
109 const detail::tvec3<T>& x,
110 const detail::tvec3<T>& y);
111
112 //! Returns the L2 norm of v.
113 //! From GLM_GTX_norm extension.
114 template <typename T>
115 T l2Norm(
116 const detail::tvec3<T>& x);
117
118 //! Returns the L norm between x and y.
119 //! From GLM_GTX_norm extension.
120 template <typename T>
121 T lxNorm(
122 const detail::tvec3<T>& x,
123 const detail::tvec3<T>& y,
124 unsigned int Depth);
69125
70 //! Returns the squared distance between p0 and p1, i.e., length(p0 - p1).
71 //! From GLM_GTX_norm extension.
72 template <typename T>
73 T distance2(
74 const T p0,
75 const T p1);
76
77 //! Returns the squared distance between p0 and p1, i.e., length(p0 - p1).
78 //! From GLM_GTX_norm extension.
79 template <typename T>
80 T distance2(
81 const detail::tvec2<T>& p0,
82 const detail::tvec2<T>& p1);
126 //! Returns the L norm of v.
127 //! From GLM_GTX_norm extension.
128 template <typename T>
129 T lxNorm(
130 const detail::tvec3<T>& x,
131 unsigned int Depth);
83132
84 //! Returns the squared distance between p0 and p1, i.e., length(p0 - p1).
85 //! From GLM_GTX_norm extension.
86 template <typename T>
87 T distance2(
88 const detail::tvec3<T>& p0,
89 const detail::tvec3<T>& p1);
90
91 //! Returns the squared distance between p0 and p1, i.e., length(p0 - p1).
92 //! From GLM_GTX_norm extension.
93 template <typename T>
94 T distance2(
95 const detail::tvec4<T>& p0,
96 const detail::tvec4<T>& p1);
97
98 //! Returns the L1 norm between x and y.
99 //! From GLM_GTX_norm extension.
100 template <typename T>
101 T l1Norm(
102 const detail::tvec3<T>& x,
103 const detail::tvec3<T>& y);
104
105 //! Returns the L1 norm of v.
106 //! From GLM_GTX_norm extension.
107 template <typename T>
108 T l1Norm(
109 const detail::tvec3<T>& v);
110
111 //! Returns the L2 norm between x and y.
112 //! From GLM_GTX_norm extension.
113 template <typename T>
114 T l2Norm(
115 const detail::tvec3<T>& x,
116 const detail::tvec3<T>& y);
117
118 //! Returns the L2 norm of v.
119 //! From GLM_GTX_norm extension.
120 template <typename T>
121 T l2Norm(
122 const detail::tvec3<T>& x);
123
124 //! Returns the L norm between x and y.
125 //! From GLM_GTX_norm extension.
126 template <typename T>
127 T lxNorm(
128 const detail::tvec3<T>& x,
129 const detail::tvec3<T>& y,
130 unsigned int Depth);
131
132 //! Returns the L norm of v.
133 //! From GLM_GTX_norm extension.
134 template <typename T>
135 T lxNorm(
136 const detail::tvec3<T>& x,
137 unsigned int Depth);
138
139 ///@}
140
141 }//namespace norm
142 }//namespace gtx
133 /// @}
134 }//namespace norm
135 }//namespace gtx
143136 }//namespace glm
144137
145138 #include "norm.inl"
1919 # pragma message("GLM: GLM_GTX_normal extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace normal ///< GLM_GTX_normal extension: Compute the normal of a triangle.
2325 {
24 namespace test{
25 void main_gtx_normal();
26 }//namespace test
27
28 namespace gtx{
29 //! GLM_GTX_normal extension: Compute the normal of a triangle.
30 namespace normal
31 {
32 /// \addtogroup gtx_normal
33 ///@{
26 /// \addtogroup gtx_normal
27 /// @{
3428
35 //! Computes triangle normal from triangle points.
36 //! From GLM_GTX_normal extension.
37 template <typename T>
38 detail::tvec3<T> triangleNormal(
39 detail::tvec3<T> const & p1,
40 detail::tvec3<T> const & p2,
41 detail::tvec3<T> const & p3);
29 //! Computes triangle normal from triangle points.
30 //! From GLM_GTX_normal extension.
31 template <typename T>
32 detail::tvec3<T> triangleNormal(
33 detail::tvec3<T> const & p1,
34 detail::tvec3<T> const & p2,
35 detail::tvec3<T> const & p3);
4236
43 ///@}
44
45 }//namespace normal
46 }//namespace gtx
37 /// @}
38 }//namespace normal
39 }//namespace gtx
4740 }//namespace glm
4841
4942 #include "normal.inl"
2121 # pragma message("GLM: GLM_GTX_normalize_dot extension included")
2222 #endif
2323
24 namespace glm
24 namespace glm{
25 namespace gtx{
26 namespace normalize_dot ///< GLM_GTX_normalize_dot extension: Dot product of vectors that need to be normalize with a single square root.
2527 {
26 namespace gtx{
27 //! GLM_GTX_normalize_dot extension: Dot product of vectors that need to be normalize with a single square root.
28 namespace normalize_dot
29 {
30 using namespace gtx::fast_square_root;
28 using namespace gtx::fast_square_root;
3129
32 /// \addtogroup gtx_normalize_dot
33 ///@{
30 /// \addtogroup gtx_normalize_dot
31 /// @{
3432
35 //! Normalize parameters and returns the dot product of x and y.
36 //! It's faster that dot(normalize(x), normalize(y)).
37 //! From GLM_GTX_normalize_dot extension.
38 template <typename genType>
39 typename genType::value_type normalizeDot(
40 genType const & x,
41 genType const & y);
33 //! Normalize parameters and returns the dot product of x and y.
34 //! It's faster that dot(normalize(x), normalize(y)).
35 //! From GLM_GTX_normalize_dot extension.
36 template <typename genType>
37 typename genType::value_type normalizeDot(
38 genType const & x,
39 genType const & y);
4240
43 //! Normalize parameters and returns the dot product of x and y.
44 //! Faster that dot(fastNormalize(x), fastNormalize(y)).
45 //! From GLM_GTX_normalize_dot extension.
46 template <typename genType>
47 typename genType::value_type fastNormalizeDot(
48 genType const & x,
49 genType const & y);
41 //! Normalize parameters and returns the dot product of x and y.
42 //! Faster that dot(fastNormalize(x), fastNormalize(y)).
43 //! From GLM_GTX_normalize_dot extension.
44 template <typename genType>
45 typename genType::value_type fastNormalizeDot(
46 genType const & x,
47 genType const & y);
5048
51 ///@}
52
53 }//namespace normalize_dot
54 }//namespace gtx
49 /// @}
50 }//namespace normalize_dot
51 }//namespace gtx
5552 }//namespace glm
5653
5754 #include "normalize_dot.inl"
2424
2525 namespace glm{
2626 namespace gtx{
27 //! GLM_GTX_number_precision extension: Defined size types.
28 namespace number_precision
27 namespace number_precision ///< GLM_GTX_number_precision extension: Defined size types.
2928 {
3029 using namespace gtc::type_precision;
3130
3332 // Unsigned int vector types
3433
3534 /// \addtogroup gtx_number_precision
36 ///@{
35 /// @{
3736
3837 typedef u8 u8vec1; //!< \brief 8bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
3938 typedef u16 u16vec1; //!< \brief 16bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
5756 typedef f64 f64mat1; //!< \brief Double-precision floating-point scalar. (from GLM_GTX_number_precision extension)
5857 typedef f64 f64mat1x1; //!< \brief Double-precision floating-point scalar. (from GLM_GTX_number_precision extension)
5958
60 ///@}
59 /// @}
6160 }//namespace number_precision
6261 }//namespace gtx
6362 }//namespace glm
2121
2222 namespace glm{
2323 namespace gtx{
24 //! GLM_GTX_ocl_type extension: OpenCL types.
25 namespace ocl_type
24 namespace ocl_type ///< GLM_GTX_ocl_type extension: OpenCL types.
2625 {
2726 ///////////////////////////
2827 // Scalar types
2928
3029 /// \addtogroup gtx_ocl_type
31 ///@{
30 /// @{
3231
3332 typedef detail::int8 cl_char; //!< \brief 8bit signed integer. (from GLM_GTX_ocl_type extension)
3433 typedef detail::int16 cl_short; //!< \brief 16bit signed integer. (from GLM_GTX_ocl_type extension)
9897 //typedef detail::tvec4<detail::float16> cl_half4; //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)
9998 typedef detail::tvec4<detail::float32> cl_float4; //!< \brief Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension)
10099
101 ///@}
102
100 /// @}
103101 }//namespace ocl_type
104102 }//namespace gtx
105103 }//namespace glm
1919 # pragma message("GLM: GLM_GTX_optimum_pow extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace optimum_pow ///< GLM_GTX_optimum_pow extension: Integer exponentiation of power functions.
2325 {
24 namespace test{
25 void main_gtx_optimum_pow();
26 }//namespace test
26 /// \addtogroup gtx_optimum_pow
27 /// @{
2728
28 namespace gtx{
29 //! GLM_GTX_optimum_pow extension: Integer exponentiation of power functions.
30 namespace optimum_pow
31 {
32 /// \addtogroup gtx_optimum_pow
33 ///@{
29 //! Returns x raised to the power of 2.
30 //! From GLM_GTX_optimum_pow extension.
31 template <typename genType>
32 genType pow2(const genType& x);
3433
35 //! Returns x raised to the power of 2.
36 //! From GLM_GTX_optimum_pow extension.
37 template <typename genType>
38 genType pow2(const genType& x);
34 //! Returns x raised to the power of 3.
35 //! From GLM_GTX_optimum_pow extension.
36 template <typename genType>
37 genType pow3(const genType& x);
3938
40 //! Returns x raised to the power of 3.
41 //! From GLM_GTX_optimum_pow extension.
42 template <typename genType>
43 genType pow3(const genType& x);
39 //! Returns x raised to the power of 4.
40 //! From GLM_GTX_optimum_pow extension.
41 template <typename genType>
42 genType pow4(const genType& x);
43
44 //! Checks if the parameter is a power of 2 number.
45 //! From GLM_GTX_optimum_pow extension.
46 bool powOfTwo(int num);
4447
45 //! Returns x raised to the power of 4.
46 //! From GLM_GTX_optimum_pow extension.
47 template <typename genType>
48 genType pow4(const genType& x);
49
50 //! Checks if the parameter is a power of 2 number.
51 //! From GLM_GTX_optimum_pow extension.
52 bool powOfTwo(int num);
48 //! Checks to determine if the parameter component are power of 2 numbers.
49 //! From GLM_GTX_optimum_pow extension.
50 detail::tvec2<bool> powOfTwo(const detail::tvec2<int>& x);
5351
54 //! Checks to determine if the parameter component are power of 2 numbers.
55 //! From GLM_GTX_optimum_pow extension.
56 detail::tvec2<bool> powOfTwo(const detail::tvec2<int>& x);
52 //! Checks to determine if the parameter component are power of 2 numbers.
53 //! From GLM_GTX_optimum_pow extension.
54 detail::tvec3<bool> powOfTwo(const detail::tvec3<int>& x);
5755
58 //! Checks to determine if the parameter component are power of 2 numbers.
59 //! From GLM_GTX_optimum_pow extension.
60 detail::tvec3<bool> powOfTwo(const detail::tvec3<int>& x);
56 //! Checks to determine if the parameter component are power of 2 numbers.
57 //! From GLM_GTX_optimum_pow extension.
58 detail::tvec4<bool> powOfTwo(const detail::tvec4<int>& x);
6159
62 //! Checks to determine if the parameter component are power of 2 numbers.
63 //! From GLM_GTX_optimum_pow extension.
64 detail::tvec4<bool> powOfTwo(const detail::tvec4<int>& x);
65
66 ///@}
67
68 }//namespace optimum_pow
69 }//namespace gtx
60 /// @}
61 }//namespace optimum_pow
62 }//namespace gtx
7063 }//namespace glm
7164
7265 #include "optimum_pow.inl"
1919 # pragma message("GLM: GLM_GTX_orthonormalize extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace orthonormalize ///< GLM_GTX_orthonormalize extension: Orthonormalize matrices.
2325 {
24 namespace test{
25 void main_gtx_orthonormalize();
26 }//namespace test
26 /// \addtogroup gtx_orthonormalize
27 /// @{
2728
28 namespace gtx{
29 //! GLM_GTX_orthonormalize extension: Orthonormalize matrices.
30 namespace orthonormalize
31 {
32 /// \addtogroup gtx_orthonormalize
33 ///@{
29 //! Returns the orthonormalized matrix of m.
30 //! From GLM_GTX_orthonormalize extension.
31 template <typename T>
32 detail::tmat3x3<T> orthonormalize(
33 const detail::tmat3x3<T>& m);
34
35 //! Orthonormalizes x according y.
36 //! From GLM_GTX_orthonormalize extension.
37 template <typename T>
38 detail::tvec3<T> orthonormalize(
39 const detail::tvec3<T>& x,
40 const detail::tvec3<T>& y);
3441
35 //! Returns the orthonormalized matrix of m.
36 //! From GLM_GTX_orthonormalize extension.
37 template <typename T>
38 detail::tmat3x3<T> orthonormalize(
39 const detail::tmat3x3<T>& m);
40
41 //! Orthonormalizes x according y.
42 //! From GLM_GTX_orthonormalize extension.
43 template <typename T>
44 detail::tvec3<T> orthonormalize(
45 const detail::tvec3<T>& x,
46 const detail::tvec3<T>& y);
47
48 ///@}
49
50 }//namespace orthonormalize
51 }//namespace gtx
42 /// @}
43 }//namespace orthonormalize
44 }//namespace gtx
5245 }//namespace glm
5346
5447 #include "orthonormalize.inl"
2121 # pragma message("GLM: GLM_GTX_perpendicular extension included")
2222 #endif
2323
24 namespace glm
24 namespace glm{
25 namespace gtx{
26 namespace perpendicular ///< GLM_GTX_perpendicular extension: Perpendicular of a vector from other one
2527 {
26 namespace test{
27 void main_gtx_perpendicular();
28 }//namespace test
28 /// \addtogroup gtx_perpendicular
29 /// @{
2930
30 namespace gtx{
31 //! GLM_GTX_perpendicular extension: Perpendicular of a vector from other one
32 namespace perpendicular
33 {
34 /// \addtogroup gtx_perpendicular
35 ///@{
31 //! Projects x a perpendicular axis of Normal.
32 //! From GLM_GTX_perpendicular extension.
33 template <typename T>
34 detail::tvec2<T> perp(
35 detail::tvec2<T> const & x,
36 detail::tvec2<T> const & Normal);
3637
37 //! Projects x a perpendicular axis of Normal.
38 //! From GLM_GTX_perpendicular extension.
39 template <typename T>
40 detail::tvec2<T> perp(
41 detail::tvec2<T> const & x,
42 detail::tvec2<T> const & Normal);
38 //! Projects x a perpendicular axis of Normal.
39 //! From GLM_GTX_perpendicular extension.
40 template <typename T>
41 detail::tvec3<T> perp(
42 detail::tvec3<T> const & x,
43 detail::tvec3<T> const & Normal);
4344
44 //! Projects x a perpendicular axis of Normal.
45 //! From GLM_GTX_perpendicular extension.
46 template <typename T>
47 detail::tvec3<T> perp(
48 detail::tvec3<T> const & x,
49 detail::tvec3<T> const & Normal);
45 //! Projects x a perpendicular axis of Normal.
46 //! From GLM_GTX_perpendicular extension.
47 template <typename T>
48 detail::tvec4<T> perp(
49 detail::tvec4<T> const & x,
50 detail::tvec4<T> const & Normal);
5051
51 //! Projects x a perpendicular axis of Normal.
52 //! From GLM_GTX_perpendicular extension.
53 template <typename T>
54 detail::tvec4<T> perp(
55 detail::tvec4<T> const & x,
56 detail::tvec4<T> const & Normal);
57
58
59 ///@}
60
61 }//namespace perpendicular
62 }//namespace gtx
52 /// @}
53 }//namespace perpendicular
54 }//namespace gtx
6355 }//namespace glm
6456
6557 #include "perpendicular.inl"
1919 # pragma message("GLM: GLM_GTX_polar_coordinates extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace polar_coordinates ///< GLM_GTX_polar_coordinates extension: Conversion from Euclidean space to polar space and revert.
2325 {
24 namespace gtx{
25 //! GLM_GTX_polar_coordinates extension: Conversion from Euclidean space to polar space and revert.
26 namespace polar_coordinates
27 {
28 /// \addtogroup gtx_polar_coordinates
29 ///@{
26 /// \addtogroup gtx_polar_coordinates
27 /// @{
3028
31 //! Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude.
32 //! From GLM_GTX_polar_coordinates extension.
33 template <typename T>
34 detail::tvec3<T> polar(const detail::tvec3<T>& euclidean);
29 //! Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude.
30 //! From GLM_GTX_polar_coordinates extension.
31 template <typename T>
32 detail::tvec3<T> polar(const detail::tvec3<T>& euclidean);
3533
36 //! Convert Polar to Euclidean coordinates.
37 //! From GLM_GTX_polar_coordinates extension.
38 template <typename T>
39 detail::tvec3<T> euclidean(const detail::tvec3<T>& polar);
34 //! Convert Polar to Euclidean coordinates.
35 //! From GLM_GTX_polar_coordinates extension.
36 template <typename T>
37 detail::tvec3<T> euclidean(const detail::tvec3<T>& polar);
4038
41 ///@}
42
43 }//namespace polar_coordinates
44 }//namespace gtx
39 /// @}
40 }//namespace polar_coordinates
41 }//namespace gtx
4542 }//namespace glm
4643
4744 #include "polar_coordinates.inl"
1919 # pragma message("GLM: GLM_GTX_projection extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace projection ///< GLM_GTX_projection extension: Projection of a vector to other one
2325 {
24 namespace test{
25 void main_gtx_projection();
26 }//namespace test
26 /// \addtogroup gtx_projection
27 /// @{
2728
28 namespace gtx{
29 //! GLM_GTX_projection extension: Projection of a vector to other one
30 namespace projection
31 {
32 /// \addtogroup gtx_projection
33 ///@{
29 //! Projects x on Normal.
30 //! From GLM_GTX_projection extension.
31 template <typename T>
32 detail::tvec2<T> proj(
33 detail::tvec2<T> const & x,
34 detail::tvec2<T> const & Normal);
35
36 //! Projects x on Normal.
37 //! From GLM_GTX_projection extension.
38 template <typename T>
39 detail::tvec3<T> proj(
40 detail::tvec3<T> const & x,
41 detail::tvec3<T> const & Normal);
3442
35 //! Projects x on Normal.
36 //! From GLM_GTX_projection extension.
37 template <typename T>
38 detail::tvec2<T> proj(
39 detail::tvec2<T> const & x,
40 detail::tvec2<T> const & Normal);
41
42 //! Projects x on Normal.
43 //! From GLM_GTX_projection extension.
44 template <typename T>
45 detail::tvec3<T> proj(
46 detail::tvec3<T> const & x,
47 detail::tvec3<T> const & Normal);
43 //! Projects x on Normal.
44 //! From GLM_GTX_projection extension.
45 template <typename T>
46 detail::tvec4<T> proj(
47 detail::tvec4<T> const & x,
48 detail::tvec4<T> const & Normal);
4849
49 //! Projects x on Normal.
50 //! From GLM_GTX_projection extension.
51 template <typename T>
52 detail::tvec4<T> proj(
53 detail::tvec4<T> const & x,
54 detail::tvec4<T> const & Normal);
55
56 ///@}
57
58 }//namespace projection
59 }//namespace gtx
50 /// @}
51 }//namespace projection
52 }//namespace gtx
6053 }//namespace glm
6154
6255 #include "projection.inl"
2424 # pragma message("GLM: GLM_GTX_quaternion extension included")
2525 #endif
2626
27 namespace glm
27 namespace glm{
28 namespace gtx{
29 namespace quaternion ///< GLM_GTX_quaternion extension: Quaternion types and functions
2830 {
29 namespace gtx{
30 //! GLM_GTX_quaternion extension: Quaternion types and functions
31 namespace quaternion
32 {
33 using namespace gtc::quaternion;
34
35 /// \addtogroup gtx_quaternion
36 ///@{
37
38 //! Compute a cross product between a quaternion and a vector.
39 //! From GLM_GTX_quaternion extension.
40 template <typename valType>
41 detail::tvec3<valType> cross(
42 detail::tquat<valType> const & q,
43 detail::tvec3<valType> const & v);
44
45 //! Compute a cross product between a vector and a quaternion.
46 //! From GLM_GTX_quaternion extension.
47 template <typename valType>
48 detail::tvec3<valType> cross(
49 detail::tvec3<valType> const & v,
50 detail::tquat<valType> const & q);
51
52 //! Compute a point on a path according squad equation.
53 //! q1 and q2 are control points; s1 and s2 are intermediate control points.
54 //! From GLM_GTX_quaternion extension.
55 template <typename valType>
56 detail::tquat<valType> squad(
57 detail::tquat<valType> const & q1,
58 detail::tquat<valType> const & q2,
59 detail::tquat<valType> const & s1,
60 detail::tquat<valType> const & s2,
61 valType const & h);
62
63 //! Returns an intermediate control point for squad interpolation.
64 //! From GLM_GTX_quaternion extension.
65 template <typename valType>
66 detail::tquat<valType> intermediate(
67 detail::tquat<valType> const & prev,
68 detail::tquat<valType> const & curr,
69 detail::tquat<valType> const & next);
70
71 //! Returns a exp of a quaternion.
72 //! From GLM_GTX_quaternion extension.
73 template <typename valType>
74 detail::tquat<valType> exp(
75 detail::tquat<valType> const & q,
76 valType const & exponent);
77
78 //! Returns a log of a quaternion.
79 //! From GLM_GTX_quaternion extension.
80 template <typename valType>
81 detail::tquat<valType> log(
82 detail::tquat<valType> const & q);
83
84 //! Returns x raised to the y power.
85 //! From GLM_GTX_quaternion extension.
86 template <typename valType>
87 detail::tquat<valType> pow(
88 detail::tquat<valType> const & x,
89 valType const & y);
90
91 //! Returns quarternion square root.
92 //! From GLM_GTX_quaternion extension.
93 //template <typename valType>
94 //detail::tquat<valType> sqrt(
95 // detail::tquat<valType> const & q);
96
97 //! Rotates a 3 components vector by a quaternion.
98 //! From GLM_GTX_transform extension.
99 template <typename valType>
100 detail::tvec3<valType> rotate(
101 detail::tquat<valType> const & q,
102 detail::tvec3<valType> const & v);
103
104 //! Rotates a 4 components vector by a quaternion.
105 //! From GLM_GTX_transform extension.
106 template <typename valType>
107 detail::tvec4<valType> rotate(
108 detail::tquat<valType> const & q,
109 detail::tvec4<valType> const & v);
31 using namespace gtc::quaternion;
32
33 /// \addtogroup gtx_quaternion
34 ///@{
35
36 //! Compute a cross product between a quaternion and a vector.
37 //! From GLM_GTX_quaternion extension.
38 template <typename valType>
39 detail::tvec3<valType> cross(
40 detail::tquat<valType> const & q,
41 detail::tvec3<valType> const & v);
42
43 //! Compute a cross product between a vector and a quaternion.
44 //! From GLM_GTX_quaternion extension.
45 template <typename valType>
46 detail::tvec3<valType> cross(
47 detail::tvec3<valType> const & v,
48 detail::tquat<valType> const & q);
49
50 //! Compute a point on a path according squad equation.
51 //! q1 and q2 are control points; s1 and s2 are intermediate control points.
52 //! From GLM_GTX_quaternion extension.
53 template <typename valType>
54 detail::tquat<valType> squad(
55 detail::tquat<valType> const & q1,
56 detail::tquat<valType> const & q2,
57 detail::tquat<valType> const & s1,
58 detail::tquat<valType> const & s2,
59 valType const & h);
60
61 //! Returns an intermediate control point for squad interpolation.
62 //! From GLM_GTX_quaternion extension.
63 template <typename valType>
64 detail::tquat<valType> intermediate(
65 detail::tquat<valType> const & prev,
66 detail::tquat<valType> const & curr,
67 detail::tquat<valType> const & next);
68
69 //! Returns a exp of a quaternion.
70 //! From GLM_GTX_quaternion extension.
71 template <typename valType>
72 detail::tquat<valType> exp(
73 detail::tquat<valType> const & q,
74 valType const & exponent);
75
76 //! Returns a log of a quaternion.
77 //! From GLM_GTX_quaternion extension.
78 template <typename valType>
79 detail::tquat<valType> log(
80 detail::tquat<valType> const & q);
81
82 //! Returns x raised to the y power.
83 //! From GLM_GTX_quaternion extension.
84 template <typename valType>
85 detail::tquat<valType> pow(
86 detail::tquat<valType> const & x,
87 valType const & y);
88
89 //! Returns quarternion square root.
90 //! From GLM_GTX_quaternion extension.
91 //template <typename valType>
92 //detail::tquat<valType> sqrt(
93 // detail::tquat<valType> const & q);
94
95 //! Rotates a 3 components vector by a quaternion.
96 //! From GLM_GTX_transform extension.
97 template <typename valType>
98 detail::tvec3<valType> rotate(
99 detail::tquat<valType> const & q,
100 detail::tvec3<valType> const & v);
101
102 //! Rotates a 4 components vector by a quaternion.
103 //! From GLM_GTX_transform extension.
104 template <typename valType>
105 detail::tvec4<valType> rotate(
106 detail::tquat<valType> const & q,
107 detail::tvec4<valType> const & v);
110108
111 //! Returns the quaternion rotation angle.
112 //! From GLM_GTX_quaternion extension.
113 template <typename valType>
114 valType angle(
115 detail::tquat<valType> const & x);
116
117 //! Returns the q rotation axis.
118 //! From GLM_GTX_quaternion extension.
119 template <typename valType>
120 detail::tvec3<valType> axis(
121 detail::tquat<valType> const & x);
122
123 //! Build a quaternion from an angle and a normalized axis.
124 //! From GLM_GTX_quaternion extension.
125 template <typename valType>
126 detail::tquat<valType> angleAxis(
127 valType const & angle,
128 valType const & x,
129 valType const & y,
130 valType const & z);
131
132 //! Build a quaternion from an angle and a normalized axis.
133 //! From GLM_GTX_quaternion extension.
134 template <typename valType>
135 detail::tquat<valType> angleAxis(
136 valType const & angle,
137 detail::tvec3<valType> const & axis);
138
139 //! Extract the real component of a quaternion.
140 //! From GLM_GTX_quaternion extension.
141 template <typename valType>
142 valType extractRealComponent(
143 detail::tquat<valType> const & q);
144
145 //! Returns roll value of euler angles.
146 //! From GLM_GTX_quaternion extension.
147 template <typename valType>
148 valType roll(
149 detail::tquat<valType> const & x);
150
151 //! Returns pitch value of euler angles.
152 //! From GLM_GTX_quaternion extension.
153 template <typename valType>
154 valType pitch(
155 detail::tquat<valType> const & x);
156
157 //! Returns yaw value of euler angles.
158 //! From GLM_GTX_quaternion extension.
159 template <typename valType>
160 valType yaw(
161 detail::tquat<valType> const & x);
109 //! Returns the quaternion rotation angle.
110 //! From GLM_GTX_quaternion extension.
111 template <typename valType>
112 valType angle(
113 detail::tquat<valType> const & x);
114
115 //! Returns the q rotation axis.
116 //! From GLM_GTX_quaternion extension.
117 template <typename valType>
118 detail::tvec3<valType> axis(
119 detail::tquat<valType> const & x);
120
121 //! Build a quaternion from an angle and a normalized axis.
122 //! From GLM_GTX_quaternion extension.
123 template <typename valType>
124 detail::tquat<valType> angleAxis(
125 valType const & angle,
126 valType const & x,
127 valType const & y,
128 valType const & z);
129
130 //! Build a quaternion from an angle and a normalized axis.
131 //! From GLM_GTX_quaternion extension.
132 template <typename valType>
133 detail::tquat<valType> angleAxis(
134 valType const & angle,
135 detail::tvec3<valType> const & axis);
136
137 //! Extract the real component of a quaternion.
138 //! From GLM_GTX_quaternion extension.
139 template <typename valType>
140 valType extractRealComponent(
141 detail::tquat<valType> const & q);
142
143 //! Returns roll value of euler angles in degrees.
144 //! From GLM_GTX_quaternion extension.
145 template <typename valType>
146 valType roll(
147 detail::tquat<valType> const & x);
148
149 //! Returns pitch value of euler angles in degrees.
150 //! From GLM_GTX_quaternion extension.
151 template <typename valType>
152 valType pitch(
153 detail::tquat<valType> const & x);
154
155 //! Returns yaw value of euler angles in degrees.
156 //! From GLM_GTX_quaternion extension.
157 template <typename valType>
158 valType yaw(
159 detail::tquat<valType> const & x);
162160
163 //! Returns euler angles, yitch as x, yaw as y, roll as z.
164 //! From GLM_GTX_quaternion extension.
165 template <typename valType>
166 detail::tvec3<valType> eularAngles(
167 detail::tquat<valType> const & x);
168
169 //! Converts a quaternion to a 3 * 3 matrix.
170 //! From GLM_GTX_quaternion extension.
171 template <typename valType>
172 detail::tmat3x3<valType> toMat3(
173 detail::tquat<valType> const & x){return gtc::quaternion::mat3_cast(x);}
174
175 //! Converts a quaternion to a 4 * 4 matrix.
176 //! From GLM_GTX_quaternion extension.
177 template <typename valType>
178 detail::tmat4x4<valType> toMat4(
179 detail::tquat<valType> const & x){return gtc::quaternion::mat4_cast(x);}
180
181 //! Converts a 3 * 3 matrix to a quaternion.
182 //! From GLM_GTX_quaternion extension.
183 template <typename valType>
184 detail::tquat<valType> toQuat(
185 detail::tmat3x3<valType> const & x){return gtc::quaternion::quat_cast(x);}
186
187 //! Converts a 4 * 4 matrix to a quaternion.
188 //! From GLM_GTX_quaternion extension.
189 template <typename valType>
190 detail::tquat<valType> toQuat(
191 detail::tmat4x4<valType> const & x){return gtc::quaternion::quat_cast(x);}
192
193 //! Quaternion interpolation using the rotation short path.
194 //! From GLM_GTX_quaternion extension.
195 template <typename T>
196 detail::tquat<T> shortMix(
197 detail::tquat<T> const & x,
198 detail::tquat<T> const & y,
199 T const & a);
200
201 //! Quaternion normalized linear interpolation.
202 //! From GLM_GTX_quaternion extension.
203 template <typename T>
204 detail::tquat<T> fastMix(
205 detail::tquat<T> const & x,
206 detail::tquat<T> const & y,
207 T const & a);
208
209 ///@}
210
211 }//namespace quaternion
212 }//namespace gtx
161 //! Returns euler angles, yitch as x, yaw as y, roll as z.
162 //! From GLM_GTX_quaternion extension.
163 template <typename valType>
164 detail::tvec3<valType> eulerAngles(
165 detail::tquat<valType> const & x);
166
167 //! Converts a quaternion to a 3 * 3 matrix.
168 //! From GLM_GTX_quaternion extension.
169 template <typename valType>
170 detail::tmat3x3<valType> toMat3(
171 detail::tquat<valType> const & x){return gtc::quaternion::mat3_cast(x);}
172
173 //! Converts a quaternion to a 4 * 4 matrix.
174 //! From GLM_GTX_quaternion extension.
175 template <typename valType>
176 detail::tmat4x4<valType> toMat4(
177 detail::tquat<valType> const & x){return gtc::quaternion::mat4_cast(x);}
178
179 //! Converts a 3 * 3 matrix to a quaternion.
180 //! From GLM_GTX_quaternion extension.
181 template <typename valType>
182 detail::tquat<valType> toQuat(
183 detail::tmat3x3<valType> const & x){return gtc::quaternion::quat_cast(x);}
184
185 //! Converts a 4 * 4 matrix to a quaternion.
186 //! From GLM_GTX_quaternion extension.
187 template <typename valType>
188 detail::tquat<valType> toQuat(
189 detail::tmat4x4<valType> const & x){return gtc::quaternion::quat_cast(x);}
190
191 //! Quaternion interpolation using the rotation short path.
192 //! From GLM_GTX_quaternion extension.
193 template <typename T>
194 detail::tquat<T> shortMix(
195 detail::tquat<T> const & x,
196 detail::tquat<T> const & y,
197 T const & a);
198
199 //! Quaternion normalized linear interpolation.
200 //! From GLM_GTX_quaternion extension.
201 template <typename T>
202 detail::tquat<T> fastMix(
203 detail::tquat<T> const & x,
204 detail::tquat<T> const & y,
205 T const & a);
206
207 /// @}
208 }//namespace quaternion
209 }//namespace gtx
213210 } //namespace glm
214211
215212 #include "quaternion.inl"
148148 detail::tquat<T> const & x
149149 )
150150 {
151 return acos(x.w) * T(2);
151 return glm::degrees(acos(x.w) * T(2));
152152 }
153153
154154 template <typename T>
214214 detail::tquat<valType> const & q
215215 )
216216 {
217 return atan2(valType(2) * (q.x * q.y + q.w * q.z), q.w * q.w + q.x * q.x - q.y * q.y - q.z * q.z);
217 return glm::degrees(atan2(valType(2) * (q.x * q.y + q.w * q.z), q.w * q.w + q.x * q.x - q.y * q.y - q.z * q.z));
218218 }
219219
220220 template <typename valType>
223223 detail::tquat<valType> const & q
224224 )
225225 {
226 return atan2(valType(2) * (q.y * q.z + q.w * q.x), q.w * q.w - q.x * q.x - q.y * q.y + q.z * q.z);
226 return glm::degrees(atan2(valType(2) * (q.y * q.z + q.w * q.x), q.w * q.w - q.x * q.x - q.y * q.y + q.z * q.z));
227227 }
228228
229229 template <typename valType>
232232 detail::tquat<valType> const & q
233233 )
234234 {
235 return asin(valType(-2) * (q.x * q.z - q.w * q.y));
235 return glm::degrees(asin(valType(-2) * (q.x * q.z - q.w * q.y)));
236236 }
237237
238238 template <typename valType>
239 GLM_FUNC_QUALIFIER detail::tvec3<valType> eularAngles
239 GLM_FUNC_QUALIFIER detail::tvec3<valType> eulerAngles
240240 (
241241 detail::tquat<valType> const & x
242242 )
255255 if(a <= typename detail::tquat<T>::value_type(0)) return x;
256256 if(a >= typename detail::tquat<T>::value_type(1)) return y;
257257
258 float fCos = dot(x, y);
258 T fCos = dot(x, y);
259259 detail::tquat<T> y2(y); //BUG!!! tquat<T> y2;
260 if(fCos < typename detail::tquat<T>::value_type(0))
260 if(fCos < T(0))
261261 {
262262 y2 = -y;
263263 fCos = -fCos;
264264 }
265265
266266 //if(fCos > 1.0f) // problem
267 float k0, k1;
268 if(fCos > typename detail::tquat<T>::value_type(0.9999))
269 {
270 k0 = typename detail::tquat<T>::value_type(1) - a;
271 k1 = typename detail::tquat<T>::value_type(0) + a; //BUG!!! 1.0f + a;
267 T k0, k1;
268 if(fCos > T(0.9999))
269 {
270 k0 = T(1) - a;
271 k1 = T(0) + a; //BUG!!! 1.0f + a;
272272 }
273273 else
274274 {
275 typename detail::tquat<T>::value_type fSin = sqrt(T(1) - fCos * fCos);
276 typename detail::tquat<T>::value_type fAngle = atan(fSin, fCos);
277 typename detail::tquat<T>::value_type fOneOverSin = T(1) / fSin;
278 k0 = sin((typename detail::tquat<T>::value_type(1) - a) * fAngle) * fOneOverSin;
279 k1 = sin((typename detail::tquat<T>::value_type(0) + a) * fAngle) * fOneOverSin;
275 T fSin = sqrt(T(1) - fCos * fCos);
276 T fAngle = atan(fSin, fCos);
277 T fOneOverSin = T(1) / fSin;
278 k0 = sin((T(1) - a) * fAngle) * fOneOverSin;
279 k1 = sin((T(0) + a) * fAngle) * fOneOverSin;
280280 }
281281
282282 return detail::tquat<T>(
294294 T const & a
295295 )
296296 {
297 return glm::normalize(x * (1 - a) + (y * a));
297 return glm::normalize(x * (T(1) - a) + (y * a));
298298 }
299299
300300 }//namespace quaternion
2424
2525 namespace glm{
2626 namespace gtx{
27 //! GLM_GTX_random extension: Generate random number from various distribution methods
28 namespace random
27 namespace random ///< GLM_GTX_random extension: Generate random number from various distribution methods
2928 {
3029 /// \addtogroup gtx_random
31 ///@{
30 /// @{
3231
3332 //! Generate a random number in the interval [-1, 1], according a linear distribution.
3433 //! From GLM_GTX_random extension.
1616 template <>
1717 GLM_FUNC_QUALIFIER float signedRand1()
1818 {
19 #if(GLM_COMPILER & GLM_COMPILER_VC)
19 #if(GLM_COMPILER & GLM_COMPILER_VC)// && (GLM_COMPILER < GLM_COMPILER_VC2010)
2020 #define RAND_SHIFT_NUM 5
2121 #else
2222 #define RAND_SHIFT_NUM 0
2121 #endif
2222
2323 namespace glm{
24 namespace gtx
24 namespace gtx{
25 namespace raw_data ///< GLM_GTX_raw_data extension: Projection of a vector to other one
2526 {
26 //! GLM_GTX_raw_data extension: Projection of a vector to other one
27 namespace raw_data
28 {
29 using namespace gtc::type_precision;
27 using namespace gtc::type_precision;
3028
31 /// \addtogroup gtx_raw_data
32 ///@{
29 /// \addtogroup gtx_raw_data
30 ///@{
3331
34 //! Type for byte numbers.
35 //! From GLM_GTX_raw_data extension.
36 typedef uint8 byte;
32 //! Type for byte numbers.
33 //! From GLM_GTX_raw_data extension.
34 typedef uint8 byte;
3735
38 //! Type for word numbers.
39 //! From GLM_GTX_raw_data extension.
40 typedef uint16 word;
36 //! Type for word numbers.
37 //! From GLM_GTX_raw_data extension.
38 typedef uint16 word;
4139
42 //! Type for dword numbers.
43 //! From GLM_GTX_raw_data extension.
44 typedef uint32 dword;
40 //! Type for dword numbers.
41 //! From GLM_GTX_raw_data extension.
42 typedef uint32 dword;
4543
46 //! Type for qword numbers.
47 //! From GLM_GTX_raw_data extension.
48 typedef uint64 qword;
44 //! Type for qword numbers.
45 //! From GLM_GTX_raw_data extension.
46 typedef uint64 qword;
4947
50 ///@}
51 }
52 }//namespace gtx
53 }//namespace glm
48 ///@}
49 }// namespace raw_data
50 }// namespace gtx
51 }// namespace glm
5452
5553 #include "raw_data.inl"
5654
1616 # pragma message("GLM: GLM_GTX_reciprocal extension included")
1717 #endif
1818
19 namespace glm
19 namespace glm{
20 namespace gtx{
21 namespace reciprocal ///< GLM_GTX_reciprocal extension: Define secant, cosecant and cotangent functions.
2022 {
21 namespace test{
22 void main_gtx_reciprocal();
23 }//namespace test
23 /// \addtogroup gtx_reciprocal
24 /// @{
2425
25 namespace gtx{
26 //! GLM_GTX_reciprocal extension: Define secant, cosecant and cotangent functions.
27 namespace reciprocal
28 {
29 /// \addtogroup gtx_reciprocal
30 ///@{
26 //! Secant function.
27 //! hypotenuse / adjacent or 1 / cos(x)
28 //! From GLM_GTX_reciprocal extension.
29 template <typename genType>
30 genType sec(genType const & angle);
3131
32 //! Secant function.
33 //! hypotenuse / adjacent or 1 / cos(x)
34 //! From GLM_GTX_reciprocal extension.
35 template <typename genType>
36 genType sec(genType const & angle);
32 //! Cosecant function.
33 //! hypotenuse / opposite or 1 / sin(x)
34 //! From GLM_GTX_reciprocal extension.
35 template <typename genType>
36 genType csc(genType const & angle);
37
38 //! Cotangent function.
39 //! adjacent / opposite or 1 / tan(x)
40 //! From GLM_GTX_reciprocal extension.
41 template <typename genType>
42 genType cot(genType const & angle);
3743
38 //! Cosecant function.
39 //! hypotenuse / opposite or 1 / sin(x)
40 //! From GLM_GTX_reciprocal extension.
41 template <typename genType>
42 genType csc(genType const & angle);
44 //! Inverse secant function.
45 //! From GLM_GTX_reciprocal extension.
46 template <typename genType>
47 genType asec(genType const & x);
48
49 //! Inverse cosecant function.
50 //! From GLM_GTX_reciprocal extension.
51 template <typename genType>
52 genType acsc(genType const & x);
4353
44 //! Cotangent function.
45 //! adjacent / opposite or 1 / tan(x)
46 //! From GLM_GTX_reciprocal extension.
47 template <typename genType>
48 genType cot(genType const & angle);
54 //! Inverse cotangent function.
55 //! From GLM_GTX_reciprocal extension.
56 template <typename genType>
57 genType acot(genType const & x);
4958
50 //! Inverse secant function.
51 //! From GLM_GTX_reciprocal extension.
52 template <typename genType>
53 genType asec(genType const & x);
59 //! Secant hyperbolic function.
60 //! From GLM_GTX_reciprocal extension.
61 template <typename genType>
62 genType sech(genType const & angle);
5463
55 //! Inverse cosecant function.
56 //! From GLM_GTX_reciprocal extension.
57 template <typename genType>
58 genType acsc(genType const & x);
64 //! Cosecant hyperbolic function.
65 //! From GLM_GTX_reciprocal extension.
66 template <typename genType>
67 genType csch(genType const & angle);
5968
60 //! Inverse cotangent function.
61 //! From GLM_GTX_reciprocal extension.
62 template <typename genType>
63 genType acot(genType const & x);
69 //! Cotangent hyperbolic function.
70 //! From GLM_GTX_reciprocal extension.
71 template <typename genType>
72 genType coth(genType const & angle);
6473
65 //! Secant hyperbolic function.
66 //! From GLM_GTX_reciprocal extension.
67 template <typename genType>
68 genType sech(genType const & angle);
74 //! Inverse secant hyperbolic function.
75 //! From GLM_GTX_reciprocal extension.
76 template <typename genType>
77 genType asech(genType const & x);
6978
70 //! Cosecant hyperbolic function.
71 //! From GLM_GTX_reciprocal extension.
72 template <typename genType>
73 genType csch(genType const & angle);
79 //! Inverse cosecant hyperbolic function.
80 //! From GLM_GTX_reciprocal extension.
81 template <typename genType>
82 genType acsch(genType const & x);
7483
75 //! Cotangent hyperbolic function.
76 //! From GLM_GTX_reciprocal extension.
77 template <typename genType>
78 genType coth(genType const & angle);
84 //! Inverse cotangent hyperbolic function.
85 //! From GLM_GTX_reciprocal extension.
86 template <typename genType>
87 genType acoth(genType const & x);
7988
80 //! Inverse secant hyperbolic function.
81 //! From GLM_GTX_reciprocal extension.
82 template <typename genType>
83 genType asech(genType const & x);
84
85 //! Inverse cosecant hyperbolic function.
86 //! From GLM_GTX_reciprocal extension.
87 template <typename genType>
88 genType acsch(genType const & x);
89
90 //! Inverse cotangent hyperbolic function.
91 //! From GLM_GTX_reciprocal extension.
92 template <typename genType>
93 genType acoth(genType const & x);
94
95 ///@}
96
97 }//namespace reciprocal
98 }//namespace gtx
89 /// @}
90 }//namespace reciprocal
91 }//namespace gtx
9992 }//namespace glm
10093
10194 #include "reciprocal.inl"
2020 # pragma message("GLM: GLM_GTX_rotate_vector extension included")
2121 #endif
2222
23 namespace glm
23 namespace glm{
24 namespace gtx{
25 namespace rotate_vector ///< GLM_GTX_rotate_vector extension: Function to directly rotate a vector
2426 {
25 namespace gtx{
26 //! GLM_GTX_rotate_vector extension: Function to directly rotate a vector
27 namespace rotate_vector
28 {
29 using namespace transform;
27 using namespace transform;
3028
31 /// \addtogroup gtx_rotate_vector
32 ///@{
29 /// \addtogroup gtx_rotate_vector
30 /// @{
3331
34 //! Rotate a two dimensional vector.
35 //! From GLM_GTX_rotate_vector extension.
36 template <typename T>
37 detail::tvec2<T> rotate(
38 const detail::tvec2<T>& v,
39 T angle);
32 //! Rotate a two dimensional vector.
33 //! From GLM_GTX_rotate_vector extension.
34 template <typename T>
35 detail::tvec2<T> rotate(
36 detail::tvec2<T> const & v,
37 T const & angle);
4038
41 //! Rotate a three dimensional vector around an axis.
42 //! From GLM_GTX_rotate_vector extension.
43 template <typename T>
44 detail::tvec3<T> rotate(
45 const detail::tvec3<T>& v,
46 T angle,
47 const detail::tvec3<T>& normal);
39 //! Rotate a three dimensional vector around an axis.
40 //! From GLM_GTX_rotate_vector extension.
41 template <typename T>
42 detail::tvec3<T> rotate(
43 detail::tvec3<T> const & v,
44 T const & angle,
45 detail::tvec3<T> const & normal);
4846
49 //! Rotate a four dimensional vector around an axis.
50 //! From GLM_GTX_rotate_vector extension.
51 template <typename T>
52 detail::tvec4<T> rotate(
53 const detail::tvec4<T>& v, T angle,
54 const detail::tvec3<T>& normal);
47 //! Rotate a four dimensional vector around an axis.
48 //! From GLM_GTX_rotate_vector extension.
49 template <typename T>
50 detail::tvec4<T> rotate(
51 detail::tvec4<T> const & v,
52 T const & angle,
53 detail::tvec3<T> const & normal);
5554
56 //! Rotate a three dimensional vector around the X axis.
57 //! From GLM_GTX_rotate_vector extension.
58 template <typename T>
59 detail::tvec3<T> rotateX(
60 const detail::tvec3<T>& v,
61 T angle);
55 //! Rotate a three dimensional vector around the X axis.
56 //! From GLM_GTX_rotate_vector extension.
57 template <typename T>
58 detail::tvec3<T> rotateX(
59 detail::tvec3<T> const & v,
60 T const & angle);
6261
63 //! Rotate a three dimensional vector around the Y axis.
64 //! From GLM_GTX_rotate_vector extension.
65 template <typename T>
66 detail::tvec3<T> rotateY(
67 const detail::tvec3<T>& v,
68 T angle);
62 //! Rotate a three dimensional vector around the Y axis.
63 //! From GLM_GTX_rotate_vector extension.
64 template <typename T>
65 detail::tvec3<T> rotateY(
66 detail::tvec3<T> const & v,
67 T const & angle);
6968
70 //! Rotate a three dimensional vector around the Z axis.
71 //! From GLM_GTX_rotate_vector extension.
72 template <typename T>
73 detail::tvec3<T> rotateZ(
74 const detail::tvec3<T>& v,
75 T angle);
69 //! Rotate a three dimensional vector around the Z axis.
70 //! From GLM_GTX_rotate_vector extension.
71 template <typename T>
72 detail::tvec3<T> rotateZ(
73 detail::tvec3<T> const & v,
74 T const & angle);
7675
77 //! Rotate a four dimentionnals vector around the X axis.
78 //! From GLM_GTX_rotate_vector extension.
79 template <typename T>
80 detail::tvec4<T> rotateX(
81 const detail::tvec4<T>& v,
82 T angle);
76 //! Rotate a four dimentionnals vector around the X axis.
77 //! From GLM_GTX_rotate_vector extension.
78 template <typename T>
79 detail::tvec4<T> rotateX(
80 detail::tvec4<T> const & v,
81 T const & angle);
8382
84 //! Rotate a four dimensional vector around the X axis.
85 //! From GLM_GTX_rotate_vector extension.
86 template <typename T>
87 detail::tvec4<T> rotateY(
88 const detail::tvec4<T>& v,
89 T angle);
83 //! Rotate a four dimensional vector around the X axis.
84 //! From GLM_GTX_rotate_vector extension.
85 template <typename T>
86 detail::tvec4<T> rotateY(
87 detail::tvec4<T> const & v,
88 T const & angle);
9089
91 //! Rotate a four dimensional vector around the X axis.
92 //! From GLM_GTX_rotate_vector extension.
93 template <typename T>
94 detail::tvec4<T> rotateZ(
95 const detail::tvec4<T>& v,
96 T angle);
90 //! Rotate a four dimensional vector around the X axis.
91 //! From GLM_GTX_rotate_vector extension.
92 template <typename T>
93 detail::tvec4<T> rotateZ(
94 detail::tvec4<T> const & v,
95 T const & angle);
9796
98 //! Build a rotation matrix from a normal and a up vector.
99 //! From GLM_GTX_rotate_vector extension.
100 template <typename T>
101 detail::tmat4x4<T> orientation(
102 const detail::tvec3<T>& Normal,
103 const detail::tvec3<T>& Up);
97 //! Build a rotation matrix from a normal and a up vector.
98 //! From GLM_GTX_rotate_vector extension.
99 template <typename T>
100 detail::tmat4x4<T> orientation(
101 detail::tvec3<T> const & Normal,
102 detail::tvec3<T> const & Up);
104103
105 ///@}
106
107 }//namespace rotate_vector
108 }//namespace gtx
104 /// @}
105 }//namespace rotate_vector
106 }//namespace gtx
109107 }//namespace glm
110108
111109 #include "rotate_vector.inl"
1212 {
1313 template <typename T>
1414 GLM_FUNC_QUALIFIER detail::tvec2<T> rotate(
15 const detail::tvec2<T>& v,
16 T angle)
15 detail::tvec2<T> const & v,
16 T const & angle)
1717 {
1818 detail::tvec2<T> Result;
1919 const T Cos = cos(radians(angle));
2525
2626 template <typename T>
2727 GLM_FUNC_QUALIFIER detail::tvec3<T> rotate(
28 const detail::tvec3<T>& v, T angle,
29 const detail::tvec3<T>& normal)
28 const detail::tvec3<T> & v,
29 T const & angle,
30 const detail::tvec3<T> & normal)
3031 {
31 return detail::tmat3x3<T>(transform::rotate(angle, normal)) * v;
32 return detail::tmat3x3<T>(glm::gtx::transform::rotate(angle, normal)) * v;
3233 }
3334 /*
3435 template <typename T>
35 GLM_FUNC_QUALIFIER detail::tvec3<T> rotateGTX(const detail::tvec3<T>& x, T angle, const detail::tvec3<T>& normal)
36 GLM_FUNC_QUALIFIER detail::tvec3<T> rotateGTX(
37 const detail::tvec3<T>& x,
38 T angle,
39 const detail::tvec3<T>& normal)
3640 {
3741 const T Cos = cos(radians(angle));
3842 const T Sin = sin(radians(angle));
4145 */
4246 template <typename T>
4347 GLM_FUNC_QUALIFIER detail::tvec4<T> rotate(
44 const detail::tvec4<T>& v,
45 T angle,
46 const detail::tvec3<T>& normal)
48 detail::tvec4<T> const & v,
49 T const & angle,
50 detail::tvec3<T> const & normal)
4751 {
48 return transform::rotate(angle, normal) * v;
52 return glm::gtx::transform::rotate(angle, normal) * v;
4953 }
5054
5155 template <typename T>
5256 GLM_FUNC_QUALIFIER detail::tvec3<T> rotateX(
53 const detail::tvec3<T>& v,
54 T angle)
57 detail::tvec3<T> const & v,
58 T const & angle)
5559 {
5660 detail::tvec3<T> Result = v;
5761 const T Cos = cos(radians(angle));
6367
6468 template <typename T>
6569 GLM_FUNC_QUALIFIER detail::tvec3<T> rotateY(
66 const detail::tvec3<T>& v,
67 T angle)
70 detail::tvec3<T> const & v,
71 T const & angle)
6872 {
6973 detail::tvec3<T> Result = v;
7074 const T Cos = cos(radians(angle));
7680
7781 template <typename T>
7882 GLM_FUNC_QUALIFIER detail::tvec3<T> rotateZ(
79 const detail::tvec3<T>& v,
80 T angle)
83 detail::tvec3<T> const & v,
84 T const & angle)
8185 {
8286 detail::tvec3<T> Result = v;
8387 const T Cos = cos(radians(angle));
8993
9094 template <typename T>
9195 GLM_FUNC_QUALIFIER detail::tvec4<T> rotateX(
92 const detail::tvec4<T>& v,
93 T angle)
96 detail::tvec4<T> const & v,
97 T const & angle)
9498 {
9599 detail::tvec4<T> Result = v;
96100 const T Cos = cos(radians(angle));
102106
103107 template <typename T>
104108 GLM_FUNC_QUALIFIER detail::tvec4<T> rotateY(
105 const detail::tvec4<T>& v,
106 T angle)
109 detail::tvec4<T> const & v,
110 T const & angle)
107111 {
108112 detail::tvec4<T> Result = v;
109113 const T Cos = cos(radians(angle));
115119
116120 template <typename T>
117121 GLM_FUNC_QUALIFIER detail::tvec4<T> rotateZ(
118 const detail::tvec4<T>& v,
119 T angle)
122 detail::tvec4<T> const & v,
123 T const & angle)
120124 {
121125 detail::tvec4<T> Result = v;
122126 const T Cos = cos(radians(angle));
128132
129133 template <typename T>
130134 GLM_FUNC_QUALIFIER detail::tmat4x4<T> orientation(
131 const detail::tvec3<T>& Normal,
132 const detail::tvec3<T>& Up)
135 detail::tvec3<T> const & Normal,
136 detail::tvec3<T> const & Up)
133137 {
134138 if(all(equal(Normal, Up)))
135139 return detail::tmat4x4<T>(T(1));
136140
137141 detail::tvec3<T> RotationAxis = cross(Up, Normal);
138142 T Angle = degrees(acos(dot(Normal, Up)));
139 return rotate(Angle, RotationAxis);
143 return glm::gtx::transform::rotate(Angle, RotationAxis);
140144 }
141145
142146 }//namespace rotate_vector
2727 # pragma message("GLM: GLM_GTX_simd_mat4 extension included")
2828 #endif
2929
30 namespace glm
30 namespace glm{
31 namespace detail
3132 {
32 namespace detail
33 /// 4x4 Matrix implemented using SIMD SEE intrinsics.
34 /// \ingroup gtx_simd_mat4
35 GLM_ALIGNED_STRUCT(16) fmat4x4SIMD
3336 {
34 /// 4x4 Matrix implemented using SIMD SEE intrinsics.
35 /// \ingroup gtx_simd_mat4
36 GLM_ALIGNED_STRUCT(16) fmat4x4SIMD
37 {
38 enum ctor{null};
37 enum ctor{null};
3938
40 typedef float value_type;
41 typedef fvec4SIMD col_type;
42 typedef fvec4SIMD row_type;
43 typedef std::size_t size_type;
44 static size_type value_size();
45 static size_type col_size();
46 static size_type row_size();
47 static bool is_matrix();
39 typedef float value_type;
40 typedef fvec4SIMD col_type;
41 typedef fvec4SIMD row_type;
42 typedef std::size_t size_type;
43 static size_type value_size();
44 static size_type col_size();
45 static size_type row_size();
46 static bool is_matrix();
4847
49 fvec4SIMD Data[4];
48 fvec4SIMD Data[4];
5049
51 //////////////////////////////////////
52 // Constructors
50 //////////////////////////////////////
51 // Constructors
5352
54 fmat4x4SIMD();
55 explicit fmat4x4SIMD(float const & s);
56 explicit fmat4x4SIMD(
57 float const & x0, float const & y0, float const & z0, float const & w0,
58 float const & x1, float const & y1, float const & z1, float const & w1,
59 float const & x2, float const & y2, float const & z2, float const & w2,
60 float const & x3, float const & y3, float const & z3, float const & w3);
61 explicit fmat4x4SIMD(
62 fvec4SIMD const & v0,
63 fvec4SIMD const & v1,
64 fvec4SIMD const & v2,
65 fvec4SIMD const & v3);
66 explicit fmat4x4SIMD(
67 tmat4x4<float> const & m);
53 fmat4x4SIMD();
54 explicit fmat4x4SIMD(float const & s);
55 explicit fmat4x4SIMD(
56 float const & x0, float const & y0, float const & z0, float const & w0,
57 float const & x1, float const & y1, float const & z1, float const & w1,
58 float const & x2, float const & y2, float const & z2, float const & w2,
59 float const & x3, float const & y3, float const & z3, float const & w3);
60 explicit fmat4x4SIMD(
61 fvec4SIMD const & v0,
62 fvec4SIMD const & v1,
63 fvec4SIMD const & v2,
64 fvec4SIMD const & v3);
65 explicit fmat4x4SIMD(
66 tmat4x4<float> const & m);
6867
69 // Conversions
70 //template <typename U>
71 //explicit tmat4x4(tmat4x4<U> const & m);
68 // Conversions
69 //template <typename U>
70 //explicit tmat4x4(tmat4x4<U> const & m);
7271
73 //explicit tmat4x4(tmat2x2<T> const & x);
74 //explicit tmat4x4(tmat3x3<T> const & x);
75 //explicit tmat4x4(tmat2x3<T> const & x);
76 //explicit tmat4x4(tmat3x2<T> const & x);
77 //explicit tmat4x4(tmat2x4<T> const & x);
78 //explicit tmat4x4(tmat4x2<T> const & x);
79 //explicit tmat4x4(tmat3x4<T> const & x);
80 //explicit tmat4x4(tmat4x3<T> const & x);
72 //explicit tmat4x4(tmat2x2<T> const & x);
73 //explicit tmat4x4(tmat3x3<T> const & x);
74 //explicit tmat4x4(tmat2x3<T> const & x);
75 //explicit tmat4x4(tmat3x2<T> const & x);
76 //explicit tmat4x4(tmat2x4<T> const & x);
77 //explicit tmat4x4(tmat4x2<T> const & x);
78 //explicit tmat4x4(tmat3x4<T> const & x);
79 //explicit tmat4x4(tmat4x3<T> const & x);
8180
82 // Accesses
83 fvec4SIMD & operator[](size_type i);
84 fvec4SIMD const & operator[](size_type i) const;
81 // Accesses
82 fvec4SIMD & operator[](size_type i);
83 fvec4SIMD const & operator[](size_type i) const;
8584
86 // Unary updatable operators
87 fmat4x4SIMD & operator= (fmat4x4SIMD const & m);
88 fmat4x4SIMD & operator+= (float const & s);
89 fmat4x4SIMD & operator+= (fmat4x4SIMD const & m);
90 fmat4x4SIMD & operator-= (float const & s);
91 fmat4x4SIMD & operator-= (fmat4x4SIMD const & m);
92 fmat4x4SIMD & operator*= (float const & s);
93 fmat4x4SIMD & operator*= (fmat4x4SIMD const & m);
94 fmat4x4SIMD & operator/= (float const & s);
95 fmat4x4SIMD & operator/= (fmat4x4SIMD const & m);
96 fmat4x4SIMD & operator++ ();
97 fmat4x4SIMD & operator-- ();
98 };
85 // Unary updatable operators
86 fmat4x4SIMD & operator= (fmat4x4SIMD const & m);
87 fmat4x4SIMD & operator+= (float const & s);
88 fmat4x4SIMD & operator+= (fmat4x4SIMD const & m);
89 fmat4x4SIMD & operator-= (float const & s);
90 fmat4x4SIMD & operator-= (fmat4x4SIMD const & m);
91 fmat4x4SIMD & operator*= (float const & s);
92 fmat4x4SIMD & operator*= (fmat4x4SIMD const & m);
93 fmat4x4SIMD & operator/= (float const & s);
94 fmat4x4SIMD & operator/= (fmat4x4SIMD const & m);
95 fmat4x4SIMD & operator++ ();
96 fmat4x4SIMD & operator-- ();
97 };
9998
100 // Binary operators
101 fmat4x4SIMD operator+ (fmat4x4SIMD const & m, float const & s);
102 fmat4x4SIMD operator+ (float const & s, fmat4x4SIMD const & m);
103 fmat4x4SIMD operator+ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
99 // Binary operators
100 fmat4x4SIMD operator+ (fmat4x4SIMD const & m, float const & s);
101 fmat4x4SIMD operator+ (float const & s, fmat4x4SIMD const & m);
102 fmat4x4SIMD operator+ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
104103
105 fmat4x4SIMD operator- (fmat4x4SIMD const & m, float const & s);
106 fmat4x4SIMD operator- (float const & s, fmat4x4SIMD const & m);
107 fmat4x4SIMD operator- (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
104 fmat4x4SIMD operator- (fmat4x4SIMD const & m, float const & s);
105 fmat4x4SIMD operator- (float const & s, fmat4x4SIMD const & m);
106 fmat4x4SIMD operator- (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
108107
109 fmat4x4SIMD operator* (fmat4x4SIMD const & m, float const & s);
110 fmat4x4SIMD operator* (float const & s, fmat4x4SIMD const & m);
108 fmat4x4SIMD operator* (fmat4x4SIMD const & m, float const & s);
109 fmat4x4SIMD operator* (float const & s, fmat4x4SIMD const & m);
111110
112 fvec4SIMD operator* (fmat4x4SIMD const & m, fvec4SIMD const & v);
113 fvec4SIMD operator* (fvec4SIMD const & v, fmat4x4SIMD const & m);
111 fvec4SIMD operator* (fmat4x4SIMD const & m, fvec4SIMD const & v);
112 fvec4SIMD operator* (fvec4SIMD const & v, fmat4x4SIMD const & m);
114113
115 fmat4x4SIMD operator* (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
114 fmat4x4SIMD operator* (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
116115
117 fmat4x4SIMD operator/ (fmat4x4SIMD const & m, float const & s);
118 fmat4x4SIMD operator/ (float const & s, fmat4x4SIMD const & m);
116 fmat4x4SIMD operator/ (fmat4x4SIMD const & m, float const & s);
117 fmat4x4SIMD operator/ (float const & s, fmat4x4SIMD const & m);
119118
120 fvec4SIMD operator/ (fmat4x4SIMD const & m, fvec4SIMD const & v);
121 fvec4SIMD operator/ (fvec4SIMD const & v, fmat4x4SIMD const & m);
119 fvec4SIMD operator/ (fmat4x4SIMD const & m, fvec4SIMD const & v);
120 fvec4SIMD operator/ (fvec4SIMD const & v, fmat4x4SIMD const & m);
122121
123 fmat4x4SIMD operator/ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
122 fmat4x4SIMD operator/ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
124123
125 // Unary constant operators
126 fmat4x4SIMD const operator- (fmat4x4SIMD const & m);
127 fmat4x4SIMD const operator-- (fmat4x4SIMD const & m, int);
128 fmat4x4SIMD const operator++ (fmat4x4SIMD const & m, int);
124 // Unary constant operators
125 fmat4x4SIMD const operator- (fmat4x4SIMD const & m);
126 fmat4x4SIMD const operator-- (fmat4x4SIMD const & m, int);
127 fmat4x4SIMD const operator++ (fmat4x4SIMD const & m, int);
128 }//namespace detail
129129
130 }//namespace detail
130 namespace gtx{
131 namespace simd_mat4 ///< GLM_GTX_simd_mat4 extension: SIMD implementation of mat4 type.
132 {
133 typedef detail::fmat4x4SIMD simdMat4;
131134
132 namespace gtx{
133 //! GLM_GTX_simd_mat4 extension: SIMD implementation of mat4 type.
134 namespace simd_mat4
135 {
136 typedef detail::fmat4x4SIMD simdMat4;
135 /// \addtogroup gtx_simd_mat4
136 ///@{
137137
138 /// \addtogroup gtx_simd_mat4
139 ///@{
138 //! Convert a simdMat4 to a mat4.
139 //! (From GLM_GTX_simd_mat4 extension)
140 detail::tmat4x4<float> mat4_cast(
141 detail::fmat4x4SIMD const & x);
140142
141 //! Convert a simdMat4 to a mat4.
142 //! (From GLM_GTX_simd_mat4 extension)
143 detail::tmat4x4<float> mat4_cast(
144 detail::fmat4x4SIMD const & x);
143 //! Multiply matrix x by matrix y component-wise, i.e.,
144 //! result[i][j] is the scalar product of x[i][j] and y[i][j].
145 //! (From GLM_GTX_simd_mat4 extension).
146 detail::fmat4x4SIMD matrixCompMult(
147 detail::fmat4x4SIMD const & x,
148 detail::fmat4x4SIMD const & y);
145149
146 //! Multiply matrix x by matrix y component-wise, i.e.,
147 //! result[i][j] is the scalar product of x[i][j] and y[i][j].
148 //! (From GLM_GTX_simd_mat4 extension).
149 detail::fmat4x4SIMD matrixCompMult(
150 detail::fmat4x4SIMD const & x,
151 detail::fmat4x4SIMD const & y);
150 //! Treats the first parameter c as a column vector
151 //! and the second parameter r as a row vector
152 //! and does a linear algebraic matrix multiply c * r.
153 //! (From GLM_GTX_simd_mat4 extension).
154 detail::fmat4x4SIMD outerProduct(
155 detail::fvec4SIMD const & c,
156 detail::fvec4SIMD const & r);
152157
153 //! Treats the first parameter c as a column vector
154 //! and the second parameter r as a row vector
155 //! and does a linear algebraic matrix multiply c * r.
156 //! (From GLM_GTX_simd_mat4 extension).
157 detail::fmat4x4SIMD outerProduct(
158 detail::fvec4SIMD const & c,
159 detail::fvec4SIMD const & r);
158 //! Returns the transposed matrix of x
159 //! (From GLM_GTX_simd_mat4 extension).
160 detail::fmat4x4SIMD transpose(
161 detail::fmat4x4SIMD const & x);
160162
161 //! Returns the transposed matrix of x
162 //! (From GLM_GTX_simd_mat4 extension).
163 detail::fmat4x4SIMD transpose(
164 detail::fmat4x4SIMD const & x);
163 //! Return the determinant of a mat4 matrix.
164 //! (From GLM_GTX_simd_mat4 extension).
165 float determinant(
166 detail::fmat4x4SIMD const & m);
165167
166 //! Return the determinant of a mat4 matrix.
167 //! (From GLM_GTX_simd_mat4 extension).
168 float determinant(
169 detail::fmat4x4SIMD const & m);
168 //! Return the inverse of a mat4 matrix.
169 //! (From GLM_GTX_simd_mat4 extension).
170 detail::fmat4x4SIMD inverse(
171 detail::fmat4x4SIMD const & m);
170172
171 //! Return the inverse of a mat4 matrix.
172 //! (From GLM_GTX_simd_mat4 extension).
173 detail::fmat4x4SIMD inverse(
174 detail::fmat4x4SIMD const & m);
175
176 ///@}
177
178 }//namespace simd_mat4
179 }//namespace gtx
180 }//namespace glm
173 /// @}
174 }// namespace simd_mat4
175 }// namespace gtx
176 }// namespace glm
181177
182178 #include "simd_mat4.inl"
183179
156156 )
157157 {
158158 __m128 Inv[4];
159 sse_inverse_ps(&this->Data[0].Data, Inv);
159 sse_inverse_ps(&m.Data[0].Data, Inv);
160160 sse_mul_ps(&this->Data[0].Data, Inv, &this->Data[0].Data);
161161 return *this;
162162 }
2727 # pragma message("GLM: GLM_GTX_simd_vec4 extension included")
2828 #endif
2929
30 namespace glm
30 namespace glm{
31 namespace detail
3132 {
32 namespace detail
33 /// 4-dimensional vector implemented using SIMD SEE intrinsics.
34 /// \ingroup gtx_simd_vec4
35 GLM_ALIGNED_STRUCT(16) fvec4SIMD
3336 {
34 /// 4-dimensional vector implemented using SIMD SEE intrinsics.
35 /// \ingroup gtx_simd_vec4
36 GLM_ALIGNED_STRUCT(4) fvec4SIMD
37 {
38 enum ctor{null};
39 typedef __m128 value_type;
40 typedef std::size_t size_type;
41 static size_type value_size();
42
43 typedef fvec4SIMD type;
44 typedef tvec4<bool> bool_type;
45
46 __m128 Data;
47
48 //////////////////////////////////////
49 // Implicit basic constructors
50
51 fvec4SIMD();
52 fvec4SIMD(__m128 const & Data);
53 fvec4SIMD(fvec4SIMD const & v);
54
55 //////////////////////////////////////
56 // Explicit basic constructors
57
58 explicit fvec4SIMD(
59 ctor);
60 explicit fvec4SIMD(
61 float const & s);
62 explicit fvec4SIMD(
63 float const & x,
64 float const & y,
65 float const & z,
66 float const & w);
67 explicit fvec4SIMD(
68 tvec4<float> const & v);
69
70 ////////////////////////////////////////
71 //// Convertion vector constructors
72
73 fvec4SIMD(vec2 const & v, float const & s1, float const & s2);
74 fvec4SIMD(float const & s1, vec2 const & v, float const & s2);
75 fvec4SIMD(float const & s1, float const & s2, vec2 const & v);
76 fvec4SIMD(vec3 const & v, float const & s);
77 fvec4SIMD(float const & s, vec3 const & v);
78 fvec4SIMD(vec2 const & v1, vec2 const & v2);
79 //fvec4SIMD(ivec4SIMD const & v);
80
81 //////////////////////////////////////
82 // Unary arithmetic operators
83
84 fvec4SIMD& operator= (fvec4SIMD const & v);
85 fvec4SIMD& operator+=(fvec4SIMD const & v);
86 fvec4SIMD& operator-=(fvec4SIMD const & v);
87 fvec4SIMD& operator*=(fvec4SIMD const & v);
88 fvec4SIMD& operator/=(fvec4SIMD const & v);
89
90 fvec4SIMD& operator+=(float const & s);
91 fvec4SIMD& operator-=(float const & s);
92 fvec4SIMD& operator*=(float const & s);
93 fvec4SIMD& operator/=(float const & s);
94
95 fvec4SIMD& operator++();
96 fvec4SIMD& operator--();
97
98 //////////////////////////////////////
99 // Swizzle operators
100
101 template <comp X, comp Y, comp Z, comp W>
102 fvec4SIMD& swizzle();
103 template <comp X, comp Y, comp Z, comp W>
104 fvec4SIMD swizzle() const;
105 template <comp X, comp Y, comp Z>
106 fvec4SIMD swizzle() const;
107 template <comp X, comp Y>
108 fvec4SIMD swizzle() const;
109 template <comp X>
110 fvec4SIMD swizzle() const;
111 };
112
113 }//namespace detail
114
115 namespace gtx{
116 //! GLM_GTX_simd_vec4 extension: SIMD implementation of vec4 type.
117 namespace simd_vec4
118 {
119 typedef detail::fvec4SIMD simdVec4;
120
121 /// \addtogroup gtx_simd_vec4
122 ///@{
123
124 //! Convert a simdVec4 to a vec4.
125 //! (From GLM_GTX_simd_vec4 extension)
126 detail::tvec4<float> vec4_cast(
127 detail::fvec4SIMD const & x);
128
129 //! Returns x if x >= 0; otherwise, it returns -x.
130 //! (From GLM_GTX_simd_vec4 extension, common function)
131 detail::fvec4SIMD abs(detail::fvec4SIMD const & x);
132
133 //! Returns 1.0 if x > 0, 0.0 if x = 0, or -1.0 if x < 0.
134 //! (From GLM_GTX_simd_vec4 extension, common function)
135 detail::fvec4SIMD sign(detail::fvec4SIMD const & x);
136
137 //! Returns a value equal to the nearest integer that is less then or equal to x.
138 //! (From GLM_GTX_simd_vec4 extension, common function)
139 detail::fvec4SIMD floor(detail::fvec4SIMD const & x);
140
141 //! Returns a value equal to the nearest integer to x
142 //! whose absolute value is not larger than the absolute value of x.
143 //! (From GLM_GTX_simd_vec4 extension, common function)
144 detail::fvec4SIMD trunc(detail::fvec4SIMD const & x);
145
146 //! Returns a value equal to the nearest integer to x.
147 //! The fraction 0.5 will round in a direction chosen by the
148 //! implementation, presumably the direction that is fastest.
149 //! This includes the possibility that round(x) returns the
150 //! same value as roundEven(x) for all values of x.
151 //! (From GLM_GTX_simd_vec4 extension, common function)
152 detail::fvec4SIMD round(detail::fvec4SIMD const & x);
153
154 //! Returns a value equal to the nearest integer to x.
155 //! A fractional part of 0.5 will round toward the nearest even
156 //! integer. (Both 3.5 and 4.5 for x will return 4.0.)
157 //! (From GLM_GTX_simd_vec4 extension, common function)
158 //detail::fvec4SIMD roundEven(detail::fvec4SIMD const & x);
159
160 //! Returns a value equal to the nearest integer
161 //! that is greater than or equal to x.
162 //! (From GLM_GTX_simd_vec4 extension, common function)
163 detail::fvec4SIMD ceil(detail::fvec4SIMD const & x);
164
165 //! Return x - floor(x).
166 //! (From GLM_GTX_simd_vec4 extension, common function)
167 detail::fvec4SIMD fract(detail::fvec4SIMD const & x);
168
169 //! Modulus. Returns x - y * floor(x / y)
170 //! for each component in x using the floating point value y.
171 //! (From GLM_GTX_simd_vec4 extension, common function)
172 detail::fvec4SIMD mod(
173 detail::fvec4SIMD const & x,
174 detail::fvec4SIMD const & y);
175
176 //! Modulus. Returns x - y * floor(x / y)
177 //! for each component in x using the floating point value y.
178 //! (From GLM_GTX_simd_vec4 extension, common function)
179 detail::fvec4SIMD mod(
180 detail::fvec4SIMD const & x,
181 float const & y);
182
183 //! Returns the fractional part of x and sets i to the integer
184 //! part (as a whole number floating point value). Both the
185 //! return value and the output parameter will have the same
186 //! sign as x.
187 //! (From GLM_GTX_simd_vec4 extension, common function)
188 //detail::fvec4SIMD modf(
189 // detail::fvec4SIMD const & x,
190 // detail::fvec4SIMD & i);
191
192 //! Returns y if y < x; otherwise, it returns x.
193 //! (From GLM_GTX_simd_vec4 extension, common function)
194 detail::fvec4SIMD min(
195 detail::fvec4SIMD const & x,
196 detail::fvec4SIMD const & y);
197
198 detail::fvec4SIMD min(
199 detail::fvec4SIMD const & x,
200 float const & y);
201
202 //! Returns y if x < y; otherwise, it returns x.
203 //! (From GLM_GTX_simd_vec4 extension, common function)
204 detail::fvec4SIMD max(
205 detail::fvec4SIMD const & x,
206 detail::fvec4SIMD const & y);
207
208 detail::fvec4SIMD max(
209 detail::fvec4SIMD const & x,
210 float const & y);
211
212 //! Returns min(max(x, minVal), maxVal) for each component in x
213 //! using the floating-point values minVal and maxVal.
214 //! (From GLM_GTX_simd_vec4 extension, common function)
215 detail::fvec4SIMD clamp(
216 detail::fvec4SIMD const & x,
217 detail::fvec4SIMD const & minVal,
218 detail::fvec4SIMD const & maxVal);
219
220 detail::fvec4SIMD clamp(
221 detail::fvec4SIMD const & x,
222 float const & minVal,
223 float const & maxVal);
224
225 //! \return If genTypeU is a floating scalar or vector:
226 //! Returns x * (1.0 - a) + y * a, i.e., the linear blend of
227 //! x and y using the floating-point value a.
228 //! The value for a is not restricted to the range [0, 1].
229 //!
230 //! \return If genTypeU is a boolean scalar or vector:
231 //! Selects which vector each returned component comes
232 //! from. For a component of a that is false, the
233 //! corresponding component of x is returned. For a
234 //! component of a that is true, the corresponding
235 //! component of y is returned. Components of x and y that
236 //! are not selected are allowed to be invalid floating point
237 //! values and will have no effect on the results. Thus, this
238 //! provides different functionality than
239 //! genType mix(genType x, genType y, genType(a))
240 //! where a is a Boolean vector.
241 //!
242 //! From GLSL 1.30.08 specification, section 8.3
243 //!
244 //! \param[in] x Floating point scalar or vector.
245 //! \param[in] y Floating point scalar or vector.
246 //! \param[in] a Floating point or boolean scalar or vector.
247 //!
248 // \todo Test when 'a' is a boolean.
249 //! (From GLM_GTX_simd_vec4 extension, common function)
250 detail::fvec4SIMD mix(
251 detail::fvec4SIMD const & x,
252 detail::fvec4SIMD const & y,
253 detail::fvec4SIMD const & a);
254
255 //! Returns 0.0 if x < edge, otherwise it returns 1.0.
256 //! (From GLM_GTX_simd_vec4 extension, common function)
257 detail::fvec4SIMD step(
258 detail::fvec4SIMD const & edge,
259 detail::fvec4SIMD const & x);
260
261 detail::fvec4SIMD step(
262 float const & edge,
263 detail::fvec4SIMD const & x);
264
265 //! Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and
266 //! performs smooth Hermite interpolation between 0 and 1
267 //! when edge0 < x < edge1. This is useful in cases where
268 //! you would want a threshold function with a smooth
269 //! transition. This is equivalent to:
270 //! genType t;
271 //! t = clamp ((x – edge0) / (edge1 – edge0), 0, 1);
272 //! return t * t * (3 – 2 * t);
273 //! Results are undefined if edge0 >= edge1.
274 //! (From GLM_GTX_simd_vec4 extension, common function)
275 detail::fvec4SIMD smoothstep(
276 detail::fvec4SIMD const & edge0,
277 detail::fvec4SIMD const & edge1,
278 detail::fvec4SIMD const & x);
279
280 detail::fvec4SIMD smoothstep(
281 float const & edge0,
282 float const & edge1,
283 detail::fvec4SIMD const & x);
284
285 //! Returns true if x holds a NaN (not a number)
286 //! representation in the underlying implementation's set of
287 //! floating point representations. Returns false otherwise,
288 //! including for implementations with no NaN
289 //! representations.
290 //! (From GLM_GTX_simd_vec4 extension, common function)
291 //bvec4 isnan(detail::fvec4SIMD const & x);
292
293 //! Returns true if x holds a positive infinity or negative
294 //! infinity representation in the underlying implementation's
295 //! set of floating point representations. Returns false
296 //! otherwise, including for implementations with no infinity
297 //! representations.
298 //! (From GLM_GTX_simd_vec4 extension, common function)
299 //bvec4 isinf(detail::fvec4SIMD const & x);
300
301 //! Returns a signed or unsigned integer value representing
302 //! the encoding of a floating-point value. The floatingpoint
303 //! value's bit-level representation is preserved.
304 //! (From GLM_GTX_simd_vec4 extension, common function)
305 //detail::ivec4SIMD floatBitsToInt(detail::fvec4SIMD const & value);
306
307 //! Returns a floating-point value corresponding to a signed
308 //! or unsigned integer encoding of a floating-point value.
309 //! If an inf or NaN is passed in, it will not signal, and the
310 //! resulting floating point value is unspecified. Otherwise,
311 //! the bit-level representation is preserved.
312 //! (From GLM_GTX_simd_vec4 extension, common function)
313 //detail::fvec4SIMD intBitsToFloat(detail::ivec4SIMD const & value);
314
315 //! Computes and returns a * b + c.
316 //! (From GLM_GTX_simd_vec4 extension, common function)
317 detail::fvec4SIMD fma(
318 detail::fvec4SIMD const & a,
319 detail::fvec4SIMD const & b,
320 detail::fvec4SIMD const & c);
321
322 //! Splits x into a floating-point significand in the range
323 //! [0.5, 1.0) and an integral exponent of two, such that:
324 //! x = significand * exp(2, exponent)
325 //! The significand is returned by the function and the
326 //! exponent is returned in the parameter exp. For a
327 //! floating-point value of zero, the significant and exponent
328 //! are both zero. For a floating-point value that is an
329 //! infinity or is not a number, the results are undefined.
330 //! (From GLM_GTX_simd_vec4 extension, common function)
331 //detail::fvec4SIMD frexp(detail::fvec4SIMD const & x, detail::ivec4SIMD & exp);
332
333 //! Builds a floating-point number from x and the
334 //! corresponding integral exponent of two in exp, returning:
335 //! significand * exp(2, exponent)
336 //! If this product is too large to be represented in the
337 //! floating-point type, the result is undefined.
338 //! (From GLM_GTX_simd_vec4 extension, common function)
339 //detail::fvec4SIMD ldexp(detail::fvec4SIMD const & x, detail::ivec4SIMD const & exp);
340
341 //! Returns the length of x, i.e., sqrt(x * x).
342 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
343 float length(
344 detail::fvec4SIMD const & x);
345
346 //! Returns the length of x, i.e., sqrt(x * x).
347 //! Less accurate but much faster than simdLength.
348 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
349 float fastLength(
350 detail::fvec4SIMD const & x);
351
352 //! Returns the length of x, i.e., sqrt(x * x).
353 //! Slightly more accurate but much slower than simdLength.
354 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
355 float niceLength(
356 detail::fvec4SIMD const & x);
357
358 //! Returns the length of x, i.e., sqrt(x * x).
359 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
360 detail::fvec4SIMD length4(
361 detail::fvec4SIMD const & x);
362
363 //! Returns the length of x, i.e., sqrt(x * x).
364 //! Less accurate but much faster than simdLength4.
365 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
366 detail::fvec4SIMD fastLength4(
367 detail::fvec4SIMD const & x);
368
369 //! Returns the length of x, i.e., sqrt(x * x).
370 //! Slightly more accurate but much slower than simdLength4.
371 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
372 detail::fvec4SIMD niceLength4(
373 detail::fvec4SIMD const & x);
374
375 //! Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
376 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
377 float distance(
378 detail::fvec4SIMD const & p0,
379 detail::fvec4SIMD const & p1);
380
381 //! Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
382 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
383 detail::fvec4SIMD distance4(
384 detail::fvec4SIMD const & p0,
385 detail::fvec4SIMD const & p1);
386
387 //! Returns the dot product of x and y, i.e., result = x * y.
388 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
389 float simdDot(
390 detail::fvec4SIMD const & x,
391 detail::fvec4SIMD const & y);
392
393 //! Returns the dot product of x and y, i.e., result = x * y.
394 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
395 detail::fvec4SIMD dot4(
396 detail::fvec4SIMD const & x,
397 detail::fvec4SIMD const & y);
398
399 //! Returns the cross product of x and y.
400 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
401 detail::fvec4SIMD cross(
402 detail::fvec4SIMD const & x,
403 detail::fvec4SIMD const & y);
404
405 //! Returns a vector in the same direction as x but with length of 1.
406 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
407 detail::fvec4SIMD normalize(
408 detail::fvec4SIMD const & x);
409
410 //! Returns a vector in the same direction as x but with length of 1.
411 //! Less accurate but much faster than simdNormalize.
412 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
413 detail::fvec4SIMD fastNormalize(
414 detail::fvec4SIMD const & x);
415
416 //! If dot(Nref, I) < 0.0, return N, otherwise, return -N.
417 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
418 detail::fvec4SIMD simdFaceforward(
419 detail::fvec4SIMD const & N,
420 detail::fvec4SIMD const & I,
421 detail::fvec4SIMD const & Nref);
422
423 //! For the incident vector I and surface orientation N,
424 //! returns the reflection direction : result = I - 2.0 * dot(N, I) * N.
425 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
426 detail::fvec4SIMD reflect(
427 detail::fvec4SIMD const & I,
428 detail::fvec4SIMD const & N);
429
430 //! For the incident vector I and surface normal N,
431 //! and the ratio of indices of refraction eta,
432 //! return the refraction vector.
433 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
434 detail::fvec4SIMD refract(
435 detail::fvec4SIMD const & I,
436 detail::fvec4SIMD const & N,
437 float const & eta);
438
439 //! Returns the positive square root of x.
440 //! (From GLM_GTX_simd_vec4 extension, exponential function)
441 detail::fvec4SIMD sqrt(
442 detail::fvec4SIMD const & x);
443
444 //! Returns the positive square root of x with the nicest quality but very slow.
445 //! Slightly more accurate but much slower than simdSqrt.
446 //! (From GLM_GTX_simd_vec4 extension, exponential function)
447 detail::fvec4SIMD niceSqrt(
448 detail::fvec4SIMD const & x);
449
450 //! Returns the positive square root of x
451 //! Less accurate but much faster than sqrt.
452 //! (From GLM_GTX_simd_vec4 extension, exponential function)
453 detail::fvec4SIMD fastSqrt(
454 detail::fvec4SIMD const & x);
455
456 //! Returns the reciprocal of the positive square root of x.
457 //! (From GLM_GTX_simd_vec4 extension, exponential function)
458 detail::fvec4SIMD inversesqrt(
459 detail::fvec4SIMD const & x);
460
461 //! Returns the reciprocal of the positive square root of x.
462 //! Faster than inversesqrt but less accurate.
463 //! (From GLM_GTX_simd_vec4 extension, exponential function)
464 detail::fvec4SIMD fastInversesqrt(
465 detail::fvec4SIMD const & x);
466
467 ///@}
468 }//namespace simd_vec4
469 }//namespace gtx
37 enum ctor{null};
38 typedef __m128 value_type;
39 typedef std::size_t size_type;
40 static size_type value_size();
41
42 typedef fvec4SIMD type;
43 typedef tvec4<bool> bool_type;
44
45 __m128 Data;
46
47 //////////////////////////////////////
48 // Implicit basic constructors
49
50 fvec4SIMD();
51 fvec4SIMD(__m128 const & Data);
52 fvec4SIMD(fvec4SIMD const & v);
53
54 //////////////////////////////////////
55 // Explicit basic constructors
56
57 explicit fvec4SIMD(
58 ctor);
59 explicit fvec4SIMD(
60 float const & s);
61 explicit fvec4SIMD(
62 float const & x,
63 float const & y,
64 float const & z,
65 float const & w);
66 explicit fvec4SIMD(
67 tvec4<float> const & v);
68
69 ////////////////////////////////////////
70 //// Convertion vector constructors
71
72 fvec4SIMD(vec2 const & v, float const & s1, float const & s2);
73 fvec4SIMD(float const & s1, vec2 const & v, float const & s2);
74 fvec4SIMD(float const & s1, float const & s2, vec2 const & v);
75 fvec4SIMD(vec3 const & v, float const & s);
76 fvec4SIMD(float const & s, vec3 const & v);
77 fvec4SIMD(vec2 const & v1, vec2 const & v2);
78 //fvec4SIMD(ivec4SIMD const & v);
79
80 //////////////////////////////////////
81 // Unary arithmetic operators
82
83 fvec4SIMD& operator= (fvec4SIMD const & v);
84 fvec4SIMD& operator+=(fvec4SIMD const & v);
85 fvec4SIMD& operator-=(fvec4SIMD const & v);
86 fvec4SIMD& operator*=(fvec4SIMD const & v);
87 fvec4SIMD& operator/=(fvec4SIMD const & v);
88
89 fvec4SIMD& operator+=(float const & s);
90 fvec4SIMD& operator-=(float const & s);
91 fvec4SIMD& operator*=(float const & s);
92 fvec4SIMD& operator/=(float const & s);
93
94 fvec4SIMD& operator++();
95 fvec4SIMD& operator--();
96
97 //////////////////////////////////////
98 // Swizzle operators
99
100 template <comp X, comp Y, comp Z, comp W>
101 fvec4SIMD& swizzle();
102 template <comp X, comp Y, comp Z, comp W>
103 fvec4SIMD swizzle() const;
104 template <comp X, comp Y, comp Z>
105 fvec4SIMD swizzle() const;
106 template <comp X, comp Y>
107 fvec4SIMD swizzle() const;
108 template <comp X>
109 fvec4SIMD swizzle() const;
110 };
111 }//namespace detail
112
113 namespace gtx{
114 namespace simd_vec4 ///< GLM_GTX_simd_vec4 extension: SIMD implementation of vec4 type.
115 {
116 typedef glm::detail::fvec4SIMD simdVec4;
117
118 /// \addtogroup gtx_simd_vec4
119 ///@{
120
121 //! Convert a simdVec4 to a vec4.
122 //! (From GLM_GTX_simd_vec4 extension)
123 detail::tvec4<float> vec4_cast(
124 detail::fvec4SIMD const & x);
125
126 //! Returns x if x >= 0; otherwise, it returns -x.
127 //! (From GLM_GTX_simd_vec4 extension, common function)
128 detail::fvec4SIMD abs(detail::fvec4SIMD const & x);
129
130 //! Returns 1.0 if x > 0, 0.0 if x = 0, or -1.0 if x < 0.
131 //! (From GLM_GTX_simd_vec4 extension, common function)
132 detail::fvec4SIMD sign(detail::fvec4SIMD const & x);
133
134 //! Returns a value equal to the nearest integer that is less then or equal to x.
135 //! (From GLM_GTX_simd_vec4 extension, common function)
136 detail::fvec4SIMD floor(detail::fvec4SIMD const & x);
137
138 //! Returns a value equal to the nearest integer to x
139 //! whose absolute value is not larger than the absolute value of x.
140 //! (From GLM_GTX_simd_vec4 extension, common function)
141 detail::fvec4SIMD trunc(detail::fvec4SIMD const & x);
142
143 //! Returns a value equal to the nearest integer to x.
144 //! The fraction 0.5 will round in a direction chosen by the
145 //! implementation, presumably the direction that is fastest.
146 //! This includes the possibility that round(x) returns the
147 //! same value as roundEven(x) for all values of x.
148 //! (From GLM_GTX_simd_vec4 extension, common function)
149 detail::fvec4SIMD round(detail::fvec4SIMD const & x);
150
151 //! Returns a value equal to the nearest integer to x.
152 //! A fractional part of 0.5 will round toward the nearest even
153 //! integer. (Both 3.5 and 4.5 for x will return 4.0.)
154 //! (From GLM_GTX_simd_vec4 extension, common function)
155 //detail::fvec4SIMD roundEven(detail::fvec4SIMD const & x);
156
157 //! Returns a value equal to the nearest integer
158 //! that is greater than or equal to x.
159 //! (From GLM_GTX_simd_vec4 extension, common function)
160 detail::fvec4SIMD ceil(detail::fvec4SIMD const & x);
161
162 //! Return x - floor(x).
163 //! (From GLM_GTX_simd_vec4 extension, common function)
164 detail::fvec4SIMD fract(detail::fvec4SIMD const & x);
165
166 //! Modulus. Returns x - y * floor(x / y)
167 //! for each component in x using the floating point value y.
168 //! (From GLM_GTX_simd_vec4 extension, common function)
169 detail::fvec4SIMD mod(
170 detail::fvec4SIMD const & x,
171 detail::fvec4SIMD const & y);
172
173 //! Modulus. Returns x - y * floor(x / y)
174 //! for each component in x using the floating point value y.
175 //! (From GLM_GTX_simd_vec4 extension, common function)
176 detail::fvec4SIMD mod(
177 detail::fvec4SIMD const & x,
178 float const & y);
179
180 //! Returns the fractional part of x and sets i to the integer
181 //! part (as a whole number floating point value). Both the
182 //! return value and the output parameter will have the same
183 //! sign as x.
184 //! (From GLM_GTX_simd_vec4 extension, common function)
185 //detail::fvec4SIMD modf(
186 // detail::fvec4SIMD const & x,
187 // detail::fvec4SIMD & i);
188
189 //! Returns y if y < x; otherwise, it returns x.
190 //! (From GLM_GTX_simd_vec4 extension, common function)
191 detail::fvec4SIMD min(
192 detail::fvec4SIMD const & x,
193 detail::fvec4SIMD const & y);
194
195 detail::fvec4SIMD min(
196 detail::fvec4SIMD const & x,
197 float const & y);
198
199 //! Returns y if x < y; otherwise, it returns x.
200 //! (From GLM_GTX_simd_vec4 extension, common function)
201 detail::fvec4SIMD max(
202 detail::fvec4SIMD const & x,
203 detail::fvec4SIMD const & y);
204
205 detail::fvec4SIMD max(
206 detail::fvec4SIMD const & x,
207 float const & y);
208
209 //! Returns min(max(x, minVal), maxVal) for each component in x
210 //! using the floating-point values minVal and maxVal.
211 //! (From GLM_GTX_simd_vec4 extension, common function)
212 detail::fvec4SIMD clamp(
213 detail::fvec4SIMD const & x,
214 detail::fvec4SIMD const & minVal,
215 detail::fvec4SIMD const & maxVal);
216
217 detail::fvec4SIMD clamp(
218 detail::fvec4SIMD const & x,
219 float const & minVal,
220 float const & maxVal);
221
222 //! \return If genTypeU is a floating scalar or vector:
223 //! Returns x * (1.0 - a) + y * a, i.e., the linear blend of
224 //! x and y using the floating-point value a.
225 //! The value for a is not restricted to the range [0, 1].
226 //!
227 //! \return If genTypeU is a boolean scalar or vector:
228 //! Selects which vector each returned component comes
229 //! from. For a component of a that is false, the
230 //! corresponding component of x is returned. For a
231 //! component of a that is true, the corresponding
232 //! component of y is returned. Components of x and y that
233 //! are not selected are allowed to be invalid floating point
234 //! values and will have no effect on the results. Thus, this
235 //! provides different functionality than
236 //! genType mix(genType x, genType y, genType(a))
237 //! where a is a Boolean vector.
238 //!
239 //! From GLSL 1.30.08 specification, section 8.3
240 //!
241 //! \param[in] x Floating point scalar or vector.
242 //! \param[in] y Floating point scalar or vector.
243 //! \param[in] a Floating point or boolean scalar or vector.
244 //!
245 // \todo Test when 'a' is a boolean.
246 //! (From GLM_GTX_simd_vec4 extension, common function)
247 detail::fvec4SIMD mix(
248 detail::fvec4SIMD const & x,
249 detail::fvec4SIMD const & y,
250 detail::fvec4SIMD const & a);
251
252 //! Returns 0.0 if x < edge, otherwise it returns 1.0.
253 //! (From GLM_GTX_simd_vec4 extension, common function)
254 detail::fvec4SIMD step(
255 detail::fvec4SIMD const & edge,
256 detail::fvec4SIMD const & x);
257
258 detail::fvec4SIMD step(
259 float const & edge,
260 detail::fvec4SIMD const & x);
261
262 //! Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and
263 //! performs smooth Hermite interpolation between 0 and 1
264 //! when edge0 < x < edge1. This is useful in cases where
265 //! you would want a threshold function with a smooth
266 //! transition. This is equivalent to:
267 //! genType t;
268 //! t = clamp ((x – edge0) / (edge1 – edge0), 0, 1);
269 //! return t * t * (3 – 2 * t);
270 //! Results are undefined if edge0 >= edge1.
271 //! (From GLM_GTX_simd_vec4 extension, common function)
272 detail::fvec4SIMD smoothstep(
273 detail::fvec4SIMD const & edge0,
274 detail::fvec4SIMD const & edge1,
275 detail::fvec4SIMD const & x);
276
277 detail::fvec4SIMD smoothstep(
278 float const & edge0,
279 float const & edge1,
280 detail::fvec4SIMD const & x);
281
282 //! Returns true if x holds a NaN (not a number)
283 //! representation in the underlying implementation's set of
284 //! floating point representations. Returns false otherwise,
285 //! including for implementations with no NaN
286 //! representations.
287 //! (From GLM_GTX_simd_vec4 extension, common function)
288 //bvec4 isnan(detail::fvec4SIMD const & x);
289
290 //! Returns true if x holds a positive infinity or negative
291 //! infinity representation in the underlying implementation's
292 //! set of floating point representations. Returns false
293 //! otherwise, including for implementations with no infinity
294 //! representations.
295 //! (From GLM_GTX_simd_vec4 extension, common function)
296 //bvec4 isinf(detail::fvec4SIMD const & x);
297
298 //! Returns a signed or unsigned integer value representing
299 //! the encoding of a floating-point value. The floatingpoint
300 //! value's bit-level representation is preserved.
301 //! (From GLM_GTX_simd_vec4 extension, common function)
302 //detail::ivec4SIMD floatBitsToInt(detail::fvec4SIMD const & value);
303
304 //! Returns a floating-point value corresponding to a signed
305 //! or unsigned integer encoding of a floating-point value.
306 //! If an inf or NaN is passed in, it will not signal, and the
307 //! resulting floating point value is unspecified. Otherwise,
308 //! the bit-level representation is preserved.
309 //! (From GLM_GTX_simd_vec4 extension, common function)
310 //detail::fvec4SIMD intBitsToFloat(detail::ivec4SIMD const & value);
311
312 //! Computes and returns a * b + c.
313 //! (From GLM_GTX_simd_vec4 extension, common function)
314 detail::fvec4SIMD fma(
315 detail::fvec4SIMD const & a,
316 detail::fvec4SIMD const & b,
317 detail::fvec4SIMD const & c);
318
319 //! Splits x into a floating-point significand in the range
320 //! [0.5, 1.0) and an integral exponent of two, such that:
321 //! x = significand * exp(2, exponent)
322 //! The significand is returned by the function and the
323 //! exponent is returned in the parameter exp. For a
324 //! floating-point value of zero, the significant and exponent
325 //! are both zero. For a floating-point value that is an
326 //! infinity or is not a number, the results are undefined.
327 //! (From GLM_GTX_simd_vec4 extension, common function)
328 //detail::fvec4SIMD frexp(detail::fvec4SIMD const & x, detail::ivec4SIMD & exp);
329
330 //! Builds a floating-point number from x and the
331 //! corresponding integral exponent of two in exp, returning:
332 //! significand * exp(2, exponent)
333 //! If this product is too large to be represented in the
334 //! floating-point type, the result is undefined.
335 //! (From GLM_GTX_simd_vec4 extension, common function)
336 //detail::fvec4SIMD ldexp(detail::fvec4SIMD const & x, detail::ivec4SIMD const & exp);
337
338 //! Returns the length of x, i.e., sqrt(x * x).
339 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
340 float length(
341 detail::fvec4SIMD const & x);
342
343 //! Returns the length of x, i.e., sqrt(x * x).
344 //! Less accurate but much faster than simdLength.
345 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
346 float fastLength(
347 detail::fvec4SIMD const & x);
348
349 //! Returns the length of x, i.e., sqrt(x * x).
350 //! Slightly more accurate but much slower than simdLength.
351 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
352 float niceLength(
353 detail::fvec4SIMD const & x);
354
355 //! Returns the length of x, i.e., sqrt(x * x).
356 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
357 detail::fvec4SIMD length4(
358 detail::fvec4SIMD const & x);
359
360 //! Returns the length of x, i.e., sqrt(x * x).
361 //! Less accurate but much faster than simdLength4.
362 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
363 detail::fvec4SIMD fastLength4(
364 detail::fvec4SIMD const & x);
365
366 //! Returns the length of x, i.e., sqrt(x * x).
367 //! Slightly more accurate but much slower than simdLength4.
368 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
369 detail::fvec4SIMD niceLength4(
370 detail::fvec4SIMD const & x);
371
372 //! Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
373 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
374 float distance(
375 detail::fvec4SIMD const & p0,
376 detail::fvec4SIMD const & p1);
377
378 //! Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
379 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
380 detail::fvec4SIMD distance4(
381 detail::fvec4SIMD const & p0,
382 detail::fvec4SIMD const & p1);
383
384 //! Returns the dot product of x and y, i.e., result = x * y.
385 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
386 float simdDot(
387 detail::fvec4SIMD const & x,
388 detail::fvec4SIMD const & y);
389
390 //! Returns the dot product of x and y, i.e., result = x * y.
391 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
392 detail::fvec4SIMD dot4(
393 detail::fvec4SIMD const & x,
394 detail::fvec4SIMD const & y);
395
396 //! Returns the cross product of x and y.
397 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
398 detail::fvec4SIMD cross(
399 detail::fvec4SIMD const & x,
400 detail::fvec4SIMD const & y);
401
402 //! Returns a vector in the same direction as x but with length of 1.
403 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
404 detail::fvec4SIMD normalize(
405 detail::fvec4SIMD const & x);
406
407 //! Returns a vector in the same direction as x but with length of 1.
408 //! Less accurate but much faster than simdNormalize.
409 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
410 detail::fvec4SIMD fastNormalize(
411 detail::fvec4SIMD const & x);
412
413 //! If dot(Nref, I) < 0.0, return N, otherwise, return -N.
414 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
415 detail::fvec4SIMD simdFaceforward(
416 detail::fvec4SIMD const & N,
417 detail::fvec4SIMD const & I,
418 detail::fvec4SIMD const & Nref);
419
420 //! For the incident vector I and surface orientation N,
421 //! returns the reflection direction : result = I - 2.0 * dot(N, I) * N.
422 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
423 detail::fvec4SIMD reflect(
424 detail::fvec4SIMD const & I,
425 detail::fvec4SIMD const & N);
426
427 //! For the incident vector I and surface normal N,
428 //! and the ratio of indices of refraction eta,
429 //! return the refraction vector.
430 //! (From GLM_GTX_simd_vec4 extension, geometry functions)
431 detail::fvec4SIMD refract(
432 detail::fvec4SIMD const & I,
433 detail::fvec4SIMD const & N,
434 float const & eta);
435
436 //! Returns the positive square root of x.
437 //! (From GLM_GTX_simd_vec4 extension, exponential function)
438 detail::fvec4SIMD sqrt(
439 detail::fvec4SIMD const & x);
440
441 //! Returns the positive square root of x with the nicest quality but very slow.
442 //! Slightly more accurate but much slower than simdSqrt.
443 //! (From GLM_GTX_simd_vec4 extension, exponential function)
444 detail::fvec4SIMD niceSqrt(
445 detail::fvec4SIMD const & x);
446
447 //! Returns the positive square root of x
448 //! Less accurate but much faster than sqrt.
449 //! (From GLM_GTX_simd_vec4 extension, exponential function)
450 detail::fvec4SIMD fastSqrt(
451 detail::fvec4SIMD const & x);
452
453 //! Returns the reciprocal of the positive square root of x.
454 //! (From GLM_GTX_simd_vec4 extension, exponential function)
455 detail::fvec4SIMD inversesqrt(
456 detail::fvec4SIMD const & x);
457
458 //! Returns the reciprocal of the positive square root of x.
459 //! Faster than inversesqrt but less accurate.
460 //! (From GLM_GTX_simd_vec4 extension, exponential function)
461 detail::fvec4SIMD fastInversesqrt(
462 detail::fvec4SIMD const & x);
463
464 /// @}
465 }//namespace simd_vec4
466 }//namespace gtx
470467 }//namespace glm
471468
472469 #include "simd_vec4.inl"
313313 detail::fvec4SIMD const & x
314314 )
315315 {
316 //return x < 0 ? -floor(-x) : floor(x);
317
316318 __m128 Flr0 = detail::sse_flr_ps(_mm_sub_ps(_mm_setzero_ps(), x.Data));
317319 __m128 Sub0 = _mm_sub_ps(Flr0, x.Data);
318320 __m128 Flr1 = detail::sse_flr_ps(x.Data);
320322 __m128 Cmp0 = _mm_cmplt_ps(x.Data, glm::detail::zero);
321323 __m128 Cmp1 = _mm_cmpnlt_ps(x.Data, glm::detail::zero);
322324
323 __m128 And0 = _mm_and_ps(Flr0, Cmp0);
325 __m128 And0 = _mm_and_ps(Sub0, Cmp0);
324326 __m128 And1 = _mm_and_ps(Flr1, Cmp1);
325327
326328 return _mm_or_ps(And0, And1);
1919 # pragma message("GLM: GLM_GTX_simplex extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace spline ///< GLM_GTX_simplex extension: Spline functions
2325 {
24 namespace gtx{
25 //! GLM_GTX_simplex extension: Spline functions
26 namespace spline
27 {
28 /// \addtogroup gtx_spline
29 ///@{
26 /// \addtogroup gtx_spline
27 ///@{
3028
31 //! Return a point from a catmull rom curve.
32 //! From GLM_GTX_spline extension.
33 template <typename genType>
34 genType catmullRom(
35 genType const & v1,
36 genType const & v2,
37 genType const & v3,
38 genType const & v4,
39 typename genType::value_type const & s);
29 //! Return a point from a catmull rom curve.
30 //! From GLM_GTX_spline extension.
31 template <typename genType>
32 genType catmullRom(
33 genType const & v1,
34 genType const & v2,
35 genType const & v3,
36 genType const & v4,
37 typename genType::value_type const & s);
4038
41 //! Return a point from a hermite curve.
42 //! From GLM_GTX_spline extension.
43 template <typename genType>
44 genType hermite(
45 genType const & v1,
46 genType const & t1,
47 genType const & v2,
48 genType const & t2,
49 typename genType::value_type const & s);
39 //! Return a point from a hermite curve.
40 //! From GLM_GTX_spline extension.
41 template <typename genType>
42 genType hermite(
43 genType const & v1,
44 genType const & t1,
45 genType const & v2,
46 genType const & t2,
47 typename genType::value_type const & s);
5048
51 //! Return a point from a cubic curve.
52 //! From GLM_GTX_spline extension.
53 template <typename genType>
54 genType cubic(
55 genType const & v1,
56 genType const & v2,
57 genType const & v3,
58 genType const & v4,
59 typename genType::value_type const & s);
49 //! Return a point from a cubic curve.
50 //! From GLM_GTX_spline extension.
51 template <typename genType>
52 genType cubic(
53 genType const & v1,
54 genType const & v2,
55 genType const & v3,
56 genType const & v4,
57 typename genType::value_type const & s);
6058
61 ///@}
62
63 }//namespace simplex
64 }//namespace gtx
65 }//namespace glm
59 /// @}
60 }// namespace simplex
61 }// namespace gtx
62 }// namespace glm
6663
6764 #include "simplex.inl"
6865
2020 # pragma message("GLM: GLM_GTX_spline extension included")
2121 #endif
2222
23 namespace glm
23 namespace glm{
24 namespace gtx{
25 namespace spline ///< GLM_GTX_spline extension: Spline functions
2426 {
25 namespace gtx{
26 //! GLM_GTX_spline extension: Spline functions
27 namespace spline
28 {
29 using namespace gtx::optimum_pow;
27 using namespace gtx::optimum_pow;
3028
31 /// \addtogroup gtx_spline
32 ///@{
29 /// \addtogroup gtx_spline
30 /// @{
3331
34 //! Return a point from a catmull rom curve.
35 //! From GLM_GTX_spline extension.
36 template <typename genType>
37 genType catmullRom(
38 genType const & v1,
39 genType const & v2,
40 genType const & v3,
41 genType const & v4,
42 typename genType::value_type const & s);
32 //! Return a point from a catmull rom curve.
33 //! From GLM_GTX_spline extension.
34 template <typename genType>
35 genType catmullRom(
36 genType const & v1,
37 genType const & v2,
38 genType const & v3,
39 genType const & v4,
40 typename genType::value_type const & s);
4341
44 //! Return a point from a hermite curve.
45 //! From GLM_GTX_spline extension.
46 template <typename genType>
47 genType hermite(
48 genType const & v1,
49 genType const & t1,
50 genType const & v2,
51 genType const & t2,
52 typename genType::value_type const & s);
42 //! Return a point from a hermite curve.
43 //! From GLM_GTX_spline extension.
44 template <typename genType>
45 genType hermite(
46 genType const & v1,
47 genType const & t1,
48 genType const & v2,
49 genType const & t2,
50 typename genType::value_type const & s);
5351
54 //! Return a point from a cubic curve.
55 //! From GLM_GTX_spline extension.
56 template <typename genType>
57 genType cubic(
58 genType const & v1,
59 genType const & v2,
60 genType const & v3,
61 genType const & v4,
62 typename genType::value_type const & s);
52 //! Return a point from a cubic curve.
53 //! From GLM_GTX_spline extension.
54 template <typename genType>
55 genType cubic(
56 genType const & v1,
57 genType const & v2,
58 genType const & v3,
59 genType const & v4,
60 typename genType::value_type const & s);
6361
64 ///@}
65
66 }//namespace spline
67 }//namespace gtx
62 /// @}
63 }//namespace spline
64 }//namespace gtx
6865 }//namespace glm
6966
7067 #include "spline.inl"
2020 # pragma message("GLM: GLM_GTX_std_based_type extension included")
2121 #endif
2222
23 namespace glm
23 namespace glm{
24 namespace gtx{
25 namespace std_based_type ///< GLM_GTX_std_based_type extension: Add support vector types based on C++ standard type
2426 {
25 namespace test{
26 void main_gtx_std_based_type();
27 }//namespace test
27 typedef detail::tvec2<std::size_t> size2;
28 typedef detail::tvec3<std::size_t> size3;
29 typedef detail::tvec4<std::size_t> size4;
2830
29 namespace gtx{
30 //! GLM_GTX_std_based_type extension: Add support vector types based on C++ standard type
31 namespace std_based_type
32 {
33 typedef detail::tvec2<std::size_t> size2;
34 typedef detail::tvec3<std::size_t> size3;
35 typedef detail::tvec4<std::size_t> size4;
31 typedef detail::tvec2<signed char> scvec2;
32 typedef detail::tvec3<signed char> scvec3;
33 typedef detail::tvec4<signed char> scvec4;
3634
37 typedef detail::tvec2<signed char> scvec2;
38 typedef detail::tvec3<signed char> scvec3;
39 typedef detail::tvec4<signed char> scvec4;
35 typedef detail::tvec2<unsigned char> ucvec2;
36 typedef detail::tvec3<unsigned char> ucvec3;
37 typedef detail::tvec4<unsigned char> ucvec4;
4038
41 typedef detail::tvec2<unsigned char> ucvec2;
42 typedef detail::tvec3<unsigned char> ucvec3;
43 typedef detail::tvec4<unsigned char> ucvec4;
39 typedef detail::tvec2<signed short> ssvec2;
40 typedef detail::tvec3<signed short> ssvec3;
41 typedef detail::tvec4<signed short> ssvec4;
4442
45 typedef detail::tvec2<signed short> ssvec2;
46 typedef detail::tvec3<signed short> ssvec3;
47 typedef detail::tvec4<signed short> ssvec4;
43 typedef detail::tvec2<unsigned short> usvec2;
44 typedef detail::tvec3<unsigned short> usvec3;
45 typedef detail::tvec4<unsigned short> usvec4;
4846
49 typedef detail::tvec2<unsigned short> usvec2;
50 typedef detail::tvec3<unsigned short> usvec3;
51 typedef detail::tvec4<unsigned short> usvec4;
47 typedef detail::tvec2<signed int> sivec2;
48 typedef detail::tvec3<signed int> sivec3;
49 typedef detail::tvec4<signed int> sivec4;
5250
53 typedef detail::tvec2<signed int> sivec2;
54 typedef detail::tvec3<signed int> sivec3;
55 typedef detail::tvec4<signed int> sivec4;
51 typedef detail::tvec2<unsigned int> uivec2;
52 typedef detail::tvec3<unsigned int> uivec3;
53 typedef detail::tvec4<unsigned int> uivec4;
5654
57 typedef detail::tvec2<unsigned int> uivec2;
58 typedef detail::tvec3<unsigned int> uivec3;
59 typedef detail::tvec4<unsigned int> uivec4;
55 typedef detail::tvec2<signed long> slvec2;
56 typedef detail::tvec3<signed long> slvec3;
57 typedef detail::tvec4<signed long> slvec4;
6058
61 typedef detail::tvec2<signed long> slvec2;
62 typedef detail::tvec3<signed long> slvec3;
63 typedef detail::tvec4<signed long> slvec4;
59 typedef detail::tvec2<unsigned long> ulvec2;
60 typedef detail::tvec3<unsigned long> ulvec3;
61 typedef detail::tvec4<unsigned long> ulvec4;
6462
65 typedef detail::tvec2<unsigned long> ulvec2;
66 typedef detail::tvec3<unsigned long> ulvec3;
67 typedef detail::tvec4<unsigned long> ulvec4;
68
69 }//namespace std_based_type
70 }//namespace gtx
63 }//namespace std_based_type
64 }//namespace gtx
7165 }//namespace glm
7266
7367 #include "std_based_type.inl"
2727 # pragma message("GLM: GLM_GTX_string_cast extension included")
2828 #endif
2929
30 namespace glm
30 namespace glm{
31 namespace gtx{
32 namespace string_cast ///< GLM_GTX_string_cast extension: Setup strings for GLM type values
3133 {
32 namespace test{
33 void main_gtx_string_cast();
34 }//namespace test
34 using namespace gtc::half_float;
35 using namespace gtx::integer;
36 using namespace gtx::unsigned_int;
37 using namespace gtx::quaternion;
3538
36 namespace gtx{
37 //! GLM_GTX_string_cast extension: Setup strings for GLM type values
38 namespace string_cast
39 {
40 using namespace gtc::half_float;
41 using namespace gtx::integer;
42 using namespace gtx::unsigned_int;
43 using namespace gtx::quaternion;
39 /// \addtogroup gtx_string_cast
40 /// @{
4441
45 /// \addtogroup gtx_string_cast
46 ///@{
42 //! Create a string from a GLM type value.
43 //! From GLM_GTX_string_cast extension.
44 template <typename genType>
45 std::string to_string(genType const & x);
4746
48 //! Create a string from a GLM type value.
49 //! From GLM_GTX_string_cast extension.
50 template <typename genType>
51 std::string to_string(genType const & x);
52
53 ///@}
54
55 }//namespace string_cast
56 }//namespace gtx
47 /// @}
48 }//namespace string_cast
49 }//namespace gtx
5750 }//namespace glm
5851
5952 #include "string_cast.inl"
4040
4141 GLM_FUNC_QUALIFIER std::string to_string(detail::thalf const & x)
4242 {
43 return detail::format("half(%f)", float(x));
43 return detail::format("half(%2.4f)", float(x));
4444 }
4545
4646 GLM_FUNC_QUALIFIER std::string to_string(float x)
108108 detail::tvec2<detail::thalf> const & v
109109 )
110110 {
111 return detail::format("hvec2(%f, %f)", float(v.x), float(v.y));
111 return detail::format("hvec2(%2.4f, %2.4f)", float(v.x), float(v.y));
112112 }
113113
114114 template <>
117117 detail::tvec3<detail::thalf> const & v
118118 )
119119 {
120 return detail::format("hvec3(%f, %f, %f)", float(v.x), float(v.y), float(v.z));
120 return detail::format("hvec3(%2.4f, %2.4f, %2.4f)", float(v.x), float(v.y), float(v.z));
121121 }
122122
123123 template <>
126126 detail::tvec4<detail::thalf> const & v
127127 )
128128 {
129 return detail::format("hvec4(%f, %f, %f, %f)", float(v.x), float(v.y), float(v.z), float(v.w));
129 return detail::format("hvec4(%2.4f, %2.4f, %2.4f, %2.4f)", float(v.x), float(v.y), float(v.z), float(v.w));
130130 }
131131
132132 ////////////////////////////////
2121 # pragma message("GLM: GLM_GTX_transform extension included")
2222 #endif
2323
24 namespace glm
24 namespace glm{
25 namespace gtx{
26 namespace transform ///< GLM_GTX_transform extension: Add transformation matrices
2527 {
26 namespace test{
27 void main_gtx_transform();
28 }//namespace test
28 using namespace gtc::matrix_transform;
2929
30 namespace gtx{
31 //! GLM_GTX_transform extension: Add transformation matrices
32 namespace transform
33 {
34 using namespace gtc::matrix_transform;
30 /// \addtogroup gtx_transform
31 /// @{
3532
36 /// \addtogroup gtx_transform
37 ///@{
33 //! Builds a translation 4 * 4 matrix created from 3 scalars.
34 //! From GLM_GTX_transform extension.
35 template <typename T>
36 detail::tmat4x4<T> translate(
37 T x, T y, T z);
38
39 //! Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.
40 //! From GLM_GTX_transform extension.
41 template <typename T>
42 detail::tmat4x4<T> translate(
43 detail::tmat4x4<T> const & m,
44 T x, T y, T z);
45
46 //! Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.
47 //! From GLM_GTX_transform extension.
48 template <typename T>
49 detail::tmat4x4<T> translate(
50 detail::tvec3<T> const & v);
3851
39 //! Builds a translation 4 * 4 matrix created from 3 scalars.
40 //! From GLM_GTX_transform extension.
41 template <typename T>
42 detail::tmat4x4<T> translate(
43 T x, T y, T z);
52 //! Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.
53 //! From GLM_GTX_transform extension.
54 template <typename T>
55 detail::tmat4x4<T> rotate(
56 T angle,
57 T x, T y, T z);
58
59 //! Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.
60 //! From GLM_GTX_transform extension.
61 template <typename T>
62 detail::tmat4x4<T> rotate(
63 T angle,
64 detail::tvec3<T> const & v);
65
66 //! Transforms a matrix with a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.
67 //! From GLM_GTX_transform extension.
68 template <typename T>
69 detail::tmat4x4<T> rotate(
70 detail::tmat4x4<T> const & m,
71 T angle,
72 T x, T y, T z);
4473
45 //! Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.
46 //! From GLM_GTX_transform extension.
47 template <typename T>
48 detail::tmat4x4<T> translate(
49 detail::tmat4x4<T> const & m,
50 T x, T y, T z);
74 //! Builds a scale 4 * 4 matrix created from 3 scalars.
75 //! From GLM_GTX_transform extension.
76 template <typename T>
77 detail::tmat4x4<T> scale(
78 T x, T y, T z);
5179
52 //! Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.
53 //! From GLM_GTX_transform extension.
54 template <typename T>
55 detail::tmat4x4<T> translate(
56 detail::tvec3<T> const & v);
80 //! Transforms a matrix with a scale 4 * 4 matrix created from 3 scalars.
81 //! From GLM_GTX_transform extension.
82 template <typename T>
83 detail::tmat4x4<T> scale(
84 detail::tmat4x4<T> const & m,
85 T x, T y, T z);
5786
58 //! Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.
59 //! From GLM_GTX_transform extension.
60 template <typename T>
61 detail::tmat4x4<T> rotate(
62 T angle,
63 T x, T y, T z);
87 //! Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components.
88 //! From GLM_GTX_transform extension.
89 template <typename T>
90 detail::tmat4x4<T> scale(
91 detail::tvec3<T> const & v);
6492
65 //! Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.
66 //! From GLM_GTX_transform extension.
67 template <typename T>
68 detail::tmat4x4<T> rotate(
69 T angle,
70 detail::tvec3<T> const & v);
71
72 //! Transforms a matrix with a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.
73 //! From GLM_GTX_transform extension.
74 template <typename T>
75 detail::tmat4x4<T> rotate(
76 detail::tmat4x4<T> const & m,
77 T angle,
78 T x, T y, T z);
79
80 //! Builds a scale 4 * 4 matrix created from 3 scalars.
81 //! From GLM_GTX_transform extension.
82 template <typename T>
83 detail::tmat4x4<T> scale(
84 T x, T y, T z);
85
86 //! Transforms a matrix with a scale 4 * 4 matrix created from 3 scalars.
87 //! From GLM_GTX_transform extension.
88 template <typename T>
89 detail::tmat4x4<T> scale(
90 detail::tmat4x4<T> const & m,
91 T x, T y, T z);
92
93 //! Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components.
94 //! From GLM_GTX_transform extension.
95 template <typename T>
96 detail::tmat4x4<T> scale(
97 detail::tvec3<T> const & v);
98
99 ///@}
100
101 }//namespace transform
102 }//namespace gtx
93 /// @}
94 }//namespace transform
95 }//namespace gtx
10396 }//namespace glm
10497
10598 #include "transform.inl"
2121 # pragma message("GLM: GLM_GTX_transform2 extension included")
2222 #endif
2323
24 namespace glm
24 namespace glm{
25 namespace gtx{
26 namespace transform2 ///< GLM_GTX_transform2 extension: Add extra transformation matrices
2527 {
26 namespace test{
27 void main_gtx_transform2();
28 }//namespace test
28 using namespace gtx::transform;
2929
30 namespace gtx{
31 //! GLM_GTX_transform2 extension: Add extra transformation matrices
32 namespace transform2
33 {
34 using namespace gtx::transform;
30 /// \addtogroup gtx_transform2
31 /// @{
3532
36 /// \addtogroup gtx_transform2
37 ///@{
33 //! Transforms a matrix with a shearing on X axis.
34 //! From GLM_GTX_transform2 extension.
35 template <typename T>
36 detail::tmat3x3<T> shearX2D(
37 detail::tmat3x3<T> const & m,
38 T y);
3839
39 //! Transforms a matrix with a shearing on X axis.
40 //! From GLM_GTX_transform2 extension.
41 template <typename T>
42 detail::tmat3x3<T> shearX2D(
43 detail::tmat3x3<T> const & m,
44 T y);
40 //! Transforms a matrix with a shearing on Y axis.
41 //! From GLM_GTX_transform2 extension.
42 template <typename T>
43 detail::tmat3x3<T> shearY2D(
44 detail::tmat3x3<T> const & m,
45 T x);
4546
46 //! Transforms a matrix with a shearing on Y axis.
47 //! From GLM_GTX_transform2 extension.
48 template <typename T>
49 detail::tmat3x3<T> shearY2D(
50 detail::tmat3x3<T> const & m,
51 T x);
47 //! Transforms a matrix with a shearing on X axis
48 //! From GLM_GTX_transform2 extension.
49 template <typename T>
50 detail::tmat4x4<T> shearX3D(
51 const detail::tmat4x4<T> & m,
52 T y,
53 T z);
54
55 //! Transforms a matrix with a shearing on Y axis.
56 //! From GLM_GTX_transform2 extension.
57 template <typename T>
58 detail::tmat4x4<T> shearY3D(
59 const detail::tmat4x4<T> & m,
60 T x,
61 T z);
62
63 //! Transforms a matrix with a shearing on Z axis.
64 //! From GLM_GTX_transform2 extension.
65 template <typename T>
66 detail::tmat4x4<T> shearZ3D(
67 const detail::tmat4x4<T> & m,
68 T x,
69 T y);
5270
53 //! Transforms a matrix with a shearing on X axis
54 //! From GLM_GTX_transform2 extension.
55 template <typename T>
56 detail::tmat4x4<T> shearX3D(
57 const detail::tmat4x4<T> & m,
58 T y,
59 T z);
71 //template <typename T> GLM_FUNC_QUALIFIER detail::tmat4x4<T> shear(const detail::tmat4x4<T> & m, shearPlane, planePoint, angle)
72 // Identity + tan(angle) * cross(Normal, OnPlaneVector) 0
73 // - dot(PointOnPlane, normal) * OnPlaneVector 1
74
75 // Reflect functions seem to don't work
76 //template <typename T> detail::tmat3x3<T> reflect2D(const detail::tmat3x3<T> & m, const detail::tvec3<T>& normal){return reflect2DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
77 //template <typename T> detail::tmat4x4<T> reflect3D(const detail::tmat4x4<T> & m, const detail::tvec3<T>& normal){return reflect3DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
6078
61 //! Transforms a matrix with a shearing on Y axis.
62 //! From GLM_GTX_transform2 extension.
63 template <typename T>
64 detail::tmat4x4<T> shearY3D(
65 const detail::tmat4x4<T> & m,
66 T x,
67 T z);
68
69 //! Transforms a matrix with a shearing on Z axis.
70 //! From GLM_GTX_transform2 extension.
71 template <typename T>
72 detail::tmat4x4<T> shearZ3D(
73 const detail::tmat4x4<T> & m,
74 T x,
75 T y);
79 //! Build planar projection matrix along normal axis.
80 //! From GLM_GTX_transform2 extension.
81 template <typename T>
82 detail::tmat3x3<T> proj2D(
83 const detail::tmat3x3<T> & m,
84 const detail::tvec3<T>& normal);
85
86 //! Build planar projection matrix along normal axis.
87 //! From GLM_GTX_transform2 extension.
88 template <typename T>
89 detail::tmat4x4<T> proj3D(
90 const detail::tmat4x4<T> & m,
91 const detail::tvec3<T>& normal);
7692
77 //template <typename T> GLM_FUNC_QUALIFIER detail::tmat4x4<T> shear(const detail::tmat4x4<T> & m, shearPlane, planePoint, angle)
78 // Identity + tan(angle) * cross(Normal, OnPlaneVector) 0
79 // - dot(PointOnPlane, normal) * OnPlaneVector 1
93 //! Build a scale bias matrix.
94 //! From GLM_GTX_transform2 extension.
95 template <typename valType>
96 detail::tmat4x4<valType> scaleBias(
97 valType scale,
98 valType bias);
8099
81 // Reflect functions seem to don't work
82 //template <typename T> detail::tmat3x3<T> reflect2D(const detail::tmat3x3<T> & m, const detail::tvec3<T>& normal){return reflect2DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
83 //template <typename T> detail::tmat4x4<T> reflect3D(const detail::tmat4x4<T> & m, const detail::tvec3<T>& normal){return reflect3DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
84
85 //! Build planar projection matrix along normal axis.
86 //! From GLM_GTX_transform2 extension.
87 template <typename T>
88 detail::tmat3x3<T> proj2D(
89 const detail::tmat3x3<T> & m,
90 const detail::tvec3<T>& normal);
91
92 //! Build planar projection matrix along normal axis.
93 //! From GLM_GTX_transform2 extension.
94 template <typename T>
95 detail::tmat4x4<T> proj3D(
96 const detail::tmat4x4<T> & m,
97 const detail::tvec3<T>& normal);
100 //! Build a scale bias matrix.
101 //! From GLM_GTX_transform2 extension.
102 template <typename valType>
103 detail::tmat4x4<valType> scaleBias(
104 detail::tmat4x4<valType> const & m,
105 valType scale,
106 valType bias);
98107
99 //! Build a scale bias matrix.
100 //! From GLM_GTX_transform2 extension.
101 template <typename valType>
102 detail::tmat4x4<valType> scaleBias(
103 valType scale,
104 valType bias);
105
106 //! Build a scale bias matrix.
107 //! From GLM_GTX_transform2 extension.
108 template <typename valType>
109 detail::tmat4x4<valType> scaleBias(
110 detail::tmat4x4<valType> const & m,
111 valType scale,
112 valType bias);
113
114 ///@}
115
116 }//namespace transform2
117 }//namespace gtx
118 }//namespace glm
108 /// @}
109 }// namespace transform2
110 }// namespace gtx
111 }// namespace glm
119112
120113 #include "transform2.inl"
121114
1919 # pragma message("GLM: GLM_GTX_ulp extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace ulp ///< GLM_GTX_ulp extension: Precision calculation functions
2325 {
24 namespace gtx{
25 //! GLM_GTX_ulp extension: Precision calculation functions
26 namespace ulp
27 {
28 /// \addtogroup gtx_ulp
29 ///@{
26 /// \addtogroup gtx_ulp
27 /// @{
3028
31 //! Return the next ULP value(s) after the input value(s).
32 //! From GLM_GTX_ulp extension.
33 template <typename genType>
34 genType next_float(genType const & x);
29 //! Return the next ULP value(s) after the input value(s).
30 //! From GLM_GTX_ulp extension.
31 template <typename genType>
32 genType next_float(genType const & x);
3533
36 //! Return the previous ULP value(s) before the input value(s).
37 //! From GLM_GTX_ulp extension.
38 template <typename genType>
39 genType prev_float(genType const & x);
34 //! Return the previous ULP value(s) before the input value(s).
35 //! From GLM_GTX_ulp extension.
36 template <typename genType>
37 genType prev_float(genType const & x);
4038
41 //! Return the value(s) ULP distance after the input value(s).
42 //! From GLM_GTX_ulp extension.
43 template <typename genType>
44 genType next_float(genType const & x, uint const & Distance);
39 //! Return the value(s) ULP distance after the input value(s).
40 //! From GLM_GTX_ulp extension.
41 template <typename genType>
42 genType next_float(genType const & x, uint const & Distance);
4543
46 //! Return the value(s) ULP distance before the input value(s).
47 //! From GLM_GTX_ulp extension.
48 template <typename genType>
49 genType prev_float(genType const & x, uint const & Distance);
44 //! Return the value(s) ULP distance before the input value(s).
45 //! From GLM_GTX_ulp extension.
46 template <typename genType>
47 genType prev_float(genType const & x, uint const & Distance);
5048
51 //! Return the distance in the number of ULP between 2 scalars.
52 //! From GLM_GTX_ulp extension.
53 template <typename T>
54 uint float_distance(T const & x, T const & y);
49 //! Return the distance in the number of ULP between 2 scalars.
50 //! From GLM_GTX_ulp extension.
51 template <typename T>
52 uint float_distance(T const & x, T const & y);
5553
56 //! Return the distance in the number of ULP between 2 vectors.
57 //! From GLM_GTX_ulp extension.
58 template<typename T, template<typename> class vecType>
59 vecType<uint> float_distance(vecType<T> const & x, vecType<T> const & y);
54 //! Return the distance in the number of ULP between 2 vectors.
55 //! From GLM_GTX_ulp extension.
56 template<typename T, template<typename> class vecType>
57 vecType<uint> float_distance(vecType<T> const & x, vecType<T> const & y);
6058
61 ///@}
62
63 }//namespace ulp
64 }//namespace gtx
65 }//namespace glm
59 ///@}
60 }// namespace ulp
61 }// namespace gtx
62 }// namespace glm
6663
6764 #include "ulp.inl"
6865
2020 * ====================================================
2121 */
2222
23 #pragma warning(push)
24 #pragma warning(disable : 4127)
25
2326 typedef union
2427 {
2528 float value;
7578 volatile float t;
7679 glm::detail::int32 hx, hy, ix, iy;
7780
78 GLM_GET_FLOAT_WORD(hx,x);
79 GLM_GET_FLOAT_WORD(hy,y);
81 GLM_GET_FLOAT_WORD(hx, x);
82 GLM_GET_FLOAT_WORD(hy, y);
8083 ix = hx&0x7fffffff; // |x|
8184 iy = hy&0x7fffffff; // |y|
8285
167170 }//namespace detail
168171 }//namespace glm
169172
173 #pragma warning(pop)
174
170175 #if(GLM_COMPILER & GLM_COMPILER_VC)
171176 # define GLM_NEXT_AFTER_FLT(x, toward) glm::detail::nextafterf((x), (toward))
172177 # define GLM_NEXT_AFTER_DBL(x, toward) _nextafter((x), (toward))
2121 # pragma message("GLM: GLM_GTX_unsigned_int extension included")
2222 #endif
2323
24 namespace glm
24 namespace glm{
25 namespace gtx{
26 namespace unsigned_int ///< GLM_GTX_unsigned_int extension: Add support for unsigned integer for core functions
2527 {
26 namespace test{
27 void main_gtx_unsigned_int();
28 }//namespace test
28 using namespace gtx::integer;
2929
30 namespace gtx{
31 //! GLM_GTX_unsigned_int extension: Add support for unsigned integer for core functions
32 namespace unsigned_int
33 {
34 using namespace gtx::integer;
30 /// \addtogroup gtx_unsigned_int
31 /// @{
3532
36 /// \addtogroup gtx_unsigned_int
37 ///@{
33 //! 32bit signed integer.
34 //! From GLM_GTX_unsigned_int extension.
35 typedef signed int sint;
3836
39 //! 32bit signed integer.
40 //! From GLM_GTX_unsigned_int extension.
41 typedef signed int sint;
37 //! Returns x raised to the y power.
38 //! From GLM_GTX_unsigned_int extension.
39 uint pow(uint x, uint y);
4240
43 //! Returns x raised to the y power.
44 //! From GLM_GTX_unsigned_int extension.
45 uint pow(uint x, uint y);
41 //! Returns the positive square root of x.
42 //! From GLM_GTX_unsigned_int extension.
43 uint sqrt(uint x);
4644
47 //! Returns the positive square root of x.
48 //! From GLM_GTX_unsigned_int extension.
49 uint sqrt(uint x);
45 //! Modulus. Returns x - y * floor(x / y) for each component in x using the floating point value y.
46 //! From GLM_GTX_unsigned_int extension.
47 uint mod(uint x, uint y);
5048
51 //! Modulus. Returns x - y * floor(x / y) for each component in x using the floating point value y.
52 //! From GLM_GTX_unsigned_int extension.
53 uint mod(uint x, uint y);
54
55 ///@}
56
57 }//namespace unsigned_int
58 }//namespace gtx
49 /// @}
50 }//namespace unsigned_int
51 }//namespace gtx
5952 }//namespace glm
6053
6154 #include "unsigned_int.inl"
2020 # pragma message("GLM: GLM_GTX_vec1 extension included")
2121 #endif
2222
23 namespace glm
23 namespace glm{
24 namespace gtx{
25 namespace vector1{ ///< GLM_GTX_vec1 extension: 1 component vector.
26 namespace precision
2427 {
25 namespace test{
26 void main_gtx_vector1();
27 }//namespace test
28 //! 1 component vector of high precision floating-point numbers.
29 //! There is no guarantee on the actual precision.
30 //! From GLM_GTX_vec1 extension.
31 typedef detail::highp_vec1_t highp_vec1;
32 //! 1 component vector of medium precision floating-point numbers.
33 //! There is no guarantee on the actual precision.
34 //! From GLM_GTX_vec1 extension.
35 typedef detail::mediump_vec1_t mediump_vec1;
36 //! 1 component vector of low precision floating-point numbers.
37 //! There is no guarantee on the actual precision.
38 //! From GLM_GTX_vec1 extension.
39 typedef detail::lowp_vec1_t lowp_vec1;
2840
29 namespace gtx{
30 //! GLM_GTX_vector1 extension: 1 component vector.
31 namespace vector1
32 {
33 namespace precision
34 {
35 //! 1 component vector of high precision floating-point numbers.
36 //! There is no guarantee on the actual precision.
37 //! From GLM_GTX_vec1 extension.
38 typedef detail::highp_vec1_t highp_vec1;
39 //! 1 component vector of medium precision floating-point numbers.
40 //! There is no guarantee on the actual precision.
41 //! From GLM_GTX_vec1 extension.
42 typedef detail::mediump_vec1_t mediump_vec1;
43 //! 1 component vector of low precision floating-point numbers.
44 //! There is no guarantee on the actual precision.
45 //! From GLM_GTX_vec1 extension.
46 typedef detail::lowp_vec1_t lowp_vec1;
41 //! 1 component vector of high precision signed integer numbers.
42 //! There is no guarantee on the actual precision.
43 //! From GLM_GTX_vec1 extension.
44 typedef detail::highp_ivec1_t highp_ivec1;
45 //! 1 component vector of medium precision signed integer numbers.
46 //! There is no guarantee on the actual precision.
47 //! From GLM_GTX_vec1 extension.
48 typedef detail::mediump_ivec1_t mediump_ivec1;
49 //! 1 component vector of low precision signed integer numbers.
50 //! There is no guarantee on the actual precision.
51 //! From GLM_GTX_vec1 extension.
52 typedef detail::lowp_ivec1_t lowp_ivec1;
4753
48 //! 1 component vector of high precision signed integer numbers.
49 //! There is no guarantee on the actual precision.
50 //! From GLM_GTX_vec1 extension.
51 typedef detail::highp_ivec1_t highp_ivec1;
52 //! 1 component vector of medium precision signed integer numbers.
53 //! There is no guarantee on the actual precision.
54 //! From GLM_GTX_vec1 extension.
55 typedef detail::mediump_ivec1_t mediump_ivec1;
56 //! 1 component vector of low precision signed integer numbers.
57 //! There is no guarantee on the actual precision.
58 //! From GLM_GTX_vec1 extension.
59 typedef detail::lowp_ivec1_t lowp_ivec1;
54 //! 1 component vector of high precision unsigned integer numbers.
55 //! There is no guarantee on the actual precision.
56 //! From GLM_GTX_vec1 extension.
57 typedef detail::highp_uvec1_t highp_uvec1;
58 //! 1 component vector of medium precision unsigned integer numbers.
59 //! There is no guarantee on the actual precision.
60 //! From GLM_GTX_vec1 extension.
61 typedef detail::mediump_uvec1_t mediump_uvec1;
62 //! 1 component vector of low precision unsigned integer numbers.
63 //! There is no guarantee on the actual precision.
64 //! From GLM_GTX_vec1 extension.
65 typedef detail::lowp_uvec1_t lowp_uvec1;
66 }//namespace precision
6067
61 //! 1 component vector of high precision unsigned integer numbers.
62 //! There is no guarantee on the actual precision.
63 //! From GLM_GTX_vec1 extension.
64 typedef detail::highp_uvec1_t highp_uvec1;
65 //! 1 component vector of medium precision unsigned integer numbers.
66 //! There is no guarantee on the actual precision.
67 //! From GLM_GTX_vec1 extension.
68 typedef detail::mediump_uvec1_t mediump_uvec1;
69 //! 1 component vector of low precision unsigned integer numbers.
70 //! There is no guarantee on the actual precision.
71 //! From GLM_GTX_vec1 extension.
72 typedef detail::lowp_uvec1_t lowp_uvec1;
73 }//namespace precision
68 //////////////////////////
69 // vec1 definition
7470
75 //////////////////////////
76 // vec1 definition
77
78 //! 1 component vector of boolean.
79 //! From GLM_GTX_vec1 extension.
80 typedef detail::tvec1<bool> bvec1;
71 //! 1 component vector of boolean.
72 //! From GLM_GTX_vec1 extension.
73 typedef detail::tvec1<bool> bvec1;
8174
8275 #if(defined(GLM_PRECISION_HIGHP_FLOAT))
83 typedef precision::highp_vec1 vec1;
76 typedef precision::highp_vec1 vec1;
8477 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
85 typedef precision::mediump_vec1 vec1;
78 typedef precision::mediump_vec1 vec1;
8679 #elif(defined(GLM_PRECISION_LOWP_FLOAT))
87 typedef precision::lowp_vec1 vec1;
80 typedef precision::lowp_vec1 vec1;
8881 #else
89 //! 1 component vector of floating-point numbers.
90 //! From GLM_GTX_vec1 extension.
91 typedef precision::mediump_vec1 vec1;
82 //! 1 component vector of floating-point numbers.
83 //! From GLM_GTX_vec1 extension.
84 typedef precision::mediump_vec1 vec1;
9285 #endif//GLM_PRECISION
9386
9487 #if(defined(GLM_PRECISION_HIGHP_INT))
95 typedef precision::highp_ivec1 ivec1;
88 typedef precision::highp_ivec1 ivec1;
9689 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
97 typedef precision::mediump_ivec1 ivec1;
90 typedef precision::mediump_ivec1 ivec1;
9891 #elif(defined(GLM_PRECISION_LOWP_INT))
99 typedef precision::lowp_ivec1 ivec1;
92 typedef precision::lowp_ivec1 ivec1;
10093 #else
101 //! 1 component vector of signed integer numbers.
102 //! From GLM_GTX_vec1 extension.
103 typedef precision::mediump_ivec1 ivec1;
94 //! 1 component vector of signed integer numbers.
95 //! From GLM_GTX_vec1 extension.
96 typedef precision::mediump_ivec1 ivec1;
10497 #endif//GLM_PRECISION
10598
10699 #if(defined(GLM_PRECISION_HIGHP_UINT))
107 typedef precision::highp_uvec1 uvec1;
100 typedef precision::highp_uvec1 uvec1;
108101 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
109 typedef precision::mediump_uvec1 uvec1;
102 typedef precision::mediump_uvec1 uvec1;
110103 #elif(defined(GLM_PRECISION_LOWP_UINT))
111 typedef precision::lowp_uvec1 uvec1;
104 typedef precision::lowp_uvec1 uvec1;
112105 #else
113 //! 1 component vector of unsigned integer numbers.
114 //! From GLM_GTX_vec1 extension.
115 typedef precision::mediump_uvec1 uvec1;
106 //! 1 component vector of unsigned integer numbers.
107 //! From GLM_GTX_vec1 extension.
108 typedef precision::mediump_uvec1 uvec1;
116109 #endif//GLM_PRECISION
117110
118 }//namespace vec1
119 }//namespace gtx
120 }//namespace glm
111 }// namespace vec1
112 }// namespace gtx
113 }// namespace glm
121114
122115 #include "vec1.inl"
123116
1919 # pragma message("GLM: GLM_GTX_vector_access extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace vector_access ///< GLM_GTX_vector_access extension: Function to set values to vectors
2325 {
24 namespace test{
25 void main_gtx_vector_access();
26 }//namespace test
26 /// \addtogroup gtx_vector_access
27 /// @{
2728
28 namespace gtx{
29 //! GLM_GTX_vector_access extension: Function to set values to vectors
30 namespace vector_access
31 {
32 /// \addtogroup gtx_vector_access
33 ///@{
29 //! Set values to a 2 components vector.
30 //! From GLM_GTX_vector_access extension.
31 template <typename valType>
32 void set(
33 detail::tvec2<valType> & v,
34 valType const & x,
35 valType const & y);
3436
35 //! Set values to a 2 components vector.
36 //! From GLM_GTX_vector_access extension.
37 template <typename valType>
38 void set(
39 detail::tvec2<valType> & v,
40 valType const & x,
41 valType const & y);
37 //! Set values to a 3 components vector.
38 //! From GLM_GTX_vector_access extension.
39 template <typename valType>
40 void set(
41 detail::tvec3<valType> & v,
42 valType const & x,
43 valType const & y,
44 valType const & z);
4245
43 //! Set values to a 3 components vector.
44 //! From GLM_GTX_vector_access extension.
45 template <typename valType>
46 void set(
47 detail::tvec3<valType> & v,
48 valType const & x,
49 valType const & y,
50 valType const & z);
46 //! Set values to a 4 components vector.
47 //! From GLM_GTX_vector_access extension.
48 template <typename valType>
49 void set(
50 detail::tvec4<valType> & v,
51 valType const & x,
52 valType const & y,
53 valType const & z,
54 valType const & w);
5155
52 //! Set values to a 4 components vector.
53 //! From GLM_GTX_vector_access extension.
54 template <typename valType>
55 void set(
56 detail::tvec4<valType> & v,
57 valType const & x,
58 valType const & y,
59 valType const & z,
60 valType const & w);
61
62 ///@}
63
64 }//namespace vector_access
65 }//namespace gtx
56 /// @}
57 }//namespace vector_access
58 }//namespace gtx
6659 }//namespace glm
6760
6861 #include "vector_access.inl"
1616
1717 // Dependency:
1818 #include "../glm.hpp"
19 #include "../gtx/epsilon.hpp"
1920 #include "../gtx/quaternion.hpp"
20 #include "../gtx/epsilon.hpp"
21 #include "../gtx/rotate_vector.hpp"
2122
2223 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
2324 # pragma message("GLM: GLM_GTX_vector_angle extension included")
2425 #endif
2526
26 namespace glm
27 namespace glm{
28 namespace gtx{
29 namespace vector_angle ///< GLM_GTX_vector_angle extension: Compute angle between vectors
2730 {
28 namespace test{
29 void main_gtx_vector_angle();
30 }//namespace test
31 using namespace quaternion;
32 using namespace epsilon;
3133
32 namespace gtx{
33 //! GLM_GTX_vector_angle extension: Compute angle between vectors
34 namespace vector_angle
35 {
36 using namespace quaternion;
37 using namespace epsilon;
34 /// \addtogroup gtx_vector_angle
35 ///@{
3836
39 /// \addtogroup gtx_vector_angle
40 ///@{
37 //! Returns the absolute angle between two vectors
38 //! Parameters need to be normalized.
39 //! From GLM_GTX_vector_angle extension
40 template <typename vecType>
41 GLM_FUNC_QUALIFIER typename vecType::value_type angle(
42 vecType const & x,
43 vecType const & y);
4144
42 //! Returns the absolute angle between x and y.
43 //! Parameters need to be normalized.
44 //! From GLM_GTX_vector_angle extension
45 template <typename vecType>
46 typename vecType::value_type angle(
47 vecType const & x,
48 vecType const & y);
45 //! Returns the oriented angle between two 2d vectors
46 //! Parameters need to be normalized.
47 //! From GLM_GTX_vector_angle extension.
48 template <typename T>
49 GLM_FUNC_QUALIFIER T orientedAngle(
50 detail::tvec2<T> const & x,
51 detail::tvec2<T> const & y);
4952
50 //! Returns the oriented angle between x and y
51 //! Parameters need to be normalized.
52 //! From GLM_GTX_vector_angle extension.
53 template <typename vecType>
54 typename vecType::value_type orientedAngle(
55 vecType const & x,
56 vecType const & y);
53 //! Returns the oriented angle between two 3d vectors based from a reference axis.
54 //! Parameters need to be normalized.
55 //! From GLM_GTX_vector_angle extension.
56 template <typename T>
57 GLM_FUNC_QUALIFIER T orientedAngle(
58 detail::tvec3<T> const & x,
59 detail::tvec3<T> const & y,
60 detail::tvec3<T> const & ref);
5761
58 //! Returns the orientation of a two vector base from a normal.
59 //! Parameters need to be normalized.
60 //! From GLM_GTX_vector_angle extension.
61 template <typename vecType>
62 typename vecType::value_type orientedAngleFromRef(
63 vecType const & x,
64 vecType const & y,
65 detail::tvec3<typename vecType::value_type> const & ref);
66
67 ///@}
68 }//namespace vector_angle
69 }//namespace gtx
70 }//namespace glm
62 /// @}
63 }// namespace vector_angle
64 }// namespace gtx
65 }// namespace glm
7166
7267 #include "vector_angle.inl"
7368
2828 detail::tvec2<valType> const & y
2929 )
3030 {
31 valType Angle = acos(dot(x, y));
32 valType c = cos(Angle);
33 valType s = sin(Angle);
34 detail::tvec2<valType> TransformedVector = detail::tvec2<valType>(c * y.x - s * y.y, s * y.x + c * y.y);
35 if(all(equalEpsilon(x, TransformedVector, valType(0.01))))
36 return -glm::degrees(Angle);
31 valType Angle = glm::degrees(acos(dot(x, y)));
32 detail::tvec2<valType> TransformedVector = glm::gtx::rotate_vector::rotate(x, Angle);
33 if(all(equalEpsilon(y, TransformedVector, valType(0.01))))
34 return Angle;
3735 else
38 return glm::degrees(Angle);
39 }
40
41 //! \todo epsilon is hard coded to 0.01
42 template <typename valType>
43 GLM_FUNC_QUALIFIER valType orientedAngle
44 (
45 detail::tvec3<valType> const & x,
46 detail::tvec3<valType> const & y
47 )
48 {
49 valType Angle = degrees(acos(dot(x, y)));
50 detail::tvec3<valType> TransformedVector = glm::gtx::rotate_vector::rotate(y, Angle, glm::core::function::geometric::cross(x, y));
51 if(all(equalEpsilon(x, TransformedVector, valType(0.01))))
52 return -Angle;
53 else
54 return Angle;
55 }
56
57 //! \todo epsilon is hard coded to 0.01
58 template <typename valType>
59 GLM_FUNC_QUALIFIER valType orientedAngle
60 (
61 detail::tvec4<valType> const & x,
62 detail::tvec4<valType> const & y
63 )
64 {
65 valType Angle = degrees(acos(dot(x, y)));
66 detail::tvec4<valType> TransformedVector = glm::gtx::rotate_vector::rotate(y, Angle, glm::core::function::geometric::cross(x, y));
67 if(all(equalEpsilon(x, TransformedVector, valType(0.01))))
6836 return -Angle;
69 else
70 return Angle;
7137 }
7238
7339 template <typename valType>
74 GLM_FUNC_QUALIFIER valType orientedAngleFromRef
75 (
76 detail::tvec2<valType> const & x,
77 detail::tvec2<valType> const & y,
78 detail::tvec3<valType> const & ref
79 )
80 {
81 valType Angle = glm::acos(glm::dot(x, y));
82
83 if(glm::dot(ref, detail::tvec3<valType>(glm::cross(x, y), valType(0))) < valType(0))
84 return -glm::degrees(Angle);
85 else
86 return glm::degrees(Angle);
87 }
88
89 template <typename valType>
90 GLM_FUNC_QUALIFIER valType orientedAngleFromRef
40 GLM_FUNC_QUALIFIER valType orientedAngle
9141 (
9242 detail::tvec3<valType> const & x,
9343 detail::tvec3<valType> const & y,
9444 detail::tvec3<valType> const & ref
9545 )
9646 {
97 valType Angle = glm::acos(glm::dot(x, y));
47 valType Angle = glm::degrees(glm::acos(glm::dot(x, y)));
9848
9949 if(glm::dot(ref, glm::cross(x, y)) < valType(0))
100 return -glm::degrees(Angle);
50 return -Angle;
10151 else
102 return glm::degrees(Angle);
103 }
104
105 template <typename valType>
106 GLM_FUNC_QUALIFIER valType orientedAngleFromRef
107 (
108 detail::tvec4<valType> const & x,
109 detail::tvec4<valType> const & y,
110 detail::tvec3<valType> const & ref
111 )
112 {
113 valType Angle = glm::acos(glm::dot(x, y));
114
115 if(glm::dot(ref, glm::cross(detail::tvec3<valType>(x), detail::tvec3<valType>(y))) < valType(0))
116 return -glm::degrees(Angle);
117 else
118 return glm::degrees(Angle);
52 return Angle;
11953 }
12054
12155 }//namespace vector_angle
2121 # pragma message("GLM: GLM_GTX_vector_query extension included")
2222 #endif
2323
24 namespace glm
24 namespace glm{
25 namespace gtx{
26 namespace vector_query ///< GLM_GTX_vector_query extension: Query informations of vector types
2527 {
26 namespace test{
27 void main_ext_gtx_vector_query();
28 }//namespace test
28 /// \addtogroup gtx_vector_query
29 /// @{
2930
30 namespace gtx{
31 //! GLM_GTX_vector_query extension: Query informations of vector types
32 namespace vector_query
33 {
34 /// \addtogroup gtx_vector_query
35 ///@{
31 //! Check if two vectors are collinears.
32 //! From GLM_GTX_vector_query extensions.
33 template <typename genType>
34 bool areCollinear(
35 genType const & v0,
36 genType const & v1,
37 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
38
39 //! Check if two vectors are opposites.
40 //! From GLM_GTX_vector_query extensions.
41 template <typename genType>
42 bool areOpposite(
43 genType const & v0,
44 genType const & v1,
45 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
46
47 //! Check if two vectors are orthogonals.
48 //! From GLM_GTX_vector_query extensions.
49 template <typename genType>
50 bool areOrthogonal(
51 genType const & v0,
52 genType const & v1,
53 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
3654
37 //! Check if two vectors are collinears.
38 //! From GLM_GTX_vector_query extensions.
39 template <typename genType>
40 bool areCollinear(
41 genType const & v0,
42 genType const & v1,
43 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
55 //! Check if a vector is normalized.
56 //! From GLM_GTX_vector_query extensions.
57 template <typename genType>
58 bool isNormalized(
59 genType const & v,
60 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
4461
45 //! Check if two vectors are opposites.
46 //! From GLM_GTX_vector_query extensions.
47 template <typename genType>
48 bool areOpposite(
49 genType const & v0,
50 genType const & v1,
51 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
52
53 //! Check if two vectors are orthogonals.
54 //! From GLM_GTX_vector_query extensions.
55 template <typename genType>
56 bool areOrthogonal(
57 genType const & v0,
58 genType const & v1,
59 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
62 //! Check if a vector is null.
63 //! From GLM_GTX_vector_query extensions.
64 template <typename genType>
65 bool isNull(
66 genType const & v,
67 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
6068
61 //! Check if a vector is normalized.
62 //! From GLM_GTX_vector_query extensions.
63 template <typename genType>
64 bool isNormalized(
65 genType const & v,
66 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
67
68 //! Check if a vector is null.
69 //! From GLM_GTX_vector_query extensions.
70 template <typename genType>
71 bool isNull(
72 genType const & v,
73 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
69 //! Check if two vectors are orthonormal.
70 //! From GLM_GTX_vector_query extensions.
71 template <typename genType>
72 bool areOrthonormal(
73 genType const & v0,
74 genType const & v1,
75 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
7476
75 //! Check if two vectors are orthonormal.
76 //! From GLM_GTX_vector_query extensions.
77 template <typename genType>
78 bool areOrthonormal(
79 genType const & v0,
80 genType const & v1,
81 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
77 //! Check if two vectors are similar.
78 //! From GLM_GTX_vector_query extensions.
79 template <typename genType>
80 bool areSimilar(
81 genType const & v0,
82 genType const & v1,
83 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
8284
83 //! Check if two vectors are similar.
84 //! From GLM_GTX_vector_query extensions.
85 template <typename genType>
86 bool areSimilar(
87 genType const & v0,
88 genType const & v1,
89 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
90
91 ///@}
92
93 }//namespace vector_query
94 }//namespace gtx
95 }//namespace glm
85 /// @}
86 }// namespace vector_query
87 }// namespace gtx
88 }// namespace glm
9689
9790 #include "vector_query.inl"
9891
1919 # pragma message("GLM: GLM_GTX_verbose_operator extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace verbose_operator ///< GLM_GTX_verbose_operator extension: Use words to replace operators
2325 {
24 namespace test{
25 void main_ext_gtx_verbose_operator();
26 }//namespace test
26 /// \addtogroup gtx_verbose_operator
27 /// @{
2728
28 namespace gtx{
29 //! GLM_GTX_verbose_operator extension: Use words to replace operators
30 namespace verbose_operator
31 {
32 /// \addtogroup gtx_verbose_operator
33 ///@{
29 //! Addition of two values
30 //! From GLM_GTX_verbose_operator extension.
31 template <typename genTypeT, typename genTypeU>
32 genTypeT add(genTypeT const & a, genTypeU const & b);
3433
35 //! Addition of two values
36 //! From GLM_GTX_verbose_operator extension.
37 template <typename genTypeT, typename genTypeU>
38 genTypeT add(genTypeT const & a, genTypeU const & b);
34 //! Substration of two values
35 //! From GLM_GTX_verbose_operator extension.
36 template <typename genTypeT, typename genTypeU>
37 genTypeT sub(genTypeT const & a, genTypeU const & b);
3938
40 //! Substration of two values
41 //! From GLM_GTX_verbose_operator extension.
42 template <typename genTypeT, typename genTypeU>
43 genTypeT sub(genTypeT const & a, genTypeU const & b);
39 //! Multiplication of two values
40 //! From GLM_GTX_verbose_operator extension.
41 template <typename genTypeT, typename genTypeU>
42 genTypeT mul(genTypeT const & a, genTypeU const & b);
4443
45 //! Multiplication of two values
46 //! From GLM_GTX_verbose_operator extension.
47 template <typename genTypeT, typename genTypeU>
48 genTypeT mul(genTypeT const & a, genTypeU const & b);
44 //! Division of two values
45 //! From GLM_GTX_verbose_operator extension.
46 template <typename genTypeT, typename genTypeU>
47 genTypeT div(genTypeT const & a, genTypeU const & b);
4948
50 //! Division of two values
51 //! From GLM_GTX_verbose_operator extension.
52 template <typename genTypeT, typename genTypeU>
53 genTypeT div(genTypeT const & a, genTypeU const & b);
49 //! Multiplication and addition of three values
50 //! From GLM_GTX_verbose_operator extension.
51 template <typename genTypeT, typename genTypeU, typename genTypeV>
52 genTypeT mad(genTypeT const & a, genTypeU const & b, genTypeV const & c);
5453
55 //! Multiplication and addition of three values
56 //! From GLM_GTX_verbose_operator extension.
57 template <typename genTypeT, typename genTypeU, typename genTypeV>
58 genTypeT mad(genTypeT const & a, genTypeU const & b, genTypeV const & c);
59
60 ///@}
61 }//namespace verbose_operator
62 }//namespace gtx
63 }//namespace glm
54 /// @}
55 }// namespace verbose_operator
56 }// namespace gtx
57 }// namespace glm
6458
6559 #include "verbose_operator.inl"
6660
1919 # pragma message("GLM: GLM_GTX_wrap extension included")
2020 #endif
2121
22 namespace glm
22 namespace glm{
23 namespace gtx{
24 namespace wrap ///< GLM_GTX_wrap: Wrapping mode using my texture samping.
2325 {
24 namespace test{
25 bool main_gtx_wrap();
26 }//namespace test
26 /// \addtogroup gtx_wrap
27 /// @{
2728
28 namespace gtx{
29 //! GLM_GTX_wrap: Wrapping mode using my texture samping.
30 namespace wrap
31 {
32 /// \addtogroup gtx_wrap
33 ///@{
29 //! Simulate GL_CLAMP OpenGL wrap mode
30 //! From GLM_GTX_wrap extension.
31 template <typename genType>
32 genType clamp(genType const & Texcoord);
3433
35 //! Simulate GL_CLAMP OpenGL wrap mode
36 //! From GLM_GTX_wrap extension.
37 template <typename genType>
38 genType clamp(genType const & Texcoord);
34 //! Simulate GL_REPEAT OpenGL wrap mode
35 //! From GLM_GTX_wrap extension.
36 template <typename genType>
37 genType repeat(genType const & Texcoord);
3938
40 //! Simulate GL_REPEAT OpenGL wrap mode
41 //! From GLM_GTX_wrap extension.
42 template <typename genType>
43 genType repeat(genType const & Texcoord);
39 //! Simulate GL_MIRROR_REPEAT OpenGL wrap mode
40 //! From GLM_GTX_wrap extension.
41 template <typename genType>
42 genType mirrorRepeat(genType const & Texcoord);
4443
45 //! Simulate GL_MIRROR_REPEAT OpenGL wrap mode
46 //! From GLM_GTX_wrap extension.
47 template <typename genType>
48 genType mirrorRepeat(genType const & Texcoord);
49
50 ///@}
51
52 }//namespace wrap
53 }//namespace gtx
54 }//namespace glm
44 /// @}
45 }// namespace wrap
46 }// namespace gtx
47 }// namespace glm
5548
5649 #include "wrap.inl"
5750
0 #ifndef GLM_EXT_VIRTREV_XSTREAM_HPP
1 #define GLM_EXT_VIRTREV_XSTREAM_HPP
2
30 ///////////////////////////////////////////////////////////////////////////////////////////////////
41 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
52 // Virtrev SDK copyright matrem (matrem84.free.fr)
1310 // - GLM core
1411 // - GLM_GTX_matrix_selection
1512 ///////////////////////////////////////////////////////////////////////////////////////////////////
13
14 #ifndef GLM_EXT_VIRTREV_XSTREAM_HPP
15 #define GLM_EXT_VIRTREV_XSTREAM_HPP
1616
1717 #include "../glm.hpp"
1818 #include "../gtc/matrix_access.hpp"
00 ================================================================================
1 G-Truc Creation
2 --------------------------------------------------------------------------------
3 www.g-truc.net
1 OpenGL Mathematics (GLM)
2 --------------------------------------------------------------------------------
3 glm.g-truc.net
44 glm@g-truc.net
5
6 ================================================================================
7 The MIT License
8 --------------------------------------------------------------------------------
9 Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
10
11 Permission is hereby granted, free of charge, to any person obtaining a copy
12 of this software and associated documentation files (the "Software"), to deal
13 in the Software without restriction, including without limitation the rights
14 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15 copies of the Software, and to permit persons to whom the Software is
16 furnished to do so, subject to the following conditions:
17
18 The above copyright notice and this permission notice shall be included in
19 all copies or substantial portions of the Software.
20
21 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
27 THE SOFTWARE.
528
629 ================================================================================
730 GLM Usage
1336 http://glm.g-truc.net/glm-0.9.2.pdf
1437
1538 ================================================================================
16 GLM 0.9.2.0: 2010-05-09
39 GLM 0.9.2.6: 2011-10-01
40 --------------------------------------------------------------------------------
41 - Fixed half based type build on old GCC
42 - Fixed /W4 warnings on Visual C++
43 - Fixed some missing l-value swizzle operators
44
45 ================================================================================
46 GLM 0.9.2.5: 2011-09-20
47 --------------------------------------------------------------------------------
48 - Fixed floatBitToXint functions
49 - Fixed pack and unpack functions
50 - Fixed round functions
51
52 ================================================================================
53 GLM 0.9.2.4: 2011-09-03
54 --------------------------------------------------------------------------------
55 - Fixed extensions bugs
56
57 ================================================================================
58 GLM 0.9.2.3: 2011-06-08
59 --------------------------------------------------------------------------------
60 - Fixed build issues
61
62 ================================================================================
63 GLM 0.9.2.2: 2011-06-02
64 --------------------------------------------------------------------------------
65 - Expend matrix constructors flexibility
66 - Improved quaternion implementation
67 - Fixed many warnings across platforms and compilers
68
69 ================================================================================
70 GLM 0.9.2.1: 2011-05-24
71 --------------------------------------------------------------------------------
72 - Automatically detect CUDA support
73 - Improved compiler detection
74 - Fixed errors and warnings in VC with C++ extensions disabled
75 - Fixed and tested GLM_GTX_vector_angle
76 - Fixed and tested GLM_GTX_rotate_vector
77
78 ================================================================================
79 GLM 0.9.2.0: 2011-05-09
1780 --------------------------------------------------------------------------------
1881 - Added CUDA support
1982 - Added CTest test suite
2386 - Updated quaternion slerp interpolation
2487
2588 ================================================================================
26 GLM 0.9.1.3: 2010-05-07
27 --------------------------------------------------------------------------------
28 - Fixed bugs
29
30 ================================================================================
31 GLM 0.9.1.2: 2010-04-15
32 --------------------------------------------------------------------------------
33 - Fixed bugs
34
35 ================================================================================
36 GLM 0.9.1.1: 2010-03-17
37 --------------------------------------------------------------------------------
38 - Fixed bugs
39
40 ================================================================================
41 GLM 0.9.1.0: 2010-03-03
42 --------------------------------------------------------------------------------
43 - Fixed bugs
44
45 ================================================================================
46 GLM 0.9.1.B: 2010-02-13
89 GLM 0.9.1.3: 2011-05-07
90 --------------------------------------------------------------------------------
91 - Fixed bugs
92
93 ================================================================================
94 GLM 0.9.1.2: 2011-04-15
95 --------------------------------------------------------------------------------
96 - Fixed bugs
97
98 ================================================================================
99 GLM 0.9.1.1: 2011-03-17
100 --------------------------------------------------------------------------------
101 - Fixed bugs
102
103 ================================================================================
104 GLM 0.9.1.0: 2011-03-03
105 --------------------------------------------------------------------------------
106 - Fixed bugs
107
108 ================================================================================
109 GLM 0.9.1.B: 2011-02-13
47110 --------------------------------------------------------------------------------
48111 - Updated API documentation
49112 - Improved SIMD implementation
56119 - Clarify that GLM is a header only library.
57120
58121 ================================================================================
59 GLM 0.9.1.A: 2010-01-31
122 GLM 0.9.1.A: 2011-01-31
60123 --------------------------------------------------------------------------------
61124 - Added SIMD support
62125 - Added new swizzle functions
00 function(glmCreateTestGTC NAME)
11 set(SAMPLE_NAME test-${NAME})
2 add_executable(${SAMPLE_NAME} ${NAME}.cpp ../test.hpp ../test.cpp)
2 add_executable(${SAMPLE_NAME} ${NAME}.cpp)
33
44 add_test(
55 NAME ${SAMPLE_NAME}
2222 glmCreateTestGTC(core_func_packing)
2323 glmCreateTestGTC(core_func_trigonometric)
2424 glmCreateTestGTC(core_func_vector_relational)
25 glmCreateTestGTC(core_setup_message)
26 glmCreateTestGTC(core_setup_precision)
2527
2628
2729
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2011-05-31
4 // Updated : 2011-05-31
5 // Licence : This source is under MIT License
6 // File : test/core/setup_message.cpp
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #define GLM_MESSAGES
10 #include <glm/glm.hpp>
11
12 static int test_operators()
13 {
14 glm::vec3 A(1.0f);
15 glm::vec3 B(1.0f);
16 bool R = A != B;
17 bool S = A == B;
18
19 return (S && !R) ? 0 : 1;
20 }
21
22 int main()
23 {
24 int Error = 0;
25
26 Error += test_operators();
27
28 return Error;
29 }
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2011-05-31
4 // Updated : 2011-05-31
5 // Licence : This source is under MIT License
6 // File : test/core/setup_precision_highp.cpp
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #define GLM_PRECISION_HIGHP_FLOAT
10 #include <glm/glm.hpp>
11
12 static int test_mat()
13 {
14 int Error = 0;
15
16 Error += sizeof(glm::mat2) == sizeof(glm::highp_mat2) ? 0 : 1;
17 Error += sizeof(glm::mat3) == sizeof(glm::highp_mat3) ? 0 : 1;
18 Error += sizeof(glm::mat4) == sizeof(glm::highp_mat4) ? 0 : 1;
19
20 Error += sizeof(glm::mat2x2) == sizeof(glm::highp_mat2x2) ? 0 : 1;
21 Error += sizeof(glm::mat2x3) == sizeof(glm::highp_mat2x3) ? 0 : 1;
22 Error += sizeof(glm::mat2x4) == sizeof(glm::highp_mat2x4) ? 0 : 1;
23 Error += sizeof(glm::mat3x2) == sizeof(glm::highp_mat3x2) ? 0 : 1;
24 Error += sizeof(glm::mat3x3) == sizeof(glm::highp_mat3x3) ? 0 : 1;
25 Error += sizeof(glm::mat3x4) == sizeof(glm::highp_mat3x4) ? 0 : 1;
26 Error += sizeof(glm::mat4x2) == sizeof(glm::highp_mat4x2) ? 0 : 1;
27 Error += sizeof(glm::mat4x3) == sizeof(glm::highp_mat4x3) ? 0 : 1;
28 Error += sizeof(glm::mat4x4) == sizeof(glm::highp_mat4x4) ? 0 : 1;
29
30 return Error;
31 }
32
33 static int test_vec()
34 {
35 int Error = 0;
36
37 Error += sizeof(glm::vec2) == sizeof(glm::highp_vec2) ? 0 : 1;
38 Error += sizeof(glm::vec3) == sizeof(glm::highp_vec3) ? 0 : 1;
39 Error += sizeof(glm::vec4) == sizeof(glm::highp_vec4) ? 0 : 1;
40
41 return Error;
42 }
43
44 int main()
45 {
46 int Error = 0;
47
48 Error += test_mat();
49 Error += test_vec();
50
51 return Error;
52 }
2323 sizeof(glm::mediump_float) <= sizeof(glm::highp_float)) ? 0 : 1;
2424 }
2525
26 int test_vec2()
27 {
28 return 0;
29 }
30
2631 int main()
2732 {
2833 int Error = 0;
2934
3035 Error += test_float_size();
3136 Error += test_float_precision();
37 Error += test_vec2();
3238
3339 return Error;
3440 }
1717 glm::half B(2.0f);
1818 glm::half C = A + B;
1919 glm::half D(C);
20 float E = D;
21 int F = float(C);
20 float E(D);
21 int F(float(C));
2222 glm::half G = B * C;
2323 glm::half H = G / C;
2424 H += glm::half(1.0f);
2525 double J = H;
26 int I = float(H);
26 int I(float(H));
2727
2828 Result = Result && J == 3.0;
2929
66 // File : test/core/type_mat4x4.cpp
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
88
9 #define GLM_MESSAGES
109 #define GLM_PRECISION_HIGHP_FLOAT
1110 #include <glm/glm.hpp>
1211 #include <cstdio>
11 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
22 ///////////////////////////////////////////////////////////////////////////////////////////////////
33 // Created : 2008-08-31
4 // Updated : 2008-08-31
4 // Updated : 2011-05-31
55 // Licence : This source is under MIT License
66 // File : test/core/type_vec2.cpp
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
88
99 #include <glm/glm.hpp>
1010
11 static int test_operators()
11 int test_vec2_operators()
1212 {
13 glm::vec2 A(1.0f);
14 glm::vec2 B(1.0f);
15 bool R = A != B;
16 bool S = A == B;
13 int Error = 0;
14
15 {
16 glm::vec2 A(1.0f);
17 glm::vec2 B(1.0f);
18 Error += A != B ? 1 : 0;
19 Error += A == B ? 0 : 1;
20 }
21
22 {
23 glm::vec2 A(1.0f);
24 glm::vec2 C = A + 1.0f;
25 A += 1.0f;
26 Error += A.x == 2.0f && A.y == 2.0f ? 0 : 1;
27 Error += A.x == C.x && A.y == C.y ? 0 : 1;
28 }
29
30 {
31 glm::vec2 A(1.0f);
32 glm::vec2 B(2.0f,-1.0f);
33 glm::vec2 C = A + B;
34 A += B;
35 Error += A.x == 3.0f && A.y == 0.0f ? 0 : 1;
36 Error += A.x == C.x && A.y == C.y ? 0 : 1;
37 }
38
39 {
40 glm::vec2 A(1.0f);
41 glm::vec2 C = A - 1.0f;
42 A -= 1.0f;
43 Error += A.x == 0.0f && A.y == 0.0f ? 0 : 1;
44 Error += A.x == C.x && A.y == C.y ? 0 : 1;
45 }
46
47 {
48 glm::vec2 A(1.0f);
49 glm::vec2 B(2.0f,-1.0f);
50 glm::vec2 C = A - B;
51 A -= B;
52 Error += A.x == -1.0f && A.y == 2.0f ? 0 : 1;
53 Error += A.x == C.x && A.y == C.y ? 0 : 1;
54 }
55
56 {
57 glm::vec2 A(1.0f);
58 glm::vec2 C = A * 2.0f;
59 A *= 2.0f;
60 Error += A.x == 2.0f && A.y == 2.0f ? 0 : 1;
61 Error += A.x == C.x && A.y == C.y ? 0 : 1;
62 }
63
64 {
65 glm::vec2 A(2.0f);
66 glm::vec2 B(2.0f);
67 glm::vec2 C = A / B;
68 A /= B;
69 Error += A.x == 1.0f && A.y == 1.0f ? 0 : 1;
70 Error += A.x == C.x && A.y == C.y ? 0 : 1;
71 }
72
73 return Error;
74 }
1775
18 return (S && !R) ? 0 : 1;
76 int test_vec2_ctor()
77 {
78 int Error = 0;
79
80 {
81 glm::vec2 A = glm::vec2(2.0f);
82 glm::vec2 B = glm::vec2(2.0f, 3.0f);
83 glm::vec2 C = glm::vec2(2.0f, 3.0);
84 //glm::vec2 D = glm::dvec2(2.0); // Build error TODO: What does the specification says?
85 glm::vec2 E(glm::dvec2(2.0));
86 glm::vec2 F(glm::ivec2(2));
87
88 }
89
90 return Error;
91 }
92
93 int test_vec2_size()
94 {
95 int Error = 0;
96
97 Error += sizeof(glm::vec2) == sizeof(glm::mediump_vec2) ? 0 : 1;
98 Error += 8 == sizeof(glm::mediump_vec2) ? 0 : 1;
99 Error += sizeof(glm::dvec2) == sizeof(glm::highp_vec2) ? 0 : 1;
100 Error += 16 == sizeof(glm::highp_vec2) ? 0 : 1;
101 Error += glm::vec2().length() == 2 ? 0 : 1;
102 Error += glm::dvec2().length() == 2 ? 0 : 1;
103
104 return Error;
19105 }
20106
21107 int main()
22108 {
23109 int Error = 0;
24110
25 Error += test_operators();
111 Error += test_vec2_size();
112 Error += test_vec2_ctor();
113 Error += test_vec2_operators();
26114
27115 return Error;
28116 }
11 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
22 ///////////////////////////////////////////////////////////////////////////////////////////////////
33 // Created : 2008-08-31
4 // Updated : 2008-08-31
4 // Updated : 2011-09-19
55 // Licence : This source is under MIT License
66 // File : test/core/type_vec3.cpp
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
88
99 #include <glm/glm.hpp>
1010
11 static int test_operators()
11 static int test_vec3_operators()
1212 {
1313 glm::vec3 A(1.0f);
1414 glm::vec3 B(1.0f);
1818 return (S && !R) ? 0 : 1;
1919 }
2020
21 int test_vec3_size()
22 {
23 int Error = 0;
24
25 Error += sizeof(glm::vec3) == sizeof(glm::mediump_vec3) ? 0 : 1;
26 Error += 12 == sizeof(glm::mediump_vec3) ? 0 : 1;
27 Error += sizeof(glm::dvec3) == sizeof(glm::highp_vec3) ? 0 : 1;
28 Error += 24 == sizeof(glm::highp_vec3) ? 0 : 1;
29 Error += glm::vec3().length() == 3 ? 0 : 1;
30 Error += glm::dvec3().length() == 3 ? 0 : 1;
31
32 return Error;
33 }
34
2135 int main()
2236 {
2337 int Error = 0;
2438
25 Error += test_operators();
39 Error += test_vec3_operators();
40 Error += test_vec3_size();
2641
2742 return Error;
2843 }
4040 return 0;
4141 }
4242
43 static int test_operators()
43 int test_vec4_operators()
4444 {
4545 glm::vec4 A(1.0f);
4646 glm::vec4 B(1.0f);
5050 return (S && !R) ? 0 : 1;
5151 }
5252
53 int test_vec4_size()
54 {
55 int Error = 0;
56
57 Error += sizeof(glm::vec4) == sizeof(glm::mediump_vec4) ? 0 : 1;
58 Error += 16 == sizeof(glm::mediump_vec4) ? 0 : 1;
59 Error += sizeof(glm::dvec4) == sizeof(glm::highp_vec4) ? 0 : 1;
60 Error += 32 == sizeof(glm::highp_vec4) ? 0 : 1;
61 Error += glm::vec4().length() == 4 ? 0 : 1;
62 Error += glm::dvec4().length() == 4 ? 0 : 1;
63
64 return Error;
65 }
66
5367 int main()
5468 {
5569 //__m128 DataA = swizzle<X, Y, Z, W>(glm::vec4(1.0f, 2.0f, 3.0f, 4.0f));
5670 //__m128 DataB = swizzle<W, Z, Y, X>(glm::vec4(1.0f, 2.0f, 3.0f, 4.0f));
5771
5872 int Error = 0;
59 Error += test_operators();
73 Error += test_vec4_size();
74 Error += test_vec4_operators();
6075 Error += test_hvec4();
6176 return Error;
6277 }
00 ///////////////////////////////////////////////////////////////////////////////////////////////////
11 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
22 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2010-09-16
4 // Updated : 2010-09-16
3 // Created : 2011-05-32
4 // Updated : 2011-05-32
55 // Licence : This source is under MIT licence
6 // File : test/gtc/matrix_transform.cpp
6 // File : test/gtc/half_float.cpp
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
88
9 #define GLM_MESSAGES
109 #include <glm/glm.hpp>
11 #include <glm/gtc/matrix_transform.hpp>
10 #include <glm/gtc/half_float.hpp>
11
12 int test_half_precision_scalar()
13 {
14 int Error = 0;
15
16 Error += sizeof(glm::half) == 2 ? 0 : 1;
17
18 return Error;
19 }
20
21 int test_half_precision_vec()
22 {
23 int Error = 0;
24
25 Error += sizeof(glm::hvec2) == 4 ? 0 : 1;
26 Error += sizeof(glm::hvec3) == 6 ? 0 : 1;
27 Error += sizeof(glm::hvec4) == 8 ? 0 : 1;
28
29 return Error;
30 }
31
32 int test_half_precision_mat()
33 {
34 int Error = 0;
35
36 Error += sizeof(glm::hmat2) == 8 ? 0 : 1;
37 Error += sizeof(glm::hmat3) == 18 ? 0 : 1;
38 Error += sizeof(glm::hmat4) == 32 ? 0 : 1;
39
40 Error += sizeof(glm::hmat2x2) == 8 ? 0 : 1;
41 Error += sizeof(glm::hmat2x3) == 12 ? 0 : 1;
42 Error += sizeof(glm::hmat2x4) == 16 ? 0 : 1;
43 Error += sizeof(glm::hmat3x2) == 12 ? 0 : 1;
44 Error += sizeof(glm::hmat3x3) == 18 ? 0 : 1;
45 Error += sizeof(glm::hmat3x4) == 24 ? 0 : 1;
46 Error += sizeof(glm::hmat4x2) == 16 ? 0 : 1;
47 Error += sizeof(glm::hmat4x3) == 24 ? 0 : 1;
48 Error += sizeof(glm::hmat4x4) == 32 ? 0 : 1;
49
50 return Error;
51 }
52
53 int test_half_ctor_mat2x2()
54 {
55 int Error = 0;
56
57 {
58 glm::hvec2 A(1, 2);
59 glm::hvec2 B(3, 4);
60 glm::hmat2 C(A, B);//, 2.0f, 3.0f, 4.0f);
61 glm::hmat2 D(1, 2, 3, 4);
62
63 Error += C[0] == D[0] ? 0 : 1;
64 Error += C[1] == D[1] ? 0 : 1;
65 }
66
67 {
68 glm::hvec2 A(1, 2.0);
69 glm::hvec2 B(3, 4.0);
70 glm::hmat2 C(A, B);//, 2.0f, 3.0f, 4.0f);
71 glm::hmat2 D(1, 2.0, 3u, 4.0f);
72
73 Error += C[0] == D[0] ? 0 : 1;
74 Error += C[1] == D[1] ? 0 : 1;
75 }
76
77 return Error;
78 }
79
80 int test_half_ctor_mat2x3()
81 {
82 int Error = 0;
83
84 return Error;
85 }
86
87 int test_half_ctor_mat2x4()
88 {
89 int Error = 0;
90
91 return Error;
92 }
93
94 int test_half_ctor_mat3x2()
95 {
96 int Error = 0;
97
98 return Error;
99 }
100
101 int test_half_ctor_mat3x3()
102 {
103 int Error = 0;
104
105 return Error;
106 }
107
108 int test_half_ctor_mat3x4()
109 {
110 int Error = 0;
111
112 return Error;
113 }
114
115 int test_half_ctor_mat4x2()
116 {
117 int Error = 0;
118
119 return Error;
120 }
121
122 int test_half_ctor_mat4x3()
123 {
124 int Error = 0;
125
126 return Error;
127 }
128
129 int test_half_ctor_mat4x4()
130 {
131 int Error = 0;
132
133 return Error;
134 }
135
136 int test_half_ctor_vec2()
137 {
138 int Error = 0;
139
140 {
141 glm::hvec2 A(1, 2);
142 glm::hvec2 B(A);
143 glm::vec2 C(1, 2);
144 glm::hvec2 D(C);
145 glm::dvec2 E(1, 2);
146 glm::hvec2 F(E);
147 glm::hvec2 G(1, 2.0);
148 glm::hvec2 H;
149 H = A;
150
151 Error += A == B ? 0 : 1;
152 //Error += C == D ? 0 : 1;
153 //Error += E == F ? 0 : 1;
154 Error += A == G ? 0 : 1;
155 Error += A == H ? 0 : 1;
156 }
157
158 {
159 glm::hvec2 A(1);
160 glm::vec2 B(1);
161
162 //Error += A == B ? 0 : 1;
163 }
164
165 return Error;
166 }
167
168 int test_half_ctor_vec3()
169 {
170 int Error = 0;
171
172 {
173 glm::hvec3 A(1, 2, 3);
174 glm::hvec3 B(A);
175 glm::vec3 C(1, 2, 3);
176 glm::hvec3 D(C);
177 glm::dvec3 E(1, 2, 3);
178 glm::hvec3 F(E);
179 glm::hvec3 G(1, 2.0, 3);
180 glm::hvec3 H;
181 H = A;
182
183 Error += A == B ? 0 : 1;
184 //Error += C == D ? 0 : 1;
185 //Error += E == F ? 0 : 1;
186 Error += A == G ? 0 : 1;
187 Error += A == H ? 0 : 1;
188 }
189
190 {
191 glm::hvec3 A(1);
192 glm::vec3 B(1);
193
194 //Error += A == B ? 0 : 1;
195 }
196
197 return Error;
198 }
199
200 int test_half_ctor_vec4()
201 {
202 int Error = 0;
203
204 {
205 glm::hvec4 A(1, 2, 3, 4);
206 glm::hvec4 B(A);
207 glm::vec4 C(1, 2, 3, 4);
208 glm::hvec4 D(C);
209 glm::dvec4 E(1, 2, 3, 4);
210 glm::hvec4 F(E);
211 glm::hvec4 G(1, 2.0, 3, 4);
212 glm::hvec4 H;
213 H = A;
214
215 Error += A == B ? 0 : 1;
216 //Error += C == D ? 0 : 1;
217 //Error += E == F ? 0 : 1;
218 Error += A == G ? 0 : 1;
219 Error += A == H ? 0 : 1;
220 }
221
222 {
223 glm::hvec4 A(1);
224 glm::vec4 B(1);
225
226 //Error += A == B ? 0 : 1;
227 }
228
229 return Error;
230 }
231
232 int test_hvec2_size()
233 {
234 int Error = 0;
235
236 Error += sizeof(glm::hvec2) <= sizeof(glm::lowp_vec2) ? 0 : 1;
237 Error += 4 == sizeof(glm::hvec2) ? 0 : 1;
238 Error += glm::hvec2().length() == 2 ? 0 : 1;
239
240 return Error;
241 }
242
243 int test_hvec3_size()
244 {
245 int Error = 0;
246
247 Error += sizeof(glm::hvec3) <= sizeof(glm::lowp_vec3) ? 0 : 1;
248 Error += 6 <= sizeof(glm::hvec3) ? 0 : 1;
249 Error += glm::hvec3().length() == 3 ? 0 : 1;
250
251 return Error;
252 }
253
254 int test_hvec4_size()
255 {
256 int Error = 0;
257
258 Error += sizeof(glm::hvec4) <= sizeof(glm::lowp_vec4) ? 0 : 1;
259 Error += 8 <= sizeof(glm::hvec4) ? 0 : 1;
260 Error += glm::hvec4().length() == 4 ? 0 : 1;
261
262 return Error;
263 }
12264
13265 int main()
14266 {
15 int Failed = 0;
16
17 return Failed;
18 }
267 int Error = 0;
268
269 Error += test_hvec2_size();
270 Error += test_hvec3_size();
271 Error += test_hvec4_size();
272 Error += test_half_ctor_vec2();
273 Error += test_half_ctor_vec3();
274 Error += test_half_ctor_vec4();
275 Error += test_half_ctor_mat2x2();
276 Error += test_half_precision_scalar();
277 Error += test_half_precision_vec();
278 Error += test_half_precision_mat();
279
280 return Error;
281 }
66 // File : test/gtc/matrix_integer.cpp
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
88
9 #define GLM_MESSAGES
109 #include <glm/glm.hpp>
1110 #include <glm/gtc/matrix_integer.hpp>
1211
66 // File : test/gtc/matrix_transform.cpp
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
88
9 #define GLM_MESSAGES
109 #include <glm/glm.hpp>
1110 #include <glm/gtc/matrix_transform.hpp>
1211
11 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
22 ///////////////////////////////////////////////////////////////////////////////////////////////////
33 // Created : 2010-09-16
4 // Updated : 2010-05-07
4 // Updated : 2011-05-25
55 // Licence : This source is under MIT licence
66 // File : test/gtc/quaternion.cpp
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
88
99 #include <glm/glm.hpp>
1010 #include <glm/gtc/quaternion.hpp>
11 #include <glm/gtx/epsilon.hpp>
12
13 int test_quat_precision()
14 {
15 int Error = 0;
16
17 Error += sizeof(glm::lowp_quat) <= sizeof(glm::mediump_quat) ? 0 : 1;
18 Error += sizeof(glm::mediump_quat) <= sizeof(glm::highp_quat) ? 0 : 1;
19
20 return Error;
21 }
22
23 int test_quat_type()
24 {
25 glm::quat A;
26 glm::dquat B;
27
28 return 0;
29 }
1130
1231 int main()
1332 {
1433 int Error = 0;
34
35 Error += test_quat_precision();
36 Error += test_quat_type();
1537
1638 return Error;
1739 }
66 // File : test/gtc/swizzle.cpp
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
88
9 #define GLM_MESSAGES
109 #include <glm/glm.hpp>
1110 #include <glm/gtc/swizzle.hpp>
1211
11 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
22 ///////////////////////////////////////////////////////////////////////////////////////////////////
33 // Created : 2010-09-16
4 // Updated : 2010-09-16
4 // Updated : 2011-05-27
55 // Licence : This source is under MIT licence
66 // File : test/gtc/type_ptr.cpp
77 ///////////////////////////////////////////////////////////////////////////////////////////////////
88
9 #define GLM_MESSAGES
109 #include <glm/glm.hpp>
1110 #include <glm/gtc/type_ptr.hpp>
1211
13 bool test_make_pointer()
12 int test_make_pointer_mat()
1413 {
14 int Error = 0;
15
16 float ArrayA[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
17 int ArrayB[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
18 bool ArrayC[] = {true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false};
19
20 glm::mat2x2 Mat2x2A = glm::make_mat2x2(ArrayA);
21 glm::mat2x3 Mat2x3A = glm::make_mat2x3(ArrayA);
22 glm::mat2x4 Mat2x4A = glm::make_mat2x4(ArrayA);
23 glm::mat3x2 Mat3x2A = glm::make_mat3x2(ArrayA);
24 glm::mat3x3 Mat3x3A = glm::make_mat3x3(ArrayA);
25 glm::mat3x4 Mat3x4A = glm::make_mat3x4(ArrayA);
26 glm::mat4x2 Mat4x2A = glm::make_mat4x2(ArrayA);
27 glm::mat4x3 Mat4x3A = glm::make_mat4x3(ArrayA);
28 glm::mat4x4 Mat4x4A = glm::make_mat4x4(ArrayA);
29
30 return Error;
31 }
32
33 int test_make_pointer_vec()
34 {
35 int Error = 0;
36
1537 float ArrayA[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
1638 int ArrayB[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
1739 bool ArrayC[] = {true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false};
2850 glm::bvec3 Vec3C = glm::make_vec3(ArrayC);
2951 glm::bvec4 Vec4C = glm::make_vec4(ArrayC);
3052
31 glm::mat2x2 Mat2x2A = glm::make_mat2x2(ArrayA);
32 glm::mat2x3 Mat2x3A = glm::make_mat2x3(ArrayA);
33 glm::mat2x4 Mat2x4A = glm::make_mat2x4(ArrayA);
34 glm::mat3x2 Mat3x2A = glm::make_mat3x2(ArrayA);
35 glm::mat3x3 Mat3x3A = glm::make_mat3x3(ArrayA);
36 glm::mat3x4 Mat3x4A = glm::make_mat3x4(ArrayA);
37 glm::mat4x2 Mat4x2A = glm::make_mat4x2(ArrayA);
38 glm::mat4x3 Mat4x3A = glm::make_mat4x3(ArrayA);
39 glm::mat4x4 Mat4x4A = glm::make_mat4x4(ArrayA);
40
41 return true;
53 return Error;
4254 }
4355
4456 int main()
4557 {
46 int Failed = 0;
58 int Error = 0;
4759
48 Failed += test_make_pointer() ? 0 : 1;
60 Error += test_make_pointer_vec();
61 Error += test_make_pointer_mat();
4962
50 return Failed;
63 return Error;
5164 }
0 glmCreateTestGTC(gtx-bit)
1 glmCreateTestGTC(gtx-noise)
2 glmCreateTestGTC(gtx-simd-vec4)
3 glmCreateTestGTC(gtx-simd-mat4)
4 glmCreateTestGTC(gtx-ulp)
0 glmCreateTestGTC(gtx_bit)
1 glmCreateTestGTC(gtx_noise)
2 glmCreateTestGTC(gtx_quaternion)
3 glmCreateTestGTC(gtx_random)
4 glmCreateTestGTC(gtx_rotate_vector)
5 glmCreateTestGTC(gtx_simd_vec4)
6 glmCreateTestGTC(gtx_simd_mat4)
7 glmCreateTestGTC(gtx_string_cast)
8 glmCreateTestGTC(gtx_ulp)
9 glmCreateTestGTC(gtx_vector_angle)
+0
-136
test/gtx/gtx-bit.cpp less more
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2010-09-16
4 // Updated : 2010-09-16
5 // Licence : This source is under MIT licence
6 // File : test/gtx/bit.cpp
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #include <glm/glm.hpp>
10 #include <glm/gtx/number_precision.hpp>
11 #include <glm/gtx/bit.hpp>
12 #include <iostream>
13
14 enum result
15 {
16 SUCCESS,
17 FAIL,
18 ASSERT,
19 STATIC_ASSERT
20 };
21
22 namespace extractField
23 {
24 template <typename genType, typename sizeType>
25 struct type
26 {
27 genType Value;
28 sizeType BitFirst;
29 sizeType BitCount;
30 genType Return;
31 result Result;
32 };
33
34 typedef type<glm::uint64, glm::uint> typeU64;
35
36 typeU64 const Data64[] =
37 {
38 {0xffffffffffffffff, 8, 0, 0x0000000000000000, SUCCESS},
39 {0x0000000000000000, 0,64, 0x0000000000000000, SUCCESS},
40 {0xffffffffffffffff, 0,64, 0xffffffffffffffff, SUCCESS},
41 {0x0f0f0f0f0f0f0f0f, 0,64, 0x0f0f0f0f0f0f0f0f, SUCCESS},
42 {0x0000000000000000, 8, 0, 0x0000000000000000, SUCCESS},
43 {0x8000000000000000,63, 1, 0x0000000000000001, SUCCESS},
44 {0x7fffffffffffffff,63, 1, 0x0000000000000000, SUCCESS},
45 {0x0000000000000300, 8, 8, 0x0000000000000003, SUCCESS},
46 {0x000000000000ff00, 8, 8, 0x00000000000000ff, SUCCESS},
47 {0xfffffffffffffff0, 0, 5, 0x0000000000000010, SUCCESS},
48 {0x00000000000000ff, 1, 3, 0x0000000000000007, SUCCESS},
49 {0x00000000000000ff, 0, 3, 0x0000000000000007, SUCCESS},
50 {0x0000000000000000, 0, 2, 0x0000000000000000, SUCCESS},
51 {0xffffffffffffffff, 0, 8, 0x00000000000000ff, SUCCESS},
52 {0xffffffff00000000,32,32, 0x00000000ffffffff, SUCCESS},
53 {0xfffffffffffffff0, 0, 8, 0x0000000000000000, FAIL},
54 {0xffffffffffffffff,32,32, 0x0000000000000000, FAIL},
55 //{0xffffffffffffffff,64, 1, 0x0000000000000000, ASSERT}, // Throw an assert
56 //{0xffffffffffffffff, 0,65, 0x0000000000000000, ASSERT}, // Throw an assert
57 //{0xffffffffffffffff,33,32, 0x0000000000000000, ASSERT}, // Throw an assert
58 };
59
60 int test()
61 {
62 glm::uint32 count = sizeof(Data64) / sizeof(typeU64);
63
64 for(glm::uint32 i = 0; i < count; ++i)
65 {
66 glm::uint64 Return = glm::extractField(
67 Data64[i].Value,
68 Data64[i].BitFirst,
69 Data64[i].BitCount);
70
71 bool Compare = Data64[i].Return == Return;
72
73 if(Data64[i].Result == SUCCESS && Compare)
74 continue;
75 else if(Data64[i].Result == FAIL && !Compare)
76 continue;
77
78 std::cout << "glm::extractfield test fail on test " << i << std::endl;
79 return 1;
80 }
81
82 return 0;
83 }
84 }//extractField
85
86 namespace bitRevert
87 {
88 template <typename genType>
89 struct type
90 {
91 genType Value;
92 genType Return;
93 result Result;
94 };
95
96 typedef type<glm::uint64> typeU64;
97
98 typeU64 const Data64[] =
99 {
100 {0xffffffffffffffff, 0xffffffffffffffff, SUCCESS},
101 {0x0000000000000000, 0x0000000000000000, SUCCESS},
102 {0xf000000000000000, 0x000000000000000f, SUCCESS},
103 };
104
105 int test()
106 {
107 glm::uint32 count = sizeof(Data64) / sizeof(typeU64);
108
109 for(glm::uint32 i = 0; i < count; ++i)
110 {
111 glm::uint64 Return = glm::bitRevert(
112 Data64[i].Value);
113
114 bool Compare = Data64[i].Return == Return;
115
116 if(Data64[i].Result == SUCCESS && Compare)
117 continue;
118 else if(Data64[i].Result == FAIL && !Compare)
119 continue;
120
121 std::cout << "glm::extractfield test fail on test " << i << std::endl;
122 return 1;
123 }
124
125 return 0;
126 }
127 }//bitRevert
128
129 int main()
130 {
131 int Error = 0;
132 Error += ::extractField::test();
133 Error += ::bitRevert::test();
134 return Error;
135 }
+0
-27
test/gtx/gtx-noise.cpp less more
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2011-04-21
4 // Updated : 2011-04-26
5 // Licence : This source is under MIT licence
6 // File : test/gtx/noise.cpp
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #include <glm/glm.hpp>
10 #include <glm/gtx/noise.hpp>
11 #include <iostream>
12
13 int main()
14 {
15 float ValueSNoise2D = glm::simplex(glm::vec2(0.5f));
16 float ValueSNoise3D = glm::simplex(glm::vec3(0.5f));
17 float ValueSNoise4D = glm::simplex(glm::vec4(0.5f));
18
19 float ValueCNoise2D = glm::perlin(glm::vec2(0.5f));
20 float ValueCNoise3D = glm::perlin(glm::vec3(0.5f));
21 float ValueCNoise4D = glm::perlin(glm::vec4(0.5f));
22
23 float ValuePNoise2D = glm::perlin(glm::vec2(0.5f), glm::vec2(0.5f));
24 float ValuePNoise3D = glm::perlin(glm::vec3(0.5f), glm::vec3(0.5f));
25 float ValuePNoise4D = glm::perlin(glm::vec4(0.5f), glm::vec4(0.5f));
26 }
+0
-287
test/gtx/gtx-simd-mat4.cpp less more
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2010-09-16
4 // Updated : 2010-09-16
5 // Licence : This source is under MIT licence
6 // File : test/gtx/simd-mat4.cpp
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #include <glm/glm.hpp>
10 #include <glm/gtc/matrix_transform.hpp>
11 #include <glm/gtc/quaternion.hpp>
12 #include <glm/gtx/simd_vec4.hpp>
13 #include <glm/gtx/simd_mat4.hpp>
14 #include <glm/gtx/random.hpp>
15 #include <iostream>
16 #include <cstdio>
17 #include <ctime>
18 #include <vector>
19
20 std::vector<float> test_detA(std::vector<glm::mat4> const & Data)
21 {
22 std::vector<float> Test(Data.size());
23
24 std::clock_t TimeStart = clock();
25
26 for(std::size_t i = 0; i < Test.size() - 1; ++i)
27 Test[i] = glm::determinant(Data[i]);
28
29 std::clock_t TimeEnd = clock();
30 printf("Det A: %ld\n", TimeEnd - TimeStart);
31
32 return Test;
33 }
34
35 std::vector<float> test_detB(std::vector<glm::mat4> const & Data)
36 {
37 std::vector<float> Test(Data.size());
38
39 std::clock_t TimeStart = clock();
40
41 for(std::size_t i = 0; i < Test.size() - 1; ++i)
42 {
43 _mm_prefetch((char*)&Data[i + 1], _MM_HINT_T0);
44 glm::simdMat4 m(Data[i]);
45 glm::simdVec4 d(glm::detail::sse_slow_det_ps((__m128 const * const)&m));
46 glm::vec4 v;//(d);
47 Test[i] = v.x;
48 }
49
50 std::clock_t TimeEnd = clock();
51 printf("Det B: %ld\n", TimeEnd - TimeStart);
52
53 return Test;
54 }
55
56 std::vector<float> test_detC(std::vector<glm::mat4> const & Data)
57 {
58 std::vector<float> Test(Data.size());
59
60 std::clock_t TimeStart = clock();
61
62 for(std::size_t i = 0; i < Test.size() - 1; ++i)
63 {
64 _mm_prefetch((char*)&Data[i + 1], _MM_HINT_T0);
65 glm::simdMat4 m(Data[i]);
66 glm::simdVec4 d(glm::detail::sse_det_ps((__m128 const * const)&m));
67 glm::vec4 v;//(d);
68 Test[i] = v.x;
69 }
70
71 std::clock_t TimeEnd = clock();
72 printf("Det C: %ld\n", TimeEnd - TimeStart);
73
74 return Test;
75 }
76
77 std::vector<float> test_detD(std::vector<glm::mat4> const & Data)
78 {
79 std::vector<float> Test(Data.size());
80
81 std::clock_t TimeStart = clock();
82
83 for(std::size_t i = 0; i < Test.size() - 1; ++i)
84 {
85 _mm_prefetch((char*)&Data[i + 1], _MM_HINT_T0);
86 glm::simdMat4 m(Data[i]);
87 glm::simdVec4 d(glm::detail::sse_detd_ps((__m128 const * const)&m));
88 glm::vec4 v;//(d);
89 Test[i] = v.x;
90 }
91
92 std::clock_t TimeEnd = clock();
93 printf("Det D: %ld\n", TimeEnd - TimeStart);
94
95 return Test;
96 }
97
98 void test_invA(std::vector<glm::mat4> const & Data, std::vector<glm::mat4> & Out)
99 {
100 //std::vector<float> Test(Data.size());
101 Out.resize(Data.size());
102
103 std::clock_t TimeStart = clock();
104
105 for(std::size_t i = 0; i < Out.size() - 1; ++i)
106 {
107 Out[i] = glm::inverse(Data[i]);
108 }
109
110 std::clock_t TimeEnd = clock();
111 printf("Inv A: %ld\n", TimeEnd - TimeStart);
112 }
113
114 void test_invC(std::vector<glm::mat4> const & Data, std::vector<glm::mat4> & Out)
115 {
116 //std::vector<float> Test(Data.size());
117 Out.resize(Data.size());
118
119 std::clock_t TimeStart = clock();
120
121 for(std::size_t i = 0; i < Out.size() - 1; ++i)
122 {
123 _mm_prefetch((char*)&Data[i + 1], _MM_HINT_T0);
124 glm::simdMat4 m(Data[i]);
125 glm::simdMat4 o;
126 glm::detail::sse_inverse_fast_ps((__m128 const * const)&m, (__m128 *)&o);
127 Out[i] = *(glm::mat4*)&o;
128 }
129
130 std::clock_t TimeEnd = clock();
131 printf("Inv C: %ld\n", TimeEnd - TimeStart);
132 }
133
134 void test_invD(std::vector<glm::mat4> const & Data, std::vector<glm::mat4> & Out)
135 {
136 //std::vector<float> Test(Data.size());
137 Out.resize(Data.size());
138
139 std::clock_t TimeStart = clock();
140
141 for(std::size_t i = 0; i < Out.size() - 1; ++i)
142 {
143 _mm_prefetch((char*)&Data[i + 1], _MM_HINT_T0);
144 glm::simdMat4 m(Data[i]);
145 glm::simdMat4 o;
146 glm::detail::sse_inverse_ps((__m128 const * const)&m, (__m128 *)&o);
147 Out[i] = *(glm::mat4*)&o;
148 }
149
150 std::clock_t TimeEnd = clock();
151 printf("Inv D: %ld\n", TimeEnd - TimeStart);
152 }
153
154 void test_mulA(std::vector<glm::mat4> const & Data, std::vector<glm::mat4> & Out)
155 {
156 //std::vector<float> Test(Data.size());
157 Out.resize(Data.size());
158
159 std::clock_t TimeStart = clock();
160
161 for(std::size_t i = 0; i < Out.size() - 1; ++i)
162 {
163 Out[i] = Data[i] * Data[i];
164 }
165
166 std::clock_t TimeEnd = clock();
167 printf("Mul A: %ld\n", TimeEnd - TimeStart);
168 }
169
170 void test_mulD(std::vector<glm::mat4> const & Data, std::vector<glm::mat4> & Out)
171 {
172 //std::vector<float> Test(Data.size());
173 Out.resize(Data.size());
174
175 std::clock_t TimeStart = clock();
176
177 for(std::size_t i = 0; i < Out.size() - 1; ++i)
178 {
179 _mm_prefetch((char*)&Data[i + 1], _MM_HINT_T0);
180 glm::simdMat4 m(Data[i]);
181 glm::detail::sse_mul_ps((__m128 const * const)&m, (__m128 const * const)&m, (__m128*)&Out[i]);
182 }
183
184 std::clock_t TimeEnd = clock();
185 printf("Mul D: %ld\n", TimeEnd - TimeStart);
186 }
187
188 int test_compute_glm()
189 {
190 return 0;
191 }
192
193 int test_compute_gtx()
194 {
195 std::vector<glm::vec4> Output(1000000);
196
197 std::clock_t TimeStart = clock();
198
199 for(std::size_t k = 0; k < Output.size(); ++k)
200 {
201 float i = float(k) / 1000.f;
202 glm::vec3 A = glm::normalize(glm::vec3(i));
203 glm::vec3 B = glm::cross(A, glm::vec3(0, 0, 1));
204 glm::mat4 C = glm::rotate(glm::mat4(1.0f), i, B);
205 glm::mat4 D = glm::scale(C, glm::vec3(0.8f, 1.0f, 1.2f));
206 glm::mat4 E = glm::translate(D, glm::vec3(1.4f, 1.2f, 1.1f));
207 glm::mat4 F = glm::perspective(i, 1.5f, 0.1f, 1000.f);
208 glm::mat4 G = glm::inverse(F * E);
209 glm::vec3 H = glm::unProject(glm::vec3(i), G, F, E[3]);
210 glm::vec3 I = glm::project(H, G, F, E[3]);
211 glm::mat4 J = glm::lookAt(glm::normalize(B), H, I);
212 glm::mat4 K = glm::transpose(J);
213 glm::quat L = glm::normalize(glm::quat_cast(K));
214 glm::vec4 M = L * glm::smoothstep(K[3], J[3], glm::vec4(i));
215 glm::mat4 N = glm::mat4(glm::normalize(M), K[3], J[3], glm::vec4(i));
216 glm::mat4 O = N * glm::inverse(N);
217 glm::vec4 P = O * glm::reflect(N[3], glm::vec4(A, 1.0f));
218 glm::vec4 Q = glm::vec4(glm::dot(M, P));
219 glm::vec4 R = glm::quat(Q.w, glm::vec3(Q)) * P;
220 Output[k] = R;
221 }
222
223 std::clock_t TimeEnd = clock();
224 printf("test_compute_gtx: %ld\n", TimeEnd - TimeStart);
225
226 return 0;
227 }
228
229 int main()
230 {
231 int Error = 0;
232
233 std::vector<glm::mat4> Data(64 * 64 * 1);
234 for(std::size_t i = 0; i < Data.size(); ++i)
235 Data[i] = glm::mat4(
236 glm::vec4(glm::compRand4(-2.0f, 2.0f)),
237 glm::vec4(glm::compRand4(-2.0f, 2.0f)),
238 glm::vec4(glm::compRand4(-2.0f, 2.0f)),
239 glm::vec4(glm::compRand4(-2.0f, 2.0f)));
240
241 {
242 std::vector<glm::mat4> TestInvA;
243 test_invA(Data, TestInvA);
244 }
245 {
246 std::vector<glm::mat4> TestInvC;
247 test_invC(Data, TestInvC);
248 }
249 {
250 std::vector<glm::mat4> TestInvD;
251 test_invD(Data, TestInvD);
252 }
253
254 {
255 std::vector<glm::mat4> TestA;
256 test_mulA(Data, TestA);
257 }
258 {
259 std::vector<glm::mat4> TestD;
260 test_mulD(Data, TestD);
261 }
262
263 {
264 std::vector<float> TestDetA = test_detA(Data);
265 std::vector<float> TestDetB = test_detB(Data);
266 std::vector<float> TestDetD = test_detD(Data);
267 std::vector<float> TestDetC = test_detC(Data);
268
269 for(std::size_t i = 0; i < TestDetA.size(); ++i)
270 if(TestDetA[i] != TestDetB[i] && TestDetC[i] != TestDetB[i] && TestDetC[i] != TestDetD[i])
271 return 1;
272 }
273
274 // shuffle test
275 glm::simdVec4 A(1.0f, 2.0f, 3.0f, 4.0f);
276 glm::simdVec4 B(5.0f, 6.0f, 7.0f, 8.0f);
277 __m128 C = _mm_shuffle_ps(A.Data, B.Data, _MM_SHUFFLE(1, 0, 1, 0));
278
279 Error += test_compute_glm();
280 Error += test_compute_gtx();
281
282 float Det = glm::determinant(glm::simdMat4(1.0));
283 glm::simdMat4 D = glm::matrixCompMult(glm::simdMat4(1.0), glm::simdMat4(1.0));
284
285 return Error;
286 }
+0
-30
test/gtx/gtx-simd-vec4.cpp less more
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2010-09-16
4 // Updated : 2010-09-16
5 // Licence : This source is under MIT licence
6 // File : test/gtx/simd-vec4.cpp
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #include <glm/glm.hpp>
10 #include <glm/gtx/simd_vec4.hpp>
11 #include <cstdio>
12
13 int main()
14 {
15 glm::simdVec4 A1(0.0f, 0.1f, 0.2f, 0.3f);
16 glm::simdVec4 B1(0.4f, 0.5f, 0.6f, 0.7f);
17 glm::simdVec4 C1 = A1 + B1;
18 glm::simdVec4 D1 = A1.swizzle<glm::X, glm::Z, glm::Y, glm::W>();
19 glm::simdVec4 E1(glm::vec4(1.0f));
20 glm::vec4 F1 = glm::vec4_cast(E1);
21 //glm::vec4 G1(E1);
22
23 //printf("A1(%2.3f, %2.3f, %2.3f, %2.3f)\n", A1.x, A1.y, A1.z, A1.w);
24 //printf("B1(%2.3f, %2.3f, %2.3f, %2.3f)\n", B1.x, B1.y, B1.z, B1.w);
25 //printf("C1(%2.3f, %2.3f, %2.3f, %2.3f)\n", C1.x, C1.y, C1.z, C1.w);
26 //printf("D1(%2.3f, %2.3f, %2.3f, %2.3f)\n", D1.x, D1.y, D1.z, D1.w);
27
28 return 0;
29 }
+0
-107
test/gtx/gtx-ulp.cpp less more
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2011-04-26
4 // Updated : 2011-04-26
5 // Licence : This source is under MIT licence
6 // File : test/gtx/ulp.cpp
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #include <glm/glm.hpp>
10 #include <glm/gtx/ulp.hpp>
11 #include <iostream>
12 #include <limits>
13
14 int test_ulp_float_dist()
15 {
16 int Error = 0;
17
18 float A = 1.0f;
19
20 float B = glm::next_float(A);
21 Error += A != B ? 0 : 1;
22 float C = glm::prev_float(B);
23 Error += A == C ? 0 : 1;
24
25 int D = glm::float_distance(A, B);
26 Error += D == 1 ? 0 : 1;
27 int E = glm::float_distance(A, C);
28 Error += E == 0 ? 0 : 1;
29
30 return Error;
31 }
32
33 int test_ulp_float_step()
34 {
35 int Error = 0;
36
37 float A = 1.0f;
38
39 for(int i = 10; i < 1000; i *= 10)
40 {
41 float B = glm::next_float(A, i);
42 Error += A != B ? 0 : 1;
43 float C = glm::prev_float(B, i);
44 Error += A == C ? 0 : 1;
45
46 int D = glm::float_distance(A, B);
47 Error += D == i ? 0 : 1;
48 int E = glm::float_distance(A, C);
49 Error += E == 0 ? 0 : 1;
50 }
51
52 return Error;
53 }
54
55 int test_ulp_double_dist()
56 {
57 int Error = 0;
58
59 double A = 1.0;
60
61 double B = glm::next_float(A);
62 Error += A != B ? 0 : 1;
63 double C = glm::prev_float(B);
64 Error += A == C ? 0 : 1;
65
66 int D = glm::float_distance(A, B);
67 Error += D == 1 ? 0 : 1;
68 int E = glm::float_distance(A, C);
69 Error += E == 0 ? 0 : 1;
70
71 return Error;
72 }
73
74 int test_ulp_double_step()
75 {
76 int Error = 0;
77
78 double A = 1.0;
79
80 for(int i = 10; i < 1000; i *= 10)
81 {
82 double B = glm::next_float(A, i);
83 Error += A != B ? 0 : 1;
84 double C = glm::prev_float(B, i);
85 Error += A == C ? 0 : 1;
86
87 int D = glm::float_distance(A, B);
88 Error += D == i ? 0 : 1;
89 int E = glm::float_distance(A, C);
90 Error += E == 0 ? 0 : 1;
91 }
92
93 return Error;
94 }
95
96 int main()
97 {
98 int Error = 0;
99 Error += test_ulp_float_dist();
100 Error += test_ulp_float_step();
101 Error += test_ulp_double_dist();
102 Error += test_ulp_double_step();
103 return Error;
104 }
105
106
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2010-09-16
4 // Updated : 2010-09-16
5 // Licence : This source is under MIT licence
6 // File : test/gtx/bit.cpp
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #include <glm/glm.hpp>
10 #include <glm/gtx/number_precision.hpp>
11 #include <glm/gtx/bit.hpp>
12 #include <iostream>
13
14 enum result
15 {
16 SUCCESS,
17 FAIL,
18 ASSERT,
19 STATIC_ASSERT
20 };
21
22 namespace extractField
23 {
24 template <typename genType, typename sizeType>
25 struct type
26 {
27 genType Value;
28 sizeType BitFirst;
29 sizeType BitCount;
30 genType Return;
31 result Result;
32 };
33
34 typedef type<glm::uint64, glm::uint> typeU64;
35
36 typeU64 const Data64[] =
37 {
38 {0xffffffffffffffff, 8, 0, 0x0000000000000000, SUCCESS},
39 {0x0000000000000000, 0,64, 0x0000000000000000, SUCCESS},
40 {0xffffffffffffffff, 0,64, 0xffffffffffffffff, SUCCESS},
41 {0x0f0f0f0f0f0f0f0f, 0,64, 0x0f0f0f0f0f0f0f0f, SUCCESS},
42 {0x0000000000000000, 8, 0, 0x0000000000000000, SUCCESS},
43 {0x8000000000000000,63, 1, 0x0000000000000001, SUCCESS},
44 {0x7fffffffffffffff,63, 1, 0x0000000000000000, SUCCESS},
45 {0x0000000000000300, 8, 8, 0x0000000000000003, SUCCESS},
46 {0x000000000000ff00, 8, 8, 0x00000000000000ff, SUCCESS},
47 {0xfffffffffffffff0, 0, 5, 0x0000000000000010, SUCCESS},
48 {0x00000000000000ff, 1, 3, 0x0000000000000007, SUCCESS},
49 {0x00000000000000ff, 0, 3, 0x0000000000000007, SUCCESS},
50 {0x0000000000000000, 0, 2, 0x0000000000000000, SUCCESS},
51 {0xffffffffffffffff, 0, 8, 0x00000000000000ff, SUCCESS},
52 {0xffffffff00000000,32,32, 0x00000000ffffffff, SUCCESS},
53 {0xfffffffffffffff0, 0, 8, 0x0000000000000000, FAIL},
54 {0xffffffffffffffff,32,32, 0x0000000000000000, FAIL},
55 //{0xffffffffffffffff,64, 1, 0x0000000000000000, ASSERT}, // Throw an assert
56 //{0xffffffffffffffff, 0,65, 0x0000000000000000, ASSERT}, // Throw an assert
57 //{0xffffffffffffffff,33,32, 0x0000000000000000, ASSERT}, // Throw an assert
58 };
59
60 int test()
61 {
62 glm::uint32 count = sizeof(Data64) / sizeof(typeU64);
63
64 for(glm::uint32 i = 0; i < count; ++i)
65 {
66 glm::uint64 Return = glm::extractField(
67 Data64[i].Value,
68 Data64[i].BitFirst,
69 Data64[i].BitCount);
70
71 bool Compare = Data64[i].Return == Return;
72
73 if(Data64[i].Result == SUCCESS && Compare)
74 continue;
75 else if(Data64[i].Result == FAIL && !Compare)
76 continue;
77
78 std::cout << "glm::extractfield test fail on test " << i << std::endl;
79 return 1;
80 }
81
82 return 0;
83 }
84 }//extractField
85
86 namespace bitRevert
87 {
88 template <typename genType>
89 struct type
90 {
91 genType Value;
92 genType Return;
93 result Result;
94 };
95
96 typedef type<glm::uint64> typeU64;
97
98 typeU64 const Data64[] =
99 {
100 {0xffffffffffffffff, 0xffffffffffffffff, SUCCESS},
101 {0x0000000000000000, 0x0000000000000000, SUCCESS},
102 {0xf000000000000000, 0x000000000000000f, SUCCESS},
103 };
104
105 int test()
106 {
107 glm::uint32 count = sizeof(Data64) / sizeof(typeU64);
108
109 for(glm::uint32 i = 0; i < count; ++i)
110 {
111 glm::uint64 Return = glm::bitRevert(
112 Data64[i].Value);
113
114 bool Compare = Data64[i].Return == Return;
115
116 if(Data64[i].Result == SUCCESS && Compare)
117 continue;
118 else if(Data64[i].Result == FAIL && !Compare)
119 continue;
120
121 std::cout << "glm::extractfield test fail on test " << i << std::endl;
122 return 1;
123 }
124
125 return 0;
126 }
127 }//bitRevert
128
129 int main()
130 {
131 int Error = 0;
132 Error += ::extractField::test();
133 Error += ::bitRevert::test();
134 return Error;
135 }
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2011-04-21
4 // Updated : 2011-04-26
5 // Licence : This source is under MIT licence
6 // File : test/gtx/noise.cpp
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #include <glm/glm.hpp>
10 #include <glm/gtx/noise.hpp>
11 #include <iostream>
12
13 int test_simplex()
14 {
15 float ValueSNoise2D = glm::simplex(glm::vec2(0.5f));
16 float ValueSNoise3D = glm::simplex(glm::vec3(0.5f));
17 float ValueSNoise4D = glm::simplex(glm::vec4(0.5f));
18
19 return 0;
20 }
21
22 int test_perlin()
23 {
24 float ValueCNoise2D = glm::perlin(glm::vec2(0.5f));
25 float ValueCNoise3D = glm::perlin(glm::vec3(0.5f));
26 float ValueCNoise4D = glm::perlin(glm::vec4(0.5f));
27
28 return 0;
29 }
30
31 int test_perlin_pedioric()
32 {
33 float ValuePNoise2D = glm::perlin(glm::vec2(0.5f), glm::vec2(0.5f));
34 float ValuePNoise3D = glm::perlin(glm::vec3(0.5f), glm::vec3(0.5f));
35 float ValuePNoise4D = glm::perlin(glm::vec4(0.5f), glm::vec4(0.5f));
36
37 return 0;
38 }
39
40 int main()
41 {
42 int Error = 0;
43
44 Error += test_simplex();
45 Error += test_perlin();
46 Error += test_perlin_pedioric();
47
48 return Error;
49 }
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2011-05-25
4 // Updated : 2011-05-31
5 // Licence : This source is under MIT licence
6 // File : test/gtx/quaternion.cpp
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #include <glm/glm.hpp>
10 #include <glm/gtx/quaternion.hpp>
11 #include <glm/gtx/epsilon.hpp>
12
13 int test_quat_mix()
14 {
15 int Error = 0;
16
17 glm::quat A = glm::angleAxis(0.0f, glm::vec3(0, 0, 1));
18 glm::quat B = glm::angleAxis(90.0f, glm::vec3(0, 0, 1));
19 glm::quat C = glm::mix(A, B, 0.5f);
20 glm::quat D = glm::angleAxis(45.0f, glm::vec3(0, 0, 1));
21
22 Error += glm::equalEpsilon(C.x, D.x, 0.01f) ? 0 : 1;
23 Error += glm::equalEpsilon(C.y, D.y, 0.01f) ? 0 : 1;
24 Error += glm::equalEpsilon(C.z, D.z, 0.01f) ? 0 : 1;
25 Error += glm::equalEpsilon(C.w, D.w, 0.01f) ? 0 : 1;
26
27 return Error;
28 }
29
30 int test_quat_fastMix()
31 {
32 int Error = 0;
33
34 glm::quat A = glm::angleAxis(0.0f, glm::vec3(0, 0, 1));
35 glm::quat B = glm::angleAxis(90.0f, glm::vec3(0, 0, 1));
36 glm::quat C = glm::fastMix(A, B, 0.5f);
37 glm::quat D = glm::angleAxis(45.0f, glm::vec3(0, 0, 1));
38
39 Error += glm::equalEpsilon(C.x, D.x, 0.01f) ? 0 : 1;
40 Error += glm::equalEpsilon(C.y, D.y, 0.01f) ? 0 : 1;
41 Error += glm::equalEpsilon(C.z, D.z, 0.01f) ? 0 : 1;
42 Error += glm::equalEpsilon(C.w, D.w, 0.01f) ? 0 : 1;
43
44 return Error;
45 }
46
47 int test_quat_shortMix()
48 {
49 int Error = 0;
50
51 glm::quat A = glm::angleAxis(0.0f, glm::vec3(0, 0, 1));
52 glm::quat B = glm::angleAxis(90.0f, glm::vec3(0, 0, 1));
53 glm::quat C = glm::shortMix(A, B, 0.5f);
54 glm::quat D = glm::angleAxis(45.0f, glm::vec3(0, 0, 1));
55
56 Error += glm::equalEpsilon(C.x, D.x, 0.01f) ? 0 : 1;
57 Error += glm::equalEpsilon(C.y, D.y, 0.01f) ? 0 : 1;
58 Error += glm::equalEpsilon(C.z, D.z, 0.01f) ? 0 : 1;
59 Error += glm::equalEpsilon(C.w, D.w, 0.01f) ? 0 : 1;
60
61 return Error;
62 }
63
64 int test_quat_angleAxis()
65 {
66 int Error = 0;
67
68 glm::quat A = glm::angleAxis(0.0f, glm::vec3(0, 0, 1));
69 glm::quat B = glm::angleAxis(90.0f, glm::vec3(0, 0, 1));
70 glm::quat C = glm::mix(A, B, 0.5f);
71 glm::quat D = glm::angleAxis(45.0f, glm::vec3(0, 0, 1));
72
73 Error += glm::equalEpsilon(C.x, D.x, 0.01f) ? 0 : 1;
74 Error += glm::equalEpsilon(C.y, D.y, 0.01f) ? 0 : 1;
75 Error += glm::equalEpsilon(C.z, D.z, 0.01f) ? 0 : 1;
76 Error += glm::equalEpsilon(C.w, D.w, 0.01f) ? 0 : 1;
77
78 return Error;
79 }
80
81 int test_quat_angle()
82 {
83 int Error = 0;
84
85 {
86 glm::quat Q = glm::angleAxis(45.0f, glm::vec3(0, 0, 1));
87 glm::quat N = glm::normalize(Q);
88 float L = glm::length(N);
89 Error += glm::equalEpsilon(L, 1.0f, 0.01f) ? 0 : 1;
90 float A = glm::angle(N);
91 Error += glm::equalEpsilon(A, 45.0f, 0.01f) ? 0 : 1;
92 }
93 {
94 glm::quat Q = glm::angleAxis(45.0f, glm::normalize(glm::vec3(0, 1, 1)));
95 glm::quat N = glm::normalize(Q);
96 float L = glm::length(N);
97 Error += glm::equalEpsilon(L, 1.0f, 0.01f) ? 0 : 1;
98 float A = glm::angle(N);
99 Error += glm::equalEpsilon(A, 45.0f, 0.01f) ? 0 : 1;
100 }
101 {
102 glm::quat Q = glm::angleAxis(45.0f, glm::normalize(glm::vec3(1, 2, 3)));
103 glm::quat N = glm::normalize(Q);
104 float L = glm::length(N);
105 Error += glm::equalEpsilon(L, 1.0f, 0.01f) ? 0 : 1;
106 float A = glm::angle(N);
107 Error += glm::equalEpsilon(A, 45.0f, 0.01f) ? 0 : 1;
108 }
109
110 return Error;
111 }
112
113 int test_quat_normalize()
114 {
115 int Error = 0;
116
117 {
118 glm::quat Q = glm::angleAxis(45.0f, glm::vec3(0, 0, 1));
119 glm::quat N = glm::normalize(Q);
120 float L = glm::length(N);
121 Error += glm::equalEpsilon(L, 1.0f, 0.000001f) ? 0 : 1;
122 }
123 {
124 glm::quat Q = glm::angleAxis(45.0f, glm::vec3(0, 0, 2));
125 glm::quat N = glm::normalize(Q);
126 float L = glm::length(N);
127 Error += glm::equalEpsilon(L, 1.0f, 0.000001f) ? 0 : 1;
128 }
129 {
130 glm::quat Q = glm::angleAxis(45.0f, glm::vec3(1, 2, 3));
131 glm::quat N = glm::normalize(Q);
132 float L = glm::length(N);
133 Error += glm::equalEpsilon(L, 1.0f, 0.000001f) ? 0 : 1;
134 }
135
136 return Error;
137 }
138
139 int main()
140 {
141 int Error = 0;
142
143 Error += test_quat_angle();
144 Error += test_quat_angleAxis();
145 Error += test_quat_mix();
146 Error += test_quat_fastMix();
147 Error += test_quat_shortMix();
148 Error += test_quat_normalize();
149
150 return Error;
151 }
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2011-05-31
4 // Updated : 2011-05-31
5 // Licence : This source is under MIT licence
6 // File : test/gtx/random.cpp
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #include <glm/glm.hpp>
10 #include <glm/gtx/random.hpp>
11 #include <glm/gtx/epsilon.hpp>
12 #include <iostream>
13
14 int test_signedRand1()
15 {
16 int Error = 0;
17
18 {
19 float ResultFloat = 0.0f;
20 double ResultDouble = 0.0f;
21 for(std::size_t i = 0; i < 100000; ++i)
22 {
23 ResultFloat += glm::signedRand1<float>();
24 ResultDouble += glm::signedRand1<double>();
25 }
26
27 Error += glm::equalEpsilon(ResultFloat, 0.0f, 0.0001f);
28 Error += glm::equalEpsilon(ResultDouble, 0.0, 0.0001);
29 }
30
31 return Error;
32 }
33
34 int test_normalizedRand2()
35 {
36 int Error = 0;
37
38 {
39 std::size_t Max = 100000;
40 float ResultFloat = 0.0f;
41 double ResultDouble = 0.0f;
42 for(std::size_t i = 0; i < Max; ++i)
43 {
44 ResultFloat += glm::length(glm::normalizedRand2<float>());
45 ResultDouble += glm::length(glm::normalizedRand2<double>());
46 }
47
48 Error += glm::equalEpsilon(ResultFloat, float(Max), 0.0001f);
49 Error += glm::equalEpsilon(ResultDouble, double(Max), 0.0001);
50 }
51
52 return Error;
53 }
54
55 int test_normalizedRand3()
56 {
57 int Error = 0;
58
59 {
60 std::size_t Max = 100000;
61 float ResultFloatA = 0.0f;
62 float ResultFloatB = 0.0f;
63 float ResultFloatC = 0.0f;
64 double ResultDoubleA = 0.0f;
65 double ResultDoubleB = 0.0f;
66 double ResultDoubleC = 0.0f;
67 for(std::size_t i = 0; i < Max; ++i)
68 {
69 ResultFloatA += glm::length(glm::normalizedRand3<float>());
70 ResultDoubleA += glm::length(glm::normalizedRand3<double>());
71 ResultFloatB += glm::length(glm::normalizedRand3(2.0f, 2.0f));
72 ResultDoubleB += glm::length(glm::normalizedRand3(2.0, 2.0));
73 ResultFloatC += glm::length(glm::normalizedRand3(1.0f, 3.0f));
74 ResultDoubleC += glm::length(glm::normalizedRand3(1.0, 3.0));
75 }
76
77 Error += glm::equalEpsilon(ResultFloatA, float(Max), 0.0001f) ? 0 : 1;
78 Error += glm::equalEpsilon(ResultDoubleA, double(Max), 0.0001) ? 0 : 1;
79 Error += glm::equalEpsilon(ResultFloatB, float(Max * 2), 0.0001f) ? 0 : 1;
80 Error += glm::equalEpsilon(ResultDoubleB, double(Max * 2), 0.0001) ? 0 : 1;
81 Error += (ResultFloatC >= float(Max) && ResultFloatC <= float(Max * 3)) ? 0 : 1;
82 Error += (ResultDoubleC >= double(Max) && ResultDoubleC <= double(Max * 3)) ? 0 : 1;
83 }
84
85 return Error;
86 }
87
88 int main()
89 {
90 int Error = 0;
91
92 Error += test_signedRand1();
93 Error += test_normalizedRand2();
94 Error += test_normalizedRand3();
95
96 return Error;
97 }
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2011-05-16
4 // Updated : 2011-05-16
5 // Licence : This source is under MIT licence
6 // File : test/gtx/rotate_vector.cpp
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #include <glm/glm.hpp>
10 #include <glm/gtx/rotate_vector.hpp>
11
12 int test_rotate()
13 {
14 int Error = 0;
15
16 glm::vec2 A = glm::rotate(glm::vec2(1, 0), 90.f);
17
18 glm::vec3 B = glm::rotate(glm::vec3(1, 0, 0), 90.f, glm::vec3(0, 0, 1));
19
20 glm::vec4 C = glm::rotate(glm::vec4(1, 0, 0, 1), 90.f, glm::vec3(0, 0, 1));
21
22 glm::vec3 D = glm::rotateX(glm::vec3(1, 0, 0), 90.f);
23
24 glm::vec4 E = glm::rotateX(glm::vec4(1, 0, 0, 1), 90.f);
25
26 glm::vec3 F = glm::rotateY(glm::vec3(1, 0, 0), 90.f);
27
28 glm::vec4 G = glm::rotateY(glm::vec4(1, 0, 0, 1), 90.f);
29
30 glm::vec3 H = glm::rotateZ(glm::vec3(1, 0, 0), 90.f);
31
32 glm::vec4 I = glm::rotateZ(glm::vec4(1, 0, 0,1 ), 90.f);
33
34 glm::mat4 O = glm::orientation(glm::normalize(glm::vec3(1)), glm::vec3(0, 0, 1));
35
36 return Error;
37 }
38
39 int test_rotateX()
40 {
41 int Error = 0;
42
43 glm::vec3 D = glm::rotateX(glm::vec3(1, 0, 0), 90.f);
44
45 glm::vec4 E = glm::rotateX(glm::vec4(1, 0, 0, 1), 90.f);
46
47 return Error;
48 }
49
50 int test_rotateY()
51 {
52 int Error = 0;
53
54 glm::vec3 F = glm::rotateY(glm::vec3(1, 0, 0), 90.f);
55
56 glm::vec4 G = glm::rotateY(glm::vec4(1, 0, 0, 1), 90.f);
57
58 return Error;
59 }
60
61
62 int test_rotateZ()
63 {
64 int Error = 0;
65
66 glm::vec3 H = glm::rotateZ(glm::vec3(1, 0, 0), 90.f);
67
68 glm::vec4 I = glm::rotateZ(glm::vec4(1, 0, 0,1 ), 90.f);
69
70 return Error;
71 }
72
73 int test_orientation()
74 {
75 int Error = 0;
76
77 glm::mat4 O = glm::orientation(glm::normalize(glm::vec3(1)), glm::vec3(0, 0, 1));
78
79 return Error;
80 }
81
82 int main()
83 {
84 int Error = 0;
85 Error += test_rotate();
86 Error += test_rotateX();
87 Error += test_rotateY();
88 Error += test_rotateZ();
89 Error += test_orientation();
90
91 return Error;
92 }
93
94
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2010-09-16
4 // Updated : 2010-09-16
5 // Licence : This source is under MIT licence
6 // File : test/gtx/simd-mat4.cpp
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #include <glm/glm.hpp>
10 #include <glm/gtc/matrix_transform.hpp>
11 #include <glm/gtc/quaternion.hpp>
12 #include <glm/gtx/simd_vec4.hpp>
13 #include <glm/gtx/simd_mat4.hpp>
14 #include <glm/gtx/random.hpp>
15 #include <iostream>
16 #include <cstdio>
17 #include <ctime>
18 #include <vector>
19
20 std::vector<float> test_detA(std::vector<glm::mat4> const & Data)
21 {
22 std::vector<float> Test(Data.size());
23
24 std::clock_t TimeStart = clock();
25
26 for(std::size_t i = 0; i < Test.size() - 1; ++i)
27 Test[i] = glm::determinant(Data[i]);
28
29 std::clock_t TimeEnd = clock();
30 printf("Det A: %ld\n", TimeEnd - TimeStart);
31
32 return Test;
33 }
34
35 std::vector<float> test_detB(std::vector<glm::mat4> const & Data)
36 {
37 std::vector<float> Test(Data.size());
38
39 std::clock_t TimeStart = clock();
40
41 for(std::size_t i = 0; i < Test.size() - 1; ++i)
42 {
43 _mm_prefetch((char*)&Data[i + 1], _MM_HINT_T0);
44 glm::simdMat4 m(Data[i]);
45 glm::simdVec4 d(glm::detail::sse_slow_det_ps((__m128 const * const)&m));
46 glm::vec4 v;//(d);
47 Test[i] = v.x;
48 }
49
50 std::clock_t TimeEnd = clock();
51 printf("Det B: %ld\n", TimeEnd - TimeStart);
52
53 return Test;
54 }
55
56 std::vector<float> test_detC(std::vector<glm::mat4> const & Data)
57 {
58 std::vector<float> Test(Data.size());
59
60 std::clock_t TimeStart = clock();
61
62 for(std::size_t i = 0; i < Test.size() - 1; ++i)
63 {
64 _mm_prefetch((char*)&Data[i + 1], _MM_HINT_T0);
65 glm::simdMat4 m(Data[i]);
66 glm::simdVec4 d(glm::detail::sse_det_ps((__m128 const * const)&m));
67 glm::vec4 v;//(d);
68 Test[i] = v.x;
69 }
70
71 std::clock_t TimeEnd = clock();
72 printf("Det C: %ld\n", TimeEnd - TimeStart);
73
74 return Test;
75 }
76
77 std::vector<float> test_detD(std::vector<glm::mat4> const & Data)
78 {
79 std::vector<float> Test(Data.size());
80
81 std::clock_t TimeStart = clock();
82
83 for(std::size_t i = 0; i < Test.size() - 1; ++i)
84 {
85 _mm_prefetch((char*)&Data[i + 1], _MM_HINT_T0);
86 glm::simdMat4 m(Data[i]);
87 glm::simdVec4 d(glm::detail::sse_detd_ps((__m128 const * const)&m));
88 glm::vec4 v;//(d);
89 Test[i] = v.x;
90 }
91
92 std::clock_t TimeEnd = clock();
93 printf("Det D: %ld\n", TimeEnd - TimeStart);
94
95 return Test;
96 }
97
98 void test_invA(std::vector<glm::mat4> const & Data, std::vector<glm::mat4> & Out)
99 {
100 //std::vector<float> Test(Data.size());
101 Out.resize(Data.size());
102
103 std::clock_t TimeStart = clock();
104
105 for(std::size_t i = 0; i < Out.size() - 1; ++i)
106 {
107 Out[i] = glm::inverse(Data[i]);
108 }
109
110 std::clock_t TimeEnd = clock();
111 printf("Inv A: %ld\n", TimeEnd - TimeStart);
112 }
113
114 void test_invC(std::vector<glm::mat4> const & Data, std::vector<glm::mat4> & Out)
115 {
116 //std::vector<float> Test(Data.size());
117 Out.resize(Data.size());
118
119 std::clock_t TimeStart = clock();
120
121 for(std::size_t i = 0; i < Out.size() - 1; ++i)
122 {
123 _mm_prefetch((char*)&Data[i + 1], _MM_HINT_T0);
124 glm::simdMat4 m(Data[i]);
125 glm::simdMat4 o;
126 glm::detail::sse_inverse_fast_ps((__m128 const * const)&m, (__m128 *)&o);
127 Out[i] = *(glm::mat4*)&o;
128 }
129
130 std::clock_t TimeEnd = clock();
131 printf("Inv C: %ld\n", TimeEnd - TimeStart);
132 }
133
134 void test_invD(std::vector<glm::mat4> const & Data, std::vector<glm::mat4> & Out)
135 {
136 //std::vector<float> Test(Data.size());
137 Out.resize(Data.size());
138
139 std::clock_t TimeStart = clock();
140
141 for(std::size_t i = 0; i < Out.size() - 1; ++i)
142 {
143 _mm_prefetch((char*)&Data[i + 1], _MM_HINT_T0);
144 glm::simdMat4 m(Data[i]);
145 glm::simdMat4 o;
146 glm::detail::sse_inverse_ps((__m128 const * const)&m, (__m128 *)&o);
147 Out[i] = *(glm::mat4*)&o;
148 }
149
150 std::clock_t TimeEnd = clock();
151 printf("Inv D: %ld\n", TimeEnd - TimeStart);
152 }
153
154 void test_mulA(std::vector<glm::mat4> const & Data, std::vector<glm::mat4> & Out)
155 {
156 //std::vector<float> Test(Data.size());
157 Out.resize(Data.size());
158
159 std::clock_t TimeStart = clock();
160
161 for(std::size_t i = 0; i < Out.size() - 1; ++i)
162 {
163 Out[i] = Data[i] * Data[i];
164 }
165
166 std::clock_t TimeEnd = clock();
167 printf("Mul A: %ld\n", TimeEnd - TimeStart);
168 }
169
170 void test_mulD(std::vector<glm::mat4> const & Data, std::vector<glm::mat4> & Out)
171 {
172 //std::vector<float> Test(Data.size());
173 Out.resize(Data.size());
174
175 std::clock_t TimeStart = clock();
176
177 for(std::size_t i = 0; i < Out.size() - 1; ++i)
178 {
179 _mm_prefetch((char*)&Data[i + 1], _MM_HINT_T0);
180 glm::simdMat4 m(Data[i]);
181 glm::detail::sse_mul_ps((__m128 const * const)&m, (__m128 const * const)&m, (__m128*)&Out[i]);
182 }
183
184 std::clock_t TimeEnd = clock();
185 printf("Mul D: %ld\n", TimeEnd - TimeStart);
186 }
187
188 int test_compute_glm()
189 {
190 return 0;
191 }
192
193 int test_compute_gtx()
194 {
195 std::vector<glm::vec4> Output(1000000);
196
197 std::clock_t TimeStart = clock();
198
199 for(std::size_t k = 0; k < Output.size(); ++k)
200 {
201 float i = float(k) / 1000.f;
202 glm::vec3 A = glm::normalize(glm::vec3(i));
203 glm::vec3 B = glm::cross(A, glm::vec3(0, 0, 1));
204 glm::mat4 C = glm::rotate(glm::mat4(1.0f), i, B);
205 glm::mat4 D = glm::scale(C, glm::vec3(0.8f, 1.0f, 1.2f));
206 glm::mat4 E = glm::translate(D, glm::vec3(1.4f, 1.2f, 1.1f));
207 glm::mat4 F = glm::perspective(i, 1.5f, 0.1f, 1000.f);
208 glm::mat4 G = glm::inverse(F * E);
209 glm::vec3 H = glm::unProject(glm::vec3(i), G, F, E[3]);
210 glm::vec3 I = glm::project(H, G, F, E[3]);
211 glm::mat4 J = glm::lookAt(glm::normalize(B), H, I);
212 glm::mat4 K = glm::transpose(J);
213 glm::quat L = glm::normalize(glm::quat_cast(K));
214 glm::vec4 M = L * glm::smoothstep(K[3], J[3], glm::vec4(i));
215 glm::mat4 N = glm::mat4(glm::normalize(M), K[3], J[3], glm::vec4(i));
216 glm::mat4 O = N * glm::inverse(N);
217 glm::vec4 P = O * glm::reflect(N[3], glm::vec4(A, 1.0f));
218 glm::vec4 Q = glm::vec4(glm::dot(M, P));
219 glm::vec4 R = glm::quat(Q.w, glm::vec3(Q)) * P;
220 Output[k] = R;
221 }
222
223 std::clock_t TimeEnd = clock();
224 printf("test_compute_gtx: %ld\n", TimeEnd - TimeStart);
225
226 return 0;
227 }
228
229 int main()
230 {
231 int Error = 0;
232
233 std::vector<glm::mat4> Data(64 * 64 * 1);
234 for(std::size_t i = 0; i < Data.size(); ++i)
235 Data[i] = glm::mat4(
236 glm::vec4(glm::compRand4(-2.0f, 2.0f)),
237 glm::vec4(glm::compRand4(-2.0f, 2.0f)),
238 glm::vec4(glm::compRand4(-2.0f, 2.0f)),
239 glm::vec4(glm::compRand4(-2.0f, 2.0f)));
240
241 {
242 std::vector<glm::mat4> TestInvA;
243 test_invA(Data, TestInvA);
244 }
245 {
246 std::vector<glm::mat4> TestInvC;
247 test_invC(Data, TestInvC);
248 }
249 {
250 std::vector<glm::mat4> TestInvD;
251 test_invD(Data, TestInvD);
252 }
253
254 {
255 std::vector<glm::mat4> TestA;
256 test_mulA(Data, TestA);
257 }
258 {
259 std::vector<glm::mat4> TestD;
260 test_mulD(Data, TestD);
261 }
262
263 {
264 std::vector<float> TestDetA = test_detA(Data);
265 std::vector<float> TestDetB = test_detB(Data);
266 std::vector<float> TestDetD = test_detD(Data);
267 std::vector<float> TestDetC = test_detC(Data);
268
269 for(std::size_t i = 0; i < TestDetA.size(); ++i)
270 if(TestDetA[i] != TestDetB[i] && TestDetC[i] != TestDetB[i] && TestDetC[i] != TestDetD[i])
271 return 1;
272 }
273
274 // shuffle test
275 glm::simdVec4 A(1.0f, 2.0f, 3.0f, 4.0f);
276 glm::simdVec4 B(5.0f, 6.0f, 7.0f, 8.0f);
277 __m128 C = _mm_shuffle_ps(A.Data, B.Data, _MM_SHUFFLE(1, 0, 1, 0));
278
279 Error += test_compute_glm();
280 Error += test_compute_gtx();
281
282 float Det = glm::determinant(glm::simdMat4(1.0));
283 glm::simdMat4 D = glm::matrixCompMult(glm::simdMat4(1.0), glm::simdMat4(1.0));
284
285 return Error;
286 }
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2010-09-16
4 // Updated : 2010-09-16
5 // Licence : This source is under MIT licence
6 // File : test/gtx/simd-vec4.cpp
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #include <glm/glm.hpp>
10 #include <glm/gtx/simd_vec4.hpp>
11 #include <cstdio>
12
13 int main()
14 {
15 glm::simdVec4 A1(0.0f, 0.1f, 0.2f, 0.3f);
16 glm::simdVec4 B1(0.4f, 0.5f, 0.6f, 0.7f);
17 glm::simdVec4 C1 = A1 + B1;
18 glm::simdVec4 D1 = A1.swizzle<glm::X, glm::Z, glm::Y, glm::W>();
19 glm::simdVec4 E1(glm::vec4(1.0f));
20 glm::vec4 F1 = glm::vec4_cast(E1);
21 //glm::vec4 G1(E1);
22
23 //printf("A1(%2.3f, %2.3f, %2.3f, %2.3f)\n", A1.x, A1.y, A1.z, A1.w);
24 //printf("B1(%2.3f, %2.3f, %2.3f, %2.3f)\n", B1.x, B1.y, B1.z, B1.w);
25 //printf("C1(%2.3f, %2.3f, %2.3f, %2.3f)\n", C1.x, C1.y, C1.z, C1.w);
26 //printf("D1(%2.3f, %2.3f, %2.3f, %2.3f)\n", D1.x, D1.y, D1.z, D1.w);
27
28 return 0;
29 }
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2011-09-01
4 // Updated : 2011-09-01
5 // Licence : This source is under MIT licence
6 // File : test/gtx/string_cast.cpp
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #include <glm/glm.hpp>
10 #include <glm/gtx/string_cast.hpp>
11 #include <iostream>
12 #include <limits>
13
14 int test_string_cast_scalar()
15 {
16 int Error = 0;
17
18 glm::half A1(1.0);
19 std::string A2 = glm::to_string(A1);
20 Error += A2 != std::string("half(1.0000)") ? 1 : 0;
21
22 float B1(1.0);
23 std::string B2 = glm::to_string(B1);
24 Error += B2 != std::string("float(1.000000)") ? 1 : 0;
25
26 double C1(1.0);
27 std::string C2 = glm::to_string(C1);
28 Error += C2 != std::string("double(1.000000)") ? 1 : 0;
29
30 return Error;
31 }
32
33 int test_string_cast_vector()
34 {
35 int Error = 0;
36
37 glm::vec2 A1(1, 2);
38 std::string A2 = glm::to_string(A1);
39 Error += A2 != std::string("fvec2(1.000000, 2.000000)") ? 1 : 0;
40
41 glm::vec3 B1(1, 2, 3);
42 std::string B2 = glm::to_string(B1);
43 Error += B2 != std::string("fvec3(1.000000, 2.000000, 3.000000)") ? 1 : 0;
44
45 glm::vec4 C1(1, 2, 3, 4);
46 std::string C2 = glm::to_string(C1);
47 Error += C2 != std::string("fvec4(1.000000, 2.000000, 3.000000, 4.000000)") ? 1 : 0;
48
49 glm::ivec2 D1(1, 2);
50 std::string D2 = glm::to_string(D1);
51 Error += D2 != std::string("ivec2(1, 2)") ? 1 : 0;
52
53 glm::ivec3 E1(1, 2, 3);
54 std::string E2 = glm::to_string(E1);
55 Error += E2 != std::string("ivec3(1, 2, 3)") ? 1 : 0;
56
57 glm::ivec4 F1(1, 2, 3, 4);
58 std::string F2 = glm::to_string(F1);
59 Error += F2 != std::string("ivec4(1, 2, 3, 4)") ? 1 : 0;
60
61 glm::hvec2 G1(1, 2);
62 std::string G2 = glm::to_string(G1);
63 Error += G2 != std::string("hvec2(1.0000, 2.0000)") ? 1 : 0;
64
65 glm::hvec3 H1(1, 2, 3);
66 std::string H2 = glm::to_string(H1);
67 Error += H2 != std::string("hvec3(1.0000, 2.0000, 3.0000)") ? 1 : 0;
68
69 glm::hvec4 I1(1, 2, 3, 4);
70 std::string I2 = glm::to_string(I1);
71 Error += I2 != std::string("hvec4(1.0000, 2.0000, 3.0000, 4.0000)") ? 1 : 0;
72
73 glm::dvec2 J1(1, 2);
74 std::string J2 = glm::to_string(J1);
75 Error += J2 != std::string("dvec2(1.000000, 2.000000)") ? 1 : 0;
76
77 glm::dvec3 K1(1, 2, 3);
78 std::string K2 = glm::to_string(K1);
79 Error += K2 != std::string("dvec3(1.000000, 2.000000, 3.000000)") ? 1 : 0;
80
81 glm::dvec4 L1(1, 2, 3, 4);
82 std::string L2 = glm::to_string(L1);
83 Error += L2 != std::string("dvec4(1.000000, 2.000000, 3.000000, 4.000000)") ? 1 : 0;
84
85 return Error;
86 }
87
88 int test_string_cast_matrix()
89 {
90 int Error = 0;
91
92 return Error;
93 }
94
95 int main()
96 {
97 int Error = 0;
98 Error += test_string_cast_scalar();
99 Error += test_string_cast_vector();
100 Error += test_string_cast_matrix();
101 return Error;
102 }
103
104
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2011-04-26
4 // Updated : 2011-04-26
5 // Licence : This source is under MIT licence
6 // File : test/gtx/ulp.cpp
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #include <glm/glm.hpp>
10 #include <glm/gtx/ulp.hpp>
11 #include <iostream>
12 #include <limits>
13
14 int test_ulp_float_dist()
15 {
16 int Error = 0;
17
18 float A = 1.0f;
19
20 float B = glm::next_float(A);
21 Error += A != B ? 0 : 1;
22 float C = glm::prev_float(B);
23 Error += A == C ? 0 : 1;
24
25 int D = glm::float_distance(A, B);
26 Error += D == 1 ? 0 : 1;
27 int E = glm::float_distance(A, C);
28 Error += E == 0 ? 0 : 1;
29
30 return Error;
31 }
32
33 int test_ulp_float_step()
34 {
35 int Error = 0;
36
37 float A = 1.0f;
38
39 for(int i = 10; i < 1000; i *= 10)
40 {
41 float B = glm::next_float(A, i);
42 Error += A != B ? 0 : 1;
43 float C = glm::prev_float(B, i);
44 Error += A == C ? 0 : 1;
45
46 int D = glm::float_distance(A, B);
47 Error += D == i ? 0 : 1;
48 int E = glm::float_distance(A, C);
49 Error += E == 0 ? 0 : 1;
50 }
51
52 return Error;
53 }
54
55 int test_ulp_double_dist()
56 {
57 int Error = 0;
58
59 double A = 1.0;
60
61 double B = glm::next_float(A);
62 Error += A != B ? 0 : 1;
63 double C = glm::prev_float(B);
64 Error += A == C ? 0 : 1;
65
66 int D = glm::float_distance(A, B);
67 Error += D == 1 ? 0 : 1;
68 int E = glm::float_distance(A, C);
69 Error += E == 0 ? 0 : 1;
70
71 return Error;
72 }
73
74 int test_ulp_double_step()
75 {
76 int Error = 0;
77
78 double A = 1.0;
79
80 for(int i = 10; i < 1000; i *= 10)
81 {
82 double B = glm::next_float(A, i);
83 Error += A != B ? 0 : 1;
84 double C = glm::prev_float(B, i);
85 Error += A == C ? 0 : 1;
86
87 int D = glm::float_distance(A, B);
88 Error += D == i ? 0 : 1;
89 int E = glm::float_distance(A, C);
90 Error += E == 0 ? 0 : 1;
91 }
92
93 return Error;
94 }
95
96 int main()
97 {
98 int Error = 0;
99 Error += test_ulp_float_dist();
100 Error += test_ulp_float_step();
101 Error += test_ulp_double_dist();
102 Error += test_ulp_double_step();
103 return Error;
104 }
105
106
0 ///////////////////////////////////////////////////////////////////////////////////////////////////
1 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
2 ///////////////////////////////////////////////////////////////////////////////////////////////////
3 // Created : 2011-05-15
4 // Updated : 2011-05-15
5 // Licence : This source is under MIT licence
6 // File : test/gtx/vector_angle.cpp
7 ///////////////////////////////////////////////////////////////////////////////////////////////////
8
9 #include <glm/glm.hpp>
10 #include <glm/gtx/vector_angle.hpp>
11 #include <iostream>
12 #include <limits>
13
14 int test_angle()
15 {
16 int Error = 0;
17
18 float AngleA = glm::angle(glm::vec2(1, 0), glm::normalize(glm::vec2(1, 1)));
19 Error += glm::equalEpsilon(AngleA, 45.f, 0.01f) ? 0 : 1;
20 float AngleB = glm::angle(glm::vec3(1, 0, 0), glm::normalize(glm::vec3(1, 1, 0)));
21 Error += glm::equalEpsilon(AngleB, 45.f, 0.01f) ? 0 : 1;
22 float AngleC = glm::angle(glm::vec4(1, 0, 0, 0), glm::normalize(glm::vec4(1, 1, 0, 0)));
23 Error += glm::equalEpsilon(AngleC, 45.f, 0.01f) ? 0 : 1;
24
25 return Error;
26 }
27
28 int test_orientedAngle_vec2()
29 {
30 int Error = 0;
31
32 float AngleA = glm::orientedAngle(glm::vec2(1, 0), glm::normalize(glm::vec2(1, 1)));
33 Error += AngleA == 45.f ? 0 : 1;
34 float AngleB = glm::orientedAngle(glm::vec2(0, 1), glm::normalize(glm::vec2(1, 1)));
35 Error += AngleB == -45.f ? 0 : 1;
36 float AngleC = glm::orientedAngle(glm::normalize(glm::vec2(1, 1)), glm::vec2(0, 1));
37 Error += AngleC == 45.f ? 0 : 1;
38
39 return Error;
40 }
41
42 int test_orientedAngle_vec3()
43 {
44 int Error = 0;
45
46 float AngleA = glm::orientedAngle(glm::vec3(1, 0, 0), glm::normalize(glm::vec3(1, 1, 0)), glm::vec3(0, 0, 1));
47 Error += AngleA == 45.f ? 0 : 1;
48 float AngleB = glm::orientedAngle(glm::vec3(0, 1, 0), glm::normalize(glm::vec3(1, 1, 0)), glm::vec3(0, 0, 1));
49 Error += AngleB == -45.f ? 0 : 1;
50 float AngleC = glm::orientedAngle(glm::normalize(glm::vec3(1, 1, 0)), glm::vec3(0, 1, 0), glm::vec3(0, 0, 1));
51 Error += AngleC == 45.f ? 0 : 1;
52
53 return Error;
54 }
55
56 int main()
57 {
58 int Error = 0;
59 Error += test_angle();
60 Error += test_orientedAngle_vec2();
61 Error += test_orientedAngle_vec3();
62
63 return Error;
64 }
65
66
+0
-0
test/test.cpp less more
(Empty file)
+0
-38
test/test.hpp less more
0 #ifndef glm_test_included
1 #define glm_test_included
2
3 #include <string>
4
5 namespace glm{
6 namespace test
7 {
8 class test
9 {
10 enum result
11 {
12 PASSED,
13 FAILED,
14 ASSERT,
15 STATIC,
16 MAX
17 };
18
19 public:
20 test(std::string const & Name, std::size_t const & Count);
21 result & operator[](std::size_t const & Index);
22 result const & operator[](std::size_t const & Index) const;
23
24 static int get(result const Result) const;
25 static void log(test const & Test);
26
27 protected:
28 std::string Name;
29 std::vertor<result> Tests;
30
31 static test Result[MAX];
32 };
33
34 }//namespace test
35 }//namespace glm
36
37 #endif//glm_test_included